1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2008,2009 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.488 2009/07/17 09:14:49 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: 8 updated: 2009/01/06 19:33: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="$CPPFLAGS $cf_new_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: 12 updated: 2009/01/18 10:00:47
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)="$ifelse($2,,CPPFLAGS,$2) -I$cf_add_incdir"
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: 8 updated: 2009/01/18 10:01:08
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_AR_FLAGS version: 4 updated: 2009/02/07 13:42:23
358 dnl Check for suitable "ar" (archiver) options for updating an archive.
359 AC_DEFUN([CF_AR_FLAGS],[
360 AC_REQUIRE([CF_PROG_AR])
362 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
363 cf_cv_ar_flags=unknown
364 for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
366 rm -f conftest.$ac_cv_objext
369 cat >conftest.$ac_ext <<EOF
370 #line __oline__ "configure"
371 int testdata[[3]] = { 123, 456, 789 };
373 if AC_TRY_EVAL(ac_compile) ; then
374 $AR $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
375 if test -f conftest.a ; then
376 cf_cv_ar_flags=$cf_ar_flags
380 CF_VERBOSE(cannot compile test-program)
384 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
386 test -z "$ARFLAGS" && ARFLAGS=$cf_cv_ar_flags
387 AC_SUBST(ARFLAGS,$cf_cv_ar_flags)
389 dnl ---------------------------------------------------------------------------
390 dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
391 dnl -----------------
392 dnl Check if awk can handle big strings using printf. Some older versions of
393 dnl awk choke on large strings passed via "%s".
395 dnl $1 = desired string size
396 dnl $2 = variable to set with result
397 AC_DEFUN([CF_AWK_BIG_PRINTF],
404 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
405 | $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
413 dnl ---------------------------------------------------------------------------
414 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
416 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
417 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
418 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
420 dnl Treat the configuration-variable specially here, since we're directly
421 dnl substituting its value (i.e., 1/0).
423 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
424 AC_DEFUN([CF_BOOL_DECL],
426 AC_MSG_CHECKING(if we should include stdbool.h)
428 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
429 AC_TRY_COMPILE([],[bool foo = false],
430 [cf_cv_header_stdbool_h=0],
435 ],[bool foo = false],
436 [cf_cv_header_stdbool_h=1],
437 [cf_cv_header_stdbool_h=0])])])
439 if test "$cf_cv_header_stdbool_h" = 1
440 then AC_MSG_RESULT(yes)
441 else AC_MSG_RESULT(no)
444 AC_MSG_CHECKING([for builtin bool type])
446 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
449 #include <sys/types.h>
451 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
452 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
455 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
456 then AC_MSG_RESULT(yes)
457 else AC_MSG_RESULT(no)
460 dnl ---------------------------------------------------------------------------
461 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
463 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
464 dnl Don't bother looking for bool.h, since it's been deprecated.
466 dnl If the current compiler is C rather than C++, we get the bool definition
467 dnl from <stdbool.h>.
468 AC_DEFUN([CF_BOOL_SIZE],
470 AC_MSG_CHECKING([for size of bool])
471 AC_CACHE_VAL(cf_cv_type_of_bool,[
477 #if defined(__cplusplus)
479 #ifdef HAVE_GXX_BUILTIN_H
480 #include <g++/builtin.h>
481 #elif HAVE_GPP_BUILTIN_H
482 #include <gpp/builtin.h>
489 #if $cf_cv_header_stdbool_h
497 FILE *fp = fopen("cf_test.out", "w");
501 fputs("unsigned ", fp);
502 if (sizeof(x) == sizeof(int)) fputs("int", fp);
503 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
504 else if (sizeof(x) == sizeof(short))fputs("short",fp);
505 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
508 ${cf_cv_main_return:-return}(0);
511 [cf_cv_type_of_bool=`cat cf_test.out`
512 if test -z "$cf_cv_type_of_bool"; then
513 cf_cv_type_of_bool=unknown
515 [cf_cv_type_of_bool=unknown],
516 [cf_cv_type_of_bool=unknown])
519 AC_MSG_RESULT($cf_cv_type_of_bool)
520 if test "$cf_cv_type_of_bool" = unknown ; then
521 case .$NCURSES_BOOL in #(vi
522 .auto|.) NCURSES_BOOL=unsigned;;
524 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
525 cf_cv_type_of_bool=$NCURSES_BOOL
528 dnl ---------------------------------------------------------------------------
529 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
531 dnl If we're cross-compiling, allow the user to override the tools and their
532 dnl options. The configure script is oriented toward identifying the host
533 dnl compiler, etc., but we need a build compiler to generate parts of the
536 dnl $1 = default for $CPPFLAGS
537 dnl $2 = default for $LIBS
538 AC_DEFUN([CF_BUILD_CC],[
539 AC_REQUIRE([CF_PROG_EXT])
540 if test "$cross_compiling" = yes ; then
542 # defaults that we might want to override
543 : ${BUILD_CFLAGS:=''}
544 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
545 : ${BUILD_LDFLAGS:=''}
546 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
547 : ${BUILD_EXEEXT:='$x'}
548 : ${BUILD_OBJEXT:='o'}
550 AC_ARG_WITH(build-cc,
551 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
552 [BUILD_CC="$withval"],
553 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
554 AC_MSG_CHECKING(for native build C compiler)
555 AC_MSG_RESULT($BUILD_CC)
557 AC_MSG_CHECKING(for native build C preprocessor)
558 AC_ARG_WITH(build-cpp,
559 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
560 [BUILD_CPP="$withval"],
561 [BUILD_CPP='${BUILD_CC} -E'])
562 AC_MSG_RESULT($BUILD_CPP)
564 AC_MSG_CHECKING(for native build C flags)
565 AC_ARG_WITH(build-cflags,
566 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
567 [BUILD_CFLAGS="$withval"])
568 AC_MSG_RESULT($BUILD_CFLAGS)
570 AC_MSG_CHECKING(for native build C preprocessor-flags)
571 AC_ARG_WITH(build-cppflags,
572 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
573 [BUILD_CPPFLAGS="$withval"])
574 AC_MSG_RESULT($BUILD_CPPFLAGS)
576 AC_MSG_CHECKING(for native build linker-flags)
577 AC_ARG_WITH(build-ldflags,
578 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
579 [BUILD_LDFLAGS="$withval"])
580 AC_MSG_RESULT($BUILD_LDFLAGS)
582 AC_MSG_CHECKING(for native build linker-libraries)
583 AC_ARG_WITH(build-libs,
584 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
585 [BUILD_LIBS="$withval"])
586 AC_MSG_RESULT($BUILD_LIBS)
588 # this assumes we're on Unix.
592 : ${BUILD_CC:='${CC}'}
594 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
595 AC_MSG_ERROR([Cross-build requires two compilers.
596 Use --with-build-cc to specify the native compiler.])
600 : ${BUILD_CC:='${CC}'}
601 : ${BUILD_CPP:='${CPP}'}
602 : ${BUILD_CFLAGS:='${CFLAGS}'}
603 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
604 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
605 : ${BUILD_LIBS:='${LIBS}'}
606 : ${BUILD_EXEEXT:='$x'}
607 : ${BUILD_OBJEXT:='o'}
612 AC_SUBST(BUILD_CFLAGS)
613 AC_SUBST(BUILD_CPPFLAGS)
614 AC_SUBST(BUILD_LDFLAGS)
616 AC_SUBST(BUILD_EXEEXT)
617 AC_SUBST(BUILD_OBJEXT)
619 dnl ---------------------------------------------------------------------------
620 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
622 dnl Determine the default configuration into which we'll install ncurses. This
623 dnl can be overridden by the user's command-line options. There's two items to
625 dnl 1. the prefix (e.g., /usr)
626 dnl 2. the header files (e.g., /usr/include/ncurses)
627 dnl We'll look for a previous installation of ncurses and use the same defaults.
629 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
630 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
631 dnl programs from a vendor's.
632 AC_DEFUN([CF_CFG_DEFAULTS],
634 AC_MSG_CHECKING(for prefix)
635 if test "x$prefix" = "xNONE" ; then
636 case "$cf_cv_system_name" in
637 # non-vendor systems don't have a conflict
638 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
641 *) prefix=$ac_default_prefix
645 AC_MSG_RESULT($prefix)
647 if test "x$prefix" = "xNONE" ; then
648 AC_MSG_CHECKING(for default include-directory)
649 test -n "$verbose" && echo 1>&AC_FD_MSG
652 $includedir/ncurses \
654 $prefix/include/ncurses \
656 /usr/local/include/ncurses \
660 cf_dir=`eval echo $cf_symbol`
661 if test -f $cf_dir/curses.h ; then
662 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
663 includedir="$cf_symbol"
664 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
668 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
670 AC_MSG_RESULT($includedir)
673 dnl ---------------------------------------------------------------------------
674 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
676 dnl Check if the terminal-capability database functions are available. If not,
677 dnl ncurses has a much-reduced version.
678 AC_DEFUN([CF_CGETENT],[
679 AC_MSG_CHECKING(for terminal-capability database functions)
680 AC_CACHE_VAL(cf_cv_cgetent,[
682 #include <stdlib.h>],[
685 char *db_array = temp;
686 cgetent(&buf, /* int *, */ &db_array, "vt100");
687 cgetcap(buf, "tc", '=');
688 cgetmatch(buf, "tc");
693 AC_MSG_RESULT($cf_cv_cgetent)
694 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
696 dnl ---------------------------------------------------------------------------
697 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
699 dnl Check if we're accidentally using a cache from a different machine.
700 dnl Derive the system name, as a check for reusing the autoconf cache.
702 dnl If we've packaged config.guess and config.sub, run that (since it does a
703 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
704 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
705 dnl which is useful in cross-compiles.
707 dnl Note: we would use $ac_config_sub, but that is one of the places where
708 dnl autoconf 2.5x broke compatibility with autoconf 2.13
709 AC_DEFUN([CF_CHECK_CACHE],
711 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
712 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
713 system_name="$host_os"
715 system_name="`(uname -s -r) 2>/dev/null`"
716 if test -z "$system_name" ; then
717 system_name="`(hostname) 2>/dev/null`"
720 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
721 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
723 test -z "$system_name" && system_name="$cf_cv_system_name"
724 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
726 if test ".$system_name" != ".$cf_cv_system_name" ; then
727 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
728 AC_MSG_ERROR("Please remove config.cache and try again.")
731 dnl ---------------------------------------------------------------------------
732 dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
734 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
735 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
738 dnl $1 = the name to check
739 dnl $2 = the assumed type
740 AC_DEFUN([CF_CHECK_ERRNO],
742 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
748 #include <sys/types.h>
749 #include <errno.h> ],
750 ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
755 if test "$cf_cv_dcl_$1" = no ; then
756 CF_UPPER(cf_result,decl_$1)
757 AC_DEFINE_UNQUOTED($cf_result)
760 # It's possible (for near-UNIX clones) that the data doesn't exist
761 CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
763 dnl ---------------------------------------------------------------------------
764 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
765 dnl --------------------
766 dnl Check for existence of external data in the current set of libraries. If
767 dnl we can modify it, it's real enough.
768 dnl $1 = the name to check
770 AC_DEFUN([CF_CHECK_EXTERN_DATA],
772 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
782 if test "$cf_cv_have_$1" = yes ; then
783 CF_UPPER(cf_result,have_$1)
784 AC_DEFINE_UNQUOTED($cf_result)
788 dnl ---------------------------------------------------------------------------
789 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
790 dnl -------------------
791 dnl Check if GPM is already linked with curses. If so - and if the linkage
792 dnl is not "weak" - warn about this because it can create problems linking
793 dnl applications with ncurses.
794 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
795 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
797 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
798 cf_cv_check_gpm_wgetch=unknown
799 if test "$cross_compiling" != yes ; then
801 cat >conftest.$ac_ext <<CF_EOF
806 ${cf_cv_main_return:-return}(0);
811 # This only works if we can look at the symbol table. If a shared
812 # library is stripped for install, we cannot use that. So we're forced
813 # to rely on the static library, noting that some packagers may not
815 LIBS="-static -lgpm -dynamic $LIBS"
816 if AC_TRY_EVAL(ac_compile) ; then
817 if AC_TRY_EVAL(ac_link) ; then
818 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
819 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
820 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
828 if test "$cf_cv_check_gpm_wgetch" != yes ; then
829 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
832 dnl ---------------------------------------------------------------------------
833 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
834 dnl -----------------
835 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
836 dnl is a late feature for the standard and is not in some recent compilers
838 AC_DEFUN([CF_CPP_PARAM_INIT],
840 if test -n "$CXX"; then
841 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
853 TEST::TEST(int x = 1) // some compilers do not like second initializer
859 [cf_cv_cpp_param_init=yes],
860 [cf_cv_cpp_param_init=no],
861 [cf_cv_cpp_param_init=unknown])
865 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
867 dnl ---------------------------------------------------------------------------
868 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
869 dnl ------------------
870 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
871 dnl not be supported in g++ before 3.0
872 AC_DEFUN([CF_CPP_STATIC_CAST],
874 if test -n "$CXX"; then
876 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
884 NCursesPanel(int nlines,
894 template<class T> class NCursesUserPanel : public NCursesPanel
897 NCursesUserPanel (int nlines,
901 const T* p_UserData = static_cast<T*>(0))
902 : NCursesPanel (nlines, ncols, begin_y, begin_x)
905 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
909 virtual ~NCursesUserPanel() {};
912 const char* p_UserData = static_cast<char*>(0)],
913 [cf_cv_cpp_static_cast=yes],
914 [cf_cv_cpp_static_cast=no])
921 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
923 dnl ---------------------------------------------------------------------------
924 dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
926 dnl Check if the C compiler supports "inline".
927 dnl $1 is the name of a shell variable to set if inline is supported
928 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
929 AC_DEFUN([CF_C_INLINE],[
932 if test "$ac_cv_c_inline" != no ; then
934 if test "$INTEL_COMPILER" = yes
937 elif test "$GCC" = yes
939 AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
940 cf_save_CFLAGS=$CFLAGS
941 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
942 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
943 [${cf_cv_main_return:-return} foo()],
944 [cf_cv_gcc_inline=yes],
945 [cf_cv_gcc_inline=no])
946 CFLAGS=$cf_save_CFLAGS
948 if test "$cf_cv_gcc_inline" = yes ; then
949 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
955 dnl ---------------------------------------------------------------------------
956 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
958 dnl "dirname" is not portable, so we fake it with a shell script.
959 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
960 dnl ---------------------------------------------------------------------------
961 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
963 AC_DEFUN([CF_DIRS_TO_MAKE],
966 for cf_item in $cf_list_models
968 CF_OBJ_SUBDIR($cf_item,cf_subdir)
969 for cf_item2 in $DIRS_TO_MAKE
971 test $cf_item2 = $cf_subdir && break
973 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
975 for cf_dir in $DIRS_TO_MAKE
977 test ! -d $cf_dir && mkdir $cf_dir
979 AC_SUBST(DIRS_TO_MAKE)
981 dnl ---------------------------------------------------------------------------
982 dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
984 dnl Combine no-leak checks with the libraries or tools that are used for the
986 AC_DEFUN([CF_DISABLE_LEAKS],[
988 AC_REQUIRE([CF_WITH_DMALLOC])
989 AC_REQUIRE([CF_WITH_DBMALLOC])
990 AC_REQUIRE([CF_WITH_VALGRIND])
992 AC_MSG_CHECKING(if you want to perform memory-leak testing)
994 [ --disable-leaks test: free permanent memory, analyze leaks],
996 : ${with_no_leaks:=no})
997 AC_MSG_RESULT($with_no_leaks)
999 if test "$with_no_leaks" = yes ; then
1003 dnl ---------------------------------------------------------------------------
1004 dnl CF_ENABLE_RPATH version: 1 updated: 2008/09/13 10:22:30
1006 dnl Check if the rpath option should be used, setting cache variable
1007 dnl cf_cv_ld_rpath if so.
1008 AC_DEFUN([CF_ENABLE_RPATH],
1010 AC_MSG_CHECKING(if rpath option should be used)
1011 AC_ARG_ENABLE(rpath,
1012 [ --enable-rpath use rpath option when generating shared libraries],
1013 [cf_cv_ld_rpath=$enableval],
1014 [cf_cv_ld_rpath=no])
1015 AC_MSG_RESULT($cf_cv_ld_rpath)
1017 dnl ---------------------------------------------------------------------------
1018 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1020 dnl Check if 'errno' is declared in <errno.h>
1021 AC_DEFUN([CF_ERRNO],
1023 CF_CHECK_ERRNO(errno)
1025 dnl ---------------------------------------------------------------------------
1026 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
1028 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1029 dnl math.h and builtin.h, only for ncurses
1030 AC_DEFUN([CF_ETIP_DEFINES],
1032 AC_MSG_CHECKING(for special defines needed for etip.h)
1033 cf_save_CXXFLAGS="$CXXFLAGS"
1035 for cf_math in "" MATH_H
1037 for cf_excp in "" MATH_EXCEPTION
1039 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1040 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1041 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1043 #include <etip.h.in>
1045 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1046 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1047 cf_result="$cf_math $cf_excp"
1052 AC_MSG_RESULT($cf_result)
1053 CXXFLAGS="$cf_save_CXXFLAGS"
1055 dnl ---------------------------------------------------------------------------
1056 dnl CF_FIND_LINKAGE version: 13 updated: 2008/12/24 07:59:55
1058 dnl Find a library (specifically the linkage used in the code fragment),
1059 dnl searching for it if it is not already in the library path.
1060 dnl See also CF_ADD_SEARCHPATH.
1062 dnl Parameters (4-on are optional):
1063 dnl $1 = headers for library entrypoint
1064 dnl $2 = code fragment for library entrypoint
1065 dnl $3 = the library name without the "-l" option or ".so" suffix.
1066 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1067 dnl $5 = action to perform if not successful
1068 dnl $6 = module name, if not the same as the library name
1069 dnl $7 = extra libraries
1071 dnl Sets these variables:
1072 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1073 dnl $cf_cv_header_path_$3 - include-directory if needed
1074 dnl $cf_cv_library_path_$3 - library-directory if needed
1075 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1076 AC_DEFUN([CF_FIND_LINKAGE],[
1078 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1079 # will be set on completion of the AC_TRY_LINK below.
1080 cf_cv_header_path_$3=
1081 cf_cv_library_path_$3=
1083 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1085 AC_TRY_LINK([$1],[$2],
1086 cf_cv_find_linkage_$3=yes,[
1087 cf_cv_find_linkage_$3=no
1089 CF_VERBOSE(find linkage for $3 library)
1090 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1092 cf_save_CPPFLAGS="$CPPFLAGS"
1093 cf_test_CPPFLAGS="$CPPFLAGS"
1095 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1096 for cf_cv_header_path_$3 in $cf_search
1098 if test -d $cf_cv_header_path_$3 ; then
1099 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1100 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1101 AC_TRY_COMPILE([$1],[$2],[
1102 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1103 cf_cv_find_linkage_$3=maybe
1104 cf_test_CPPFLAGS="$CPPFLAGS"
1106 CPPFLAGS="$cf_save_CPPFLAGS"
1111 if test "$cf_cv_find_linkage_$3" = maybe ; then
1113 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1115 cf_save_LIBS="$LIBS"
1116 cf_save_LDFLAGS="$LDFLAGS"
1119 CPPFLAGS="$cf_test_CPPFLAGS"
1120 LIBS="-l$3 $7 $cf_save_LIBS"
1121 AC_TRY_LINK([$1],[$2],[
1122 CF_VERBOSE(... found $3 library in system)
1123 cf_cv_find_linkage_$3=yes])
1124 CPPFLAGS="$cf_save_CPPFLAGS"
1125 LIBS="$cf_save_LIBS"
1128 if test "$cf_cv_find_linkage_$3" != yes ; then
1129 CF_LIBRARY_PATH(cf_search,$3)
1130 for cf_cv_library_path_$3 in $cf_search
1132 if test -d $cf_cv_library_path_$3 ; then
1133 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1134 CPPFLAGS="$cf_test_CPPFLAGS"
1135 LIBS="-l$3 $7 $cf_save_LIBS"
1136 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1137 AC_TRY_LINK([$1],[$2],[
1138 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1139 cf_cv_find_linkage_$3=yes
1140 cf_cv_library_file_$3="-l$3"
1142 CPPFLAGS="$cf_save_CPPFLAGS"
1143 LIBS="$cf_save_LIBS"
1144 LDFLAGS="$cf_save_LDFLAGS"
1148 LIBS="$cf_save_LIBS"
1149 CPPFLAGS="$cf_save_CPPFLAGS"
1150 LDFLAGS="$cf_save_LDFLAGS"
1154 cf_cv_find_linkage_$3=no
1158 if test "$cf_cv_find_linkage_$3" = yes ; then
1160 CF_ADD_INCDIR($cf_cv_header_path_$3)
1161 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1165 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1168 dnl ---------------------------------------------------------------------------
1169 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1171 dnl Test for dlsym() and related functions, as well as libdl.
1176 AC_DEFUN([CF_FUNC_DLSYM],[
1178 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1181 AC_CHECK_LIB(dl,dlsym,[
1183 cf_have_libdl=yes])])
1185 if test "$cf_have_dlsym" = yes ; then
1186 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1188 AC_MSG_CHECKING(whether able to link to dl*() functions)
1189 AC_TRY_LINK([#include <dlfcn.h>],[
1191 if ((obj = dlopen("filename", 0)) != 0) {
1192 if (dlsym(obj, "symbolname") == 0) {
1196 AC_DEFINE(HAVE_LIBDL)],[
1197 AC_MSG_ERROR(Cannot link test program for libdl)])
1200 AC_MSG_ERROR(Cannot find dlsym function)
1203 dnl ---------------------------------------------------------------------------
1204 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1206 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1207 dnl is found, add our own version of memmove to the list of objects.
1208 AC_DEFUN([CF_FUNC_MEMMOVE],
1210 AC_CHECK_FUNC(memmove,,[
1211 AC_CHECK_FUNC(bcopy,[
1212 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1215 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1217 bcopy(data, temp, sizeof(data));
1218 bcopy(temp+10, temp, 15);
1219 bcopy(temp+5, temp+15, 10);
1220 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1223 [cf_cv_good_bcopy=yes],
1224 [cf_cv_good_bcopy=no],
1225 [cf_cv_good_bcopy=unknown])
1227 ],[cf_cv_good_bcopy=no])
1228 if test "$cf_cv_good_bcopy" = yes ; then
1229 AC_DEFINE(USE_OK_BCOPY)
1231 AC_DEFINE(USE_MY_MEMMOVE)
1234 dnl ---------------------------------------------------------------------------
1235 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1236 dnl -----------------
1237 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1238 dnl AIX 4.x, provide a non-working version.
1239 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1240 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1246 #ifdef HAVE_SYS_TIME_H
1247 #include <sys/time.h>
1251 struct timespec ts1, ts2;
1254 ts1.tv_nsec = 750000000;
1258 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1259 ${cf_cv_main_return:-return}(code != 0);
1262 [cf_cv_func_nanosleep=yes],
1263 [cf_cv_func_nanosleep=no],
1264 [cf_cv_func_nanosleep=unknown])])
1266 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1268 dnl ---------------------------------------------------------------------------
1269 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1271 dnl Check for openpty() function, along with <pty.h> header. It may need the
1272 dnl "util" library as well.
1273 AC_DEFUN([CF_FUNC_OPENPTY],
1275 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1276 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1277 cf_save_LIBS="$LIBS"
1278 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1279 for cf_header in pty.h libutil.h util.h
1282 #include <$cf_header>
1284 int x = openpty((int *)0, (int *)0, (char *)0,
1285 (struct termios *)0, (struct winsize *)0);
1287 cf_cv_func_openpty=$cf_header
1290 cf_cv_func_openpty=no
1293 LIBS="$cf_save_LIBS"
1296 dnl ---------------------------------------------------------------------------
1297 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1299 dnl See if the poll function really works. Some platforms have poll(), but
1300 dnl it does not work for terminals or files.
1301 AC_DEFUN([CF_FUNC_POLL],[
1302 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1308 #include <sys/poll.h>
1311 struct pollfd myfds;
1315 myfds.events = POLLIN;
1317 ret = poll(&myfds, 1, 100);
1318 ${cf_cv_main_return:-return}(ret != 0);
1320 [cf_cv_working_poll=yes],
1321 [cf_cv_working_poll=no],
1322 [cf_cv_working_poll=unknown])])
1323 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1325 dnl ---------------------------------------------------------------------------
1326 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1328 dnl Some old/broken variations define tcgetattr() only as a macro in
1330 AC_DEFUN([CF_FUNC_TERMIOS],[
1331 AC_REQUIRE([CF_STRUCT_TERMIOS])
1332 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1334 #include <sys/types.h>
1335 #ifdef HAVE_UNISTD_H
1338 #ifdef HAVE_TERMIOS_H
1339 #include <termios.h>
1340 #define TTY struct termios
1342 #ifdef HAVE_TERMIO_H
1344 #define TTY struct termio
1349 tcgetattr(1, &foo);],
1350 [cf_cv_have_tcgetattr=yes],
1351 [cf_cv_have_tcgetattr=no])])
1352 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1354 dnl ---------------------------------------------------------------------------
1355 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1357 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1358 dnl versions of C. It is in the GNU C library, and can often be simulated by
1359 dnl other functions.
1360 AC_DEFUN([CF_FUNC_VSSCANF],
1362 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1365 #include <stdio.h>],[
1367 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1370 #include <stdio.h>],[
1374 strbuf._flag = _IOREAD;
1375 strbuf._ptr = strbuf._base = (unsigned char *) str;
1376 strbuf._cnt = strlen(str);
1377 strbuf._file = _NFILE;
1378 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1381 #include <stdio.h>],[
1385 strbuf._flag = _IOREAD;
1386 strbuf._ptr = strbuf._base = (unsigned char *) str;
1387 strbuf._cnt = strlen(str);
1388 strbuf._file = _NFILE;
1389 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1390 cf_cv_func_vsscanf=no])])])])
1392 case $cf_cv_func_vsscanf in #(vi
1393 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1394 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1395 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1399 dnl ---------------------------------------------------------------------------
1400 dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
1401 dnl -----------------
1402 dnl Test for availability of useful gcc __attribute__ directives to quiet
1403 dnl compiler warnings. Though useful, not all are supported -- and contrary
1404 dnl to documentation, unrecognized directives cause older compilers to barf.
1405 AC_DEFUN([CF_GCC_ATTRIBUTES],
1407 if test "$GCC" = yes
1409 cat > conftest.i <<EOF
1411 #define GCC_PRINTF 0
1416 #ifndef GCC_NORETURN
1417 #define GCC_NORETURN /* nothing */
1420 #define GCC_UNUSED /* nothing */
1423 if test "$GCC" = yes
1425 AC_CHECKING([for $CC __attribute__ directives])
1426 cat > conftest.$ac_ext <<EOF
1427 #line __oline__ "${as_me-configure}"
1428 #include "confdefs.h"
1429 #include "conftest.h"
1430 #include "conftest.i"
1432 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1434 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1437 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1439 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1441 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1442 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1443 extern void foo(void) GCC_NORETURN;
1444 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1446 for cf_attribute in scanf printf unused noreturn
1448 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1449 cf_directive="__attribute__(($cf_attribute))"
1450 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1451 case $cf_attribute in
1453 cat >conftest.h <<EOF
1454 #define GCC_$cf_ATTRIBUTE 1
1458 cat >conftest.h <<EOF
1459 #define GCC_$cf_ATTRIBUTE $cf_directive
1463 if AC_TRY_EVAL(ac_compile); then
1464 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1465 cat conftest.h >>confdefs.h
1469 fgrep define conftest.i >>confdefs.h
1474 dnl ---------------------------------------------------------------------------
1475 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1477 dnl Find version of gcc
1478 AC_DEFUN([CF_GCC_VERSION],[
1479 AC_REQUIRE([AC_PROG_CC])
1481 if test "$GCC" = yes ; then
1482 AC_MSG_CHECKING(version of $CC)
1483 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1484 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1485 AC_MSG_RESULT($GCC_VERSION)
1488 dnl ---------------------------------------------------------------------------
1489 dnl CF_GCC_WARNINGS version: 24 updated: 2009/02/01 15:21:00
1491 dnl Check if the compiler supports useful warning options. There's a few that
1492 dnl we don't use, simply because they're too noisy:
1494 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1495 dnl -Wredundant-decls (system headers make this too noisy)
1496 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1497 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1498 dnl is enabled for ncurses using "--enable-const".
1502 dnl $1 is an optional list of gcc warning flags that a particular
1503 dnl application might want to use, e.g., "no-unused" for
1506 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1508 AC_DEFUN([CF_GCC_WARNINGS],
1510 AC_REQUIRE([CF_GCC_VERSION])
1511 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1513 cat > conftest.$ac_ext <<EOF
1514 #line __oline__ "${as_me-configure}"
1515 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1518 if test "$INTEL_COMPILER" = yes
1520 # The "-wdXXX" options suppress warnings:
1521 # remark #1419: external declaration in primary source file
1522 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1523 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1524 # remark #193: zero used for undefined preprocessing identifier
1525 # remark #593: variable "curs_sb_left_arrow" was set but never used
1526 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1527 # remark #869: parameter "tw" was never referenced
1528 # remark #981: operands are evaluated in unspecified order
1529 # warning #279: controlling expression is constant
1531 AC_CHECKING([for $CC warning options])
1532 cf_save_CFLAGS="$CFLAGS"
1533 EXTRA_CFLAGS="-Wall"
1545 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1546 if AC_TRY_EVAL(ac_compile); then
1547 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1548 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1551 CFLAGS="$cf_save_CFLAGS"
1553 elif test "$GCC" = yes
1555 AC_CHECKING([for $CC warning options])
1556 cf_save_CFLAGS="$CFLAGS"
1557 EXTRA_CFLAGS="-W -Wall"
1559 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1561 Wbad-function-cast \
1565 Wmissing-declarations \
1566 Wmissing-prototypes \
1570 Wstrict-prototypes \
1571 Wundef $cf_warn_CONST $1
1573 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1574 if AC_TRY_EVAL(ac_compile); then
1575 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1576 case $cf_opt in #(vi
1578 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1581 case $GCC_VERSION in
1583 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1588 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1591 CFLAGS="$cf_save_CFLAGS"
1595 AC_SUBST(EXTRA_CFLAGS)
1597 dnl ---------------------------------------------------------------------------
1598 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1599 dnl ----------------
1600 dnl Verify that a test program compiles/links with GNAT.
1601 dnl $cf_ada_make is set to the program that compiles/links
1602 dnl $ADAFLAGS may be set to the GNAT flags.
1604 dnl $1 is the text of the spec
1605 dnl $2 is the text of the body
1606 dnl $3 is the shell command to execute if successful
1607 dnl $4 is the shell command to execute if not successful
1608 AC_DEFUN([CF_GNAT_TRY_LINK],
1611 cat >>conftest.ads <<CF_EOF
1614 cat >>conftest.adb <<CF_EOF
1617 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1618 ifelse($3,, :,[ $3])
1624 dnl ---------------------------------------------------------------------------
1625 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1627 dnl Verify that a test program compiles and runs with GNAT
1628 dnl $cf_ada_make is set to the program that compiles/links
1629 dnl $ADAFLAGS may be set to the GNAT flags.
1631 dnl $1 is the text of the spec
1632 dnl $2 is the text of the body
1633 dnl $3 is the shell command to execute if successful
1634 dnl $4 is the shell command to execute if not successful
1635 AC_DEFUN([CF_GNAT_TRY_RUN],
1638 cat >>conftest.ads <<CF_EOF
1641 cat >>conftest.adb <<CF_EOF
1644 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1645 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1646 ifelse($3,, :,[ $3])
1655 dnl ---------------------------------------------------------------------------
1656 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1658 dnl Verify version of GNAT.
1659 AC_DEFUN([CF_GNAT_VERSION],
1661 AC_MSG_CHECKING(for gnat version)
1662 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1663 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1664 AC_MSG_RESULT($cf_gnat_version)
1666 case $cf_gnat_version in
1667 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1668 cf_cv_prog_gnat_correct=yes
1670 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1671 cf_cv_prog_gnat_correct=no
1674 case $cf_gnat_version in
1675 3.[[1-9]]*|[[4-9]].*)
1676 cf_compile_generics=generics
1677 cf_generic_objects="\${GENOBJS}"
1679 *) cf_compile_generics=
1684 dnl ---------------------------------------------------------------------------
1685 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1687 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1688 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1689 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1690 dnl since it is interwoven with GNU extensions.
1692 dnl Well, yes we could work around it...
1693 AC_DEFUN([CF_GNU_SOURCE],
1695 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1696 AC_TRY_COMPILE([#include <sys/types.h>],[
1697 #ifndef _XOPEN_SOURCE
1700 [cf_cv_gnu_source=no],
1701 [cf_save="$CPPFLAGS"
1702 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1703 AC_TRY_COMPILE([#include <sys/types.h>],[
1704 #ifdef _XOPEN_SOURCE
1707 [cf_cv_gnu_source=no],
1708 [cf_cv_gnu_source=yes])
1712 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1714 dnl ---------------------------------------------------------------------------
1715 dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
1717 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1718 dnl problem :-). If we have the compiler but no library, we'll be able to
1719 dnl configure, but won't be able to build the c++ demo program.
1720 AC_DEFUN([CF_GPP_LIBRARY],
1722 cf_cxx_library=unknown
1723 case $cf_cv_system_name in #(vi
1731 if test "$GXX" = yes; then
1732 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1734 LIBS="$LIBS -l$cf_gpp_libname"
1736 #include <$cf_gpp_libname/builtin.h>
1738 [two_arg_error_handler_t foo2 = lib_error_handler],
1740 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1741 if test "$cf_gpp_libname" = cpp ; then
1742 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1744 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1747 #include <builtin.h>
1749 [two_arg_error_handler_t foo2 = lib_error_handler],
1751 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1752 AC_DEFINE(HAVE_BUILTIN_H)],
1753 [cf_cxx_library=no])])
1755 AC_MSG_RESULT($cf_cxx_library)
1758 dnl ---------------------------------------------------------------------------
1759 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1761 dnl Check for version of g++
1762 AC_DEFUN([CF_GXX_VERSION],[
1763 AC_REQUIRE([AC_PROG_CPP])
1765 if test "$GXX" = yes; then
1766 AC_MSG_CHECKING(version of g++)
1767 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1768 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1769 AC_MSG_RESULT($GXX_VERSION)
1772 dnl ---------------------------------------------------------------------------
1773 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1775 dnl Check if the compiler supports useful warning options.
1777 dnl Most of gcc's options apply to g++, except:
1778 dnl -Wbad-function-cast
1779 dnl -Wmissing-declarations
1780 dnl -Wnested-externs
1782 dnl Omit a few (for now):
1786 dnl $1 is an optional list of g++ warning flags that a particular
1787 dnl application might want to use, e.g., "no-unused" for
1790 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1792 AC_DEFUN([CF_GXX_WARNINGS],
1795 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1797 AC_REQUIRE([CF_GXX_VERSION])
1802 cat > conftest.$ac_ext <<EOF
1803 #line __oline__ "configure"
1804 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1807 if test "$INTEL_CPLUSPLUS" = yes
1809 # The "-wdXXX" options suppress warnings:
1810 # remark #1419: external declaration in primary source file
1811 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1812 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1813 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1814 # remark #193: zero used for undefined preprocessing identifier
1815 # remark #593: variable "curs_sb_left_arrow" was set but never used
1816 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1817 # remark #869: parameter "tw" was never referenced
1818 # remark #981: operands are evaluated in unspecified order
1819 # warning #269: invalid format string conversion
1821 AC_CHECKING([for $CC warning options])
1822 cf_save_CXXFLAGS="$CXXFLAGS"
1823 EXTRA_CXXFLAGS="-Wall"
1836 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1837 if AC_TRY_EVAL(ac_compile); then
1838 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1839 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1842 CXXFLAGS="$cf_save_CXXFLAGS"
1844 elif test "$GXX" = yes
1846 AC_CHECKING([for $CXX warning options])
1847 cf_save_CXXFLAGS="$CXXFLAGS"
1848 EXTRA_CXXFLAGS="-W -Wall"
1849 cf_gxx_extra_warnings=""
1850 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1851 case "$GCC_VERSION" in
1855 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1861 Woverloaded-virtual \
1867 Wmissing-prototypes \
1870 Wstrict-prototypes \
1871 Wundef $cf_gxx_extra_warnings $1
1873 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1874 if AC_TRY_EVAL(ac_compile); then
1875 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1876 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1878 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1881 CXXFLAGS="$cf_save_CXXFLAGS"
1886 AC_SUBST(EXTRA_CXXFLAGS)
1888 dnl ---------------------------------------------------------------------------
1889 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1891 dnl Look for an instance of the Berkeley hashed database.
1893 dnl $1 = optional parameter, to specify install-prefix for the database.
1894 AC_DEFUN([CF_HASHED_DB],
1901 if test -d "$1" ; then
1902 CF_ADD_INCDIR($1/include)
1903 CF_ADD_LIBDIR($1/lib)
1907 AC_CHECK_HEADER(db.h,[
1908 CF_HASHED_DB_VERSION
1909 if test "$cf_cv_hashed_db_version" = unknown ; then
1910 AC_MSG_ERROR(Cannot determine version of db)
1913 if test "$cf_cv_hashed_db_libs" = unknown ; then
1914 AC_MSG_ERROR(Cannot determine library for db)
1915 elif test "$cf_cv_hashed_db_libs" != default ; then
1916 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1920 AC_MSG_ERROR(Cannot find db.h)
1923 dnl ---------------------------------------------------------------------------
1924 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1925 dnl -----------------
1926 dnl Given that we have the header and version for hashed database, find the
1927 dnl library information.
1928 AC_DEFUN([CF_HASHED_DB_LIBS],
1930 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1931 cf_cv_hashed_db_libs=unknown
1932 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1934 cf_save_libs="$LIBS"
1935 if test -n "$cf_db_libs"; then
1936 LIBS="-l$cf_db_libs $LIBS"
1938 CF_MSG_LOG(checking for library "$cf_db_libs")
1940 $ac_includes_default
1943 char *path = "/tmp/foo";
1944 #ifdef DB_VERSION_MAJOR
1945 #if DB_VERSION_MAJOR >= 4
1947 db_create(&result, NULL, 0);
1948 result->open(result,
1955 #elif DB_VERSION_MAJOR >= 3
1957 db_create(&result, NULL, 0);
1958 result->open(result,
1964 #elif DB_VERSION_MAJOR >= 2
1973 #endif /* DB_VERSION_MAJOR */
1975 DB *result = dbopen(path,
1981 ${cf_cv_main_return:-return}(result != 0)
1983 if test -n "$cf_db_libs" ; then
1984 cf_cv_hashed_db_libs=$cf_db_libs
1986 cf_cv_hashed_db_libs=default
1988 LIBS="$cf_save_libs"
1991 LIBS="$cf_save_libs"
1995 dnl ---------------------------------------------------------------------------
1996 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
1997 dnl --------------------
1998 dnl Given that we have the header file for hashed database, find the version
2000 AC_DEFUN([CF_HASHED_DB_VERSION],
2002 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2003 cf_cv_hashed_db_version=unknown
2005 for cf_db_version in 1 2 3 4 5
2007 CF_MSG_LOG(checking for db version $cf_db_version)
2009 $ac_includes_default
2012 #ifdef DB_VERSION_MAJOR
2013 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2014 #if $cf_db_version == DB_VERSION_MAJOR
2020 #if $cf_db_version == 1
2021 /* ok: assuming this is DB 1.8.5 */
2027 cf_cv_hashed_db_version=$cf_db_version
2033 dnl ---------------------------------------------------------------------------
2034 dnl CF_HEADER_PATH version: 9 updated: 2008/12/07 19:38:31
2036 dnl Construct a search-list of directories for a nonstandard header-file
2039 dnl $1 = the variable to return as result
2040 dnl $2 = the package name
2041 AC_DEFUN([CF_HEADER_PATH],
2043 cf_header_path_list=""
2044 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2045 for cf_header_path in $CPPFLAGS $CFLAGS
2047 case $cf_header_path in #(vi
2049 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2050 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2051 cf_header_path_list="$cf_header_path_list [$]$1"
2057 CF_SUBDIR_PATH($1,$2,include)
2059 test "$includedir" != NONE && \
2060 test "$includedir" != "/usr/include" && \
2061 test -d "$includedir" && {
2062 test -d $includedir && $1="[$]$1 $includedir"
2063 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2066 test "$oldincludedir" != NONE && \
2067 test "$oldincludedir" != "/usr/include" && \
2068 test -d "$oldincludedir" && {
2069 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2070 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2073 $1="$cf_header_path_list [$]$1"
2075 dnl ---------------------------------------------------------------------------
2076 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2078 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2079 AC_DEFUN([CF_HELP_MESSAGE],
2080 [AC_DIVERT_HELP([$1])dnl
2082 dnl ---------------------------------------------------------------------------
2083 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
2085 dnl Construct the list of include-options according to whether we're building
2086 dnl in the source directory or using '--srcdir=DIR' option. If we're building
2087 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2088 dnl since that usually breaks gcc's shadow-includes.
2089 AC_DEFUN([CF_INCLUDE_DIRS],
2091 CPPFLAGS="$CPPFLAGS -I. -I../include"
2092 if test "$srcdir" != "."; then
2093 CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
2095 if test "$GCC" != yes; then
2096 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2097 elif test "$includedir" != "/usr/include"; then
2098 if test "$includedir" = '${prefix}/include' ; then
2099 if test $prefix != /usr ; then
2100 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2103 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2108 dnl ---------------------------------------------------------------------------
2109 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
2110 dnl -----------------
2111 dnl Check if the given compiler is really the Intel compiler for Linux. It
2112 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2113 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2115 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2116 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2117 dnl the wrappers for gcc and g++ warnings.
2119 dnl $1 = GCC (default) or GXX
2120 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2121 dnl $3 = CFLAGS (default) or CXXFLAGS
2122 AC_DEFUN([CF_INTEL_COMPILER],[
2123 ifelse($2,,INTEL_COMPILER,[$2])=no
2125 if test "$ifelse($1,,[$1],GCC)" = yes ; then
2128 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
2129 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
2130 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
2132 #ifdef __INTEL_COMPILER
2136 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
2137 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2139 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
2140 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
2145 dnl ---------------------------------------------------------------------------
2146 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2148 dnl Check if we have either a function or macro for 'isascii()'.
2149 AC_DEFUN([CF_ISASCII],
2151 AC_MSG_CHECKING(for isascii)
2152 AC_CACHE_VAL(cf_cv_have_isascii,[
2153 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2154 [cf_cv_have_isascii=yes],
2155 [cf_cv_have_isascii=no])
2157 AC_MSG_RESULT($cf_cv_have_isascii)
2158 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2160 dnl ---------------------------------------------------------------------------
2161 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2163 dnl Add checks for large file support.
2164 AC_DEFUN([CF_LARGEFILE],[
2165 ifdef([AC_FUNC_FSEEKO],[
2167 if test "$enable_largefile" != no ; then
2170 # Normally we would collect these definitions in the config.h,
2171 # but (like _XOPEN_SOURCE), some environments rely on having these
2172 # defined before any of the system headers are included. Another
2173 # case comes up with C++, e.g., on AIX the compiler compiles the
2174 # header files by themselves before looking at the body files it is
2175 # told to compile. For ncurses, those header files do not include
2177 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2178 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2179 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2181 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2183 #include <sys/types.h>
2186 /* if transitional largefile support is setup, this is true */
2187 extern struct dirent64 * readdir(DIR *);
2188 struct dirent64 *x = readdir((DIR *)0);
2189 struct dirent *y = readdir((DIR *)0);
2192 [cf_cv_struct_dirent64=yes],
2193 [cf_cv_struct_dirent64=no])
2195 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2199 dnl ---------------------------------------------------------------------------
2200 dnl CF_LDFLAGS_STATIC version: 7 updated: 2009/04/04 18:31:04
2201 dnl -----------------
2202 dnl Check for compiler/linker flags used to temporarily force usage of static
2203 dnl libraries. This depends on the compiler and platform. Use this to help
2204 dnl ensure that the linker picks up a given library based on its position in
2205 dnl the list of linker options and libraries.
2206 AC_DEFUN([CF_LDFLAGS_STATIC],[
2208 if test "$GCC" = yes ; then
2209 case $cf_cv_system_name in #(
2210 OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*) #( vi
2214 *) #( normally, except when broken
2215 LDFLAGS_STATIC=-static
2216 LDFLAGS_SHARED=-dynamic
2220 case $cf_cv_system_name in #(
2221 aix[[456]]*) #( from ld manpage
2222 LDFLAGS_STATIC=-bstatic
2223 LDFLAGS_SHARED=-bdynamic
2225 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2226 # We could also use just "archive" and "shared".
2227 LDFLAGS_STATIC=-Wl,-a,archive_shared
2228 LDFLAGS_SHARED=-Wl,-a,shared_archive
2230 irix*) #( from ld manpage IRIX64
2231 LDFLAGS_STATIC=-Bstatic
2232 LDFLAGS_SHARED=-Bdynamic
2234 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2235 # alternative "-oldstyle_liblookup" (not in cc manpage)
2236 LDFLAGS_STATIC=-noso
2237 LDFLAGS_SHARED=-so_archive
2240 LDFLAGS_STATIC=-Bstatic
2241 LDFLAGS_SHARED=-Bdynamic
2246 AC_SUBST(LDFLAGS_STATIC)
2247 AC_SUBST(LDFLAGS_SHARED)
2249 dnl ---------------------------------------------------------------------------
2250 dnl CF_LIBRARY_PATH version: 8 updated: 2008/12/07 19:38:31
2252 dnl Construct a search-list of directories for a nonstandard library-file
2255 dnl $1 = the variable to return as result
2256 dnl $2 = the package name
2257 AC_DEFUN([CF_LIBRARY_PATH],
2259 cf_library_path_list=""
2260 if test -n "${LDFLAGS}${LIBS}" ; then
2261 for cf_library_path in $LDFLAGS $LIBS
2263 case $cf_library_path in #(vi
2265 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2266 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2267 cf_library_path_list="$cf_library_path_list [$]$1"
2273 CF_SUBDIR_PATH($1,$2,lib)
2275 $1="$cf_library_path_list [$]$1"
2277 dnl ---------------------------------------------------------------------------
2278 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2280 dnl Compute the library-prefix for the given host system
2281 dnl $1 = variable to set
2282 AC_DEFUN([CF_LIB_PREFIX],
2284 case $cf_cv_system_name in #(vi
2291 ifelse($1,,,[$1=$LIB_PREFIX])
2292 AC_SUBST(LIB_PREFIX)
2294 dnl ---------------------------------------------------------------------------
2295 dnl CF_LIB_RULES version: 55 updated: 2008/12/13 16:17:38
2297 dnl Append definitions and rules for the given models to the subdirectory
2298 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2299 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2300 dnl the corresponding makefile to list the models that we'll generate.
2302 dnl For shared libraries, make a list of symbolic links to construct when
2303 dnl generating each library. The convention used for Linux is the simplest
2306 dnl lib<name>.so.<major> ->
2307 dnl lib<name>.so.<maj>.<minor>
2308 AC_DEFUN([CF_LIB_RULES],
2310 CF_LIB_PREFIX(cf_prefix)
2311 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2313 if test $cf_cv_shlib_version = cygdll ; then
2314 TINFO_NAME=$TINFO_ARG_SUFFIX
2318 for cf_dir in $SRC_SUBDIRS
2320 if test ! -d $srcdir/$cf_dir ; then
2322 elif test -f $srcdir/$cf_dir/modules; then
2326 for cf_item in $cf_LIST_MODELS
2328 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2329 if test $cf_item = shared ; then
2330 if test "$cf_cv_do_symlinks" = yes ; then
2331 case "$cf_cv_shlib_version" in #(vi
2333 case "$cf_cv_system_name" in #(vi
2335 case .${LIB_SUFFIX} in
2337 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2338 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2341 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2345 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2349 case "$cf_cv_system_name" in #(vi
2351 case .${LIB_SUFFIX} in
2353 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2354 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2357 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2361 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2366 # cygwin needs import library, and has unique naming convention
2367 # use autodetected ${cf_prefix} for import lib and static lib, but
2368 # use 'cyg' prefix for shared lib.
2369 if test $cf_cv_shlib_version = cygdll ; then
2370 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2371 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2375 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2378 if test $cf_dir = ncurses ; then
2379 cf_subsets="$LIB_SUBSETS"
2380 cf_r_parts="$cf_subsets"
2381 cf_liblist="$LIBS_TO_MAKE"
2383 while test -n "$cf_r_parts"
2385 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2386 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2387 if test "$cf_l_parts" != "$cf_r_parts" ; then
2389 case $cf_l_parts in #(vi
2391 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2394 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2400 if test -n "$cf_item"; then
2401 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2408 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2411 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2412 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2413 $cf_dir/Makefile >$cf_dir/Makefile.out
2414 mv $cf_dir/Makefile.out $cf_dir/Makefile
2416 $AWK -f $srcdir/mk-0th.awk \
2417 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2418 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2420 for cf_subset in $cf_subsets
2423 for cf_item in $cf_LIST_MODELS
2425 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2426 CF_UPPER(cf_ITEM,$cf_item)
2427 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2428 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2430 # Test for case where we build libtinfo with a different name.
2432 if test $cf_dir = ncurses ; then
2435 cf_libname=${cf_libname}$LIB_SUFFIX
2438 cf_libname=$TINFO_LIB_SUFFIX
2441 cf_libname=$TICS_LIB_SUFFIX
2445 cf_libname=${cf_libname}$LIB_SUFFIX
2447 if test -n "${DFT_ARG_SUFFIX}" ; then
2448 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2449 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2452 # These dependencies really are for development, not
2453 # builds, but they are useful in porting, too.
2454 cf_depend="../include/ncurses_cfg.h"
2455 if test "$srcdir" = "."; then
2458 cf_reldir="\${srcdir}"
2461 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2462 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2463 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2464 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2468 old_cf_suffix="$cf_suffix"
2469 if test "$cf_cv_shlib_version_infix" = yes ; then
2470 if test -n "$LIB_SUFFIX" ; then
2473 cf_libname=`echo $cf_libname | sed 's/w$//'`
2474 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2481 $AWK -f $srcdir/mk-1st.awk \
2482 name=${cf_libname}${cf_dir_suffix} \
2483 traces=$LIB_TRACING \
2489 TermlibRoot=$TINFO_NAME \
2490 TermlibSuffix=$TINFO_SUFFIX \
2491 ShlibVer=$cf_cv_shlib_version \
2492 ShlibVerInfix=$cf_cv_shlib_version_infix \
2493 ReLink=${cf_cv_do_relink-no} \
2494 DoLinks=$cf_cv_do_symlinks \
2495 rmSoLocs=$cf_cv_rm_so_locs \
2496 ldconfig="$LDCONFIG" \
2497 overwrite=$WITH_OVERWRITE \
2498 depend="$cf_depend" \
2500 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2502 cf_suffix="$old_cf_suffix"
2504 for cf_subdir2 in $cf_subdirs lib
2506 test $cf_subdir = $cf_subdir2 && break
2508 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2509 $AWK -f $srcdir/mk-2nd.awk \
2511 traces=$LIB_TRACING \
2517 crenames=$cf_cv_prog_CC_c_o \
2518 cxxrenames=$cf_cv_prog_CXX_c_o \
2519 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2520 cf_subdirs="$cf_subdirs $cf_subdir"
2525 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2528 for cf_dir in $SRC_SUBDIRS
2530 if test ! -d $srcdir/$cf_dir ; then
2534 if test -f $cf_dir/Makefile ; then
2537 echo 'libs \' >> Makefile
2538 echo 'install.libs \' >> Makefile
2539 echo 'uninstall.libs ::' >> Makefile
2540 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2545 if test -f $srcdir/$cf_dir/modules; then
2547 if test -f $srcdir/$cf_dir/headers; then
2548 cat >> Makefile <<CF_EOF
2550 uninstall.includes \\
2553 if test "$cf_dir" != "c++" ; then
2554 echo 'lint \' >> Makefile
2556 cat >> Makefile <<CF_EOF
2562 uninstall.$cf_dir ::
2563 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2565 elif test -f $srcdir/$cf_dir/headers; then
2566 cat >> Makefile <<CF_EOF
2572 uninstall.includes ::
2573 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2578 cat >> Makefile <<CF_EOF
2580 install.libs uninstall.libs \\
2581 install.data uninstall.data ::
2582 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2585 if test "x$cf_with_manpages" = xyes; then
2586 cat >> Makefile <<CF_EOF
2590 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2594 cat >> Makefile <<CF_EOF
2597 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2598 rm -f headers.sh headers.sed mk_shared_lib.sh
2599 rm -f edit_man.* man_alias.*
2600 rm -rf \${DIRS_TO_MAKE}
2603 # Special case: tack's manpage lives in its own directory.
2604 if test "x$cf_with_manpages" = xyes; then
2605 if test -d tack ; then
2606 if test -f $srcdir/$tack.h; then
2607 cat >> Makefile <<CF_EOF
2611 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2617 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2618 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2619 dnl anything, and will make it more standardized. It's awkward to decide this
2620 dnl at configuration because of quoting, so we'll simply make all headers
2621 dnl installed via a script that can do the right thing.
2623 rm -f headers.sed headers.sh
2625 dnl ( generating this script makes the makefiles a little tidier :-)
2626 echo creating headers.sh
2627 cat >headers.sh <<CF_EOF
2629 # This shell script is generated by the 'configure' script. It is invoked in a
2630 # subdirectory of the build tree. It generates a sed-script in the parent
2631 # directory that is used to adjust includes for header files that reside in a
2632 # subdirectory of /usr/include, etc.
2634 while test \[$]# != 3
2636 PRG="\$PRG \[$]1"; shift
2641 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2642 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2643 echo installing \$SRC in \$DST
2646 if test $WITH_CURSES_H = yes; then
2647 cat >>headers.sh <<CF_EOF
2650 END=\`basename \$DST\`
2651 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2653 NAME=\`basename \$i\`
2654 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2664 cat >>headers.sh <<CF_EOF
2667 END=\`basename \$DST\`
2668 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2670 NAME=\`basename \$i\`
2671 if test "\$NAME" = "curses.h"
2673 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2676 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2680 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2685 cat >>headers.sh <<CF_EOF
2687 sed -f \$TMPSED \$SRC > \$TMPSRC
2688 NAME=\`basename \$SRC\`
2690 if test $WITH_CURSES_H != yes; then
2691 cat >>headers.sh <<CF_EOF
2692 test "\$NAME" = "curses.h" && NAME=ncurses.h
2695 cat >>headers.sh <<CF_EOF
2696 # Just in case someone gzip'd manpages, remove the conflicting copy.
2697 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2699 eval \$PRG \$TMPSRC \$DST/\$NAME
2700 rm -f \$TMPSRC \$TMPSED
2703 chmod 0755 headers.sh
2705 for cf_dir in $SRC_SUBDIRS
2707 if test ! -d $srcdir/$cf_dir ; then
2711 if test -f $srcdir/$cf_dir/headers; then
2712 $AWK -f $srcdir/mk-hdr.awk \
2713 subset="$LIB_SUBSETS" \
2714 compat="$WITH_CURSES_H" \
2715 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2718 if test -f $srcdir/$cf_dir/modules; then
2719 if test "$cf_dir" != "c++" ; then
2720 cat >>$cf_dir/Makefile <<"CF_EOF"
2721 depend : ${AUTO_SRC}
2722 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2724 # DO NOT DELETE THIS LINE -- make depend depends on it.
2731 dnl ---------------------------------------------------------------------------
2732 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2734 dnl Find the and soname for the given shared library. Set the cache variable
2735 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2736 dnl variable to "unknown".
2740 dnl $3 = library name
2741 AC_DEFUN([CF_LIB_SONAME],
2743 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2745 cf_cv_$3_soname=unknown
2746 if test "$cross_compiling" != yes ; then
2747 cat >conftest.$ac_ext <<CF_EOF
2752 ${cf_cv_main_return:-return}(0);
2755 cf_save_LIBS="$LIBS"
2757 if AC_TRY_EVAL(ac_compile) ; then
2758 if AC_TRY_EVAL(ac_link) ; then
2759 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2760 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2764 LIBS="$cf_save_LIBS"
2768 dnl ---------------------------------------------------------------------------
2769 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
2771 dnl Compute the library file-suffix from the given model name
2773 dnl $2 = variable to set (the nominal library suffix)
2774 dnl $3 = dependency variable to set (actual filename)
2775 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2776 AC_DEFUN([CF_LIB_SUFFIX],
2778 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2797 case $cf_cv_system_name in
2827 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2828 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2830 dnl ---------------------------------------------------------------------------
2831 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2833 dnl Compute the string to append to -library from the given model name
2835 dnl $2 = variable to set
2836 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2837 AC_DEFUN([CF_LIB_TYPE],
2846 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2848 dnl ---------------------------------------------------------------------------
2849 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
2850 dnl ----------------
2851 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2852 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2853 dnl have to provide wrappers for global tables to ensure they're linked
2855 AC_DEFUN([CF_LINK_DATAONLY],
2857 AC_MSG_CHECKING([if data-only library module links])
2858 AC_CACHE_VAL(cf_cv_link_dataonly,[
2860 cat >conftest.$ac_ext <<EOF
2861 #line __oline__ "configure"
2862 int testdata[[3]] = { 123, 456, 789 };
2864 if AC_TRY_EVAL(ac_compile) ; then
2865 mv conftest.o data.o && \
2866 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2868 rm -f conftest.$ac_ext data.o
2869 cat >conftest.$ac_ext <<EOF
2870 #line __oline__ "configure"
2874 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2876 extern int testdata[[3]];
2877 return testdata[[0]] == 123
2878 && testdata[[1]] == 456
2879 && testdata[[2]] == 789;
2883 if AC_TRY_EVAL(ac_compile); then
2884 mv conftest.o func.o && \
2885 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2887 rm -f conftest.$ac_ext func.o
2888 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2890 LIBS="conftest.a $LIBS"
2894 extern int testfunc();
2895 ${cf_cv_main_return:-return} (!testfunc());
2898 [cf_cv_link_dataonly=yes],
2899 [cf_cv_link_dataonly=no],
2900 [cf_cv_link_dataonly=unknown])
2903 AC_MSG_RESULT($cf_cv_link_dataonly)
2905 if test "$cf_cv_link_dataonly" = no ; then
2906 AC_DEFINE(BROKEN_LINKER)
2911 dnl ---------------------------------------------------------------------------
2912 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2914 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2915 dnl A few non-Unix systems implement symlink, but not link.
2916 dnl A few non-systems implement neither (or have nonfunctional versions).
2917 AC_DEFUN([CF_LINK_FUNCS],
2923 if test "$cross_compiling" = yes ; then
2928 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2930 for cf_func in link symlink ; do
2932 #include <sys/types.h>
2933 #include <sys/stat.h>
2934 #ifdef HAVE_UNISTD_H
2940 char *src = "config.log";
2941 char *dst = "conftest.chk";
2946 fail = ($cf_func("config.log", "conftest.chk") < 0)
2947 || (stat(dst, &dst_sb) < 0)
2948 || (dst_sb.st_mtime != src_sb.st_mtime);
2954 ${cf_cv_main_return:-return} (fail);
2957 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2958 eval 'ac_cv_func_'$cf_func'=yes'],[
2959 eval 'ac_cv_func_'$cf_func'=no'],[
2960 eval 'ac_cv_func_'$cf_func'=error'])
2962 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2964 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2965 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2968 dnl ---------------------------------------------------------------------------
2969 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2971 dnl Check if a return from main to the shell actually returns the same exit
2972 dnl code. This is true for almost any POSIX environment.
2974 dnl Some very old environments did not flush stdout, etc., on an exit. That
2975 dnl would be a useful case to test for also.
2976 AC_DEFUN([CF_MAIN_RETURN],
2978 cf_cv_main_return=return
2980 dnl ---------------------------------------------------------------------------
2981 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2983 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2984 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2985 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2986 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2987 AC_DEFUN([CF_MAKEFLAGS],
2989 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2991 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2993 cat >cf_makeflags.tmp <<CF_EOF
2996 @ echo '.$cf_option'
2998 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
2999 case "$cf_result" in
3001 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
3002 case "$cf_result" in
3003 .*CC=*) cf_cv_makeflags=
3005 *) cf_cv_makeflags=$cf_option
3011 *) echo "given option \"$cf_option\", no match \"$cf_result\""
3015 rm -f cf_makeflags.tmp
3018 AC_SUBST(cf_cv_makeflags)
3020 dnl ---------------------------------------------------------------------------
3021 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
3023 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
3024 dnl a monocase filesystem.
3025 AC_DEFUN([CF_MAKE_TAGS],[
3026 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
3027 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
3029 if test "$cf_cv_mixedcase" = yes ; then
3030 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
3035 if test "$MAKE_UPPER_TAGS" = yes ; then
3040 AC_SUBST(MAKE_UPPER_TAGS)
3042 if test "$MAKE_LOWER_TAGS" = yes ; then
3047 AC_SUBST(MAKE_LOWER_TAGS)
3049 dnl ---------------------------------------------------------------------------
3050 dnl CF_MANPAGE_FORMAT version: 8 updated: 2009/01/11 20:30:50
3051 dnl -----------------
3052 dnl Option to allow user to override automatic configuration of manpage format.
3053 dnl There are several special cases:
3055 dnl gzip - man checks for, can display gzip'd files
3056 dnl compress - man checks for, can display compressed files
3057 dnl BSDI - files in the cat-directories are suffixed ".0"
3058 dnl formatted - installer should format (put files in cat-directory)
3059 dnl catonly - installer should only format, e.g., for a turnkey system.
3061 dnl There are other configurations which this macro does not test, e.g., HPUX's
3062 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
3063 dnl convention would not match our use).
3064 AC_DEFUN([CF_MANPAGE_FORMAT],
3066 AC_REQUIRE([CF_PATHSEP])
3067 AC_MSG_CHECKING(format of man-pages)
3069 AC_ARG_WITH(manpage-format,
3070 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
3071 optionally formatted/catonly, e.g., gzip,formatted],
3072 [MANPAGE_FORMAT=$withval],
3073 [MANPAGE_FORMAT=unknown])
3075 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
3076 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
3080 case $MANPAGE_FORMAT in
3082 if test -z "$MANPATH" ; then
3083 MANPATH="/usr/man:/usr/share/man"
3086 # look for the 'date' man-page (it's most likely to be installed!)
3092 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
3093 for cf_dir in $MANPATH; do
3094 test -z "$cf_dir" && cf_dir=/usr/man
3095 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
3097 cf_test=`echo $cf_name | sed -e 's/*//'`
3098 if test "x$cf_test" = "x$cf_name" ; then
3101 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3102 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3103 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3104 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3118 # if we found a match in either man* or cat*, stop looking
3119 if test -n "$MANPAGE_FORMAT" ; then
3121 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3122 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3128 test $cf_found=yes && break
3131 # only check the first directory in $MANPATH where we find manpages
3132 if test -n "$MANPAGE_FORMAT" ; then
3136 # if we did not find the example, just assume it is normal
3137 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3141 for cf_option in $MANPAGE_FORMAT; do
3142 case $cf_option in #(vi
3143 gzip|compress|BSDI|normal|formatted|catonly)
3146 cf_unknown="$cf_unknown $cf_option"
3153 AC_MSG_RESULT($MANPAGE_FORMAT)
3154 if test -n "$cf_unknown" ; then
3155 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3158 dnl ---------------------------------------------------------------------------
3159 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3160 dnl ------------------
3161 dnl The Debian people have their own naming convention for manpages. This
3162 dnl option lets us override the name of the file containing renaming, or
3163 dnl disable it altogether.
3164 AC_DEFUN([CF_MANPAGE_RENAMES],
3166 AC_MSG_CHECKING(for manpage renaming)
3168 AC_ARG_WITH(manpage-renames,
3169 [ --with-manpage-renames specify manpage-renaming],
3170 [MANPAGE_RENAMES=$withval],
3171 [MANPAGE_RENAMES=yes])
3173 case ".$MANPAGE_RENAMES" in #(vi
3177 # Debian 'man' program?
3178 if test -f /etc/debian_version ; then
3179 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3186 if test "$MANPAGE_RENAMES" != no ; then
3187 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3188 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3189 elif test ! -f $MANPAGE_RENAMES ; then
3190 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3193 test ! -d man && mkdir man
3195 # Construct a sed-script to perform renaming within man-pages
3196 if test -n "$MANPAGE_RENAMES" ; then
3197 test ! -d man && mkdir man
3198 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3202 AC_MSG_RESULT($MANPAGE_RENAMES)
3203 AC_SUBST(MANPAGE_RENAMES)
3205 dnl ---------------------------------------------------------------------------
3206 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3207 dnl -------------------
3208 dnl Some people expect each tool to make all aliases for manpages in the
3209 dnl man-directory. This accommodates the older, less-capable implementations
3210 dnl of 'man', and is optional.
3211 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3213 AC_MSG_CHECKING(if manpage aliases will be installed)
3215 AC_ARG_WITH(manpage-aliases,
3216 [ --with-manpage-aliases specify manpage-aliases using .so],
3217 [MANPAGE_ALIASES=$withval],
3218 [MANPAGE_ALIASES=yes])
3220 AC_MSG_RESULT($MANPAGE_ALIASES)
3222 if test "$LN_S" = "ln -s"; then
3229 if test "$MANPAGE_ALIASES" = yes ; then
3230 AC_MSG_CHECKING(if manpage symlinks should be used)
3232 AC_ARG_WITH(manpage-symlinks,
3233 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3234 [MANPAGE_SYMLINKS=$withval],
3235 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3237 if test "$$cf_use_symlinks" = no; then
3238 if test "$MANPAGE_SYMLINKS" = yes ; then
3239 AC_MSG_WARN(cannot make symlinks, will use .so files)
3244 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3248 dnl ---------------------------------------------------------------------------
3249 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3251 dnl This option causes manpages to be run through tbl(1) to generate tables
3253 AC_DEFUN([CF_MANPAGE_TBL],
3255 AC_MSG_CHECKING(for manpage tbl)
3257 AC_ARG_WITH(manpage-tbl,
3258 [ --with-manpage-tbl specify manpage processing with tbl],
3259 [MANPAGE_TBL=$withval],
3262 AC_MSG_RESULT($MANPAGE_TBL)
3264 dnl ---------------------------------------------------------------------------
3265 dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
3267 dnl Try to determine if the man-pages on the system are compressed, and if
3268 dnl so, what format is used. Use this information to construct a script that
3269 dnl will install man-pages.
3270 AC_DEFUN([CF_MAN_PAGES],
3272 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3278 if test "$prefix" = "NONE" ; then
3279 cf_prefix="$ac_default_prefix"
3284 case "$MANPAGE_FORMAT" in # (vi
3299 test ! -d man && mkdir man
3303 case "$MANPAGE_FORMAT" in #(vi
3306 cf_compress=compress
3314 cf_edit_man=./edit_man.sh
3315 cf_man_alias=`pwd`/man_alias.sed
3317 cat >$cf_edit_man <<CF_EOF
3319 # this script is generated by the configure-script CF_MAN_PAGES macro.
3324 NCURSES_MAJOR="$NCURSES_MAJOR"
3325 NCURSES_MINOR="$NCURSES_MINOR"
3326 NCURSES_PATCH="$NCURSES_PATCH"
3328 NCURSES_OSPEED="$NCURSES_OSPEED"
3329 TERMINFO="$TERMINFO"
3331 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3334 INSTALL_DATA="$INSTALL_DATA"
3336 transform="$program_transform_name"
3338 TMP=\${TMPDIR-/tmp}/man\$\$
3339 trap "rm -f \$TMP" 0 1 2 5 15
3351 top_srcdir=\[$]srcdir/..
3354 if test "\$form" = normal ; then
3355 if test "$cf_format" = yes ; then
3356 if test "$cf_inboth" = no ; then
3357 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3361 cf_subdir=\$mandir/man
3362 cf_tables=$MANPAGE_TBL
3364 cf_subdir=\$mandir/cat
3368 # process the list of source-files
3371 *.orig|*.rej) ;; #(vi
3373 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3374 if test \$verb = installing ; then
3375 if test ! -d \$cf_subdir\${section} ; then
3376 \$MKDIRS \$cf_subdir\$section
3380 # replace variables in man page
3381 if test ! -f $cf_man_alias ; then
3382 cat >>$cf_man_alias <<-CF_EOF2
3383 s,@DATADIR@,\$datadir,g
3384 s,@TERMINFO@,\$TERMINFO,g
3385 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3386 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3387 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3388 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3393 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3394 cf_name=`echo $cf_name|sed "$program_transform_name"`
3395 cat >>$cf_edit_man <<-CF_EOF
3396 s,@$cf_NAME@,$cf_name,
3400 cat >>$cf_edit_man <<CF_EOF
3402 echo "...made $cf_man_alias"
3406 cf_source=\`basename \$i\`
3408 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3409 if test ! -f \$inalias ; then
3410 echo .. skipped \$cf_source
3415 if test "$MANPAGE_ALIASES" != no ; then
3416 cat >>$cf_edit_man <<CF_EOF
3417 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3421 if test "$MANPAGE_RENAMES" = no ; then
3422 cat >>$cf_edit_man <<CF_EOF
3423 # perform program transformations for section 1 man pages
3424 if test \$section = 1 ; then
3425 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3427 cf_target=\$cf_subdir\${section}/\$cf_source
3431 cat >>$cf_edit_man <<CF_EOF
3432 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3433 if test -z "\$cf_target" ; then
3434 echo '? missing rename for '\$cf_source
3435 cf_target="\$cf_source"
3437 cf_target="\$cf_subdir\${section}/\${cf_target}"
3442 cat >>$cf_edit_man <<CF_EOF
3443 sed -f $cf_man_alias \\
3446 if test -f $MANPAGE_RENAMES ; then
3447 cat >>$cf_edit_man <<CF_EOF
3448 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3451 cat >>$cf_edit_man <<CF_EOF
3456 cat >>$cf_edit_man <<CF_EOF
3457 if test \$cf_tables = yes ; then
3458 tbl \$TMP >\$TMP.out
3463 if test $with_curses_h != yes ; then
3464 cat >>$cf_edit_man <<CF_EOF
3465 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3470 cat >>$cf_edit_man <<CF_EOF
3471 if test \$form = format ; then
3472 nroff -man \$TMP >\$TMP.out
3477 if test -n "$cf_compress" ; then
3478 cat >>$cf_edit_man <<CF_EOF
3479 if test \$verb = installing ; then
3480 if ( $cf_compress -f \$TMP )
3482 mv \$TMP.$cf_so_strip \$TMP
3485 cf_target="\$cf_target.$cf_so_strip"
3489 case "$MANPAGE_FORMAT" in #(vi
3491 cat >>$cf_edit_man <<CF_EOF
3492 if test \$form = format ; then
3493 # BSDI installs only .0 suffixes in the cat directories
3494 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3500 cat >>$cf_edit_man <<CF_EOF
3501 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3502 if test \$verb = installing ; then
3503 echo \$verb \$cf_target
3504 \$INSTALL_DATA \$TMP \$cf_target
3505 test -d \$cf_subdir\${section} &&
3506 test -n "\$aliases" && (
3507 cd \$cf_subdir\${section} && (
3508 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3509 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3510 cf_target=\`basename \$cf_target\`
3511 for cf_alias in \$aliases
3513 if test \$section = 1 ; then
3514 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3517 if test "$MANPAGE_SYMLINKS" = yes ; then
3518 if test -f \$cf_alias\${suffix} ; then
3519 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3524 echo .. \$verb alias \$cf_alias\${suffix}
3525 rm -f \$cf_alias\${suffix}
3526 $LN_S \$cf_target \$cf_alias\${suffix}
3527 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3528 echo ".so \$cf_source" >\$TMP
3530 if test -n "$cf_compress" ; then
3531 cat >>$cf_edit_man <<CF_EOF
3532 if test -n "$cf_so_strip" ; then
3533 $cf_compress -f \$TMP
3534 mv \$TMP.$cf_so_strip \$TMP
3538 cat >>$cf_edit_man <<CF_EOF
3539 echo .. \$verb alias \$cf_alias\${suffix}
3540 rm -f \$cf_alias\${suffix}
3541 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3546 elif test \$verb = removing ; then
3547 test -f \$cf_target && (
3548 echo \$verb \$cf_target
3551 test -d \$cf_subdir\${section} &&
3552 test -n "\$aliases" && (
3553 cd \$cf_subdir\${section} && (
3554 for cf_alias in \$aliases
3556 if test \$section = 1 ; then
3557 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3560 echo .. \$verb alias \$cf_alias\${suffix}
3561 rm -f \$cf_alias\${suffix}
3573 if test $cf_inboth = yes ; then
3574 if test \$form != format ; then
3575 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3581 chmod 755 $cf_edit_man
3584 dnl ---------------------------------------------------------------------------
3585 dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3587 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3588 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3589 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3590 AC_DEFUN([CF_MATH_LIB],
3592 AC_CACHE_CHECK(if -lm needed for math functions,
3598 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3599 [cf_cv_need_libm=no],
3600 [cf_cv_need_libm=yes])])
3601 if test "$cf_cv_need_libm" = yes
3608 dnl ---------------------------------------------------------------------------
3609 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3610 dnl ----------------------
3611 dnl Check if the file-system supports mixed-case filenames. If we're able to
3612 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3613 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3615 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3616 if test "$cross_compiling" = yes ; then
3617 case $target_alias in #(vi
3618 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3626 rm -f conftest CONFTEST
3628 if test -f CONFTEST ; then
3633 rm -f conftest CONFTEST
3636 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3638 dnl ---------------------------------------------------------------------------
3639 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3641 dnl Check for a working mkstemp. This creates two files, checks that they are
3642 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3643 AC_DEFUN([CF_MKSTEMP],[
3644 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3647 #include <sys/types.h>
3651 #include <sys/stat.h>
3654 char *tmpl = "conftestXXXXXX";
3662 for (n = 0; n < 2; ++n) {
3663 strcpy(name[n], tmpl);
3664 if ((fd = mkstemp(name[n])) >= 0) {
3665 if (!strcmp(name[n], tmpl)
3666 || stat(name[n], &sb) != 0
3667 || (sb.st_mode & S_IFMT) != S_IFREG
3668 || (sb.st_mode & 077) != 0) {
3675 && !strcmp(name[0], name[1]))
3677 ${cf_cv_main_return:-return}(result);
3679 ],[cf_cv_func_mkstemp=yes
3680 ],[cf_cv_func_mkstemp=no
3681 ],[AC_CHECK_FUNC(mkstemp)
3684 if test "$cf_cv_func_mkstemp" = yes ; then
3685 AC_DEFINE(HAVE_MKSTEMP)
3688 dnl ---------------------------------------------------------------------------
3689 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3691 dnl Write a debug message to config.log, along with the line number in the
3692 dnl configure script.
3693 AC_DEFUN([CF_MSG_LOG],[
3694 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3696 dnl ---------------------------------------------------------------------------
3697 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3698 dnl ----------------
3699 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3700 dnl warn about this.
3701 AC_DEFUN([CF_NCURSES_ABI_6],[
3702 if test "${with_abi_version+set}" != set; then
3703 case $cf_cv_rel_version in
3705 cf_cv_rel_version=6.0
3707 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3712 dnl ---------------------------------------------------------------------------
3713 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3714 dnl ------------------
3715 dnl see CF_WITH_NO_LEAKS
3716 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3717 AC_MSG_CHECKING(if you want to use $1 for testing)
3720 [AC_DEFINE($3)ifelse([$4],,[
3723 : ${with_cflags:=-g}
3724 : ${with_no_leaks:=yes}
3727 AC_MSG_RESULT(${with_$1:-no})
3729 case .$with_cflags in #(vi
3731 case .$CFLAGS in #(vi
3741 dnl ---------------------------------------------------------------------------
3742 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3743 dnl ----------------
3744 dnl Check if the given variable is a number. If not, report an error.
3745 dnl $1 is the variable
3746 dnl $2 is the message
3747 AC_DEFUN([CF_NUMBER_SYNTAX],[
3748 if test -n "$1" ; then
3753 AC_MSG_ERROR($2 is not a number: $1)
3757 AC_MSG_ERROR($2 value is empty)
3760 dnl ---------------------------------------------------------------------------
3761 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3763 dnl Compute the object-directory name from the given model name
3764 AC_DEFUN([CF_OBJ_SUBDIR],
3767 libtool) $2='obj_lo' ;;
3768 normal) $2='objects' ;;
3769 debug) $2='obj_g' ;;
3770 profile) $2='obj_p' ;;
3772 case $cf_cv_system_name in #(vi
3780 dnl ---------------------------------------------------------------------------
3781 dnl CF_PATHSEP version: 4 updated: 2009/01/11 20:30:23
3783 dnl Provide a value for the $PATH and similar separator
3784 AC_DEFUN([CF_PATHSEP],
3786 case $cf_cv_system_name in
3787 os2*) PATH_SEPARATOR=';' ;;
3788 *) PATH_SEPARATOR=':' ;;
3790 ifelse($1,,,[$1=$PATH_SEPARATOR])
3791 AC_SUBST(PATH_SEPARATOR)
3793 dnl ---------------------------------------------------------------------------
3794 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3796 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3797 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3798 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3799 dnl delayed evaluation of those symbols.
3800 AC_DEFUN([CF_PATH_SYNTAX],[
3801 if test "x$prefix" != xNONE; then
3802 cf_path_syntax="$prefix"
3804 cf_path_syntax="$ac_default_prefix"
3807 case ".[$]$1" in #(vi
3808 .\[$]\(*\)*|.\'*\'*) #(vi
3812 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3814 .\[$]{*prefix}*) #(vi
3816 case ".[$]$1" in #(vi
3818 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3823 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3826 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3830 dnl ---------------------------------------------------------------------------
3831 dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
3833 dnl Check for the package-config program, unless disabled by command-line.
3834 AC_DEFUN([CF_PKG_CONFIG],
3836 AC_MSG_CHECKING(if you want to use pkg-config)
3837 AC_ARG_WITH(pkg-config,
3838 [ --with-pkg-config{=path} enable/disable use of pkg-config],
3839 [cf_pkg_config=$withval],
3840 [cf_pkg_config=yes])
3841 AC_MSG_RESULT($cf_pkg_config)
3843 case $cf_pkg_config in #(vi
3848 AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
3855 test -z "$PKG_CONFIG" && PKG_CONFIG=none
3856 if test "$PKG_CONFIG" != none ; then
3857 CF_PATH_SYNTAX(PKG_CONFIG)
3860 AC_SUBST(PKG_CONFIG)
3862 dnl ---------------------------------------------------------------------------
3863 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3864 dnl -----------------
3865 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3867 dnl POSIX.1-1990 _POSIX_SOURCE
3868 dnl POSIX.1-1990 and _POSIX_SOURCE and
3869 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3871 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3872 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3873 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3876 dnl $1 is the nominal value for _POSIX_C_SOURCE
3877 AC_DEFUN([CF_POSIX_C_SOURCE],
3879 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3881 cf_save_CFLAGS="$CFLAGS"
3882 cf_save_CPPFLAGS="$CPPFLAGS"
3884 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3885 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3887 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3888 CF_MSG_LOG(if the symbol is already defined go no further)
3889 AC_TRY_COMPILE([#include <sys/types.h>],[
3890 #ifndef _POSIX_C_SOURCE
3893 [cf_cv_posix_c_source=no],
3894 [cf_want_posix_source=no
3895 case .$cf_POSIX_C_SOURCE in #(vi
3897 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3900 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3901 cf_want_posix_source=yes
3904 cf_want_posix_source=yes
3907 if test "$cf_want_posix_source" = yes ; then
3908 AC_TRY_COMPILE([#include <sys/types.h>],[
3909 #ifdef _POSIX_SOURCE
3912 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3914 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3915 CFLAGS="$cf_trim_CFLAGS"
3916 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3917 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3918 AC_TRY_COMPILE([#include <sys/types.h>],[
3919 #ifndef _POSIX_C_SOURCE
3922 [cf_cv_posix_c_source=no])
3923 CFLAGS="$cf_save_CFLAGS"
3924 CPPFLAGS="$cf_save_CPPFLAGS"
3928 if test "$cf_cv_posix_c_source" != no ; then
3929 CFLAGS="$cf_trim_CFLAGS"
3930 CPPFLAGS="$cf_trim_CPPFLAGS"
3931 if test "$cf_cv_cc_u_d_options" = yes ; then
3932 cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3933 sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
3934 CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3936 CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3940 dnl ---------------------------------------------------------------------------
3941 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3943 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3945 dnl $1 = symbol to test
3946 dnl $2 = value (if any) to use for a predefinition
3947 AC_DEFUN([CF_PREDEFINE],
3949 AC_MSG_CHECKING(if we must define $1)
3950 AC_TRY_COMPILE([#include <sys/types.h>
3954 #endif],[cf_result=no],[cf_result=yes])
3955 AC_MSG_RESULT($cf_result)
3957 if test "$cf_result" = yes ; then
3958 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3959 elif test "x$2" != "x" ; then
3960 AC_MSG_CHECKING(checking for compatible value versus $2)
3961 AC_TRY_COMPILE([#include <sys/types.h>
3965 #endif],[cf_result=yes],[cf_result=no])
3966 AC_MSG_RESULT($cf_result)
3967 if test "$cf_result" = no ; then
3968 # perhaps we can override it - try...
3969 CPPFLAGS="$CPPFLAGS -D$1=$2"
3973 dnl ---------------------------------------------------------------------------
3974 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3976 dnl Append definitions and rules for the given programs to the subdirectory
3977 dnl Makefiles, and the recursion rule for the top-level Makefile.
3980 dnl $1 = script to run
3981 dnl $2 = list of subdirectories
3985 AC_DEFUN([CF_PRG_RULES],
3989 if test ! -d $srcdir/$cf_dir; then
3991 elif test -f $srcdir/$cf_dir/programs; then
3992 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3997 dnl ---------------------------------------------------------------------------
3998 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4000 dnl Check for archiver "ar".
4001 AC_DEFUN([CF_PROG_AR],[
4002 AC_CHECK_TOOL(AR, ar, ar)
4004 dnl ---------------------------------------------------------------------------
4005 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
4007 dnl Check for awk, ensure that the check found something.
4008 AC_DEFUN([CF_PROG_AWK],
4011 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
4013 dnl ---------------------------------------------------------------------------
4014 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
4016 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
4017 dnl the output file can be renamed, and allows for a shell variable that can
4018 dnl be used later. The parameter is either CC or CXX. The result is the
4020 dnl $cf_cv_prog_CC_c_o
4021 dnl $cf_cv_prog_CXX_c_o
4022 AC_DEFUN([CF_PROG_CC_C_O],
4023 [AC_REQUIRE([AC_PROG_CC])dnl
4024 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
4025 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
4027 cat > conftest.$ac_ext <<CF_EOF
4031 ${cf_cv_main_return:-return}(0);
4034 # We do the test twice because some compilers refuse to overwrite an
4035 # existing .o file with -o, though they will create one.
4036 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
4037 if AC_TRY_EVAL(ac_try) &&
4038 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
4040 eval cf_cv_prog_$1_c_o=yes
4042 eval cf_cv_prog_$1_c_o=no
4046 if test $cf_cv_prog_$1_c_o = yes; then
4047 AC_MSG_RESULT([yes])
4052 dnl ---------------------------------------------------------------------------
4053 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
4055 dnl Check if C (preprocessor) -U and -D options are processed in the order
4056 dnl given rather than by type of option. Some compilers insist on apply all
4057 dnl of the -U options after all of the -D options. Others allow mixing them,
4058 dnl and may predefine symbols that conflict with those we define.
4059 AC_DEFUN([CF_PROG_CC_U_D],
4061 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
4062 cf_save_CPPFLAGS="$CPPFLAGS"
4063 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
4066 make an undefined-error
4069 make a defined-error
4072 cf_cv_cc_u_d_options=yes],[
4073 cf_cv_cc_u_d_options=no])
4074 CPPFLAGS="$cf_save_CPPFLAGS"
4077 dnl ---------------------------------------------------------------------------
4078 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4080 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4081 dnl This macro adds a check to ensure the script found something.
4082 AC_DEFUN([CF_PROG_EGREP],
4083 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4084 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4085 then ac_cv_prog_egrep='grep -E'
4086 else ac_cv_prog_egrep='egrep'
4088 EGREP=$ac_cv_prog_egrep
4090 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4092 dnl ---------------------------------------------------------------------------
4093 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4095 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4096 AC_DEFUN([CF_PROG_EXT],
4098 AC_REQUIRE([CF_CHECK_CACHE])
4099 case $cf_cv_system_name in
4101 CFLAGS="$CFLAGS -Zmt"
4102 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4103 CXXFLAGS="$CXXFLAGS -Zmt"
4104 # autoconf's macro sets -Zexe and suffix both, which conflict:w
4105 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4115 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4117 dnl ---------------------------------------------------------------------------
4118 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4120 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
4121 dnl misc/tabset install won't work properly. Usually this happens only when
4122 dnl using the fallback mkinstalldirs script
4123 AC_DEFUN([CF_PROG_INSTALL],
4129 CF_DIRNAME(cf_dir,$INSTALL)
4130 test -z "$cf_dir" && cf_dir=.
4131 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4135 dnl ---------------------------------------------------------------------------
4136 dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
4137 dnl ----------------
4138 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4139 dnl and then used in the install.
4140 AC_DEFUN([CF_PROG_LDCONFIG],[
4141 if test "$cross_compiling" = yes ; then
4144 case "$cf_cv_system_name" in #(vi
4145 dragonfly*|freebsd*) #(vi
4146 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4148 *) LDPATH=$PATH:/sbin:/usr/sbin
4149 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4155 dnl ---------------------------------------------------------------------------
4156 dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
4158 AC_DEFUN([CF_PROG_LINT],
4160 AC_CHECK_PROGS(LINT, tdlint lint alint)
4163 dnl ---------------------------------------------------------------------------
4164 dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
4166 dnl Attempt to determine if we've got one of the flavors of regular-expression
4167 dnl code that we can support.
4168 AC_DEFUN([CF_REGEX],
4170 AC_MSG_CHECKING([for regular-expression headers])
4171 AC_CACHE_VAL(cf_cv_regex,[
4172 AC_TRY_LINK([#include <sys/types.h>
4173 #include <regex.h>],[
4175 int x = regcomp(p, "", 0);
4176 int y = regexec(p, "", 0, 0, 0);
4178 ],[cf_cv_regex="regex.h"],[
4179 AC_TRY_LINK([#include <regexp.h>],[
4180 char *p = compile("", "", "", 0);
4181 int x = step("", "");
4182 ],[cf_cv_regex="regexp.h"],[
4183 cf_save_LIBS="$LIBS"
4185 AC_TRY_LINK([#include <regexpr.h>],[
4186 char *p = compile("", "", "");
4187 int x = step("", "");
4188 ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
4190 AC_MSG_RESULT($cf_cv_regex)
4191 case $cf_cv_regex in
4192 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
4193 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
4194 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4197 dnl ---------------------------------------------------------------------------
4198 dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
4199 dnl ----------------
4200 dnl Remove all -U and -D options that refer to the given symbol from a list
4201 dnl of C compiler options. This works around the problem that not all
4202 dnl compilers process -U and -D options from left-to-right, so a -U option
4203 dnl cannot be used to cancel the effect of a preceding -D option.
4205 dnl $1 = target (which could be the same as the source variable)
4206 dnl $2 = source (including '$')
4207 dnl $3 = symbol to remove
4208 define([CF_REMOVE_DEFINE],
4210 # remove $3 symbol from $2
4212 sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
4213 -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
4215 dnl ---------------------------------------------------------------------------
4216 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4218 dnl Remove the given library from the symbol
4220 dnl $1 = target (which could be the same as the source variable)
4221 dnl $2 = source (including '$')
4222 dnl $3 = library to remove
4223 define([CF_REMOVE_LIB],
4225 # remove $3 library from $2
4226 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4228 dnl ---------------------------------------------------------------------------
4229 dnl CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
4231 AC_DEFUN([CF_RPATH_HACK],
4233 AC_REQUIRE([CF_SHARED_OPTS])
4234 AC_MSG_CHECKING(for updated LDFLAGS)
4235 if test -n "$LDFLAGS" ; then
4236 AC_MSG_RESULT(maybe)
4237 CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
4238 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4239 case "$EXTRA_LDFLAGS" in #(vi
4241 cf_rpath_hack="-Wl,-rpath,"
4253 if test -n "$cf_rpath_hack" ; then
4255 for cf_rpath_src in $LDFLAGS
4257 CF_VERBOSE(Filtering $cf_rpath_src)
4258 case $cf_rpath_src in #(vi
4260 if test "$cf_rpath_hack" = "-R " ; then
4261 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4263 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
4265 CF_VERBOSE(...Filter $cf_rpath_tmp)
4266 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4269 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4271 LDFLAGS=$cf_rpath_dst
4272 CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
4273 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4279 dnl ---------------------------------------------------------------------------
4280 dnl CF_SHARED_OPTS version: 57 updated: 2009/01/17 16:10:05
4283 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4286 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4287 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4288 dnl We avoid compiling-in a ../lib path for the shared library since that can
4289 dnl lead to unexpected results at runtime.
4290 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4291 dnl are compiled in ../../lib
4293 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4294 dnl to install symbolic links to the rel/abi versions of shared libraries.
4296 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4297 dnl version when making symbolic links.
4299 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4300 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4301 dnl (ex: libncurses.so.<ver>).
4303 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4304 AC_DEFUN([CF_SHARED_OPTS],
4306 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4311 INSTALL_LIB="-m 644"
4313 cf_cv_do_symlinks=no
4315 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4316 AC_ARG_WITH(shlib-version,
4317 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4318 [test -z "$withval" && withval=auto
4319 case $withval in #(vi
4321 cf_cv_shlib_version=auto
4323 rel|abi|auto|no) #(vi
4324 cf_cv_shlib_version=$withval
4327 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4330 ],[cf_cv_shlib_version=auto])
4331 AC_MSG_RESULT($cf_cv_shlib_version)
4335 # Some less-capable ports of gcc support only -fpic
4337 if test "$GCC" = yes
4339 AC_MSG_CHECKING(which $CC option to use)
4340 cf_save_CFLAGS="$CFLAGS"
4341 for CC_SHARED_OPTS in -fPIC -fpic ''
4343 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4344 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4346 AC_MSG_RESULT($CC_SHARED_OPTS)
4347 CFLAGS="$cf_save_CFLAGS"
4350 cf_cv_shlib_version_infix=no
4352 case $cf_cv_system_name in
4354 if test "$GCC" = yes; then
4356 MK_SHARED_LIB="$(CC) -shared"
4360 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4364 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4365 cf_cv_shlib_version=cygdll
4366 cf_cv_shlib_version_infix=cygdll
4367 cat >mk_shared_lib.sh <<-CF_EOF
4370 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4373 Linking shared library
4374 ** SHARED_LIB \[$]SHARED_LIB
4375 ** IMPORT_LIB \[$]IMPORT_LIB
4377 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4379 chmod +x mk_shared_lib.sh
4382 EXTRA_CFLAGS="-no-cpp-precomp"
4383 CC_SHARED_OPTS="-dynamic"
4384 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4385 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4386 cf_cv_shlib_version_infix=yes
4387 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4388 cf_save_LDFLAGS=$LDFLAGS
4389 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4390 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4391 LDFLAGS=$cf_save_LDFLAGS])
4392 if test $cf_cv_ldflags_search_paths_first = yes; then
4393 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4397 # (tested with gcc 2.7.2 -- I don't have c89)
4398 if test "$GCC" = yes; then
4399 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4402 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4404 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4405 # HP-UX shared libraries must be executable, and should be
4406 # readonly to exploit a quirk in the memory manager.
4407 INSTALL_LIB="-m 555"
4410 if test "$cf_cv_ld_rpath" = yes ; then
4411 if test "$GCC" = yes; then
4412 LD_RPATH_OPT="-Wl,-rpath,"
4413 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4415 LD_RPATH_OPT="-rpath "
4416 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4419 # tested with IRIX 5.2 and 'cc'.
4420 if test "$GCC" != yes; then
4421 CC_SHARED_OPTS='-KPIC'
4422 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4424 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4426 cf_cv_rm_so_locs=yes
4428 linux*|gnu*|k*bsd*-gnu)
4429 if test "$DFT_LWR_MODEL" = "shared" ; then
4430 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4431 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4433 if test "$cf_cv_ld_rpath" = yes ; then
4434 LD_RPATH_OPT="-Wl,-rpath,"
4435 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4438 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4441 if test "$DFT_LWR_MODEL" = "shared" ; then
4442 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4443 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4445 if test "$cf_cv_ld_rpath" = yes ; then
4446 LD_RPATH_OPT="-Wl,-rpath,"
4447 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4449 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4451 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4453 nto-qnx*|openbsd*|freebsd[[12]].*)
4454 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4455 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4456 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4459 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4460 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4461 LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4462 LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4463 LD_RPATH_OPT="-rpath "
4464 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4467 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'