1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a *
5 dnl copy of this software and associated documentation files (the *
6 dnl "Software"), to deal in the Software without restriction, including *
7 dnl without limitation the rights to use, copy, modify, merge, publish, *
8 dnl distribute, distribute with modifications, sublicense, and/or sell *
9 dnl copies of the Software, and to permit persons to whom the Software is *
10 dnl furnished to do so, subject to the following conditions: *
12 dnl The above copyright notice and this permission notice shall be included *
13 dnl in all copies or substantial portions of the Software. *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23 dnl Except as contained in this notice, the name(s) of the above copyright *
24 dnl holders shall not be used in advertising or otherwise to promote the *
25 dnl sale, use or other dealings in this Software without prior written *
27 dnl***************************************************************************
29 dnl Author: Thomas E. Dickey 1995-on
31 dnl $Id: aclocal.m4,v 1.532 2010/06/05 21:11:54 tom Exp $
32 dnl Macros used in NCURSES auto-configuration script.
34 dnl These macros are maintained separately from NCURSES. The copyright on
35 dnl this file applies to the aggregation of macros and does not affect use of
36 dnl these macros in other applications.
38 dnl See http://invisible-island.net/autoconf/ for additional information.
40 dnl ---------------------------------------------------------------------------
41 dnl ---------------------------------------------------------------------------
42 dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
43 dnl -------------------
44 dnl Inserted as requested by gettext 0.10.40
45 dnl File from /usr/share/aclocal
47 dnl ====================
50 dnl From Bruno Haible.
51 AC_DEFUN([AM_LANGINFO_CODESET],
53 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
54 [AC_TRY_LINK([#include <langinfo.h>],
55 [char* cs = nl_langinfo(CODESET);],
56 am_cv_langinfo_codeset=yes,
57 am_cv_langinfo_codeset=no)
59 if test $am_cv_langinfo_codeset = yes; then
60 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
61 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
64 dnl ---------------------------------------------------------------------------
65 dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
66 dnl -------------------
67 dnl Construct the list of include-options for the C programs in the Ada95
69 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
71 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
72 if test "$srcdir" != "."; then
73 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
75 if test "$GCC" != yes; then
76 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
77 elif test "$includedir" != "/usr/include"; then
78 if test "$includedir" = '${prefix}/include' ; then
79 if test $prefix != /usr ; then
80 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
83 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
88 dnl ---------------------------------------------------------------------------
89 dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
91 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
92 dnl The second parameter if given makes this macro verbose.
94 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
95 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
96 dnl confused by the quotes (which require backslashes to keep them usable).
97 AC_DEFUN([CF_ADD_CFLAGS],
102 cf_new_extra_cppflags=
104 for cf_add_cflags in $1
106 case $cf_fix_cppflags in
108 case $cf_add_cflags in #(vi
109 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
110 case $cf_add_cflags in
112 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
114 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
115 && test -z "${cf_tst_cflags}" \
116 && cf_fix_cppflags=yes
118 if test $cf_fix_cppflags = yes ; then
119 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
121 elif test "${cf_tst_cflags}" = "\"'" ; then
122 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
128 *$cf_add_cflags) #(vi
131 case $cf_add_cflags in #(vi
133 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
134 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
137 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
142 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
147 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
149 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
151 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
152 && test -z "${cf_tst_cflags}" \
153 && cf_fix_cppflags=no
158 if test -n "$cf_new_cflags" ; then
159 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
160 CFLAGS="$CFLAGS $cf_new_cflags"
163 if test -n "$cf_new_cppflags" ; then
164 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
165 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
168 if test -n "$cf_new_extra_cppflags" ; then
169 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
170 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
173 AC_SUBST(EXTRA_CPPFLAGS)
176 dnl ---------------------------------------------------------------------------
177 dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
179 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
180 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
181 dnl but old versions (and some misinstalled ones) need that. To make things
182 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
183 dnl the include-path).
184 AC_DEFUN([CF_ADD_INCDIR],
186 if test -n "$1" ; then
187 for cf_add_incdir in $1
189 while test $cf_add_incdir != /usr/include
191 if test -d $cf_add_incdir
194 if test -n "$CFLAGS$CPPFLAGS" ; then
195 # a loop is needed to ensure we can add subdirs of existing dirs
196 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
197 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
198 cf_have_incdir=yes; break
203 if test "$cf_have_incdir" = no ; then
204 if test "$cf_add_incdir" = /usr/local/include ; then
207 cf_save_CPPFLAGS=$CPPFLAGS
208 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
209 AC_TRY_COMPILE([#include <stdio.h>],
212 [cf_have_incdir=yes])
213 CPPFLAGS=$cf_save_CPPFLAGS
218 if test "$cf_have_incdir" = no ; then
219 CF_VERBOSE(adding $cf_add_incdir to include-path)
220 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
222 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
223 test "$cf_top_incdir" = "$cf_add_incdir" && break
224 cf_add_incdir="$cf_top_incdir"
233 dnl ---------------------------------------------------------------------------
234 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
236 dnl Add a library, used to enforce consistency.
238 dnl $1 = library to add, without the "-l"
239 dnl $2 = variable to update (default $LIBS)
240 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
241 dnl ---------------------------------------------------------------------------
242 dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
244 dnl Adds to the library-path
246 dnl Some machines have trouble with multiple -L options.
248 dnl $1 is the (list of) directory(s) to add
249 dnl $2 is the optional name of the variable to update (default LDFLAGS)
251 AC_DEFUN([CF_ADD_LIBDIR],
253 if test -n "$1" ; then
254 for cf_add_libdir in $1
256 if test $cf_add_libdir = /usr/lib ; then
258 elif test -d $cf_add_libdir
261 if test -n "$LDFLAGS$LIBS" ; then
262 # a loop is needed to ensure we can add subdirs of existing dirs
263 for cf_test_libdir in $LDFLAGS $LIBS ; do
264 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
265 cf_have_libdir=yes; break
269 if test "$cf_have_libdir" = no ; then
270 CF_VERBOSE(adding $cf_add_libdir to library-path)
271 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
277 dnl ---------------------------------------------------------------------------
278 dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
280 dnl Add one or more libraries, used to enforce consistency.
282 dnl $1 = libraries to add, with the "-l", etc.
283 dnl $2 = variable to update (default $LIBS)
284 AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
285 dnl ---------------------------------------------------------------------------
286 dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
287 dnl ------------------
288 dnl Append to a search-list for a nonstandard header/lib-file
289 dnl $1 = the variable to return as result
290 dnl $2 = the package name
291 dnl $3 = the subdirectory, e.g., bin, include or lib
292 dnl $4 = the directory under which we will test for subdirectories
293 dnl $5 = a directory that we do not want $4 to match
294 AC_DEFUN([CF_ADD_SUBDIR_PATH],
296 test "$4" != "$5" && \
298 ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
299 test -n "$verbose" && echo " ... testing for $3-directories under $4"
300 test -d $4/$3 && $1="[$]$1 $4/$3"
301 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
302 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
303 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
304 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
307 dnl ---------------------------------------------------------------------------
308 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
310 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
311 dnl in the sharutils 4.2 distribution.
312 AC_DEFUN([CF_ANSI_CC_CHECK],
314 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
316 cf_save_CFLAGS="$CFLAGS"
317 cf_save_CPPFLAGS="$CPPFLAGS"
318 # Don't try gcc -ansi; that turns off useful extensions and
319 # breaks some systems' header files.
321 # Ultrix and OSF/1 -std1
322 # HP-UX -Aa -D_HPUX_SOURCE
324 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
325 for cf_arg in "-DCC_HAS_PROTOS" \
330 "-Aa -D_HPUX_SOURCE" \
333 CF_ADD_CFLAGS($cf_arg)
336 #ifndef CC_HAS_PROTOS
337 #if !defined(__STDC__) || (__STDC__ != 1)
342 int test (int i, double x);
343 struct s1 {int (*f) (int a);};
344 struct s2 {int (*f) (double a);};],
345 [cf_cv_ansi_cc="$cf_arg"; break])
347 CFLAGS="$cf_save_CFLAGS"
348 CPPFLAGS="$cf_save_CPPFLAGS"
351 if test "$cf_cv_ansi_cc" != "no"; then
352 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
353 CF_ADD_CFLAGS($cf_cv_ansi_cc)
355 AC_DEFINE(CC_HAS_PROTOS)
359 dnl ---------------------------------------------------------------------------
360 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
362 dnl For programs that must use an ANSI compiler, obtain compiler options that
363 dnl will make it recognize prototypes. We'll do preprocessor checks in other
364 dnl macros, since tools such as unproto can fake prototypes, but only part of
365 dnl the preprocessor.
366 AC_DEFUN([CF_ANSI_CC_REQD],
367 [AC_REQUIRE([CF_ANSI_CC_CHECK])
368 if test "$cf_cv_ansi_cc" = "no"; then
370 [Your compiler does not appear to recognize prototypes.
371 You have the following choices:
372 a. adjust your compiler options
373 b. get an up-to-date compiler
374 c. use a wrapper such as unproto])
377 dnl ---------------------------------------------------------------------------
378 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
380 dnl Allow user to disable a normally-on option.
381 AC_DEFUN([CF_ARG_DISABLE],
382 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
383 dnl ---------------------------------------------------------------------------
384 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
386 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
392 dnl $3 = action to perform if option is not default
393 dnl $4 = action if perform if option is default
394 dnl $5 = default option value (either 'yes' or 'no')
395 AC_DEFUN([CF_ARG_OPTION],
396 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
397 if test "$enableval" != "$5" ; then
399 ,[ $3]) ifelse([$4],,,[
402 fi],[enableval=$5 ifelse([$4],,,[
406 dnl ---------------------------------------------------------------------------
407 dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
409 dnl Check for suitable "ar" (archiver) options for updating an archive.
410 AC_DEFUN([CF_AR_FLAGS],[
411 AC_REQUIRE([CF_PROG_AR])
413 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
414 cf_cv_ar_flags=unknown
415 for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
418 # check if $ARFLAGS already contains this choice
419 if test "x$ARFLAGS" != "x" ; then
420 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
421 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
427 rm -f conftest.$ac_cv_objext
430 cat >conftest.$ac_ext <<EOF
431 #line __oline__ "configure"
432 int testdata[[3]] = { 123, 456, 789 };
434 if AC_TRY_EVAL(ac_compile) ; then
435 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
436 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
437 if test -f conftest.a ; then
438 cf_cv_ar_flags=$cf_ar_flags
442 CF_VERBOSE(cannot compile test-program)
446 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
449 if test -n "$ARFLAGS" ; then
450 if test -n "$cf_cv_ar_flags" ; then
451 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
454 ARFLAGS=$cf_cv_ar_flags
459 dnl ---------------------------------------------------------------------------
460 dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
461 dnl -----------------
462 dnl Check if awk can handle big strings using printf. Some older versions of
463 dnl awk choke on large strings passed via "%s".
465 dnl $1 = desired string size
466 dnl $2 = variable to set with result
467 AC_DEFUN([CF_AWK_BIG_PRINTF],
474 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
475 | $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
483 dnl ---------------------------------------------------------------------------
484 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
486 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
487 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
488 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
490 dnl Treat the configuration-variable specially here, since we're directly
491 dnl substituting its value (i.e., 1/0).
493 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
494 AC_DEFUN([CF_BOOL_DECL],
496 AC_MSG_CHECKING(if we should include stdbool.h)
498 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
499 AC_TRY_COMPILE([],[bool foo = false],
500 [cf_cv_header_stdbool_h=0],
505 ],[bool foo = false],
506 [cf_cv_header_stdbool_h=1],
507 [cf_cv_header_stdbool_h=0])])])
509 if test "$cf_cv_header_stdbool_h" = 1
510 then AC_MSG_RESULT(yes)
511 else AC_MSG_RESULT(no)
514 AC_MSG_CHECKING([for builtin bool type])
516 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
519 #include <sys/types.h>
521 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
522 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
525 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
526 then AC_MSG_RESULT(yes)
527 else AC_MSG_RESULT(no)
530 dnl ---------------------------------------------------------------------------
531 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
533 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
534 dnl Don't bother looking for bool.h, since it's been deprecated.
536 dnl If the current compiler is C rather than C++, we get the bool definition
537 dnl from <stdbool.h>.
538 AC_DEFUN([CF_BOOL_SIZE],
540 AC_MSG_CHECKING([for size of bool])
541 AC_CACHE_VAL(cf_cv_type_of_bool,[
547 #if defined(__cplusplus)
549 #ifdef HAVE_GXX_BUILTIN_H
550 #include <g++/builtin.h>
551 #elif HAVE_GPP_BUILTIN_H
552 #include <gpp/builtin.h>
559 #if $cf_cv_header_stdbool_h
567 FILE *fp = fopen("cf_test.out", "w");
571 fputs("unsigned ", fp);
572 if (sizeof(x) == sizeof(int)) fputs("int", fp);
573 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
574 else if (sizeof(x) == sizeof(short))fputs("short",fp);
575 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
578 ${cf_cv_main_return:-return}(0);
581 [cf_cv_type_of_bool=`cat cf_test.out`
582 if test -z "$cf_cv_type_of_bool"; then
583 cf_cv_type_of_bool=unknown
585 [cf_cv_type_of_bool=unknown],
586 [cf_cv_type_of_bool=unknown])
589 AC_MSG_RESULT($cf_cv_type_of_bool)
590 if test "$cf_cv_type_of_bool" = unknown ; then
591 case .$NCURSES_BOOL in #(vi
592 .auto|.) NCURSES_BOOL=unsigned;;
594 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
595 cf_cv_type_of_bool=$NCURSES_BOOL
598 dnl ---------------------------------------------------------------------------
599 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
601 dnl If we're cross-compiling, allow the user to override the tools and their
602 dnl options. The configure script is oriented toward identifying the host
603 dnl compiler, etc., but we need a build compiler to generate parts of the
606 dnl $1 = default for $CPPFLAGS
607 dnl $2 = default for $LIBS
608 AC_DEFUN([CF_BUILD_CC],[
609 AC_REQUIRE([CF_PROG_EXT])
610 if test "$cross_compiling" = yes ; then
612 # defaults that we might want to override
613 : ${BUILD_CFLAGS:=''}
614 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
615 : ${BUILD_LDFLAGS:=''}
616 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
617 : ${BUILD_EXEEXT:='$x'}
618 : ${BUILD_OBJEXT:='o'}
620 AC_ARG_WITH(build-cc,
621 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
622 [BUILD_CC="$withval"],
623 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
624 AC_MSG_CHECKING(for native build C compiler)
625 AC_MSG_RESULT($BUILD_CC)
627 AC_MSG_CHECKING(for native build C preprocessor)
628 AC_ARG_WITH(build-cpp,
629 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
630 [BUILD_CPP="$withval"],
631 [BUILD_CPP='${BUILD_CC} -E'])
632 AC_MSG_RESULT($BUILD_CPP)
634 AC_MSG_CHECKING(for native build C flags)
635 AC_ARG_WITH(build-cflags,
636 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
637 [BUILD_CFLAGS="$withval"])
638 AC_MSG_RESULT($BUILD_CFLAGS)
640 AC_MSG_CHECKING(for native build C preprocessor-flags)
641 AC_ARG_WITH(build-cppflags,
642 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
643 [BUILD_CPPFLAGS="$withval"])
644 AC_MSG_RESULT($BUILD_CPPFLAGS)
646 AC_MSG_CHECKING(for native build linker-flags)
647 AC_ARG_WITH(build-ldflags,
648 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
649 [BUILD_LDFLAGS="$withval"])
650 AC_MSG_RESULT($BUILD_LDFLAGS)
652 AC_MSG_CHECKING(for native build linker-libraries)
653 AC_ARG_WITH(build-libs,
654 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
655 [BUILD_LIBS="$withval"])
656 AC_MSG_RESULT($BUILD_LIBS)
658 # this assumes we're on Unix.
662 : ${BUILD_CC:='${CC}'}
664 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
665 AC_MSG_ERROR([Cross-build requires two compilers.
666 Use --with-build-cc to specify the native compiler.])
670 : ${BUILD_CC:='${CC}'}
671 : ${BUILD_CPP:='${CPP}'}
672 : ${BUILD_CFLAGS:='${CFLAGS}'}
673 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
674 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
675 : ${BUILD_LIBS:='${LIBS}'}
676 : ${BUILD_EXEEXT:='$x'}
677 : ${BUILD_OBJEXT:='o'}
682 AC_SUBST(BUILD_CFLAGS)
683 AC_SUBST(BUILD_CPPFLAGS)
684 AC_SUBST(BUILD_LDFLAGS)
686 AC_SUBST(BUILD_EXEEXT)
687 AC_SUBST(BUILD_OBJEXT)
689 dnl ---------------------------------------------------------------------------
690 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
692 dnl Determine the default configuration into which we'll install ncurses. This
693 dnl can be overridden by the user's command-line options. There's two items to
695 dnl 1. the prefix (e.g., /usr)
696 dnl 2. the header files (e.g., /usr/include/ncurses)
697 dnl We'll look for a previous installation of ncurses and use the same defaults.
699 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
700 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
701 dnl programs from a vendor's.
702 AC_DEFUN([CF_CFG_DEFAULTS],
704 AC_MSG_CHECKING(for prefix)
705 if test "x$prefix" = "xNONE" ; then
706 case "$cf_cv_system_name" in
707 # non-vendor systems don't have a conflict
708 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
711 *) prefix=$ac_default_prefix
715 AC_MSG_RESULT($prefix)
717 if test "x$prefix" = "xNONE" ; then
718 AC_MSG_CHECKING(for default include-directory)
719 test -n "$verbose" && echo 1>&AC_FD_MSG
722 $includedir/ncurses \
724 $prefix/include/ncurses \
726 /usr/local/include/ncurses \
730 cf_dir=`eval echo $cf_symbol`
731 if test -f $cf_dir/curses.h ; then
732 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
733 includedir="$cf_symbol"
734 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
738 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
740 AC_MSG_RESULT($includedir)
743 dnl ---------------------------------------------------------------------------
744 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
746 dnl Check if the terminal-capability database functions are available. If not,
747 dnl ncurses has a much-reduced version.
748 AC_DEFUN([CF_CGETENT],[
749 AC_MSG_CHECKING(for terminal-capability database functions)
750 AC_CACHE_VAL(cf_cv_cgetent,[
752 #include <stdlib.h>],[
755 char *db_array = temp;
756 cgetent(&buf, /* int *, */ &db_array, "vt100");
757 cgetcap(buf, "tc", '=');
758 cgetmatch(buf, "tc");
763 AC_MSG_RESULT($cf_cv_cgetent)
764 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
766 dnl ---------------------------------------------------------------------------
767 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
769 dnl Check if we're accidentally using a cache from a different machine.
770 dnl Derive the system name, as a check for reusing the autoconf cache.
772 dnl If we've packaged config.guess and config.sub, run that (since it does a
773 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
774 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
775 dnl which is useful in cross-compiles.
777 dnl Note: we would use $ac_config_sub, but that is one of the places where
778 dnl autoconf 2.5x broke compatibility with autoconf 2.13
779 AC_DEFUN([CF_CHECK_CACHE],
781 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
782 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
783 system_name="$host_os"
785 system_name="`(uname -s -r) 2>/dev/null`"
786 if test -z "$system_name" ; then
787 system_name="`(hostname) 2>/dev/null`"
790 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
791 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
793 test -z "$system_name" && system_name="$cf_cv_system_name"
794 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
796 if test ".$system_name" != ".$cf_cv_system_name" ; then
797 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
798 AC_MSG_ERROR("Please remove config.cache and try again.")
801 dnl ---------------------------------------------------------------------------
802 dnl CF_CHECK_ERRNO version: 11 updated: 2010/05/26 05:38:42
804 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
805 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
808 dnl $1 = the name to check
809 dnl $2 = the assumed type
810 AC_DEFUN([CF_CHECK_ERRNO],
812 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
818 #include <sys/types.h>
819 #include <errno.h> ],
820 ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
825 if test "$cf_cv_dcl_$1" = no ; then
826 CF_UPPER(cf_result,decl_$1)
827 AC_DEFINE_UNQUOTED($cf_result)
830 # It's possible (for near-UNIX clones) that the data doesn't exist
831 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
833 dnl ---------------------------------------------------------------------------
834 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
835 dnl --------------------
836 dnl Check for existence of external data in the current set of libraries. If
837 dnl we can modify it, it's real enough.
838 dnl $1 = the name to check
840 AC_DEFUN([CF_CHECK_EXTERN_DATA],
842 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
852 if test "$cf_cv_have_$1" = yes ; then
853 CF_UPPER(cf_result,have_$1)
854 AC_DEFINE_UNQUOTED($cf_result)
858 dnl ---------------------------------------------------------------------------
859 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
860 dnl -------------------
861 dnl Check if GPM is already linked with curses. If so - and if the linkage
862 dnl is not "weak" - warn about this because it can create problems linking
863 dnl applications with ncurses.
864 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
865 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
867 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
868 cf_cv_check_gpm_wgetch=unknown
869 if test "$cross_compiling" != yes ; then
871 cat >conftest.$ac_ext <<CF_EOF
876 ${cf_cv_main_return:-return}(0);
881 # This only works if we can look at the symbol table. If a shared
882 # library is stripped for install, we cannot use that. So we're forced
883 # to rely on the static library, noting that some packagers may not
885 LIBS="-static -lgpm -dynamic $LIBS"
886 if AC_TRY_EVAL(ac_compile) ; then
887 if AC_TRY_EVAL(ac_link) ; then
888 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
889 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
890 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
898 if test "$cf_cv_check_gpm_wgetch" != yes ; then
899 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
902 dnl ---------------------------------------------------------------------------
903 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
904 dnl -----------------
905 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
906 dnl is a late feature for the standard and is not in some recent compilers
908 AC_DEFUN([CF_CPP_PARAM_INIT],
910 if test -n "$CXX"; then
911 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
923 TEST::TEST(int x = 1) // some compilers do not like second initializer
929 [cf_cv_cpp_param_init=yes],
930 [cf_cv_cpp_param_init=no],
931 [cf_cv_cpp_param_init=unknown])
935 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
937 dnl ---------------------------------------------------------------------------
938 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
939 dnl ------------------
940 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
941 dnl not be supported in g++ before 3.0
942 AC_DEFUN([CF_CPP_STATIC_CAST],
944 if test -n "$CXX"; then
946 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
954 NCursesPanel(int nlines,
964 template<class T> class NCursesUserPanel : public NCursesPanel
967 NCursesUserPanel (int nlines,
971 const T* p_UserData = static_cast<T*>(0))
972 : NCursesPanel (nlines, ncols, begin_y, begin_x)
975 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
979 virtual ~NCursesUserPanel() {};
982 const char* p_UserData = static_cast<char*>(0)],
983 [cf_cv_cpp_static_cast=yes],
984 [cf_cv_cpp_static_cast=no])
991 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
993 dnl ---------------------------------------------------------------------------
994 dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41
996 dnl Check if the C compiler supports "inline".
997 dnl $1 is the name of a shell variable to set if inline is supported
998 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
999 AC_DEFUN([CF_C_INLINE],[
1002 if test "$ac_cv_c_inline" != no ; then
1004 if test "$INTEL_COMPILER" = yes
1007 elif test "$GCC" = yes
1009 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1010 cf_save_CFLAGS=$CFLAGS
1011 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1012 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1013 [${cf_cv_main_return:-return} foo()],
1014 [cf_cv_gcc_inline=yes],
1015 [cf_cv_gcc_inline=no])
1016 CFLAGS=$cf_save_CFLAGS
1018 if test "$cf_cv_gcc_inline" = yes ; then
1019 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1025 dnl ---------------------------------------------------------------------------
1026 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1028 dnl "dirname" is not portable, so we fake it with a shell script.
1029 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1030 dnl ---------------------------------------------------------------------------
1031 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
1033 AC_DEFUN([CF_DIRS_TO_MAKE],
1036 for cf_item in $cf_list_models
1038 CF_OBJ_SUBDIR($cf_item,cf_subdir)
1039 for cf_item2 in $DIRS_TO_MAKE
1041 test $cf_item2 = $cf_subdir && break
1043 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1045 for cf_dir in $DIRS_TO_MAKE
1047 test ! -d $cf_dir && mkdir $cf_dir
1049 AC_SUBST(DIRS_TO_MAKE)
1051 dnl ---------------------------------------------------------------------------
1052 dnl CF_DISABLE_LEAKS version: 5 updated: 2010/03/13 15:14:55
1053 dnl ----------------
1054 dnl Combine no-leak checks with the libraries or tools that are used for the
1056 AC_DEFUN([CF_DISABLE_LEAKS],[
1058 AC_REQUIRE([CF_WITH_DMALLOC])
1059 AC_REQUIRE([CF_WITH_DBMALLOC])
1060 AC_REQUIRE([CF_WITH_VALGRIND])
1062 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1063 AC_ARG_ENABLE(leaks,
1064 [ --disable-leaks test: free permanent memory, analyze leaks],
1065 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1066 : ${with_no_leaks:=no})
1067 AC_MSG_RESULT($with_no_leaks)
1069 if test "$with_no_leaks" = yes ; then
1073 dnl ---------------------------------------------------------------------------
1074 dnl CF_DISABLE_LIBTOOL_VERSION version: 1 updated: 2010/05/15 15:45:59
1075 dnl --------------------------
1076 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1077 dnl the older "-version-info" feature. The newer feature allows us to use
1078 dnl version numbering on shared libraries which make them compatible with
1079 dnl various systems.
1080 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1082 AC_MSG_CHECKING(if libtool -version-number should be used)
1083 CF_ARG_DISABLE(libtool-version,
1084 [ --disable-libtool-version enable to use libtool's incompatible naming scheme],
1085 [cf_libtool_version=no],
1086 [cf_libtool_version=yes])
1087 AC_MSG_RESULT($cf_libtool_version)
1089 if test "$cf_libtool_version" = yes ; then
1090 LIBTOOL_VERSION="-version-number"
1092 LIBTOOL_VERSION="-version-info"
1095 AC_SUBST(LIBTOOL_VERSION)
1097 dnl ---------------------------------------------------------------------------
1098 dnl CF_DISABLE_RPATH_HACK version: 1 updated: 2010/04/11 10:54:00
1099 dnl ---------------------
1100 dnl The rpath-hack makes it simpler to build programs, particularly with the
1101 dnl *BSD ports which may have essential libraries in unusual places. But it
1102 dnl can interfere with building an executable for the base system. Use this
1103 dnl option in that case.
1104 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1106 AC_MSG_CHECKING(if rpath should be not be set)
1107 CF_ARG_DISABLE(rpath-hack,
1108 [ --disable-rpath-hack don't add rpath options for additional libraries],
1109 [cf_disable_rpath_hack=yes],
1110 [cf_disable_rpath_hack=no])
1111 AC_MSG_RESULT($cf_disable_rpath_hack)
1112 if test "$cf_disable_rpath_hack" = no ; then
1116 dnl ---------------------------------------------------------------------------
1117 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
1119 dnl Check if the rpath option should be used, setting cache variable
1120 dnl cf_cv_enable_rpath if so.
1121 AC_DEFUN([CF_ENABLE_RPATH],
1123 AC_MSG_CHECKING(if rpath option should be used)
1124 AC_ARG_ENABLE(rpath,
1125 [ --enable-rpath use rpath option when generating shared libraries],
1126 [cf_cv_enable_rpath=$enableval],
1127 [cf_cv_enable_rpath=no])
1128 AC_MSG_RESULT($cf_cv_enable_rpath)
1130 dnl ---------------------------------------------------------------------------
1131 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1133 dnl Check if 'errno' is declared in <errno.h>
1134 AC_DEFUN([CF_ERRNO],
1136 CF_CHECK_ERRNO(errno)
1138 dnl ---------------------------------------------------------------------------
1139 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
1141 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1142 dnl math.h and builtin.h, only for ncurses
1143 AC_DEFUN([CF_ETIP_DEFINES],
1145 AC_MSG_CHECKING(for special defines needed for etip.h)
1146 cf_save_CXXFLAGS="$CXXFLAGS"
1148 for cf_math in "" MATH_H
1150 for cf_excp in "" MATH_EXCEPTION
1152 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1153 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1154 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1156 #include <etip.h.in>
1158 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1159 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1160 cf_result="$cf_math $cf_excp"
1165 AC_MSG_RESULT($cf_result)
1166 CXXFLAGS="$cf_save_CXXFLAGS"
1168 dnl ---------------------------------------------------------------------------
1169 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
1171 dnl Find a library (specifically the linkage used in the code fragment),
1172 dnl searching for it if it is not already in the library path.
1173 dnl See also CF_ADD_SEARCHPATH.
1175 dnl Parameters (4-on are optional):
1176 dnl $1 = headers for library entrypoint
1177 dnl $2 = code fragment for library entrypoint
1178 dnl $3 = the library name without the "-l" option or ".so" suffix.
1179 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1180 dnl $5 = action to perform if not successful
1181 dnl $6 = module name, if not the same as the library name
1182 dnl $7 = extra libraries
1184 dnl Sets these variables:
1185 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1186 dnl $cf_cv_header_path_$3 - include-directory if needed
1187 dnl $cf_cv_library_path_$3 - library-directory if needed
1188 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1189 AC_DEFUN([CF_FIND_LINKAGE],[
1191 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1192 # will be set on completion of the AC_TRY_LINK below.
1193 cf_cv_header_path_$3=
1194 cf_cv_library_path_$3=
1196 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1198 cf_save_LIBS="$LIBS"
1200 AC_TRY_LINK([$1],[$2],[
1201 cf_cv_find_linkage_$3=yes
1202 cf_cv_header_path_$3=/usr/include
1203 cf_cv_library_path_$3=/usr/lib
1206 LIBS="-l$3 $7 $cf_save_LIBS"
1208 AC_TRY_LINK([$1],[$2],[
1209 cf_cv_find_linkage_$3=yes
1210 cf_cv_header_path_$3=/usr/include
1211 cf_cv_library_path_$3=/usr/lib
1212 cf_cv_library_file_$3="-l$3"
1214 cf_cv_find_linkage_$3=no
1215 LIBS="$cf_save_LIBS"
1217 CF_VERBOSE(find linkage for $3 library)
1218 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1220 cf_save_CPPFLAGS="$CPPFLAGS"
1221 cf_test_CPPFLAGS="$CPPFLAGS"
1223 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1224 for cf_cv_header_path_$3 in $cf_search
1226 if test -d $cf_cv_header_path_$3 ; then
1227 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1228 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1229 AC_TRY_COMPILE([$1],[$2],[
1230 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1231 cf_cv_find_linkage_$3=maybe
1232 cf_test_CPPFLAGS="$CPPFLAGS"
1234 CPPFLAGS="$cf_save_CPPFLAGS"
1239 if test "$cf_cv_find_linkage_$3" = maybe ; then
1241 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1243 cf_save_LIBS="$LIBS"
1244 cf_save_LDFLAGS="$LDFLAGS"
1247 CPPFLAGS="$cf_test_CPPFLAGS"
1248 LIBS="-l$3 $7 $cf_save_LIBS"
1249 AC_TRY_LINK([$1],[$2],[
1250 CF_VERBOSE(... found $3 library in system)
1251 cf_cv_find_linkage_$3=yes])
1252 CPPFLAGS="$cf_save_CPPFLAGS"
1253 LIBS="$cf_save_LIBS"
1256 if test "$cf_cv_find_linkage_$3" != yes ; then
1257 CF_LIBRARY_PATH(cf_search,$3)
1258 for cf_cv_library_path_$3 in $cf_search
1260 if test -d $cf_cv_library_path_$3 ; then
1261 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1262 CPPFLAGS="$cf_test_CPPFLAGS"
1263 LIBS="-l$3 $7 $cf_save_LIBS"
1264 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1265 AC_TRY_LINK([$1],[$2],[
1266 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1267 cf_cv_find_linkage_$3=yes
1268 cf_cv_library_file_$3="-l$3"
1270 CPPFLAGS="$cf_save_CPPFLAGS"
1271 LIBS="$cf_save_LIBS"
1272 LDFLAGS="$cf_save_LDFLAGS"
1276 CPPFLAGS="$cf_save_CPPFLAGS"
1277 LDFLAGS="$cf_save_LDFLAGS"
1281 cf_cv_find_linkage_$3=no
1286 LIBS="$cf_save_LIBS"
1288 if test "$cf_cv_find_linkage_$3" = yes ; then
1290 CF_ADD_INCDIR($cf_cv_header_path_$3)
1291 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1295 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1298 dnl ---------------------------------------------------------------------------
1299 dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02
1301 dnl Test for dlsym() and related functions, as well as libdl.
1306 AC_DEFUN([CF_FUNC_DLSYM],[
1308 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1311 AC_CHECK_LIB(dl,dlsym,[
1313 cf_have_libdl=yes])])
1315 if test "$cf_have_dlsym" = yes ; then
1316 test "$cf_have_libdl" = yes && CF_ADD_LIB(dl)
1318 AC_MSG_CHECKING(whether able to link to dl*() functions)
1319 AC_TRY_LINK([#include <dlfcn.h>],[
1321 if ((obj = dlopen("filename", 0)) != 0) {
1322 if (dlsym(obj, "symbolname") == 0) {
1326 AC_DEFINE(HAVE_LIBDL)],[
1327 AC_MSG_ERROR(Cannot link test program for libdl)])
1330 AC_MSG_ERROR(Cannot find dlsym function)
1333 dnl ---------------------------------------------------------------------------
1334 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1336 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1337 dnl is found, add our own version of memmove to the list of objects.
1338 AC_DEFUN([CF_FUNC_MEMMOVE],
1340 AC_CHECK_FUNC(memmove,,[
1341 AC_CHECK_FUNC(bcopy,[
1342 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1345 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1347 bcopy(data, temp, sizeof(data));
1348 bcopy(temp+10, temp, 15);
1349 bcopy(temp+5, temp+15, 10);
1350 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1353 [cf_cv_good_bcopy=yes],
1354 [cf_cv_good_bcopy=no],
1355 [cf_cv_good_bcopy=unknown])
1357 ],[cf_cv_good_bcopy=no])
1358 if test "$cf_cv_good_bcopy" = yes ; then
1359 AC_DEFINE(USE_OK_BCOPY)
1361 AC_DEFINE(USE_MY_MEMMOVE)
1364 dnl ---------------------------------------------------------------------------
1365 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1366 dnl -----------------
1367 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1368 dnl AIX 4.x, provide a non-working version.
1369 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1370 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1376 #ifdef HAVE_SYS_TIME_H
1377 #include <sys/time.h>
1381 struct timespec ts1, ts2;
1384 ts1.tv_nsec = 750000000;
1388 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1389 ${cf_cv_main_return:-return}(code != 0);
1392 [cf_cv_func_nanosleep=yes],
1393 [cf_cv_func_nanosleep=no],
1394 [cf_cv_func_nanosleep=unknown])])
1396 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1398 dnl ---------------------------------------------------------------------------
1399 dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02
1401 dnl Check for openpty() function, along with <pty.h> header. It may need the
1402 dnl "util" library as well.
1403 AC_DEFUN([CF_FUNC_OPENPTY],
1405 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1406 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1407 cf_save_LIBS="$LIBS"
1408 test $cf_cv_lib_util = yes && CF_ADD_LIB(util)
1409 for cf_header in pty.h libutil.h util.h
1412 #include <$cf_header>
1414 int x = openpty((int *)0, (int *)0, (char *)0,
1415 (struct termios *)0, (struct winsize *)0);
1417 cf_cv_func_openpty=$cf_header
1420 cf_cv_func_openpty=no
1423 LIBS="$cf_save_LIBS"
1426 dnl ---------------------------------------------------------------------------
1427 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1429 dnl See if the poll function really works. Some platforms have poll(), but
1430 dnl it does not work for terminals or files.
1431 AC_DEFUN([CF_FUNC_POLL],[
1432 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1438 #include <sys/poll.h>
1441 struct pollfd myfds;
1445 myfds.events = POLLIN;
1447 ret = poll(&myfds, 1, 100);
1448 ${cf_cv_main_return:-return}(ret != 0);
1450 [cf_cv_working_poll=yes],
1451 [cf_cv_working_poll=no],
1452 [cf_cv_working_poll=unknown])])
1453 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1455 dnl ---------------------------------------------------------------------------
1456 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1458 dnl Some old/broken variations define tcgetattr() only as a macro in
1460 AC_DEFUN([CF_FUNC_TERMIOS],[
1461 AC_REQUIRE([CF_STRUCT_TERMIOS])
1462 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1464 #include <sys/types.h>
1465 #ifdef HAVE_UNISTD_H
1468 #ifdef HAVE_TERMIOS_H
1469 #include <termios.h>
1470 #define TTY struct termios
1472 #ifdef HAVE_TERMIO_H
1474 #define TTY struct termio
1479 tcgetattr(1, &foo);],
1480 [cf_cv_have_tcgetattr=yes],
1481 [cf_cv_have_tcgetattr=no])])
1482 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1484 dnl ---------------------------------------------------------------------------
1485 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1487 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1488 dnl versions of C. It is in the GNU C library, and can often be simulated by
1489 dnl other functions.
1490 AC_DEFUN([CF_FUNC_VSSCANF],
1492 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1495 #include <stdio.h>],[
1497 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1500 #include <stdio.h>],[
1504 strbuf._flag = _IOREAD;
1505 strbuf._ptr = strbuf._base = (unsigned char *) str;
1506 strbuf._cnt = strlen(str);
1507 strbuf._file = _NFILE;
1508 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1511 #include <stdio.h>],[
1515 strbuf._flag = _IOREAD;
1516 strbuf._ptr = strbuf._base = (unsigned char *) str;
1517 strbuf._cnt = strlen(str);
1518 strbuf._file = _NFILE;
1519 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1520 cf_cv_func_vsscanf=no])])])])
1522 case $cf_cv_func_vsscanf in #(vi
1523 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1524 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1525 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1529 dnl ---------------------------------------------------------------------------
1530 dnl CF_GCC_ATTRIBUTES version: 13 updated: 2009/08/11 20:19:56
1531 dnl -----------------
1532 dnl Test for availability of useful gcc __attribute__ directives to quiet
1533 dnl compiler warnings. Though useful, not all are supported -- and contrary
1534 dnl to documentation, unrecognized directives cause older compilers to barf.
1535 AC_DEFUN([CF_GCC_ATTRIBUTES],
1537 if test "$GCC" = yes
1539 cat > conftest.i <<EOF
1541 #define GCC_PRINTF 0
1546 #ifndef GCC_NORETURN
1547 #define GCC_NORETURN /* nothing */
1550 #define GCC_UNUSED /* nothing */
1553 if test "$GCC" = yes
1555 AC_CHECKING([for $CC __attribute__ directives])
1556 cat > conftest.$ac_ext <<EOF
1557 #line __oline__ "${as_me-configure}"
1558 #include "confdefs.h"
1559 #include "conftest.h"
1560 #include "conftest.i"
1562 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1564 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1567 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1569 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1571 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1572 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1573 extern void foo(void) GCC_NORETURN;
1574 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1576 cf_printf_attribute=no
1577 cf_scanf_attribute=no
1578 for cf_attribute in scanf printf unused noreturn
1580 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1581 cf_directive="__attribute__(($cf_attribute))"
1582 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1584 case $cf_attribute in #(vi
1586 cf_printf_attribute=yes
1587 cat >conftest.h <<EOF
1588 #define GCC_$cf_ATTRIBUTE 1
1592 cf_scanf_attribute=yes
1593 cat >conftest.h <<EOF
1594 #define GCC_$cf_ATTRIBUTE 1
1598 cat >conftest.h <<EOF
1599 #define GCC_$cf_ATTRIBUTE $cf_directive
1604 if AC_TRY_EVAL(ac_compile); then
1605 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1606 cat conftest.h >>confdefs.h
1607 case $cf_attribute in #(vi
1609 if test "$cf_printf_attribute" = no ; then
1610 cat >>confdefs.h <<EOF
1611 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
1614 cat >>confdefs.h <<EOF
1615 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1620 if test "$cf_scanf_attribute" = no ; then
1621 cat >>confdefs.h <<EOF
1622 #define GCC_SCANFLIKE(fmt,var) /* nothing */
1625 cat >>confdefs.h <<EOF
1626 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1634 fgrep define conftest.i >>confdefs.h
1639 dnl ---------------------------------------------------------------------------
1640 dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
1642 dnl Find version of gcc
1643 AC_DEFUN([CF_GCC_VERSION],[
1644 AC_REQUIRE([AC_PROG_CC])
1646 if test "$GCC" = yes ; then
1647 AC_MSG_CHECKING(version of $CC)
1648 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1649 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1650 AC_MSG_RESULT($GCC_VERSION)
1653 dnl ---------------------------------------------------------------------------
1654 dnl CF_GCC_WARNINGS version: 25 updated: 2010/04/24 11:03:31
1656 dnl Check if the compiler supports useful warning options. There's a few that
1657 dnl we don't use, simply because they're too noisy:
1659 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1660 dnl -Wredundant-decls (system headers make this too noisy)
1661 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1662 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1663 dnl is enabled for ncurses using "--enable-const".
1667 dnl $1 is an optional list of gcc warning flags that a particular
1668 dnl application might want to use, e.g., "no-unused" for
1671 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1673 AC_DEFUN([CF_GCC_WARNINGS],
1675 AC_REQUIRE([CF_GCC_VERSION])
1676 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1678 cat > conftest.$ac_ext <<EOF
1679 #line __oline__ "${as_me-configure}"
1680 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1683 if test "$INTEL_COMPILER" = yes
1685 # The "-wdXXX" options suppress warnings:
1686 # remark #1419: external declaration in primary source file
1687 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1688 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1689 # remark #193: zero used for undefined preprocessing identifier
1690 # remark #593: variable "curs_sb_left_arrow" was set but never used
1691 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1692 # remark #869: parameter "tw" was never referenced
1693 # remark #981: operands are evaluated in unspecified order
1694 # warning #279: controlling expression is constant
1696 AC_CHECKING([for $CC warning options])
1697 cf_save_CFLAGS="$CFLAGS"
1698 EXTRA_CFLAGS="-Wall"
1710 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1711 if AC_TRY_EVAL(ac_compile); then
1712 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1713 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1716 CFLAGS="$cf_save_CFLAGS"
1718 elif test "$GCC" = yes
1720 AC_CHECKING([for $CC warning options])
1721 cf_save_CFLAGS="$CFLAGS"
1724 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1725 for cf_opt in W Wall \
1726 Wbad-function-cast \
1730 Wmissing-declarations \
1731 Wmissing-prototypes \
1735 Wstrict-prototypes \
1736 Wundef $cf_warn_CONST $1
1738 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1739 if AC_TRY_EVAL(ac_compile); then
1740 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1741 case $cf_opt in #(vi
1743 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1746 case $GCC_VERSION in
1748 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1753 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1756 CFLAGS="$cf_save_CFLAGS"
1760 AC_SUBST(EXTRA_CFLAGS)
1762 dnl ---------------------------------------------------------------------------
1763 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1764 dnl ----------------
1765 dnl Verify that a test program compiles/links with GNAT.
1766 dnl $cf_ada_make is set to the program that compiles/links
1767 dnl $ADAFLAGS may be set to the GNAT flags.
1769 dnl $1 is the text of the spec
1770 dnl $2 is the text of the body
1771 dnl $3 is the shell command to execute if successful
1772 dnl $4 is the shell command to execute if not successful
1773 AC_DEFUN([CF_GNAT_TRY_LINK],
1776 cat >>conftest.ads <<CF_EOF
1779 cat >>conftest.adb <<CF_EOF
1782 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1783 ifelse($3,, :,[ $3])
1789 dnl ---------------------------------------------------------------------------
1790 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1792 dnl Verify that a test program compiles and runs with GNAT
1793 dnl $cf_ada_make is set to the program that compiles/links
1794 dnl $ADAFLAGS may be set to the GNAT flags.
1796 dnl $1 is the text of the spec
1797 dnl $2 is the text of the body
1798 dnl $3 is the shell command to execute if successful
1799 dnl $4 is the shell command to execute if not successful
1800 AC_DEFUN([CF_GNAT_TRY_RUN],
1803 cat >>conftest.ads <<CF_EOF
1806 cat >>conftest.adb <<CF_EOF
1809 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1810 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1811 ifelse($3,, :,[ $3])
1820 dnl ---------------------------------------------------------------------------
1821 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1823 dnl Verify version of GNAT.
1824 AC_DEFUN([CF_GNAT_VERSION],
1826 AC_MSG_CHECKING(for gnat version)
1827 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1828 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1829 AC_MSG_RESULT($cf_gnat_version)
1831 case $cf_gnat_version in
1832 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1833 cf_cv_prog_gnat_correct=yes
1835 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1836 cf_cv_prog_gnat_correct=no
1839 case $cf_gnat_version in
1840 3.[[1-9]]*|[[4-9]].*)
1841 cf_compile_generics=generics
1842 cf_generic_objects="\${GENOBJS}"
1844 *) cf_compile_generics=
1849 dnl ---------------------------------------------------------------------------
1850 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1852 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1853 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1854 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1855 dnl since it is interwoven with GNU extensions.
1857 dnl Well, yes we could work around it...
1858 AC_DEFUN([CF_GNU_SOURCE],
1860 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1861 AC_TRY_COMPILE([#include <sys/types.h>],[
1862 #ifndef _XOPEN_SOURCE
1865 [cf_cv_gnu_source=no],
1866 [cf_save="$CPPFLAGS"
1867 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1868 AC_TRY_COMPILE([#include <sys/types.h>],[
1869 #ifdef _XOPEN_SOURCE
1872 [cf_cv_gnu_source=no],
1873 [cf_cv_gnu_source=yes])
1877 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1879 dnl ---------------------------------------------------------------------------
1880 dnl CF_GPP_LIBRARY version: 10 updated: 2010/05/29 16:31:02
1882 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1883 dnl problem :-). If we have the compiler but no library, we'll be able to
1884 dnl configure, but won't be able to build the c++ demo program.
1885 AC_DEFUN([CF_GPP_LIBRARY],
1887 cf_cxx_library=unknown
1888 case $cf_cv_system_name in #(vi
1896 if test "$GXX" = yes; then
1897 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1899 CF_ADD_LIB($cf_gpp_libname)
1901 #include <$cf_gpp_libname/builtin.h>
1903 [two_arg_error_handler_t foo2 = lib_error_handler],
1905 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
1906 if test "$cf_gpp_libname" = cpp ; then
1907 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1909 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1912 #include <builtin.h>
1914 [two_arg_error_handler_t foo2 = lib_error_handler],
1916 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
1917 AC_DEFINE(HAVE_BUILTIN_H)],
1918 [cf_cxx_library=no])])
1920 AC_MSG_RESULT($cf_cxx_library)
1923 dnl ---------------------------------------------------------------------------
1924 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1926 dnl Check for version of g++
1927 AC_DEFUN([CF_GXX_VERSION],[
1928 AC_REQUIRE([AC_PROG_CPP])
1930 if test "$GXX" = yes; then
1931 AC_MSG_CHECKING(version of g++)
1932 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1933 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1934 AC_MSG_RESULT($GXX_VERSION)
1937 dnl ---------------------------------------------------------------------------
1938 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1940 dnl Check if the compiler supports useful warning options.
1942 dnl Most of gcc's options apply to g++, except:
1943 dnl -Wbad-function-cast
1944 dnl -Wmissing-declarations
1945 dnl -Wnested-externs
1947 dnl Omit a few (for now):
1951 dnl $1 is an optional list of g++ warning flags that a particular
1952 dnl application might want to use, e.g., "no-unused" for
1955 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1957 AC_DEFUN([CF_GXX_WARNINGS],
1960 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1962 AC_REQUIRE([CF_GXX_VERSION])
1967 cat > conftest.$ac_ext <<EOF
1968 #line __oline__ "configure"
1969 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1972 if test "$INTEL_CPLUSPLUS" = yes
1974 # The "-wdXXX" options suppress warnings:
1975 # remark #1419: external declaration in primary source file
1976 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1977 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1978 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1979 # remark #193: zero used for undefined preprocessing identifier
1980 # remark #593: variable "curs_sb_left_arrow" was set but never used
1981 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1982 # remark #869: parameter "tw" was never referenced
1983 # remark #981: operands are evaluated in unspecified order
1984 # warning #269: invalid format string conversion
1986 AC_CHECKING([for $CC warning options])
1987 cf_save_CXXFLAGS="$CXXFLAGS"
1988 EXTRA_CXXFLAGS="-Wall"
2001 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
2002 if AC_TRY_EVAL(ac_compile); then
2003 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2004 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2007 CXXFLAGS="$cf_save_CXXFLAGS"
2009 elif test "$GXX" = yes
2011 AC_CHECKING([for $CXX warning options])
2012 cf_save_CXXFLAGS="$CXXFLAGS"
2013 EXTRA_CXXFLAGS="-W -Wall"
2014 cf_gxx_extra_warnings=""
2015 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
2016 case "$GCC_VERSION" in
2020 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
2026 Woverloaded-virtual \
2032 Wmissing-prototypes \
2035 Wstrict-prototypes \
2036 Wundef $cf_gxx_extra_warnings $1
2038 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
2039 if AC_TRY_EVAL(ac_compile); then
2040 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2041 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2043 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
2046 CXXFLAGS="$cf_save_CXXFLAGS"
2051 AC_SUBST(EXTRA_CXXFLAGS)
2053 dnl ---------------------------------------------------------------------------
2054 dnl CF_HASHED_DB version: 4 updated: 2010/05/29 16:31:02
2056 dnl Look for an instance of the Berkeley hashed database.
2058 dnl $1 = optional parameter, to specify install-prefix for the database.
2059 AC_DEFUN([CF_HASHED_DB],
2066 if test -d "$1" ; then
2067 CF_ADD_INCDIR($1/include)
2068 CF_ADD_LIBDIR($1/lib)
2072 AC_CHECK_HEADER(db.h,[
2073 CF_HASHED_DB_VERSION
2074 if test "$cf_cv_hashed_db_version" = unknown ; then
2075 AC_MSG_ERROR(Cannot determine version of db)
2078 if test "$cf_cv_hashed_db_libs" = unknown ; then
2079 AC_MSG_ERROR(Cannot determine library for db)
2080 elif test "$cf_cv_hashed_db_libs" != default ; then
2081 CF_ADD_LIB($cf_cv_hashed_db_libs)
2085 AC_MSG_ERROR(Cannot find db.h)
2088 dnl ---------------------------------------------------------------------------
2089 dnl CF_HASHED_DB_LIBS version: 9 updated: 2010/05/29 16:31:02
2090 dnl -----------------
2091 dnl Given that we have the header and version for hashed database, find the
2092 dnl library information.
2093 AC_DEFUN([CF_HASHED_DB_LIBS],
2095 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
2096 cf_cv_hashed_db_libs=unknown
2097 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
2099 cf_save_libs="$LIBS"
2100 if test -n "$cf_db_libs"; then
2101 CF_ADD_LIB($cf_db_libs)
2103 CF_MSG_LOG(checking for library "$cf_db_libs")
2105 $ac_includes_default
2108 char *path = "/tmp/foo";
2109 #ifdef DB_VERSION_MAJOR
2110 #if DB_VERSION_MAJOR >= 4
2112 db_create(&result, NULL, 0);
2113 result->open(result,
2120 #elif DB_VERSION_MAJOR >= 3
2122 db_create(&result, NULL, 0);
2123 result->open(result,
2129 #elif DB_VERSION_MAJOR >= 2
2138 #endif /* DB_VERSION_MAJOR */
2140 DB *result = dbopen(path,
2146 ${cf_cv_main_return:-return}(result != 0)
2148 if test -n "$cf_db_libs" ; then
2149 cf_cv_hashed_db_libs=$cf_db_libs
2151 cf_cv_hashed_db_libs=default
2153 LIBS="$cf_save_libs"
2156 LIBS="$cf_save_libs"
2160 dnl ---------------------------------------------------------------------------
2161 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
2162 dnl --------------------
2163 dnl Given that we have the header file for hashed database, find the version
2165 AC_DEFUN([CF_HASHED_DB_VERSION],
2167 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2168 cf_cv_hashed_db_version=unknown
2170 for cf_db_version in 1 2 3 4 5
2172 CF_MSG_LOG(checking for db version $cf_db_version)
2174 $ac_includes_default
2177 #ifdef DB_VERSION_MAJOR
2178 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2179 #if $cf_db_version == DB_VERSION_MAJOR
2185 #if $cf_db_version == 1
2186 /* ok: assuming this is DB 1.8.5 */
2192 cf_cv_hashed_db_version=$cf_db_version
2198 dnl ---------------------------------------------------------------------------
2199 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
2201 dnl Construct a search-list of directories for a nonstandard header-file
2204 dnl $1 = the variable to return as result
2205 dnl $2 = the package name
2206 AC_DEFUN([CF_HEADER_PATH],
2210 # collect the current set of include-directories from compiler flags
2211 cf_header_path_list=""
2212 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2213 for cf_header_path in $CPPFLAGS $CFLAGS
2215 case $cf_header_path in #(vi
2217 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2218 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2219 cf_header_path_list="$cf_header_path_list [$]$1"
2225 # add the variations for the package we are looking for
2226 CF_SUBDIR_PATH($1,$2,include)
2228 test "$includedir" != NONE && \
2229 test "$includedir" != "/usr/include" && \
2230 test -d "$includedir" && {
2231 test -d $includedir && $1="[$]$1 $includedir"
2232 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2235 test "$oldincludedir" != NONE && \
2236 test "$oldincludedir" != "/usr/include" && \
2237 test -d "$oldincludedir" && {
2238 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2239 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2242 $1="[$]$1 $cf_header_path_list"
2244 dnl ---------------------------------------------------------------------------
2245 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2247 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2248 AC_DEFUN([CF_HELP_MESSAGE],
2249 [AC_DIVERT_HELP([$1])dnl
2251 dnl ---------------------------------------------------------------------------
2252 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
2254 dnl Construct the list of include-options according to whether we're building
2255 dnl in the source directory or using '--srcdir=DIR' option. If we're building
2256 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2257 dnl since that usually breaks gcc's shadow-includes.
2258 AC_DEFUN([CF_INCLUDE_DIRS],
2260 CPPFLAGS="$CPPFLAGS -I. -I../include"
2261 if test "$srcdir" != "."; then
2262 CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
2264 if test "$GCC" != yes; then
2265 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2266 elif test "$includedir" != "/usr/include"; then
2267 if test "$includedir" = '${prefix}/include' ; then
2268 if test $prefix != /usr ; then
2269 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2272 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2277 dnl ---------------------------------------------------------------------------
2278 dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
2279 dnl -----------------
2280 dnl Check if the given compiler is really the Intel compiler for Linux. It
2281 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2282 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2284 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2285 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2286 dnl the wrappers for gcc and g++ warnings.
2288 dnl $1 = GCC (default) or GXX
2289 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2290 dnl $3 = CFLAGS (default) or CXXFLAGS
2291 AC_DEFUN([CF_INTEL_COMPILER],[
2292 ifelse([$2],,INTEL_COMPILER,[$2])=no
2294 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2297 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2298 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2299 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2301 #ifdef __INTEL_COMPILER
2305 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2306 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2308 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2309 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2314 dnl ---------------------------------------------------------------------------
2315 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2317 dnl Check if we have either a function or macro for 'isascii()'.
2318 AC_DEFUN([CF_ISASCII],
2320 AC_MSG_CHECKING(for isascii)
2321 AC_CACHE_VAL(cf_cv_have_isascii,[
2322 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2323 [cf_cv_have_isascii=yes],
2324 [cf_cv_have_isascii=no])
2326 AC_MSG_RESULT($cf_cv_have_isascii)
2327 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2329 dnl ---------------------------------------------------------------------------
2330 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2332 dnl Add checks for large file support.
2333 AC_DEFUN([CF_LARGEFILE],[
2334 ifdef([AC_FUNC_FSEEKO],[
2336 if test "$enable_largefile" != no ; then
2339 # Normally we would collect these definitions in the config.h,
2340 # but (like _XOPEN_SOURCE), some environments rely on having these
2341 # defined before any of the system headers are included. Another
2342 # case comes up with C++, e.g., on AIX the compiler compiles the
2343 # header files by themselves before looking at the body files it is
2344 # told to compile. For ncurses, those header files do not include
2346 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2347 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2348 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2350 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2352 #include <sys/types.h>
2355 /* if transitional largefile support is setup, this is true */
2356 extern struct dirent64 * readdir(DIR *);
2357 struct dirent64 *x = readdir((DIR *)0);
2358 struct dirent *y = readdir((DIR *)0);
2361 [cf_cv_struct_dirent64=yes],
2362 [cf_cv_struct_dirent64=no])
2364 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2368 dnl ---------------------------------------------------------------------------
2369 dnl CF_LDFLAGS_STATIC version: 7 updated: 2009/04/04 18:31:04
2370 dnl -----------------
2371 dnl Check for compiler/linker flags used to temporarily force usage of static
2372 dnl libraries. This depends on the compiler and platform. Use this to help
2373 dnl ensure that the linker picks up a given library based on its position in
2374 dnl the list of linker options and libraries.
2375 AC_DEFUN([CF_LDFLAGS_STATIC],[
2377 if test "$GCC" = yes ; then
2378 case $cf_cv_system_name in #(
2379 OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*) #( vi
2383 *) #( normally, except when broken
2384 LDFLAGS_STATIC=-static
2385 LDFLAGS_SHARED=-dynamic
2389 case $cf_cv_system_name in #(
2390 aix[[456]]*) #( from ld manpage
2391 LDFLAGS_STATIC=-bstatic
2392 LDFLAGS_SHARED=-bdynamic
2394 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2395 # We could also use just "archive" and "shared".
2396 LDFLAGS_STATIC=-Wl,-a,archive_shared
2397 LDFLAGS_SHARED=-Wl,-a,shared_archive
2399 irix*) #( from ld manpage IRIX64
2400 LDFLAGS_STATIC=-Bstatic
2401 LDFLAGS_SHARED=-Bdynamic
2403 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2404 # alternative "-oldstyle_liblookup" (not in cc manpage)
2405 LDFLAGS_STATIC=-noso
2406 LDFLAGS_SHARED=-so_archive
2409 LDFLAGS_STATIC=-Bstatic
2410 LDFLAGS_SHARED=-Bdynamic
2415 AC_SUBST(LDFLAGS_STATIC)
2416 AC_SUBST(LDFLAGS_SHARED)
2418 dnl ---------------------------------------------------------------------------
2419 dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
2421 dnl For the given system and compiler, find the compiler flags to pass to the
2422 dnl loader to use the "rpath" feature.
2423 AC_DEFUN([CF_LD_RPATH_OPT],
2425 AC_REQUIRE([CF_CHECK_CACHE])
2428 AC_MSG_CHECKING(for an rpath option)
2429 case $cf_cv_system_name in #(vi
2431 if test "$GCC" = yes; then
2432 LD_RPATH_OPT="-Wl,-rpath,"
2434 LD_RPATH_OPT="-rpath "
2437 linux*|gnu*|k*bsd*-gnu) #(vi
2438 LD_RPATH_OPT="-Wl,-rpath,"
2440 openbsd[[2-9]].*) #(vi
2441 LD_RPATH_OPT="-Wl,-rpath,"
2444 LD_RPATH_OPT="-rpath "
2447 LD_RPATH_OPT="-Wl,-rpath,"
2450 LD_RPATH_OPT="-rpath "
2458 AC_MSG_RESULT($LD_RPATH_OPT)
2460 case "x$LD_RPATH_OPT" in #(vi
2462 AC_MSG_CHECKING(if we need a space after rpath option)
2463 cf_save_LIBS="$LIBS"
2464 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2465 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2466 LIBS="$cf_save_LIBS"
2467 AC_MSG_RESULT($cf_rpath_space)
2468 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2472 dnl ---------------------------------------------------------------------------
2473 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
2475 dnl Construct a search-list of directories for a nonstandard library-file
2478 dnl $1 = the variable to return as result
2479 dnl $2 = the package name
2480 AC_DEFUN([CF_LIBRARY_PATH],
2483 cf_library_path_list=""
2484 if test -n "${LDFLAGS}${LIBS}" ; then
2485 for cf_library_path in $LDFLAGS $LIBS
2487 case $cf_library_path in #(vi
2489 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2490 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2491 cf_library_path_list="$cf_library_path_list [$]$1"
2497 CF_SUBDIR_PATH($1,$2,lib)
2499 $1="$cf_library_path_list [$]$1"
2501 dnl ---------------------------------------------------------------------------
2502 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2504 dnl Compute the library-prefix for the given host system
2505 dnl $1 = variable to set
2506 AC_DEFUN([CF_LIB_PREFIX],
2508 case $cf_cv_system_name in #(vi
2515 ifelse($1,,,[$1=$LIB_PREFIX])
2516 AC_SUBST(LIB_PREFIX)
2518 dnl ---------------------------------------------------------------------------
2519 dnl CF_LIB_RULES version: 56 updated: 2010/05/15 15:19:46
2521 dnl Append definitions and rules for the given models to the subdirectory
2522 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2523 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2524 dnl the corresponding makefile to list the models that we'll generate.
2526 dnl For shared libraries, make a list of symbolic links to construct when
2527 dnl generating each library. The convention used for Linux is the simplest
2530 dnl lib<name>.so.<major> ->
2531 dnl lib<name>.so.<maj>.<minor>
2532 AC_DEFUN([CF_LIB_RULES],
2534 CF_LIB_PREFIX(cf_prefix)
2535 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2537 if test $cf_cv_shlib_version = cygdll ; then
2538 TINFO_NAME=$TINFO_ARG_SUFFIX
2542 for cf_dir in $SRC_SUBDIRS
2544 if test ! -d $srcdir/$cf_dir ; then
2546 elif test -f $srcdir/$cf_dir/modules; then
2550 for cf_item in $cf_LIST_MODELS
2552 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2553 if test $cf_item = shared ; then
2554 if test "$cf_cv_do_symlinks" = yes ; then
2555 case "$cf_cv_shlib_version" in #(vi
2557 case "$cf_cv_system_name" in #(vi
2559 case .${LIB_SUFFIX} in
2561 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2562 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2565 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2569 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2573 case "$cf_cv_system_name" in #(vi
2575 case .${LIB_SUFFIX} in
2577 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2578 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2581 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2585 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2590 # cygwin needs import library, and has unique naming convention
2591 # use autodetected ${cf_prefix} for import lib and static lib, but
2592 # use 'cyg' prefix for shared lib.
2593 if test $cf_cv_shlib_version = cygdll ; then
2594 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2595 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2599 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2602 if test $cf_dir = ncurses ; then
2603 cf_subsets="$LIB_SUBSETS"
2604 cf_r_parts="$cf_subsets"
2605 cf_liblist="$LIBS_TO_MAKE"
2607 while test -n "$cf_r_parts"
2609 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2610 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2611 if test "$cf_l_parts" != "$cf_r_parts" ; then
2613 case $cf_l_parts in #(vi
2615 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2618 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2624 if test -n "$cf_item"; then
2625 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2632 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2635 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2636 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2637 $cf_dir/Makefile >$cf_dir/Makefile.out
2638 mv $cf_dir/Makefile.out $cf_dir/Makefile
2640 $AWK -f $srcdir/mk-0th.awk \
2641 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2642 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2644 for cf_subset in $cf_subsets
2647 for cf_item in $cf_LIST_MODELS
2649 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2650 CF_UPPER(cf_ITEM,$cf_item)
2651 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2652 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2654 # Test for case where we build libtinfo with a different name.
2656 if test $cf_dir = ncurses ; then
2659 cf_libname=${cf_libname}$LIB_SUFFIX
2662 cf_libname=$TINFO_LIB_SUFFIX
2665 cf_libname=$TICS_LIB_SUFFIX
2669 cf_libname=${cf_libname}$LIB_SUFFIX
2671 if test -n "${DFT_ARG_SUFFIX}" ; then
2672 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2673 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2676 # These dependencies really are for development, not
2677 # builds, but they are useful in porting, too.
2678 cf_depend="../include/ncurses_cfg.h"
2679 if test "$srcdir" = "."; then
2682 cf_reldir="\${srcdir}"
2685 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2686 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2687 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2688 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2692 old_cf_suffix="$cf_suffix"
2693 if test "$cf_cv_shlib_version_infix" = yes ; then
2694 if test -n "$LIB_SUFFIX" ; then
2697 cf_libname=`echo $cf_libname | sed 's/w$//'`
2698 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2705 $AWK -f $srcdir/mk-1st.awk \
2706 name=${cf_libname}${cf_dir_suffix} \
2707 traces=$LIB_TRACING \
2713 TermlibRoot=$TINFO_NAME \
2714 TermlibSuffix=$TINFO_SUFFIX \
2715 ShlibVer=$cf_cv_shlib_version \
2716 ShlibVerInfix=$cf_cv_shlib_version_infix \
2717 ReLink=${cf_cv_do_relink-no} \
2718 DoLinks=$cf_cv_do_symlinks \
2719 rmSoLocs=$cf_cv_rm_so_locs \
2720 ldconfig="$LDCONFIG" \
2721 overwrite=$WITH_OVERWRITE \
2722 depend="$cf_depend" \
2724 libtool_version="$LIBTOOL_VERSION" \
2725 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2727 cf_suffix="$old_cf_suffix"
2729 for cf_subdir2 in $cf_subdirs lib
2731 test $cf_subdir = $cf_subdir2 && break
2733 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2734 $AWK -f $srcdir/mk-2nd.awk \
2736 traces=$LIB_TRACING \
2742 crenames=$cf_cv_prog_CC_c_o \
2743 cxxrenames=$cf_cv_prog_CXX_c_o \
2744 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2745 cf_subdirs="$cf_subdirs $cf_subdir"
2750 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2753 for cf_dir in $SRC_SUBDIRS
2755 if test ! -d $srcdir/$cf_dir ; then
2759 if test -f $cf_dir/Makefile ; then
2762 echo 'libs \' >> Makefile
2763 echo 'install.libs \' >> Makefile
2764 echo 'uninstall.libs ::' >> Makefile
2765 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2770 if test -f $srcdir/$cf_dir/modules; then
2772 if test -f $srcdir/$cf_dir/headers; then
2773 cat >> Makefile <<CF_EOF
2775 uninstall.includes \\
2778 if test "$cf_dir" != "c++" ; then
2779 echo 'lint \' >> Makefile
2781 cat >> Makefile <<CF_EOF
2787 uninstall.$cf_dir ::
2788 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2790 elif test -f $srcdir/$cf_dir/headers; then
2791 cat >> Makefile <<CF_EOF
2797 uninstall.includes ::
2798 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2803 cat >> Makefile <<CF_EOF
2805 install.libs uninstall.libs \\
2806 install.data uninstall.data ::
2807 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2810 if test "x$cf_with_manpages" = xyes; then
2811 cat >> Makefile <<CF_EOF
2815 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2819 cat >> Makefile <<CF_EOF
2822 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2823 rm -f headers.sh headers.sed mk_shared_lib.sh
2824 rm -f edit_man.* man_alias.*
2825 rm -rf \${DIRS_TO_MAKE}
2828 # Special case: tack's manpage lives in its own directory.
2829 if test "x$cf_with_manpages" = xyes; then
2830 if test -d tack ; then
2831 if test -f $srcdir/$tack.h; then
2832 cat >> Makefile <<CF_EOF
2836 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2842 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2843 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2844 dnl anything, and will make it more standardized. It's awkward to decide this
2845 dnl at configuration because of quoting, so we'll simply make all headers
2846 dnl installed via a script that can do the right thing.
2848 rm -f headers.sed headers.sh
2850 dnl ( generating this script makes the makefiles a little tidier :-)
2851 echo creating headers.sh
2852 cat >headers.sh <<CF_EOF
2854 # This shell script is generated by the 'configure' script. It is invoked in a
2855 # subdirectory of the build tree. It generates a sed-script in the parent
2856 # directory that is used to adjust includes for header files that reside in a
2857 # subdirectory of /usr/include, etc.
2859 while test \[$]# != 3
2861 PRG="\$PRG \[$]1"; shift
2866 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2867 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2868 echo installing \$SRC in \$DST
2871 if test $WITH_CURSES_H = yes; then
2872 cat >>headers.sh <<CF_EOF
2875 END=\`basename \$DST\`
2876 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2878 NAME=\`basename \$i\`
2879 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2889 cat >>headers.sh <<CF_EOF
2892 END=\`basename \$DST\`
2893 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2895 NAME=\`basename \$i\`
2896 if test "\$NAME" = "curses.h"
2898 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2901 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2905 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2910 cat >>headers.sh <<CF_EOF
2912 sed -f \$TMPSED \$SRC > \$TMPSRC
2913 NAME=\`basename \$SRC\`
2915 if test $WITH_CURSES_H != yes; then
2916 cat >>headers.sh <<CF_EOF
2917 test "\$NAME" = "curses.h" && NAME=ncurses.h
2920 cat >>headers.sh <<CF_EOF
2921 # Just in case someone gzip'd manpages, remove the conflicting copy.
2922 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2924 eval \$PRG \$TMPSRC \$DST/\$NAME
2925 rm -f \$TMPSRC \$TMPSED
2928 chmod 0755 headers.sh
2930 for cf_dir in $SRC_SUBDIRS
2932 if test ! -d $srcdir/$cf_dir ; then
2936 if test -f $srcdir/$cf_dir/headers; then
2937 $AWK -f $srcdir/mk-hdr.awk \
2938 subset="$LIB_SUBSETS" \
2939 compat="$WITH_CURSES_H" \
2940 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2943 if test -f $srcdir/$cf_dir/modules; then
2944 if test "$cf_dir" != "c++" ; then
2945 cat >>$cf_dir/Makefile <<"CF_EOF"
2946 depend : ${AUTO_SRC}
2947 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2949 # DO NOT DELETE THIS LINE -- make depend depends on it.
2956 dnl ---------------------------------------------------------------------------
2957 dnl CF_LIB_SONAME version: 4 updated: 2010/05/29 16:31:02
2959 dnl Find the and soname for the given shared library. Set the cache variable
2960 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2961 dnl variable to "unknown".
2965 dnl $3 = library name
2966 AC_DEFUN([CF_LIB_SONAME],
2968 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2970 cf_cv_$3_soname=unknown
2971 if test "$cross_compiling" != yes ; then
2972 cat >conftest.$ac_ext <<CF_EOF
2977 ${cf_cv_main_return:-return}(0);
2980 cf_save_LIBS="$LIBS"
2982 if AC_TRY_EVAL(ac_compile) ; then
2983 if AC_TRY_EVAL(ac_link) ; then
2984 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2985 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2989 LIBS="$cf_save_LIBS"
2993 dnl ---------------------------------------------------------------------------
2994 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
2996 dnl Compute the library file-suffix from the given model name
2998 dnl $2 = variable to set (the nominal library suffix)
2999 dnl $3 = dependency variable to set (actual filename)
3000 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3001 AC_DEFUN([CF_LIB_SUFFIX],
3003 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
3022 case $cf_cv_system_name in
3052 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3053 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
3055 dnl ---------------------------------------------------------------------------
3056 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
3058 dnl Compute the string to append to -library from the given model name
3060 dnl $2 = variable to set
3061 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3062 AC_DEFUN([CF_LIB_TYPE],
3071 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3073 dnl ---------------------------------------------------------------------------
3074 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
3075 dnl ----------------
3076 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
3077 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
3078 dnl have to provide wrappers for global tables to ensure they're linked
3080 AC_DEFUN([CF_LINK_DATAONLY],
3082 AC_MSG_CHECKING([if data-only library module links])
3083 AC_CACHE_VAL(cf_cv_link_dataonly,[
3085 cat >conftest.$ac_ext <<EOF
3086 #line __oline__ "configure"
3087 int testdata[[3]] = { 123, 456, 789 };
3089 if AC_TRY_EVAL(ac_compile) ; then
3090 mv conftest.o data.o && \
3091 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
3093 rm -f conftest.$ac_ext data.o
3094 cat >conftest.$ac_ext <<EOF
3095 #line __oline__ "configure"
3099 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
3101 extern int testdata[[3]];
3102 return testdata[[0]] == 123
3103 && testdata[[1]] == 456
3104 && testdata[[2]] == 789;
3108 if AC_TRY_EVAL(ac_compile); then
3109 mv conftest.o func.o && \
3110 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
3112 rm -f conftest.$ac_ext func.o
3113 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
3115 LIBS="conftest.a $LIBS"
3119 extern int testfunc();
3120 ${cf_cv_main_return:-return} (!testfunc());
3123 [cf_cv_link_dataonly=yes],
3124 [cf_cv_link_dataonly=no],
3125 [cf_cv_link_dataonly=unknown])
3128 AC_MSG_RESULT($cf_cv_link_dataonly)
3130 if test "$cf_cv_link_dataonly" = no ; then
3131 AC_DEFINE(BROKEN_LINKER)
3136 dnl ---------------------------------------------------------------------------
3137 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
3139 dnl Most Unix systems have both link and symlink, a few don't have symlink.
3140 dnl A few non-Unix systems implement symlink, but not link.
3141 dnl A few non-systems implement neither (or have nonfunctional versions).
3142 AC_DEFUN([CF_LINK_FUNCS],
3148 if test "$cross_compiling" = yes ; then
3153 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
3155 for cf_func in link symlink ; do
3157 #include <sys/types.h>
3158 #include <sys/stat.h>
3159 #ifdef HAVE_UNISTD_H
3165 char *src = "config.log";
3166 char *dst = "conftest.chk";
3171 fail = ($cf_func("config.log", "conftest.chk") < 0)
3172 || (stat(dst, &dst_sb) < 0)
3173 || (dst_sb.st_mtime != src_sb.st_mtime);
3179 ${cf_cv_main_return:-return} (fail);
3182 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
3183 eval 'ac_cv_func_'$cf_func'=yes'],[
3184 eval 'ac_cv_func_'$cf_func'=no'],[
3185 eval 'ac_cv_func_'$cf_func'=error'])
3187 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
3189 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
3190 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
3193 dnl ---------------------------------------------------------------------------
3194 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
3196 dnl Check if a return from main to the shell actually returns the same exit
3197 dnl code. This is true for almost any POSIX environment.
3199 dnl Some very old environments did not flush stdout, etc., on an exit. That
3200 dnl would be a useful case to test for also.
3201 AC_DEFUN([CF_MAIN_RETURN],
3203 cf_cv_main_return=return
3205 dnl ---------------------------------------------------------------------------
3206 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
3208 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
3209 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
3210 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
3211 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
3212 AC_DEFUN([CF_MAKEFLAGS],
3214 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
3216 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
3218 cat >cf_makeflags.tmp <<CF_EOF
3221 @ echo '.$cf_option'
3223 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
3224 case "$cf_result" in
3226 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
3227 case "$cf_result" in
3228 .*CC=*) cf_cv_makeflags=
3230 *) cf_cv_makeflags=$cf_option
3236 *) echo "given option \"$cf_option\", no match \"$cf_result\""
3240 rm -f cf_makeflags.tmp
3243 AC_SUBST(cf_cv_makeflags)
3245 dnl ---------------------------------------------------------------------------
3246 dnl CF_MAKE_TAGS version: 5 updated: 2010/04/03 20:07:32
3248 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
3249 dnl a monocase filesystem.
3250 AC_DEFUN([CF_MAKE_TAGS],[
3251 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
3253 AC_CHECK_PROGS(CTAGS, exctags ctags)
3254 AC_CHECK_PROGS(ETAGS, exetags etags)
3256 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS-ctags}, yes, no)
3258 if test "$cf_cv_mixedcase" = yes ; then
3259 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS-etags}, yes, no)
3264 if test "$MAKE_UPPER_TAGS" = yes ; then
3270 if test "$MAKE_LOWER_TAGS" = yes ; then
3279 AC_SUBST(MAKE_UPPER_TAGS)
3280 AC_SUBST(MAKE_LOWER_TAGS)
3282 dnl ---------------------------------------------------------------------------
3283 dnl CF_MANPAGE_FORMAT version: 8 updated: 2009/01/11 20:30:50
3284 dnl -----------------
3285 dnl Option to allow user to override automatic configuration of manpage format.
3286 dnl There are several special cases:
3288 dnl gzip - man checks for, can display gzip'd files
3289 dnl compress - man checks for, can display compressed files
3290 dnl BSDI - files in the cat-directories are suffixed ".0"
3291 dnl formatted - installer should format (put files in cat-directory)
3292 dnl catonly - installer should only format, e.g., for a turnkey system.
3294 dnl There are other configurations which this macro does not test, e.g., HPUX's
3295 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
3296 dnl convention would not match our use).
3297 AC_DEFUN([CF_MANPAGE_FORMAT],
3299 AC_REQUIRE([CF_PATHSEP])
3300 AC_MSG_CHECKING(format of man-pages)
3302 AC_ARG_WITH(manpage-format,
3303 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
3304 optionally formatted/catonly, e.g., gzip,formatted],
3305 [MANPAGE_FORMAT=$withval],
3306 [MANPAGE_FORMAT=unknown])
3308 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
3309 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
3313 case $MANPAGE_FORMAT in
3315 if test -z "$MANPATH" ; then
3316 MANPATH="/usr/man:/usr/share/man"
3319 # look for the 'date' man-page (it's most likely to be installed!)
3325 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
3326 for cf_dir in $MANPATH; do
3327 test -z "$cf_dir" && cf_dir=/usr/man
3328 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
3330 cf_test=`echo $cf_name | sed -e 's/*//'`
3331 if test "x$cf_test" = "x$cf_name" ; then
3334 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3335 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3336 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3337 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3351 # if we found a match in either man* or cat*, stop looking
3352 if test -n "$MANPAGE_FORMAT" ; then
3354 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3355 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3361 test $cf_found=yes && break
3364 # only check the first directory in $MANPATH where we find manpages
3365 if test -n "$MANPAGE_FORMAT" ; then
3369 # if we did not find the example, just assume it is normal
3370 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3374 for cf_option in $MANPAGE_FORMAT; do
3375 case $cf_option in #(vi
3376 gzip|compress|BSDI|normal|formatted|catonly)
3379 cf_unknown="$cf_unknown $cf_option"
3386 AC_MSG_RESULT($MANPAGE_FORMAT)
3387 if test -n "$cf_unknown" ; then
3388 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3391 dnl ---------------------------------------------------------------------------
3392 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3393 dnl ------------------
3394 dnl The Debian people have their own naming convention for manpages. This
3395 dnl option lets us override the name of the file containing renaming, or
3396 dnl disable it altogether.
3397 AC_DEFUN([CF_MANPAGE_RENAMES],
3399 AC_MSG_CHECKING(for manpage renaming)
3401 AC_ARG_WITH(manpage-renames,
3402 [ --with-manpage-renames specify manpage-renaming],
3403 [MANPAGE_RENAMES=$withval],
3404 [MANPAGE_RENAMES=yes])
3406 case ".$MANPAGE_RENAMES" in #(vi
3410 # Debian 'man' program?
3411 if test -f /etc/debian_version ; then
3412 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3419 if test "$MANPAGE_RENAMES" != no ; then
3420 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3421 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3422 elif test ! -f $MANPAGE_RENAMES ; then
3423 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3426 test ! -d man && mkdir man
3428 # Construct a sed-script to perform renaming within man-pages
3429 if test -n "$MANPAGE_RENAMES" ; then
3430 test ! -d man && mkdir man
3431 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3435 AC_MSG_RESULT($MANPAGE_RENAMES)
3436 AC_SUBST(MANPAGE_RENAMES)
3438 dnl ---------------------------------------------------------------------------
3439 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3440 dnl -------------------
3441 dnl Some people expect each tool to make all aliases for manpages in the
3442 dnl man-directory. This accommodates the older, less-capable implementations
3443 dnl of 'man', and is optional.
3444 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3446 AC_MSG_CHECKING(if manpage aliases will be installed)
3448 AC_ARG_WITH(manpage-aliases,
3449 [ --with-manpage-aliases specify manpage-aliases using .so],
3450 [MANPAGE_ALIASES=$withval],
3451 [MANPAGE_ALIASES=yes])
3453 AC_MSG_RESULT($MANPAGE_ALIASES)
3455 if test "$LN_S" = "ln -s"; then
3462 if test "$MANPAGE_ALIASES" = yes ; then
3463 AC_MSG_CHECKING(if manpage symlinks should be used)
3465 AC_ARG_WITH(manpage-symlinks,
3466 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3467 [MANPAGE_SYMLINKS=$withval],
3468 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3470 if test "$$cf_use_symlinks" = no; then
3471 if test "$MANPAGE_SYMLINKS" = yes ; then
3472 AC_MSG_WARN(cannot make symlinks, will use .so files)
3477 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3481 dnl ---------------------------------------------------------------------------
3482 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3484 dnl This option causes manpages to be run through tbl(1) to generate tables
3486 AC_DEFUN([CF_MANPAGE_TBL],
3488 AC_MSG_CHECKING(for manpage tbl)
3490 AC_ARG_WITH(manpage-tbl,
3491 [ --with-manpage-tbl specify manpage processing with tbl],
3492 [MANPAGE_TBL=$withval],
3495 AC_MSG_RESULT($MANPAGE_TBL)
3497 dnl ---------------------------------------------------------------------------
3498 dnl CF_MAN_PAGES version: 37 updated: 2010/05/15 16:05:34
3500 dnl Try to determine if the man-pages on the system are compressed, and if
3501 dnl so, what format is used. Use this information to construct a script that
3502 dnl will install man-pages.
3503 AC_DEFUN([CF_MAN_PAGES],
3505 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3511 if test "$prefix" = "NONE" ; then
3512 cf_prefix="$ac_default_prefix"
3517 case "$MANPAGE_FORMAT" in # (vi
3532 test ! -d man && mkdir man
3536 case "$MANPAGE_FORMAT" in #(vi
3539 cf_compress=compress
3547 cf_edit_man=./edit_man.sh
3548 cf_man_alias=`pwd`/man_alias.sed
3550 cat >$cf_edit_man <<CF_EOF
3552 # this script is generated by the configure-script CF_MAN_PAGES macro.
3557 NCURSES_MAJOR="$NCURSES_MAJOR"
3558 NCURSES_MINOR="$NCURSES_MINOR"
3559 NCURSES_PATCH="$NCURSES_PATCH"
3561 NCURSES_OSPEED="$NCURSES_OSPEED"
3562 TERMINFO="$TERMINFO"
3565 INSTALL_DATA="$INSTALL_DATA"
3567 transform="$program_transform_name"
3569 TMP=\${TMPDIR-/tmp}/man\$\$
3570 trap "rm -f \$TMP" 0 1 2 5 15
3582 top_srcdir=\[$]srcdir/..
3585 if test "\$form" = normal ; then
3586 if test "$cf_format" = yes ; then
3587 if test "$cf_inboth" = no ; then
3588 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3592 cf_subdir=\$mandir/man
3593 cf_tables=$MANPAGE_TBL
3595 cf_subdir=\$mandir/cat
3599 # process the list of source-files
3602 *.orig|*.rej) ;; #(vi
3604 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3605 if test \$verb = installing ; then
3606 if test ! -d \$cf_subdir\${section} ; then
3607 mkdir -p \$cf_subdir\$section
3611 # replace variables in man page
3612 if test ! -f $cf_man_alias ; then
3613 cat >>$cf_man_alias <<-CF_EOF2
3614 s,@DATADIR@,\$datadir,g
3615 s,@TERMINFO@,\$TERMINFO,g
3616 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3617 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3618 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3619 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3624 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3625 cf_name=`echo $cf_name|sed "$program_transform_name"`
3626 cat >>$cf_edit_man <<-CF_EOF
3627 s,@$cf_NAME@,$cf_name,g
3631 cat >>$cf_edit_man <<CF_EOF
3633 echo "...made $cf_man_alias"
3637 cf_source=\`basename \$i\`
3639 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3640 if test ! -f \$inalias ; then
3641 echo .. skipped \$cf_source
3646 if test "$MANPAGE_ALIASES" != no ; then
3647 cat >>$cf_edit_man <<CF_EOF
3648 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3652 if test "$MANPAGE_RENAMES" = no ; then
3653 cat >>$cf_edit_man <<CF_EOF
3654 # perform program transformations for section 1 man pages
3655 if test \$section = 1 ; then
3656 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3658 cf_target=\$cf_subdir\${section}/\$cf_source
3662 cat >>$cf_edit_man <<CF_EOF
3663 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3664 if test -z "\$cf_target" ; then
3665 echo '? missing rename for '\$cf_source
3666 cf_target="\$cf_source"
3668 cf_target="\$cf_subdir\${section}/\${cf_target}"
3673 cat >>$cf_edit_man <<CF_EOF
3674 sed -f $cf_man_alias \\
3677 if test -f $MANPAGE_RENAMES ; then
3678 cat >>$cf_edit_man <<CF_EOF
3679 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3682 cat >>$cf_edit_man <<CF_EOF
3687 cat >>$cf_edit_man <<CF_EOF
3688 if test \$cf_tables = yes ; then
3689 tbl \$TMP >\$TMP.out
3694 if test $with_curses_h != yes ; then
3695 cat >>$cf_edit_man <<CF_EOF
3696 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3701 cat >>$cf_edit_man <<CF_EOF
3702 if test \$form = format ; then
3703 nroff -man \$TMP >\$TMP.out
3708 if test -n "$cf_compress" ; then
3709 cat >>$cf_edit_man <<CF_EOF
3710 if test \$verb = installing ; then
3711 if ( $cf_compress -f \$TMP )
3713 mv \$TMP.$cf_so_strip \$TMP
3716 cf_target="\$cf_target.$cf_so_strip"
3720 case "$MANPAGE_FORMAT" in #(vi
3722 cat >>$cf_edit_man <<CF_EOF
3723 if test \$form = format ; then
3724 # BSDI installs only .0 suffixes in the cat directories
3725 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3731 cat >>$cf_edit_man <<CF_EOF
3732 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3733 if test \$verb = installing ; then
3734 echo \$verb \$cf_target
3735 \$INSTALL_DATA \$TMP \$cf_target
3736 test -d \$cf_subdir\${section} &&
3737 test -n "\$aliases" && (
3738 cd \$cf_subdir\${section} && (
3739 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3740 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3741 cf_target=\`basename \$cf_target\`
3742 for cf_alias in \$aliases
3744 if test \$section = 1 ; then
3745 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3748 if test "$MANPAGE_SYMLINKS" = yes ; then
3749 if test -f \$cf_alias\${suffix} ; then
3750 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3755 echo .. \$verb alias \$cf_alias\${suffix}
3756 rm -f \$cf_alias\${suffix}
3757 $LN_S \$cf_target \$cf_alias\${suffix}
3758 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3759 echo ".so \$cf_source" >\$TMP
3761 if test -n "$cf_compress" ; then
3762 cat >>$cf_edit_man <<CF_EOF
3763 if test -n "$cf_so_strip" ; then
3764 $cf_compress -f \$TMP
3765 mv \$TMP.$cf_so_strip \$TMP
3769 cat >>$cf_edit_man <<CF_EOF
3770 echo .. \$verb alias \$cf_alias\${suffix}
3771 rm -f \$cf_alias\${suffix}
3772 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3777 elif test \$verb = removing ; then
3778 test -f \$cf_target && (
3779 echo \$verb \$cf_target
3782 test -d \$cf_subdir\${section} &&
3783 test -n "\$aliases" && (
3784 cd \$cf_subdir\${section} && (
3785 for cf_alias in \$aliases
3787 if test \$section = 1 ; then
3788 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3791 echo .. \$verb alias \$cf_alias\${suffix}
3792 rm -f \$cf_alias\${suffix}
3804 if test $cf_inboth = yes ; then
3805 if test \$form != format ; then
3806 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3812 chmod 755 $cf_edit_man
3815 dnl ---------------------------------------------------------------------------
3816 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
3818 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3819 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3820 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3821 AC_DEFUN([CF_MATH_LIB],
3823 AC_CACHE_CHECK(if -lm needed for math functions,
3829 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
3830 [cf_cv_need_libm=no],
3831 [cf_cv_need_libm=yes])])
3832 if test "$cf_cv_need_libm" = yes
3839 dnl ---------------------------------------------------------------------------
3840 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3841 dnl ----------------------
3842 dnl Check if the file-system supports mixed-case filenames. If we're able to
3843 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3844 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3846 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3847 if test "$cross_compiling" = yes ; then
3848 case $target_alias in #(vi
3849 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3857 rm -f conftest CONFTEST
3859 if test -f CONFTEST ; then
3864 rm -f conftest CONFTEST
3867 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3869 dnl ---------------------------------------------------------------------------
3870 dnl CF_MKSTEMP version: 6 updated: 2010/05/22 14:44:30
3872 dnl Check for a working mkstemp. This creates two files, checks that they are
3873 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3874 AC_DEFUN([CF_MKSTEMP],[
3875 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3878 #include <sys/types.h>
3882 #include <sys/stat.h>
3885 char *tmpl = "conftestXXXXXX";
3893 for (n = 0; n < 2; ++n) {
3894 strcpy(name[n], tmpl);
3895 if ((fd = mkstemp(name[n])) >= 0) {
3896 if (!strcmp(name[n], tmpl)
3897 || stat(name[n], &sb) != 0
3898 || (sb.st_mode & S_IFMT) != S_IFREG
3899 || (sb.st_mode & 077) != 0) {
3906 && !strcmp(name[0], name[1]))
3908 ${cf_cv_main_return:-return}(result);
3910 ],[cf_cv_func_mkstemp=yes
3911 ],[cf_cv_func_mkstemp=no
3912 ],[AC_CHECK_FUNC(mkstemp)
3915 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
3916 AC_DEFINE(HAVE_MKSTEMP)
3919 dnl ---------------------------------------------------------------------------
3920 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3922 dnl Write a debug message to config.log, along with the line number in the
3923 dnl configure script.
3924 AC_DEFUN([CF_MSG_LOG],[
3925 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3927 dnl ---------------------------------------------------------------------------
3928 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3929 dnl ----------------
3930 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3931 dnl warn about this.
3932 AC_DEFUN([CF_NCURSES_ABI_6],[
3933 if test "${with_abi_version+set}" != set; then
3934 case $cf_cv_rel_version in
3936 cf_cv_rel_version=6.0
3938 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3943 dnl ---------------------------------------------------------------------------
3944 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3945 dnl ------------------
3946 dnl see CF_WITH_NO_LEAKS
3947 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3948 AC_MSG_CHECKING(if you want to use $1 for testing)
3951 [AC_DEFINE($3)ifelse([$4],,[
3954 : ${with_cflags:=-g}
3955 : ${with_no_leaks:=yes}
3958 AC_MSG_RESULT(${with_$1:-no})
3960 case .$with_cflags in #(vi
3962 case .$CFLAGS in #(vi
3972 dnl ---------------------------------------------------------------------------
3973 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3974 dnl ----------------
3975 dnl Check if the given variable is a number. If not, report an error.
3976 dnl $1 is the variable
3977 dnl $2 is the message
3978 AC_DEFUN([CF_NUMBER_SYNTAX],[
3979 if test -n "$1" ; then
3984 AC_MSG_ERROR($2 is not a number: $1)
3988 AC_MSG_ERROR($2 value is empty)
3991 dnl ---------------------------------------------------------------------------
3992 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3994 dnl Compute the object-directory name from the given model name
3995 AC_DEFUN([CF_OBJ_SUBDIR],
3998 libtool) $2='obj_lo' ;;
3999 normal) $2='objects' ;;
4000 debug) $2='obj_g' ;;
4001 profile) $2='obj_p' ;;
4003 case $cf_cv_system_name in #(vi
4011 dnl ---------------------------------------------------------------------------
4012 dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
4014 dnl Provide a value for the $PATH and similar separator
4015 AC_DEFUN([CF_PATHSEP],
4017 case $cf_cv_system_name in
4018 os2*) PATH_SEPARATOR=';' ;;
4019 *) PATH_SEPARATOR=':' ;;
4021 ifelse([$1],,,[$1=$PATH_SEPARATOR])
4022 AC_SUBST(PATH_SEPARATOR)
4024 dnl ---------------------------------------------------------------------------
4025 dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
4027 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
4028 dnl begins with one of the prefix/exec_prefix variables, and then again if the
4029 dnl result begins with 'NONE'. This is necessary to work around autoconf's
4030 dnl delayed evaluation of those symbols.
4031 AC_DEFUN([CF_PATH_SYNTAX],[
4032 if test "x$prefix" != xNONE; then
4033 cf_path_syntax="$prefix"
4035 cf_path_syntax="$ac_default_prefix"
4038 case ".[$]$1" in #(vi
4039 .\[$]\(*\)*|.\'*\'*) #(vi
4043 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
4045 .\[$]{*prefix}*) #(vi
4047 case ".[$]$1" in #(vi
4049 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4054 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4057 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
4061 dnl ---------------------------------------------------------------------------
4062 dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
4064 dnl Check for the package-config program, unless disabled by command-line.
4065 AC_DEFUN([CF_PKG_CONFIG],
4067 AC_MSG_CHECKING(if you want to use pkg-config)
4068 AC_ARG_WITH(pkg-config,
4069 [ --with-pkg-config{=path} enable/disable use of pkg-config],
4070 [cf_pkg_config=$withval],
4071 [cf_pkg_config=yes])
4072 AC_MSG_RESULT($cf_pkg_config)
4074 case $cf_pkg_config in #(vi
4079 AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
4086 test -z "$PKG_CONFIG" && PKG_CONFIG=none
4087 if test "$PKG_CONFIG" != none ; then
4088 CF_PATH_SYNTAX(PKG_CONFIG)
4091 AC_SUBST(PKG_CONFIG)
4093 dnl ---------------------------------------------------------------------------
4094 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
4095 dnl -----------------
4096 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
4098 dnl POSIX.1-1990 _POSIX_SOURCE
4099 dnl POSIX.1-1990 and _POSIX_SOURCE and
4100 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
4102 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
4103 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
4104 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
4107 dnl $1 is the nominal value for _POSIX_C_SOURCE
4108 AC_DEFUN([CF_POSIX_C_SOURCE],
4110 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
4112 cf_save_CFLAGS="$CFLAGS"
4113 cf_save_CPPFLAGS="$CPPFLAGS"
4115 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4116 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4118 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4119 CF_MSG_LOG(if the symbol is already defined go no further)
4120 AC_TRY_COMPILE([#include <sys/types.h>],[
4121 #ifndef _POSIX_C_SOURCE
4124 [cf_cv_posix_c_source=no],
4125 [cf_want_posix_source=no
4126 case .$cf_POSIX_C_SOURCE in #(vi
4128 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4131 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4132 cf_want_posix_source=yes
4135 cf_want_posix_source=yes
4138 if test "$cf_want_posix_source" = yes ; then
4139 AC_TRY_COMPILE([#include <sys/types.h>],[
4140 #ifdef _POSIX_SOURCE
4143 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4145 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4146 CFLAGS="$cf_trim_CFLAGS"
4147 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
4148 CF_MSG_LOG(if the second compile does not leave our definition intact error)
4149 AC_TRY_COMPILE([#include <sys/types.h>],[
4150 #ifndef _POSIX_C_SOURCE
4153 [cf_cv_posix_c_source=no])
4154 CFLAGS="$cf_save_CFLAGS"
4155 CPPFLAGS="$cf_save_CPPFLAGS"
4159 if test "$cf_cv_posix_c_source" != no ; then
4160 CFLAGS="$cf_trim_CFLAGS"
4161 CPPFLAGS="$cf_trim_CPPFLAGS"
4162 CF_ADD_CFLAGS($cf_cv_posix_c_source)
4166 dnl ---------------------------------------------------------------------------
4167 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
4169 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
4171 dnl $1 = symbol to test
4172 dnl $2 = value (if any) to use for a predefinition
4173 AC_DEFUN([CF_PREDEFINE],
4175 AC_MSG_CHECKING(if we must define $1)
4176 AC_TRY_COMPILE([#include <sys/types.h>
4180 #endif],[cf_result=no],[cf_result=yes])
4181 AC_MSG_RESULT($cf_result)
4183 if test "$cf_result" = yes ; then
4184 CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
4185 elif test "x$2" != "x" ; then
4186 AC_MSG_CHECKING(checking for compatible value versus $2)
4187 AC_TRY_COMPILE([#include <sys/types.h>
4191 #endif],[cf_result=yes],[cf_result=no])
4192 AC_MSG_RESULT($cf_result)
4193 if test "$cf_result" = no ; then
4194 # perhaps we can override it - try...
4195 CPPFLAGS="$CPPFLAGS -D$1=$2"
4199 dnl ---------------------------------------------------------------------------
4200 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
4202 dnl Append definitions and rules for the given programs to the subdirectory
4203 dnl Makefiles, and the recursion rule for the top-level Makefile.
4206 dnl $1 = script to run
4207 dnl $2 = list of subdirectories
4211 AC_DEFUN([CF_PRG_RULES],
4215 if test ! -d $srcdir/$cf_dir; then
4217 elif test -f $srcdir/$cf_dir/programs; then
4218 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
4223 dnl ---------------------------------------------------------------------------
4224 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4226 dnl Check for archiver "ar".
4227 AC_DEFUN([CF_PROG_AR],[
4228 AC_CHECK_TOOL(AR, ar, ar)
4230 dnl ---------------------------------------------------------------------------
4231 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
4233 dnl Check for awk, ensure that the check found something.
4234 AC_DEFUN([CF_PROG_AWK],
4237 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
4239 dnl ---------------------------------------------------------------------------
4240 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
4242 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
4243 dnl the output file can be renamed, and allows for a shell variable that can
4244 dnl be used later. The parameter is either CC or CXX. The result is the
4246 dnl $cf_cv_prog_CC_c_o
4247 dnl $cf_cv_prog_CXX_c_o
4248 AC_DEFUN([CF_PROG_CC_C_O],
4249 [AC_REQUIRE([AC_PROG_CC])dnl
4250 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
4251 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
4253 cat > conftest.$ac_ext <<CF_EOF
4257 ${cf_cv_main_return:-return}(0);
4260 # We do the test twice because some compilers refuse to overwrite an
4261 # existing .o file with -o, though they will create one.
4262 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
4263 if AC_TRY_EVAL(ac_try) &&
4264 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
4266 eval cf_cv_prog_$1_c_o=yes
4268 eval cf_cv_prog_$1_c_o=no
4272 if test $cf_cv_prog_$1_c_o = yes; then
4273 AC_MSG_RESULT([yes])
4278 dnl ---------------------------------------------------------------------------
4279 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
4281 dnl Check if C (preprocessor) -U and -D options are processed in the order
4282 dnl given rather than by type of option. Some compilers insist on apply all
4283 dnl of the -U options after all of the -D options. Others allow mixing them,
4284 dnl and may predefine symbols that conflict with those we define.
4285 AC_DEFUN([CF_PROG_CC_U_D],
4287 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
4288 cf_save_CPPFLAGS="$CPPFLAGS"
4289 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
4292 make an undefined-error
4295 make a defined-error
4298 cf_cv_cc_u_d_options=yes],[
4299 cf_cv_cc_u_d_options=no])
4300 CPPFLAGS="$cf_save_CPPFLAGS"
4303 dnl ---------------------------------------------------------------------------
4304 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4306 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4307 dnl This macro adds a check to ensure the script found something.
4308 AC_DEFUN([CF_PROG_EGREP],
4309 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4310 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4311 then ac_cv_prog_egrep='grep -E'
4312 else ac_cv_prog_egrep='egrep'
4314 EGREP=$ac_cv_prog_egrep
4316 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4318 dnl ---------------------------------------------------------------------------
4319 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4321 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4322 AC_DEFUN([CF_PROG_EXT],
4324 AC_REQUIRE([CF_CHECK_CACHE])
4325 case $cf_cv_system_name in
4327 CFLAGS="$CFLAGS -Zmt"
4328 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4329 CXXFLAGS="$CXXFLAGS -Zmt"
4330 # autoconf's macro sets -Zexe and suffix both, which conflict:w
4331 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4341 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4343 dnl ---------------------------------------------------------------------------
4344 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4346 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
4347 dnl misc/tabset install won't work properly. Usually this happens only when
4348 dnl using the fallback mkinstalldirs script
4349 AC_DEFUN([CF_PROG_INSTALL],
4355 CF_DIRNAME(cf_dir,$INSTALL)
4356 test -z "$cf_dir" && cf_dir=.
4357 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4361 dnl ---------------------------------------------------------------------------
4362 dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
4363 dnl ----------------
4364 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4365 dnl and then used in the install.
4366 AC_DEFUN([CF_PROG_LDCONFIG],[
4367 if test "$cross_compiling" = yes ; then
4370 case "$cf_cv_system_name" in #(vi
4371 dragonfly*|freebsd*) #(vi
4372 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4374 *) LDPATH=$PATH:/sbin:/usr/sbin
4375 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4381 dnl ---------------------------------------------------------------------------
4382 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
4384 AC_DEFUN([CF_PROG_LINT],
4386 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
4389 dnl ---------------------------------------------------------------------------
4390 dnl CF_REGEX version: 7 updated: 2010/05/29 16:31:02
4392 dnl Attempt to determine if we've got one of the flavors of regular-expression
4393 dnl code that we can support.
4394 AC_DEFUN([CF_REGEX],
4399 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
4400 for cf_regex_lib in regex re
4402 AC_CHECK_LIB($cf_regex_lib,regcomp,[
4403 CF_ADD_LIB($cf_regex_lib)
4404 cf_regex_func=regcomp
4409 if test "$cf_regex_func" = no ; then
4410 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
4411 AC_CHECK_LIB(gen,compile,[
4413 cf_regex_func=compile])])
4416 if test "$cf_regex_func" = no ; then
4417 AC_MSG_WARN(cannot find regular expression library)
4420 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
4423 case $cf_regex_func in #(vi
4425 for cf_regex_hdr in regexp.h regexpr.h
4427 AC_TRY_LINK([#include <$cf_regex_hdr>],[
4428 char *p = compile("", "", "", 0);
4429 int x = step("", "");
4431 cf_cv_regex_hdrs=$cf_regex_hdr
4437 for cf_regex_hdr in regex.h
4439 AC_TRY_LINK([#include <sys/types.h>
4440 #include <$cf_regex_hdr>],[
4442 int x = regcomp(p, "", 0);
4443 int y = regexec(p, "", 0, 0, 0);
4446 cf_cv_regex_hdrs=$cf_regex_hdr
4455 case $cf_cv_regex_hdrs in #(vi
4456 no) AC_MSG_WARN(no regular expression header found) ;; #(vi
4457 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
4458 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
4459 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4462 dnl ---------------------------------------------------------------------------
4463 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
4464 dnl ----------------
4465 dnl Remove all -U and -D options that refer to the given symbol from a list
4466 dnl of C compiler options. This works around the problem that not all
4467 dnl compilers process -U and -D options from left-to-right, so a -U option
4468 dnl cannot be used to cancel the effect of a preceding -D option.
4470 dnl $1 = target (which could be the same as the source variable)
4471 dnl $2 = source (including '$')
4472 dnl $3 = symbol to remove
4473 define([CF_REMOVE_DEFINE],
4476 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
4477 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
4479 dnl ---------------------------------------------------------------------------
4480 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4482 dnl Remove the given library from the symbol
4484 dnl $1 = target (which could be the same as the source variable)
4485 dnl $2 = source (including '$')
4486 dnl $3 = library to remove
4487 define([CF_REMOVE_LIB],
4489 # remove $3 library from $2
4490 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4492 dnl ---------------------------------------------------------------------------
4493 dnl CF_RPATH_HACK version: 8 updated: 2010/04/17 15:38:58
4495 AC_DEFUN([CF_RPATH_HACK],
4497 AC_REQUIRE([CF_LD_RPATH_OPT])
4498 AC_MSG_CHECKING(for updated LDFLAGS)
4499 if test -n "$LD_RPATH_OPT" ; then
4500 AC_MSG_RESULT(maybe)
4502 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
4503 cf_rpath_list="/usr/lib /lib"
4504 if test "$cf_ldd_prog" != no
4506 AC_TRY_LINK([#include <stdio.h>],
4508 [cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`])
4511 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4513 CF_RPATH_HACK_2(LDFLAGS)
4514 CF_RPATH_HACK_2(LIBS)
4516 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4518 AC_SUBST(EXTRA_LDFLAGS)
4520 dnl ---------------------------------------------------------------------------
4521 dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
4523 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
4524 dnl EXTRA_LDFLAGS for each -L option found.
4526 dnl $cf_rpath_list contains a list of directories to ignore.
4528 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
4529 dnl but LIBS often has misplaced -L options.
4530 AC_DEFUN([CF_RPATH_HACK_2],
4532 CF_VERBOSE(...checking $1 [$]$1)
4535 for cf_rpath_src in [$]$1
4537 case $cf_rpath_src in #(vi
4540 # check if this refers to a directory which we will ignore
4542 if test -n "$cf_rpath_list"
4544 for cf_rpath_item in $cf_rpath_list
4546 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
4554 if test "$cf_rpath_skip" = no
4556 # transform the option
4557 if test "$LD_RPATH_OPT" = "-R " ; then
4558 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
4560 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
4563 # if we have not already added this, add it now
4564 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
4565 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
4567 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
4568 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4573 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4577 CF_VERBOSE(...checked $1 [$]$1)
4578 AC_SUBST(EXTRA_LDFLAGS)
4580 dnl ---------------------------------------------------------------------------
4581 dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16
4584 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4587 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4588 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4589 dnl We avoid compiling-in a ../lib path for the shared library since that can
4590 dnl lead to unexpected results at runtime.
4591 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4592 dnl are compiled in ../../lib
4594 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4595 dnl to install symbolic links to the rel/abi versions of shared libraries.
4597 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4598 dnl version when making symbolic links.
4600 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4601 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4602 dnl (ex: libncurses.so.<ver>).
4604 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4605 AC_DEFUN([CF_SHARED_OPTS],
4607 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4608 AC_REQUIRE([CF_LD_RPATH_OPT])
4612 INSTALL_LIB="-m 644"
4614 cf_cv_do_symlinks=no
4616 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
4618 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4619 AC_ARG_WITH(shlib-version,
4620 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4621 [test -z "$withval" && withval=auto
4622 case $withval in #(vi
4624 cf_cv_shlib_version=auto
4626 rel|abi|auto|no) #(vi
4627 cf_cv_shlib_version=$withval
4630 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4633 ],[cf_cv_shlib_version=auto])
4634 AC_MSG_RESULT($cf_cv_shlib_version)
4638 # Some less-capable ports of gcc support only -fpic
4640 if test "$GCC" = yes
4642 AC_MSG_CHECKING(which $CC option to use)
4643 cf_save_CFLAGS="$CFLAGS"
4644 for CC_SHARED_OPTS in -fPIC -fpic ''
4646 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4647 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4649 AC_MSG_RESULT($CC_SHARED_OPTS)
4650 CFLAGS="$cf_save_CFLAGS"
4653 cf_cv_shlib_version_infix=no
4655 case $cf_cv_system_name in #(vi
4657 if test "$GCC" = yes; then
4659 MK_SHARED_LIB='$(CC) -shared'
4663 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4667 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4668 cf_cv_shlib_version=cygdll
4669 cf_cv_shlib_version_infix=cygdll
4670 cat >mk_shared_lib.sh <<-CF_EOF
4673 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4676 Linking shared library
4677 ** SHARED_LIB \[$]SHARED_LIB
4678 ** IMPORT_LIB \[$]IMPORT_LIB
4680 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4682 chmod +x mk_shared_lib.sh
4685 EXTRA_CFLAGS="-no-cpp-precomp"
4686 CC_SHARED_OPTS="-dynamic"
4687 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4688 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4689 cf_cv_shlib_version_infix=yes
4690 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4691 cf_save_LDFLAGS=$LDFLAGS
4692 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4693 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4694 LDFLAGS=$cf_save_LDFLAGS])
4695 if test $cf_cv_ldflags_search_paths_first = yes; then
4696 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4700 # (tested with gcc 2.7.2 -- I don't have c89)
4701 if test "$GCC" = yes; then
4702 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4705 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4707 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4708 # HP-UX shared libraries must be executable, and should be
4709 # readonly to exploit a quirk in the memory manager.
4710 INSTALL_LIB="-m 555"
4713 if test "$cf_cv_enable_rpath" = yes ; then
4714 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4716 # tested with IRIX 5.2 and 'cc'.
4717 if test "$GCC" != yes; then
4718 CC_SHARED_OPTS='-KPIC'
4719 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4721 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4723 cf_cv_rm_so_locs=yes
4725 linux*|gnu*|k*bsd*-gnu) #(vi
4726 if test "$DFT_LWR_MODEL" = "shared" ; then
4727 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4728 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4730 if test "$cf_cv_enable_rpath" = yes ; then
4731 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4734 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4736 openbsd[[2-9]].*) #(vi
4737 if test "$DFT_LWR_MODEL" = "shared" ; then
4738 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4739 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4741 if test "$cf_cv_enable_rpath" = yes ; then
4742 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4744 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4746 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4748 nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
4749 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4750 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4751 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4754 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4755 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4756 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4757 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
4758 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4761 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
4764 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4765 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4766 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4767 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4768 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4769 if test "$cf_cv_shlib_version" = auto; then
4770 if test -f /usr/libexec/ld.elf_so; then
4771 cf_cv_shlib_version=abi
4773 cf_cv_shlib_version=rel
4777 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4779 MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
4783 # tested with OSF/1 V3.2 and 'cc'
4784 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4785 # link with shared libs).
4786 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4787 case $host_os in #(vi
4789 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4792 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4793 if test "$DFT_LWR_MODEL" = "shared" ; then
4794 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4795 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4797 cf_cv_rm_so_locs=yes
4799 sco3.2v5*) # (also uw2* and UW7: hops 13-Apr-98
4800 # tested with osr5.0.5
4801 if test "$GCC" != yes; then
4802 CC_SHARED_OPTS='-belf -KPIC'
4804 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4805 if test "$cf_cv_enable_rpath" = yes ; then
4806 # only way is to set LD_RUN_PATH but no switch for it
4809 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4810 LINK_PROGS='LD_RUN_PATH=${libdir}'
4811 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4814 # tested with SunOS 4.1.1 and gcc 2.7.0
4815 if test "$GCC" != yes; then
4816 CC_SHARED_OPTS='-KPIC'
4818 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4819 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4822 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4823 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4824 if test "$DFT_LWR_MODEL" = "shared" ; then
4825 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4826 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4828 if test "$cf_cv_enable_rpath" = yes ; then
4829 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
4832 if test "$GCC" != yes; then
4833 cf_save_CFLAGS="$CFLAGS"
4834 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
4836 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4837 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
4839 CFLAGS="$cf_save_CFLAGS"
4840 CC_SHARED_OPTS=$cf_shared_opts
4841 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4843 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4846 sysv5uw7*|unix_sv*) #(vi
4847 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4848 if test "$GCC" != yes; then
4849 CC_SHARED_OPTS='-KPIC'
4851 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4854 CC_SHARED_OPTS='unknown'
4855 MK_SHARED_LIB='echo unknown'
4859 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4860 case "$cf_cv_shlib_version" in #(vi
4862 case "$MK_SHARED_LIB" in #(vi
4864 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4867 AC_MSG_WARN(ignored --with-shlib-version)
4873 if test -n "$cf_ld_rpath_opt" ; then
4874 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4877 AC_SUBST(CC_SHARED_OPTS)
4878 AC_SUBST(LD_RPATH_OPT)
4879 AC_SUBST(LD_SHARED_OPTS)
4880 AC_SUBST(MK_SHARED_LIB)
4881 AC_SUBST(LINK_PROGS)
4882 AC_SUBST(LINK_TESTS)
4883 AC_SUBST(EXTRA_LDFLAGS)
4884 AC_SUBST(LOCAL_LDFLAGS)
4885 AC_SUBST(LOCAL_LDFLAGS2)
4886 AC_SUBST(INSTALL_LIB)
4888 dnl ---------------------------------------------------------------------------
4889 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4890 dnl ----------------
4891 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4892 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4895 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4896 dnl If missing, use "rel".
4897 define([CF_SHARED_SONAME],
4899 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4900 if test "$cf_cv_shlib_version" = rel; then
4901 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4903 cf_cv_shared_soname='`basename $[@]`'
4906 dnl ---------------------------------------------------------------------------
4907 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4909 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4910 dnl programs need this test).
4912 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4913 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4914 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4915 dnl break that part of the interface as well.
4916 AC_DEFUN([CF_SIGWINCH],
4918 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4920 #include <sys/types.h>
4921 #include <sys/signal.h>
4922 ],[int x = SIGWINCH],
4923 [cf_cv_define_sigwinch=yes],
4925 #undef _XOPEN_SOURCE
4926 #undef _POSIX_SOURCE
4927 #undef _POSIX_C_SOURCE
4928 #include <sys/types.h>
4929 #include <sys/signal.h>
4930 ],[int x = SIGWINCH],
4931 [cf_cv_define_sigwinch=maybe],
4932 [cf_cv_define_sigwinch=no])
4936 if test "$cf_cv_define_sigwinch" = maybe ; then
4937 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4938 cf_cv_fixup_sigwinch=unknown
4940 while test $cf_sigwinch != 1
4943 #undef _XOPEN_SOURCE
4944 #undef _POSIX_SOURCE
4945 #undef _POSIX_C_SOURCE
4946 #include <sys/types.h>
4947 #include <sys/signal.h>
4949 #if SIGWINCH != $cf_sigwinch
4953 [cf_cv_fixup_sigwinch=$cf_sigwinch
4956 cf_sigwinch=`expr $cf_sigwinch - 1`
4960 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4961 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4965 dnl ---------------------------------------------------------------------------
4966 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4968 dnl signal handler, but there are some gcc depedencies in that recommendation.
4970 AC_DEFUN([CF_SIG_ATOMIC_T],
4972 AC_MSG_CHECKING(for signal global datatype)
4973 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4975 "volatile sig_atomic_t" \
4980 #include <sys/types.h>
4986 static void handler(int sig)
4990 [signal(SIGINT, handler);
4992 [cf_cv_sig_atomic_t=$cf_type],
4993 [cf_cv_sig_atomic_t=no])
4994 test "$cf_cv_sig_atomic_t" != no && break
4997 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4998 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
5000 dnl ---------------------------------------------------------------------------
5001 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
5003 dnl Check for definitions & structures needed for window size-changing
5004 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
5005 AC_DEFUN([CF_SIZECHANGE],
5007 AC_REQUIRE([CF_STRUCT_TERMIOS])
5008 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
5009 cf_cv_sizechange=unknown
5010 cf_save_CPPFLAGS="$CPPFLAGS"
5012 for cf_opts in "" "NEED_PTEM_H"
5015 CPPFLAGS="$cf_save_CPPFLAGS"
5016 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
5017 AC_TRY_COMPILE([#include <sys/types.h>
5018 #ifdef HAVE_TERMIOS_H
5019 #include <termios.h>
5021 #ifdef HAVE_TERMIO_H
5026 /* This is a workaround for SCO: they neglected to define struct winsize in
5027 * termios.h -- it's only in termio.h and ptem.h
5029 #include <sys/stream.h>
5030 #include <sys/ptem.h>
5032 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
5033 #include <sys/ioctl.h>
5037 struct ttysize win; /* FIXME: what system is this? */
5038 int y = win.ts_lines;
5039 int x = win.ts_cols;
5046 no TIOCGSIZE or TIOCGWINSZ
5047 #endif /* TIOCGWINSZ */
5048 #endif /* TIOCGSIZE */
5050 [cf_cv_sizechange=yes],
5051 [cf_cv_sizechange=no])
5053 CPPFLAGS="$cf_save_CPPFLAGS"
5054 if test "$cf_cv_sizechange" = yes ; then
5055 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
5056 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
5061 if test "$cf_cv_sizechange" != no ; then
5062 AC_DEFINE(HAVE_SIZECHANGE)
5063 case $cf_cv_sizechange in #(vi
5065 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
5070 dnl ---------------------------------------------------------------------------
5071 dnl CF_SRC_MODULES version: 20 updated: 2008/12/27 12:30:03
5073 dnl For each parameter, test if the source-directory exists, and if it contains
5074 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
5075 dnl use in CF_LIB_RULES.
5077 dnl This uses the configured value to make the lists SRC_SUBDIRS and
5078 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
5079 AC_DEFUN([CF_SRC_MODULES],
5081 AC_MSG_CHECKING(for src modules)
5083 # dependencies and linker-arguments for test-programs
5084 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
5085 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
5086 if test "$DFT_LWR_MODEL" = "libtool"; then
5087 TEST_ARGS="${TEST_DEPS}"
5088 TEST_ARG2="${TEST_DEP2}"
5090 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
5091 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
5097 if test -f $srcdir/$cf_dir/modules; then
5099 # We may/may not have tack in the distribution, though the
5101 if test $cf_dir = tack ; then
5102 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
5107 if test -z "$cf_cv_src_modules"; then
5108 cf_cv_src_modules=$cf_dir
5110 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
5113 # Make the ncurses_cfg.h file record the library interface files as
5114 # well. These are header files that are the same name as their
5115 # directory. Ncurses is the only library that does not follow
5117 if test $cf_dir = tack ; then
5119 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
5120 CF_UPPER(cf_have_include,$cf_dir)
5121 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
5122 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
5123 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
5124 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
5125 if test "$DFT_LWR_MODEL" = "libtool"; then
5126 TEST_ARGS="${TEST_DEPS}"
5127 TEST_ARG2="${TEST_DEP2}"
5129 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
5130 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
5135 AC_MSG_RESULT($cf_cv_src_modules)
5137 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
5138 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
5147 if test "x$cf_with_manpages" != xno ; then
5148 SRC_SUBDIRS="$SRC_SUBDIRS man"
5150 SRC_SUBDIRS="$SRC_SUBDIRS include"
5151 for cf_dir in $cf_cv_src_modules
5153 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
5155 SRC_SUBDIRS="$SRC_SUBDIRS test"
5156 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
5157 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
5160 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
5161 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
5162 ADA_SUBDIRS="gen src samples"
5166 for cf_dir in $SRC_SUBDIRS
5168 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
5171 if test -n "$ADA_SUBDIRS"; then
5172 for cf_dir in $ADA_SUBDIRS
5174 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
5176 AC_SUBST(ADA_SUBDIRS)
5179 dnl ---------------------------------------------------------------------------
5180 dnl CF_STDCPP_LIBRARY version: 7 updated: 2010/05/29 16:31:02
5181 dnl -----------------
5182 dnl Check for -lstdc++, which is GNU's standard C++ library.
5183 AC_DEFUN([CF_STDCPP_LIBRARY],
5185 if test -n "$GXX" ; then
5186 case $cf_cv_system_name in #(vi
5188 cf_stdcpp_libname=stdcpp
5191 cf_stdcpp_libname=stdc++
5194 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
5196 CF_ADD_LIB($cf_stdcpp_libname)
5198 #include <strstream.h>],[
5200 strstreambuf foo(buf, sizeof(buf))
5202 [cf_cv_libstdcpp=yes],
5203 [cf_cv_libstdcpp=no])
5206 test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS)
5209 dnl ---------------------------------------------------------------------------
5210 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
5212 dnl Remove "-g" option from the compiler options
5213 AC_DEFUN([CF_STRIP_G_OPT],
5214 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
5215 dnl ---------------------------------------------------------------------------
5216 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5217 dnl -------------------
5218 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
5219 dnl do this if we've found the sigaction function.
5221 dnl If needed, define SVR4_ACTION.
5222 AC_DEFUN([CF_STRUCT_SIGACTION],[
5223 if test "$ac_cv_func_sigaction" = yes; then
5224 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
5226 #include <sys/types.h>
5227 #include <signal.h>],
5228 [struct sigaction act],
5232 #define _POSIX_SOURCE
5233 #include <sys/types.h>
5234 #include <signal.h>],
5235 [struct sigaction act],
5237 AC_DEFINE(SVR4_ACTION)],
5238 [sigact_bad=unknown])])
5239 AC_MSG_RESULT($sigact_bad)
5242 dnl ---------------------------------------------------------------------------
5243 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
5244 dnl -----------------
5245 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
5246 dnl If so, define SVR4_TERMIO
5247 AC_DEFUN([CF_STRUCT_TERMIOS],[
5253 if test "$ISC" = yes ; then
5254 AC_CHECK_HEADERS( sys/termio.h )
5256 if test "$ac_cv_header_termios_h" = yes ; then
5257 case "$CFLAGS $CPPFLAGS" in
5259 termios_bad=dunno ;;
5260 *) termios_bad=maybe ;;
5262 if test "$termios_bad" = maybe ; then
5263 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
5264 AC_TRY_COMPILE([#include <termios.h>],
5265 [struct termios foo; int x = foo.c_iflag],
5268 #define _POSIX_SOURCE
5269 #include <termios.h>],
5270 [struct termios foo; int x = foo.c_iflag],
5271 termios_bad=unknown,
5272 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
5274 AC_MSG_RESULT($termios_bad)
5278 dnl ---------------------------------------------------------------------------
5279 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
5281 dnl Construct a search-list for a nonstandard header/lib-file
5282 dnl $1 = the variable to return as result
5283 dnl $2 = the package name
5284 dnl $3 = the subdirectory, e.g., bin, include or lib
5285 AC_DEFUN([CF_SUBDIR_PATH],
5289 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
5290 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
5291 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
5292 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
5293 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
5295 dnl ---------------------------------------------------------------------------
5296 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
5298 dnl Shorthand macro for substituting things that the user may override
5299 dnl with an environment variable.
5301 dnl $1 = long/descriptive name
5302 dnl $2 = environment variable
5303 dnl $3 = default value
5304 AC_DEFUN([CF_SUBST],
5305 [AC_CACHE_VAL(cf_cv_subst_$2,[
5306 AC_MSG_CHECKING(for $1 (symbol $2))
5307 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
5308 cf_cv_subst_$2=[$]$2
5309 AC_MSG_RESULT([$]$2)
5312 dnl ---------------------------------------------------------------------------
5313 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
5315 dnl Shorthand macro for substituting things that the user may override
5316 dnl with an environment variable.
5318 dnl $1 = condition to pass to "test"
5319 dnl $2 = environment variable
5320 dnl $3 = value if the test succeeds
5321 dnl $4 = value if the test fails
5322 AC_DEFUN([CF_SUBST_IF],
5331 dnl ---------------------------------------------------------------------------
5332 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
5333 dnl ------------------------
5334 dnl Get the version-number for use in shared-library naming, etc.
5335 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
5337 AC_REQUIRE([CF_PROG_EGREP])
5338 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5339 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5340 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5341 cf_cv_abi_version=${NCURSES_MAJOR}
5342 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
5343 dnl Show the computed version, for logging
5344 cf_cv_timestamp=`date`
5345 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
5346 dnl We need these values in the generated headers
5347 AC_SUBST(NCURSES_MAJOR)
5348 AC_SUBST(NCURSES_MINOR)
5349 AC_SUBST(NCURSES_PATCH)
5350 dnl We need these values in the generated makefiles
5351 AC_SUBST(cf_cv_rel_version)
5352 AC_SUBST(cf_cv_abi_version)
5353 AC_SUBST(cf_cv_builtin_bool)
5354 AC_SUBST(cf_cv_header_stdbool_h)
5355 AC_SUBST(cf_cv_type_of_bool)dnl
5357 dnl ---------------------------------------------------------------------------
5358 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
5359 dnl ------------------
5360 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
5361 dnl older SCO configurations.
5362 AC_DEFUN([CF_SYS_TIME_SELECT],
5364 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
5365 AC_CACHE_VAL(cf_cv_sys_time_select,[
5367 #include <sys/types.h>
5368 #ifdef HAVE_SYS_TIME_H
5369 #include <sys/time.h>
5371 #ifdef HAVE_SYS_SELECT_H
5372 #include <sys/select.h>
5374 ],[],[cf_cv_sys_time_select=yes],
5375 [cf_cv_sys_time_select=no])
5377 AC_MSG_RESULT($cf_cv_sys_time_select)
5378 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
5380 dnl ---------------------------------------------------------------------------
5381 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
5383 dnl Define a top_builddir symbol, for applications that need an absolute path.
5384 AC_DEFUN([CF_TOP_BUILDDIR],
5387 AC_SUBST(top_builddir)
5389 dnl ---------------------------------------------------------------------------
5390 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
5391 dnl ----------------
5392 dnl Determine the type we should use for chtype (and attr_t, which is treated
5393 dnl as the same thing). We want around 32 bits, so on most machines want a
5394 dnl long, but on newer 64-bit machines, probably want an int. If we're using
5395 dnl wide characters, we have to have a type compatible with that, as well.
5396 AC_DEFUN([CF_TYPEOF_CHTYPE],
5398 AC_MSG_CHECKING([for type of chtype])
5399 AC_CACHE_VAL(cf_cv_typeof_chtype,[
5401 #define WANT_BITS 31
5405 FILE *fp = fopen("cf_test.out", "w");
5407 char *result = "long";
5408 if (sizeof(unsigned long) > sizeof(unsigned int)) {
5411 for (n = 0; n < WANT_BITS; n++) {
5414 if (y != 1 || x == 0) {
5420 * If x is nonzero, an int is big enough for the bits
5423 result = (x != 0) ? "int" : "long";
5428 ${cf_cv_main_return:-return}(0);
5431 [cf_cv_typeof_chtype=`cat cf_test.out`],
5432 [cf_cv_typeof_chtype=long],
5433 [cf_cv_typeof_chtype=long])
5436 AC_MSG_RESULT($cf_cv_typeof_chtype)
5438 AC_SUBST(cf_cv_typeof_chtype)
5439 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5441 dnl ---------------------------------------------------------------------------
5442 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5443 dnl -----------------
5445 AC_DEFUN([CF_TYPE_SIGACTION],
5447 AC_MSG_CHECKING([for type sigaction_t])
5448 AC_CACHE_VAL(cf_cv_type_sigaction,[
5450 #include <signal.h>],
5452 [cf_cv_type_sigaction=yes],
5453 [cf_cv_type_sigaction=no])])
5454 AC_MSG_RESULT($cf_cv_type_sigaction)
5455 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5457 dnl ---------------------------------------------------------------------------
5458 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5459 dnl --------------------
5460 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
5461 dnl won't, but they're still there.
5462 AC_DEFUN([CF_UNSIGNED_LITERALS],
5464 AC_MSG_CHECKING([if unsigned literals are legal])
5465 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5466 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5467 [cf_cv_unsigned_literals=yes],
5468 [cf_cv_unsigned_literals=no])
5470 AC_MSG_RESULT($cf_cv_unsigned_literals)
5472 dnl ---------------------------------------------------------------------------
5473 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5475 dnl Make an uppercase version of a variable
5476 dnl $1=uppercase($2)
5477 AC_DEFUN([CF_UPPER],
5479 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5481 dnl ---------------------------------------------------------------------------
5482 dnl CF_UTF8_LIB version: 6 updated: 2010/04/21 06:20:50
5484 dnl Check for multibyte support, and if not found, utf8 compatibility library
5485 AC_DEFUN([CF_UTF8_LIB],
5487 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5488 cf_save_LIBS="$LIBS"
5490 #include <stdlib.h>],[putwc(0,0);],
5491 [cf_cv_utf8_lib=yes],
5493 #include <libutf8.h>],[putwc(0,0);],utf8,
5494 [cf_cv_utf8_lib=add-on],
5495 [cf_cv_utf8_lib=no])
5498 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5500 if test "$cf_cv_utf8_lib" = "add-on" ; then
5501 AC_DEFINE(HAVE_LIBUTF8_H)
5502 CF_ADD_INCDIR($cf_cv_header_path_utf8)
5503 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5504 LIBS="$cf_cv_library_file_utf8 $LIBS"
5507 dnl ---------------------------------------------------------------------------
5508 dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
5510 dnl check for va_copy, part of stdarg.h
5511 dnl Also, workaround for glibc's __va_copy, by checking for both.
5512 AC_DEFUN([CF_VA_COPY],[
5513 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
5520 cf_cv_have_va_copy=yes,
5521 cf_cv_have_va_copy=no)])
5523 test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
5525 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
5531 __va_copy(dst, src)],
5532 cf_cv_have___va_copy=yes,
5533 cf_cv_have___va_copy=no)])
5535 test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
5537 dnl ---------------------------------------------------------------------------
5538 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5540 dnl Use AC_VERBOSE w/o the warnings
5541 AC_DEFUN([CF_VERBOSE],
5542 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
5545 dnl ---------------------------------------------------------------------------
5546 dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
5548 dnl Check if type wide-character type $1 is declared, and if so, which header
5549 dnl file is needed. The second parameter is used to set a shell variable when
5550 dnl the type is not found. The first parameter sets a shell variable for the
5552 AC_DEFUN([CF_WCHAR_TYPE],
5554 # This is needed on Tru64 5.0 to declare $1
5555 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5560 #ifdef HAVE_LIBUTF8_H
5561 #include <libutf8.h>
5570 #ifdef HAVE_LIBUTF8_H
5571 #include <libutf8.h>
5575 [cf_cv_$1=unknown])])])
5577 if test "$cf_cv_$1" = yes ; then
5578 AC_DEFINE(NEED_WCHAR_H)
5583 # if we do not find $1 in either place, use substitution to provide a fallback.
5584 if test "$cf_cv_$1" = unknown ; then
5589 # if we find $1 in either place, use substitution to provide a fallback.
5590 if test "$cf_cv_$1" != unknown ; then
5595 dnl ---------------------------------------------------------------------------
5596 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5598 dnl Check for compiler-support for weak symbols.
5599 dnl This works with "recent" gcc.
5600 AC_DEFUN([CF_WEAK_SYMBOLS],[
5601 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5604 #include <stdio.h>],
5606 #if defined(__GNUC__)
5607 # if defined __USE_ISOC99
5608 # define _cat_pragma(exp) _Pragma(#exp)
5609 # define _weak_pragma(exp) _cat_pragma(weak name)
5611 # define _weak_pragma(exp)
5613 # define _declare(name) __extension__ extern __typeof__(name) name
5614 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
5618 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5621 dnl ---------------------------------------------------------------------------
5622 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5623 dnl -------------------
5624 dnl Allow library's ABI to be overridden. Generally this happens when a
5625 dnl packager has incremented the ABI past that used in the original package,
5626 dnl and wishes to keep doing this.
5628 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5630 AC_DEFUN([CF_WITH_ABI_VERSION],[
5631 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5632 AC_ARG_WITH(abi-version,
5633 [ --with-abi-version=XXX override derived ABI version],
5634 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5635 cf_cv_abi_version=$withval])
5636 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5638 $1_ABI=$cf_cv_abi_version
5641 dnl ---------------------------------------------------------------------------
5642 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5643 dnl ----------------
5644 dnl Configure-option for dbmalloc. The optional parameter is used to override
5645 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5646 AC_DEFUN([CF_WITH_DBMALLOC],[
5647 CF_NO_LEAKS_OPTION(dbmalloc,
5648 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5651 if test "$with_dbmalloc" = yes ; then
5652 AC_CHECK_HEADER(dbmalloc.h,
5653 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5656 dnl ---------------------------------------------------------------------------
5657 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5659 dnl Configure-option for dmalloc. The optional parameter is used to override
5660 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5661 AC_DEFUN([CF_WITH_DMALLOC],[
5662 CF_NO_LEAKS_OPTION(dmalloc,
5663 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5666 if test "$with_dmalloc" = yes ; then
5667 AC_CHECK_HEADER(dmalloc.h,
5668 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5671 dnl ---------------------------------------------------------------------------
5672 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5675 dnl The option parameter (if neither yes/no) is assumed to be the name of
5676 dnl the gpm library, e.g., for dynamic loading.
5677 AC_DEFUN([CF_WITH_GPM],
5679 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5681 [ --with-gpm use Alessandro Rubini's GPM library],
5682 [with_gpm=$withval],
5684 AC_MSG_RESULT($with_gpm)
5686 if test "$with_gpm" != no ; then
5687 AC_CHECK_HEADER(gpm.h,[
5688 AC_DEFINE(HAVE_GPM_H)
5689 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5690 CF_VERBOSE(assuming we really have GPM library)
5691 AC_DEFINE(HAVE_LIBGPM)
5693 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5694 AC_MSG_ERROR(Cannot link with GPM library)
5699 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5704 dnl ---------------------------------------------------------------------------
5705 dnl CF_WITH_LIBTOOL version: 25 updated: 2010/05/15 15:45:59
5707 dnl Provide a configure option to incorporate libtool. Define several useful
5708 dnl symbols for the makefile rules.
5710 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5711 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5712 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5713 dnl But that still does not work properly since the macro is expanded outside
5714 dnl the CF_WITH_LIBTOOL macro:
5717 dnl ACLOCAL=`aclocal --print-ac-dir`
5718 dnl if test -z "$ACLOCAL" ; then
5719 dnl echo cannot find aclocal directory
5721 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5722 dnl echo cannot find libtool.m4 file
5726 dnl LOCAL=aclocal.m4
5727 dnl ORIG=aclocal.m4.orig
5729 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5733 dnl # sed the LIBTOOL= assignment to omit the current directory?
5734 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5735 dnl cat $ORIG >>$LOCAL
5739 AC_DEFUN([CF_WITH_LIBTOOL],
5741 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
5742 ifdef([AC_PROG_LIBTOOL],,[
5745 # common library maintenance symbols that are convenient for libtool scripts:
5746 LIB_CREATE='${AR} -cr'
5747 LIB_OBJECT='${OBJECTS}'
5751 # symbols used to prop libtool up to enable it to determine what it should be
5759 AC_MSG_CHECKING(if you want to build libraries with libtool)
5760 AC_ARG_WITH(libtool,
5761 [ --with-libtool generate libraries with libtool],
5762 [with_libtool=$withval],
5764 AC_MSG_RESULT($with_libtool)
5765 if test "$with_libtool" != "no"; then
5766 ifdef([AC_PROG_LIBTOOL],[
5767 # missing_content_AC_PROG_LIBTOOL{{
5769 # missing_content_AC_PROG_LIBTOOL}}
5771 if test "$with_libtool" != "yes" ; then
5772 CF_PATH_SYNTAX(with_libtool)
5773 LIBTOOL=$with_libtool
5775 AC_PATH_PROG(LIBTOOL,libtool)
5777 if test -z "$LIBTOOL" ; then
5778 AC_MSG_ERROR(Cannot find libtool)
5781 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
5782 LIB_OBJECT='${OBJECTS:.o=.lo}'
5784 LIB_CLEAN='${LIBTOOL} --mode=clean'
5785 LIB_COMPILE='${LIBTOOL} --mode=compile'
5786 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5787 LIB_INSTALL='${LIBTOOL} --mode=install'
5788 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5791 # Show the version of libtool
5792 AC_MSG_CHECKING(version of libtool)
5794 # Save the version in a cache variable - this is not entirely a good
5795 # thing, but the version string from libtool is very ugly, and for
5796 # bug reports it might be useful to have the original string. "("
5797 cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
5798 AC_MSG_RESULT($cf_cv_libtool_version)
5799 if test -z "$cf_cv_libtool_version" ; then
5800 AC_MSG_ERROR(This is not GNU libtool)
5803 # special hack to add -no-undefined (which libtool should do for itself)
5805 case "$cf_cv_system_name" in #(vi
5806 cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
5807 LT_UNDEF=-no-undefined
5810 AC_SUBST([LT_UNDEF])
5812 # special hack to add --tag option for C++ compiler
5813 case $cf_cv_libtool_version in #(vi
5814 1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
5815 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5816 LIBTOOL="$LIBTOOL --tag=CC"
5819 LIBTOOL_CXX="$LIBTOOL"
5827 test -z "$LIBTOOL" && ECHO_LT=
5830 AC_SUBST(LIBTOOL_CXX)
5831 AC_SUBST(LIBTOOL_OPTS)
5833 AC_SUBST(LIB_CREATE)
5834 AC_SUBST(LIB_OBJECT)
5835 AC_SUBST(LIB_SUFFIX)
5839 AC_SUBST(LIB_COMPILE)
5841 AC_SUBST(LIB_INSTALL)
5842 AC_SUBST(LIB_UNINSTALL)
5845 dnl ---------------------------------------------------------------------------
5846 dnl CF_WITH_PATH version: 9 updated: 2010/05/26 05:38:42
5848 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5849 dnl defaulting to yes/no.
5851 dnl $1 = option name
5853 dnl $3 = environment variable to set
5854 dnl $4 = default value, shown in the help-message, must be a constant
5855 dnl $5 = default value, if it's an expression & cannot be in the help-message
5857 AC_DEFUN([CF_WITH_PATH],
5858 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
5859 ifelse([$4],,[withval="${$3}"],[withval="${$3-ifelse([$5],,[$4],[$5])}"]))dnl
5860 if ifelse([$5],,true,[test -n "$5"]) ; then
5861 CF_PATH_SYNTAX(withval)
5866 dnl ---------------------------------------------------------------------------
5867 dnl CF_WITH_PATHLIST version: 6 updated: 2009/01/11 20:30:23
5868 dnl ----------------
5869 dnl Process an option specifying a list of colon-separated paths.
5871 dnl $1 = option name
5873 dnl $3 = environment variable to set
5874 dnl $4 = default value, shown in the help-message, must be a constant
5875 dnl $5 = default value, if it's an expression & cannot be in the help-message
5876 dnl $6 = flag to tell if we want to define or substitute
5878 AC_DEFUN([CF_WITH_PATHLIST],[
5879 AC_REQUIRE([CF_PATHSEP])
5880 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5881 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5883 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
5885 for cf_src_path in $withval
5887 CF_PATH_SYNTAX(cf_src_path)
5888 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5889 cf_dst_path="${cf_dst_path}${cf_src_path}"
5894 # Strip single quotes from the value, e.g., when it was supplied as a literal
5896 case $cf_dst_path in #(vi
5898 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5901 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5904 eval '$3="$cf_dst_path"'
5908 dnl ---------------------------------------------------------------------------
5909 dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
5911 dnl Check for POSIX thread library.
5912 AC_DEFUN([CF_WITH_PTHREAD],
5914 AC_MSG_CHECKING(if you want to link with the pthread library)
5915 AC_ARG_WITH(pthread,
5916 [ --with-pthread use POSIX thread library],
5917 [with_pthread=$withval],
5919 AC_MSG_RESULT($with_pthread)
5921 if test "$with_pthread" != no ; then
5922 AC_CHECK_HEADER(pthread.h,[
5923 AC_DEFINE(HAVE_PTHREADS_H)
5925 AC_MSG_CHECKING(if we can link with the pthread library)
5926 cf_save_LIBS="$LIBS"
5929 #include <pthread.h>
5931 int rc = pthread_create(0,0,0,0);
5932 ],[with_pthread=yes],[with_pthread=no])
5933 LIBS="$cf_save_LIBS"
5934 AC_MSG_RESULT($with_pthread)
5936 if test "$with_pthread" = yes ; then
5938 AC_DEFINE(HAVE_LIBPTHREADS)
5940 AC_MSG_ERROR(Cannot link with pthread library)
5945 dnl ---------------------------------------------------------------------------
5946 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5947 dnl -------------------
5948 dnl Allow library's release-version to be overridden. Generally this happens when a
5949 dnl packager has incremented the release-version past that used in the original package,
5950 dnl and wishes to keep doing this.
5952 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5953 dnl and {package}_MINOR symbols
5955 AC_DEFUN([CF_WITH_REL_VERSION],[
5956 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5957 AC_ARG_WITH(rel-version,
5958 [ --with-rel-version=XXX override derived release version],
5959 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5960 cf_cv_rel_version=$withval])
5962 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5964 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5965 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5966 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5967 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5970 dnl ---------------------------------------------------------------------------
5971 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5972 dnl ----------------
5973 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5974 AC_DEFUN([CF_WITH_SYSMOUSE],[
5975 # not everyone has "test -c"
5976 if test -c /dev/sysmouse 2>/dev/null ; then
5977 AC_MSG_CHECKING(if you want to use sysmouse)
5978 AC_ARG_WITH(sysmouse,
5979 [ --with-sysmouse use sysmouse (FreeBSD console)],
5980 [cf_with_sysmouse=$withval],
5981 [cf_with_sysmouse=maybe])
5982 if test "$cf_with_sysmouse" != no ; then
5984 #include <osreldate.h>
5985 #if (__FreeBSD_version >= 400017)
5986 #include <sys/consio.h>
5987 #include <sys/fbio.h>
5989 #include <machine/console.h>
5992 struct mouse_info the_mouse;
5993 ioctl(0, CONS_MOUSECTL, &the_mouse);
5994 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5996 AC_MSG_RESULT($cf_with_sysmouse)
5997 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
6000 dnl ---------------------------------------------------------------------------
6001 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
6002 dnl ----------------
6003 AC_DEFUN([CF_WITH_VALGRIND],[
6004 CF_NO_LEAKS_OPTION(valgrind,
6005 [ --with-valgrind test: use valgrind],
6008 dnl ---------------------------------------------------------------------------
6009 dnl CF_XOPEN_SOURCE version: 34 updated: 2010/05/26 05:38:42
6011 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
6012 dnl or adapt to the vendor's definitions to get equivalent functionality,
6013 dnl without losing the common non-POSIX features.
6016 dnl $1 is the nominal value for _XOPEN_SOURCE
6017 dnl $2 is the nominal value for _POSIX_C_SOURCE
6018 AC_DEFUN([CF_XOPEN_SOURCE],[
6020 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
6021 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
6024 case $host_os in #(vi
6026 cf_xopen_source="-D_ALL_SOURCE"
6028 darwin[[0-8]].*) #(vi
6029 cf_xopen_source="-D_APPLE_C_SOURCE"
6032 cf_xopen_source="-D_DARWIN_C_SOURCE"
6034 freebsd*|dragonfly*) #(vi
6035 # 5.x headers associate
6036 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
6037 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
6038 cf_POSIX_C_SOURCE=200112L
6040 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6043 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
6046 cf_xopen_source="-D_HPUX_SOURCE"
6049 cf_xopen_source="-D_SGI_SOURCE"
6051 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
6055 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
6058 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
6061 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
6064 cf_xopen_source="-D_OSF_SOURCE"
6067 cf_xopen_source="-D_QNX_SOURCE"
6070 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
6072 solaris2.1[[0-9]]) #(vi
6073 cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6075 solaris2.[[1-9]]) #(vi
6076 cf_xopen_source="-D__EXTENSIONS__"
6079 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
6080 AC_TRY_COMPILE([#include <sys/types.h>],[
6081 #ifndef _XOPEN_SOURCE
6084 [cf_cv_xopen_source=no],
6085 [cf_save="$CPPFLAGS"
6086 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6087 AC_TRY_COMPILE([#include <sys/types.h>],[
6088 #ifdef _XOPEN_SOURCE
6091 [cf_cv_xopen_source=no],
6092 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
6096 if test "$cf_cv_xopen_source" != no ; then
6097 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
6098 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
6099 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
6100 CF_ADD_CFLAGS($cf_temp_xopen_source)
6102 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
6106 if test -n "$cf_xopen_source" ; then
6107 CF_ADD_CFLAGS($cf_xopen_source)