1 dnl***************************************************************************
2 dnl Copyright (c) 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
31 dnl $Id: aclocal.m4,v 1.16 2010/09/04 21:41:53 tom Exp $
32 dnl Macros used in NCURSES Ada95 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 CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
43 dnl -------------------
44 dnl Construct the list of include-options for the C programs in the Ada95
46 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
48 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
49 if test "$srcdir" != "."; then
50 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
52 if test "$GCC" != yes; then
53 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
54 elif test "$includedir" != "/usr/include"; then
55 if test "$includedir" = '${prefix}/include' ; then
56 if test $prefix != /usr ; then
57 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
60 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
65 dnl ---------------------------------------------------------------------------
66 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
68 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
69 AC_DEFUN([CF_ADD_ADAFLAGS],[
70 ADAFLAGS="$ADAFLAGS $1"
73 dnl ---------------------------------------------------------------------------
74 dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
76 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
77 dnl The second parameter if given makes this macro verbose.
79 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
80 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
81 dnl confused by the quotes (which require backslashes to keep them usable).
82 AC_DEFUN([CF_ADD_CFLAGS],
87 cf_new_extra_cppflags=
89 for cf_add_cflags in $1
91 case $cf_fix_cppflags in
93 case $cf_add_cflags in #(vi
94 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
95 case $cf_add_cflags in
97 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
99 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
100 && test -z "${cf_tst_cflags}" \
101 && cf_fix_cppflags=yes
103 if test $cf_fix_cppflags = yes ; then
104 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
106 elif test "${cf_tst_cflags}" = "\"'" ; then
107 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
113 *$cf_add_cflags) #(vi
116 case $cf_add_cflags in #(vi
118 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
119 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
122 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
127 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
132 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
134 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
136 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
137 && test -z "${cf_tst_cflags}" \
138 && cf_fix_cppflags=no
143 if test -n "$cf_new_cflags" ; then
144 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
145 CFLAGS="$CFLAGS $cf_new_cflags"
148 if test -n "$cf_new_cppflags" ; then
149 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
150 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
153 if test -n "$cf_new_extra_cppflags" ; then
154 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
155 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
158 AC_SUBST(EXTRA_CPPFLAGS)
161 dnl ---------------------------------------------------------------------------
162 dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
164 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
165 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
166 dnl but old versions (and some misinstalled ones) need that. To make things
167 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
168 dnl the include-path).
169 AC_DEFUN([CF_ADD_INCDIR],
171 if test -n "$1" ; then
172 for cf_add_incdir in $1
174 while test $cf_add_incdir != /usr/include
176 if test -d $cf_add_incdir
179 if test -n "$CFLAGS$CPPFLAGS" ; then
180 # a loop is needed to ensure we can add subdirs of existing dirs
181 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
182 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
183 cf_have_incdir=yes; break
188 if test "$cf_have_incdir" = no ; then
189 if test "$cf_add_incdir" = /usr/local/include ; then
192 cf_save_CPPFLAGS=$CPPFLAGS
193 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
194 AC_TRY_COMPILE([#include <stdio.h>],
197 [cf_have_incdir=yes])
198 CPPFLAGS=$cf_save_CPPFLAGS
203 if test "$cf_have_incdir" = no ; then
204 CF_VERBOSE(adding $cf_add_incdir to include-path)
205 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
207 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
208 test "$cf_top_incdir" = "$cf_add_incdir" && break
209 cf_add_incdir="$cf_top_incdir"
218 dnl ---------------------------------------------------------------------------
219 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
221 dnl Add a library, used to enforce consistency.
223 dnl $1 = library to add, without the "-l"
224 dnl $2 = variable to update (default $LIBS)
225 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
226 dnl ---------------------------------------------------------------------------
227 dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
229 dnl Adds to the library-path
231 dnl Some machines have trouble with multiple -L options.
233 dnl $1 is the (list of) directory(s) to add
234 dnl $2 is the optional name of the variable to update (default LDFLAGS)
236 AC_DEFUN([CF_ADD_LIBDIR],
238 if test -n "$1" ; then
239 for cf_add_libdir in $1
241 if test $cf_add_libdir = /usr/lib ; then
243 elif test -d $cf_add_libdir
246 if test -n "$LDFLAGS$LIBS" ; then
247 # a loop is needed to ensure we can add subdirs of existing dirs
248 for cf_test_libdir in $LDFLAGS $LIBS ; do
249 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
250 cf_have_libdir=yes; break
254 if test "$cf_have_libdir" = no ; then
255 CF_VERBOSE(adding $cf_add_libdir to library-path)
256 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
262 dnl ---------------------------------------------------------------------------
263 dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
265 dnl Add one or more libraries, used to enforce consistency.
267 dnl $1 = libraries to add, with the "-l", etc.
268 dnl $2 = variable to update (default $LIBS)
269 AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
270 dnl ---------------------------------------------------------------------------
271 dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
272 dnl ------------------
273 dnl Append to a search-list for a nonstandard header/lib-file
274 dnl $1 = the variable to return as result
275 dnl $2 = the package name
276 dnl $3 = the subdirectory, e.g., bin, include or lib
277 dnl $4 = the directory under which we will test for subdirectories
278 dnl $5 = a directory that we do not want $4 to match
279 AC_DEFUN([CF_ADD_SUBDIR_PATH],
281 test "$4" != "$5" && \
283 ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
284 test -n "$verbose" && echo " ... testing for $3-directories under $4"
285 test -d $4/$3 && $1="[$]$1 $4/$3"
286 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
287 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
288 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
289 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
292 dnl ---------------------------------------------------------------------------
293 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
295 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
296 dnl in the sharutils 4.2 distribution.
297 AC_DEFUN([CF_ANSI_CC_CHECK],
299 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
301 cf_save_CFLAGS="$CFLAGS"
302 cf_save_CPPFLAGS="$CPPFLAGS"
303 # Don't try gcc -ansi; that turns off useful extensions and
304 # breaks some systems' header files.
306 # Ultrix and OSF/1 -std1
307 # HP-UX -Aa -D_HPUX_SOURCE
309 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
310 for cf_arg in "-DCC_HAS_PROTOS" \
315 "-Aa -D_HPUX_SOURCE" \
318 CF_ADD_CFLAGS($cf_arg)
321 #ifndef CC_HAS_PROTOS
322 #if !defined(__STDC__) || (__STDC__ != 1)
327 int test (int i, double x);
328 struct s1 {int (*f) (int a);};
329 struct s2 {int (*f) (double a);};],
330 [cf_cv_ansi_cc="$cf_arg"; break])
332 CFLAGS="$cf_save_CFLAGS"
333 CPPFLAGS="$cf_save_CPPFLAGS"
336 if test "$cf_cv_ansi_cc" != "no"; then
337 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
338 CF_ADD_CFLAGS($cf_cv_ansi_cc)
340 AC_DEFINE(CC_HAS_PROTOS)
344 dnl ---------------------------------------------------------------------------
345 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
347 dnl For programs that must use an ANSI compiler, obtain compiler options that
348 dnl will make it recognize prototypes. We'll do preprocessor checks in other
349 dnl macros, since tools such as unproto can fake prototypes, but only part of
350 dnl the preprocessor.
351 AC_DEFUN([CF_ANSI_CC_REQD],
352 [AC_REQUIRE([CF_ANSI_CC_CHECK])
353 if test "$cf_cv_ansi_cc" = "no"; then
355 [Your compiler does not appear to recognize prototypes.
356 You have the following choices:
357 a. adjust your compiler options
358 b. get an up-to-date compiler
359 c. use a wrapper such as unproto])
362 dnl ---------------------------------------------------------------------------
363 dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
365 dnl Check for suitable "ar" (archiver) options for updating an archive.
366 AC_DEFUN([CF_AR_FLAGS],[
367 AC_REQUIRE([CF_PROG_AR])
369 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
370 cf_cv_ar_flags=unknown
371 for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
374 # check if $ARFLAGS already contains this choice
375 if test "x$ARFLAGS" != "x" ; then
376 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
377 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
383 rm -f conftest.$ac_cv_objext
386 cat >conftest.$ac_ext <<EOF
387 #line __oline__ "configure"
388 int testdata[[3]] = { 123, 456, 789 };
390 if AC_TRY_EVAL(ac_compile) ; then
391 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
392 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
393 if test -f conftest.a ; then
394 cf_cv_ar_flags=$cf_ar_flags
398 CF_VERBOSE(cannot compile test-program)
402 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
405 if test -n "$ARFLAGS" ; then
406 if test -n "$cf_cv_ar_flags" ; then
407 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
410 ARFLAGS=$cf_cv_ar_flags
415 dnl ---------------------------------------------------------------------------
416 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
418 dnl If we're cross-compiling, allow the user to override the tools and their
419 dnl options. The configure script is oriented toward identifying the host
420 dnl compiler, etc., but we need a build compiler to generate parts of the
423 dnl $1 = default for $CPPFLAGS
424 dnl $2 = default for $LIBS
425 AC_DEFUN([CF_BUILD_CC],[
426 AC_REQUIRE([CF_PROG_EXT])
427 if test "$cross_compiling" = yes ; then
429 # defaults that we might want to override
430 : ${BUILD_CFLAGS:=''}
431 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
432 : ${BUILD_LDFLAGS:=''}
433 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
434 : ${BUILD_EXEEXT:='$x'}
435 : ${BUILD_OBJEXT:='o'}
437 AC_ARG_WITH(build-cc,
438 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
439 [BUILD_CC="$withval"],
440 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
441 AC_MSG_CHECKING(for native build C compiler)
442 AC_MSG_RESULT($BUILD_CC)
444 AC_MSG_CHECKING(for native build C preprocessor)
445 AC_ARG_WITH(build-cpp,
446 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
447 [BUILD_CPP="$withval"],
448 [BUILD_CPP='${BUILD_CC} -E'])
449 AC_MSG_RESULT($BUILD_CPP)
451 AC_MSG_CHECKING(for native build C flags)
452 AC_ARG_WITH(build-cflags,
453 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
454 [BUILD_CFLAGS="$withval"])
455 AC_MSG_RESULT($BUILD_CFLAGS)
457 AC_MSG_CHECKING(for native build C preprocessor-flags)
458 AC_ARG_WITH(build-cppflags,
459 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
460 [BUILD_CPPFLAGS="$withval"])
461 AC_MSG_RESULT($BUILD_CPPFLAGS)
463 AC_MSG_CHECKING(for native build linker-flags)
464 AC_ARG_WITH(build-ldflags,
465 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
466 [BUILD_LDFLAGS="$withval"])
467 AC_MSG_RESULT($BUILD_LDFLAGS)
469 AC_MSG_CHECKING(for native build linker-libraries)
470 AC_ARG_WITH(build-libs,
471 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
472 [BUILD_LIBS="$withval"])
473 AC_MSG_RESULT($BUILD_LIBS)
475 # this assumes we're on Unix.
479 : ${BUILD_CC:='${CC}'}
481 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
482 AC_MSG_ERROR([Cross-build requires two compilers.
483 Use --with-build-cc to specify the native compiler.])
487 : ${BUILD_CC:='${CC}'}
488 : ${BUILD_CPP:='${CPP}'}
489 : ${BUILD_CFLAGS:='${CFLAGS}'}
490 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
491 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
492 : ${BUILD_LIBS:='${LIBS}'}
493 : ${BUILD_EXEEXT:='$x'}
494 : ${BUILD_OBJEXT:='o'}
499 AC_SUBST(BUILD_CFLAGS)
500 AC_SUBST(BUILD_CPPFLAGS)
501 AC_SUBST(BUILD_LDFLAGS)
503 AC_SUBST(BUILD_EXEEXT)
504 AC_SUBST(BUILD_OBJEXT)
506 dnl ---------------------------------------------------------------------------
507 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
509 dnl Determine the default configuration into which we'll install ncurses. This
510 dnl can be overridden by the user's command-line options. There's two items to
512 dnl 1. the prefix (e.g., /usr)
513 dnl 2. the header files (e.g., /usr/include/ncurses)
514 dnl We'll look for a previous installation of ncurses and use the same defaults.
516 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
517 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
518 dnl programs from a vendor's.
519 AC_DEFUN([CF_CFG_DEFAULTS],
521 AC_MSG_CHECKING(for prefix)
522 if test "x$prefix" = "xNONE" ; then
523 case "$cf_cv_system_name" in
524 # non-vendor systems don't have a conflict
525 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
528 *) prefix=$ac_default_prefix
532 AC_MSG_RESULT($prefix)
534 if test "x$prefix" = "xNONE" ; then
535 AC_MSG_CHECKING(for default include-directory)
536 test -n "$verbose" && echo 1>&AC_FD_MSG
539 $includedir/ncurses \
541 $prefix/include/ncurses \
543 /usr/local/include/ncurses \
547 cf_dir=`eval echo $cf_symbol`
548 if test -f $cf_dir/curses.h ; then
549 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
550 includedir="$cf_symbol"
551 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
555 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
557 AC_MSG_RESULT($includedir)
560 dnl ---------------------------------------------------------------------------
561 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
563 dnl Check if we're accidentally using a cache from a different machine.
564 dnl Derive the system name, as a check for reusing the autoconf cache.
566 dnl If we've packaged config.guess and config.sub, run that (since it does a
567 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
568 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
569 dnl which is useful in cross-compiles.
571 dnl Note: we would use $ac_config_sub, but that is one of the places where
572 dnl autoconf 2.5x broke compatibility with autoconf 2.13
573 AC_DEFUN([CF_CHECK_CACHE],
575 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
576 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
577 system_name="$host_os"
579 system_name="`(uname -s -r) 2>/dev/null`"
580 if test -z "$system_name" ; then
581 system_name="`(hostname) 2>/dev/null`"
584 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
585 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
587 test -z "$system_name" && system_name="$cf_cv_system_name"
588 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
590 if test ".$system_name" != ".$cf_cv_system_name" ; then
591 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
592 AC_MSG_ERROR("Please remove config.cache and try again.")
595 dnl ---------------------------------------------------------------------------
596 dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
598 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
599 dnl variations of ncurses' installs.
601 dnl $1 = ncurses when looking for ncurses, or is empty
602 AC_DEFUN([CF_CURSES_HEADER],[
603 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
604 cf_cv_ncurses_header=none
605 for cf_header in ifelse($1,,,[ \
609 ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
611 AC_TRY_COMPILE([#include <${cf_header}>],
612 [initscr(); tgoto("?", 0,0)],
613 [cf_cv_ncurses_header=$cf_header; break],[])
617 if test "$cf_cv_ncurses_header" = none ; then
618 AC_MSG_ERROR(No curses header-files found)
621 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
622 AC_CHECK_HEADERS($cf_cv_ncurses_header)
624 dnl ---------------------------------------------------------------------------
625 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
627 dnl "dirname" is not portable, so we fake it with a shell script.
628 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
629 dnl ---------------------------------------------------------------------------
630 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
632 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
633 dnl prefer a standard location, and use -L options only if we do not find the
634 dnl library in the standard library location(s).
635 dnl $1 = library name
636 dnl $2 = library class, usually the same as library name
638 dnl $4 = code fragment to compile/link
639 dnl $5 = corresponding function-name
640 dnl $6 = flag, nonnull if failure should not cause an error-exit
642 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
643 dnl to use a -L option.
644 AC_DEFUN([CF_FIND_LIBRARY],
646 eval 'cf_cv_have_lib_'$1'=no'
649 eval 'cf_cv_have_lib_'$1'=yes',[
651 AC_MSG_CHECKING(for $5 in -l$1)
653 AC_TRY_LINK([$3],[$4],
655 eval 'cf_cv_have_lib_'$1'=yes'
658 CF_LIBRARY_PATH(cf_search,$2)
659 for cf_libdir in $cf_search
661 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
662 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
663 AC_TRY_LINK([$3],[$4],
665 eval 'cf_cv_have_lib_'$1'=yes'
668 LIBS="$cf_save_LIBS"])
672 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
674 if test $cf_found_library = no ; then
675 AC_MSG_ERROR(Cannot link $1 library)
679 dnl ---------------------------------------------------------------------------
680 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
682 dnl Find a library (specifically the linkage used in the code fragment),
683 dnl searching for it if it is not already in the library path.
684 dnl See also CF_ADD_SEARCHPATH.
686 dnl Parameters (4-on are optional):
687 dnl $1 = headers for library entrypoint
688 dnl $2 = code fragment for library entrypoint
689 dnl $3 = the library name without the "-l" option or ".so" suffix.
690 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
691 dnl $5 = action to perform if not successful
692 dnl $6 = module name, if not the same as the library name
693 dnl $7 = extra libraries
695 dnl Sets these variables:
696 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
697 dnl $cf_cv_header_path_$3 - include-directory if needed
698 dnl $cf_cv_library_path_$3 - library-directory if needed
699 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
700 AC_DEFUN([CF_FIND_LINKAGE],[
702 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
703 # will be set on completion of the AC_TRY_LINK below.
704 cf_cv_header_path_$3=
705 cf_cv_library_path_$3=
707 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
711 AC_TRY_LINK([$1],[$2],[
712 cf_cv_find_linkage_$3=yes
713 cf_cv_header_path_$3=/usr/include
714 cf_cv_library_path_$3=/usr/lib
717 LIBS="-l$3 $7 $cf_save_LIBS"
719 AC_TRY_LINK([$1],[$2],[
720 cf_cv_find_linkage_$3=yes
721 cf_cv_header_path_$3=/usr/include
722 cf_cv_library_path_$3=/usr/lib
723 cf_cv_library_file_$3="-l$3"
725 cf_cv_find_linkage_$3=no
728 CF_VERBOSE(find linkage for $3 library)
729 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
731 cf_save_CPPFLAGS="$CPPFLAGS"
732 cf_test_CPPFLAGS="$CPPFLAGS"
734 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
735 for cf_cv_header_path_$3 in $cf_search
737 if test -d $cf_cv_header_path_$3 ; then
738 CF_VERBOSE(... testing $cf_cv_header_path_$3)
739 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
740 AC_TRY_COMPILE([$1],[$2],[
741 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
742 cf_cv_find_linkage_$3=maybe
743 cf_test_CPPFLAGS="$CPPFLAGS"
745 CPPFLAGS="$cf_save_CPPFLAGS"
750 if test "$cf_cv_find_linkage_$3" = maybe ; then
752 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
755 cf_save_LDFLAGS="$LDFLAGS"
758 CPPFLAGS="$cf_test_CPPFLAGS"
759 LIBS="-l$3 $7 $cf_save_LIBS"
760 AC_TRY_LINK([$1],[$2],[
761 CF_VERBOSE(... found $3 library in system)
762 cf_cv_find_linkage_$3=yes])
763 CPPFLAGS="$cf_save_CPPFLAGS"
767 if test "$cf_cv_find_linkage_$3" != yes ; then
768 CF_LIBRARY_PATH(cf_search,$3)
769 for cf_cv_library_path_$3 in $cf_search
771 if test -d $cf_cv_library_path_$3 ; then
772 CF_VERBOSE(... testing $cf_cv_library_path_$3)
773 CPPFLAGS="$cf_test_CPPFLAGS"
774 LIBS="-l$3 $7 $cf_save_LIBS"
775 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
776 AC_TRY_LINK([$1],[$2],[
777 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
778 cf_cv_find_linkage_$3=yes
779 cf_cv_library_file_$3="-l$3"
781 CPPFLAGS="$cf_save_CPPFLAGS"
783 LDFLAGS="$cf_save_LDFLAGS"
787 CPPFLAGS="$cf_save_CPPFLAGS"
788 LDFLAGS="$cf_save_LDFLAGS"
792 cf_cv_find_linkage_$3=no
799 if test "$cf_cv_find_linkage_$3" = yes ; then
801 CF_ADD_INCDIR($cf_cv_header_path_$3)
802 CF_ADD_LIBDIR($cf_cv_library_path_$3)
806 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
809 dnl ---------------------------------------------------------------------------
810 dnl CF_GCC_ATTRIBUTES version: 13 updated: 2009/08/11 20:19:56
811 dnl -----------------
812 dnl Test for availability of useful gcc __attribute__ directives to quiet
813 dnl compiler warnings. Though useful, not all are supported -- and contrary
814 dnl to documentation, unrecognized directives cause older compilers to barf.
815 AC_DEFUN([CF_GCC_ATTRIBUTES],
819 cat > conftest.i <<EOF
827 #define GCC_NORETURN /* nothing */
830 #define GCC_UNUSED /* nothing */
835 AC_CHECKING([for $CC __attribute__ directives])
836 cat > conftest.$ac_ext <<EOF
837 #line __oline__ "${as_me-configure}"
838 #include "confdefs.h"
839 #include "conftest.h"
840 #include "conftest.i"
842 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
844 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
847 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
849 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
851 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
852 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
853 extern void foo(void) GCC_NORETURN;
854 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
856 cf_printf_attribute=no
857 cf_scanf_attribute=no
858 for cf_attribute in scanf printf unused noreturn
860 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
861 cf_directive="__attribute__(($cf_attribute))"
862 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
864 case $cf_attribute in #(vi
866 cf_printf_attribute=yes
867 cat >conftest.h <<EOF
868 #define GCC_$cf_ATTRIBUTE 1
872 cf_scanf_attribute=yes
873 cat >conftest.h <<EOF
874 #define GCC_$cf_ATTRIBUTE 1
878 cat >conftest.h <<EOF
879 #define GCC_$cf_ATTRIBUTE $cf_directive
884 if AC_TRY_EVAL(ac_compile); then
885 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
886 cat conftest.h >>confdefs.h
887 case $cf_attribute in #(vi
889 if test "$cf_printf_attribute" = no ; then
890 cat >>confdefs.h <<EOF
891 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
894 cat >>confdefs.h <<EOF
895 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
900 if test "$cf_scanf_attribute" = no ; then
901 cat >>confdefs.h <<EOF
902 #define GCC_SCANFLIKE(fmt,var) /* nothing */
905 cat >>confdefs.h <<EOF
906 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
914 fgrep define conftest.i >>confdefs.h
919 dnl ---------------------------------------------------------------------------
920 dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
922 dnl Find version of gcc
923 AC_DEFUN([CF_GCC_VERSION],[
924 AC_REQUIRE([AC_PROG_CC])
926 if test "$GCC" = yes ; then
927 AC_MSG_CHECKING(version of $CC)
928 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
929 test -z "$GCC_VERSION" && GCC_VERSION=unknown
930 AC_MSG_RESULT($GCC_VERSION)
933 dnl ---------------------------------------------------------------------------
934 dnl CF_GCC_WARNINGS version: 26 updated: 2010/08/14 18:25:37
936 dnl Check if the compiler supports useful warning options. There's a few that
937 dnl we don't use, simply because they're too noisy:
939 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
940 dnl -Wredundant-decls (system headers make this too noisy)
941 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
942 dnl -Wwrite-strings (too noisy, but should review occasionally). This
943 dnl is enabled for ncurses using "--enable-const".
947 dnl $1 is an optional list of gcc warning flags that a particular
948 dnl application might want to use, e.g., "no-unused" for
951 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
953 AC_DEFUN([CF_GCC_WARNINGS],
955 AC_REQUIRE([CF_GCC_VERSION])
956 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
958 cat > conftest.$ac_ext <<EOF
959 #line __oline__ "${as_me-configure}"
960 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
963 if test "$INTEL_COMPILER" = yes
965 # The "-wdXXX" options suppress warnings:
966 # remark #1419: external declaration in primary source file
967 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
968 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
969 # remark #193: zero used for undefined preprocessing identifier
970 # remark #593: variable "curs_sb_left_arrow" was set but never used
971 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
972 # remark #869: parameter "tw" was never referenced
973 # remark #981: operands are evaluated in unspecified order
974 # warning #279: controlling expression is constant
976 AC_CHECKING([for $CC warning options])
977 cf_save_CFLAGS="$CFLAGS"
990 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
991 if AC_TRY_EVAL(ac_compile); then
992 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
993 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
996 CFLAGS="$cf_save_CFLAGS"
998 elif test "$GCC" = yes
1000 AC_CHECKING([for $CC warning options])
1001 cf_save_CFLAGS="$CFLAGS"
1004 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1005 for cf_opt in W Wall \
1006 Wbad-function-cast \
1010 Wmissing-declarations \
1011 Wmissing-prototypes \
1015 Wstrict-prototypes \
1016 Wundef $cf_warn_CONST $1
1018 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1019 if AC_TRY_EVAL(ac_compile); then
1020 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1021 case $cf_opt in #(vi
1023 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1026 case $GCC_VERSION in
1028 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1033 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1036 CFLAGS="$cf_save_CFLAGS"
1040 AC_SUBST(EXTRA_CFLAGS)
1042 dnl ---------------------------------------------------------------------------
1043 dnl CF_GNAT_PRAGMA_UNREF version: 1 updated: 2010/06/19 15:22:18
1044 dnl --------------------
1045 dnl Check if the gnat pragma "Unreferenced" works.
1046 AC_DEFUN([CF_GNAT_PRAGMA_UNREF],[
1047 AC_CACHE_CHECK(if GNAT pragma Unreferenced works,cf_cv_pragma_unreferenced,[
1048 CF_GNAT_TRY_LINK([procedure conftest;],
1051 procedure conftest is
1053 pragma Unreferenced (test);
1056 Text_IO.Put ("Hello World");
1058 GNAT.OS_Lib.OS_Exit (0);
1060 [cf_cv_pragma_unreferenced=yes],
1061 [cf_cv_pragma_unreferenced=no])])
1063 # if the pragma is supported, use it (needed in the Trace code).
1064 if test $cf_cv_pragma_unreferenced = yes ; then
1069 AC_SUBST(PRAGMA_UNREF)
1071 dnl ---------------------------------------------------------------------------
1072 dnl CF_GNAT_TRY_LINK version: 2 updated: 2010/08/14 18:25:37
1073 dnl ----------------
1074 dnl Verify that a test program compiles/links with GNAT.
1075 dnl $cf_ada_make is set to the program that compiles/links
1076 dnl $ADAFLAGS may be set to the GNAT flags.
1078 dnl $1 is the text of the spec
1079 dnl $2 is the text of the body
1080 dnl $3 is the shell command to execute if successful
1081 dnl $4 is the shell command to execute if not successful
1082 AC_DEFUN([CF_GNAT_TRY_LINK],
1085 cat >>conftest.ads <<CF_EOF
1088 cat >>conftest.adb <<CF_EOF
1091 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1092 ifelse($3,, :,[ $3])
1098 dnl ---------------------------------------------------------------------------
1099 dnl CF_GNAT_TRY_RUN version: 4 updated: 2010/08/14 18:25:37
1101 dnl Verify that a test program compiles and runs with GNAT
1102 dnl $cf_ada_make is set to the program that compiles/links
1103 dnl $ADAFLAGS may be set to the GNAT flags.
1105 dnl $1 is the text of the spec
1106 dnl $2 is the text of the body
1107 dnl $3 is the shell command to execute if successful
1108 dnl $4 is the shell command to execute if not successful
1109 AC_DEFUN([CF_GNAT_TRY_RUN],
1112 cat >>conftest.ads <<CF_EOF
1115 cat >>conftest.adb <<CF_EOF
1118 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1119 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1120 ifelse($3,, :,[ $3])
1129 dnl ---------------------------------------------------------------------------
1130 dnl CF_GNAT_VERSION version: 14 updated: 2010/07/03 17:45:09
1132 dnl Verify version of GNAT.
1133 AC_DEFUN([CF_GNAT_VERSION],
1135 AC_MSG_CHECKING(for gnat version)
1136 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1137 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1138 AC_MSG_RESULT($cf_gnat_version)
1140 case $cf_gnat_version in
1141 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1142 cf_cv_prog_gnat_correct=yes
1144 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1145 cf_cv_prog_gnat_correct=no
1149 case $cf_gnat_version in
1150 3.[[1-9]]*|[[4-9]].*)
1151 cf_compile_generics=generics
1152 cf_generic_objects="\${GENOBJS}"
1154 *) cf_compile_generics=
1159 case $cf_gnat_version in
1161 USE_OLD_MAKERULES=""
1162 USE_GNAT_PROJECTS="#"
1165 USE_OLD_MAKERULES="#"
1166 USE_GNAT_PROJECTS=""
1170 AC_SUBST(cf_compile_generics)
1171 AC_SUBST(cf_generic_objects)
1173 AC_SUBST(USE_OLD_MAKERULES)
1174 AC_SUBST(USE_GNAT_PROJECTS)
1176 dnl ---------------------------------------------------------------------------
1177 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1179 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1180 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1181 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1182 dnl since it is interwoven with GNU extensions.
1184 dnl Well, yes we could work around it...
1185 AC_DEFUN([CF_GNU_SOURCE],
1187 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1188 AC_TRY_COMPILE([#include <sys/types.h>],[
1189 #ifndef _XOPEN_SOURCE
1192 [cf_cv_gnu_source=no],
1193 [cf_save="$CPPFLAGS"
1194 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1195 AC_TRY_COMPILE([#include <sys/types.h>],[
1196 #ifdef _XOPEN_SOURCE
1199 [cf_cv_gnu_source=no],
1200 [cf_cv_gnu_source=yes])
1204 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1206 dnl ---------------------------------------------------------------------------
1207 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
1209 dnl Construct a search-list of directories for a nonstandard header-file
1212 dnl $1 = the variable to return as result
1213 dnl $2 = the package name
1214 AC_DEFUN([CF_HEADER_PATH],
1218 # collect the current set of include-directories from compiler flags
1219 cf_header_path_list=""
1220 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1221 for cf_header_path in $CPPFLAGS $CFLAGS
1223 case $cf_header_path in #(vi
1225 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1226 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1227 cf_header_path_list="$cf_header_path_list [$]$1"
1233 # add the variations for the package we are looking for
1234 CF_SUBDIR_PATH($1,$2,include)
1236 test "$includedir" != NONE && \
1237 test "$includedir" != "/usr/include" && \
1238 test -d "$includedir" && {
1239 test -d $includedir && $1="[$]$1 $includedir"
1240 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1243 test "$oldincludedir" != NONE && \
1244 test "$oldincludedir" != "/usr/include" && \
1245 test -d "$oldincludedir" && {
1246 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1247 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1250 $1="[$]$1 $cf_header_path_list"
1252 dnl ---------------------------------------------------------------------------
1253 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1255 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1256 AC_DEFUN([CF_HELP_MESSAGE],
1257 [AC_DIVERT_HELP([$1])dnl
1259 dnl ---------------------------------------------------------------------------
1260 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
1262 dnl Construct the list of include-options according to whether we're building
1263 dnl in the source directory or using '--srcdir=DIR' option. If we're building
1264 dnl with gcc, don't append the includedir if it happens to be /usr/include,
1265 dnl since that usually breaks gcc's shadow-includes.
1266 AC_DEFUN([CF_INCLUDE_DIRS],
1268 CPPFLAGS="$CPPFLAGS -I. -I../include"
1269 if test "$srcdir" != "."; then
1270 CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
1272 if test "$GCC" != yes; then
1273 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1274 elif test "$includedir" != "/usr/include"; then
1275 if test "$includedir" = '${prefix}/include' ; then
1276 if test $prefix != /usr ; then
1277 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1280 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1285 dnl ---------------------------------------------------------------------------
1286 dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
1287 dnl -----------------
1288 dnl Check if the given compiler is really the Intel compiler for Linux. It
1289 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1290 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1292 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1293 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1294 dnl the wrappers for gcc and g++ warnings.
1296 dnl $1 = GCC (default) or GXX
1297 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1298 dnl $3 = CFLAGS (default) or CXXFLAGS
1299 AC_DEFUN([CF_INTEL_COMPILER],[
1300 ifelse([$2],,INTEL_COMPILER,[$2])=no
1302 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1305 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1306 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1307 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1309 #ifdef __INTEL_COMPILER
1313 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1314 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1316 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1317 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1322 dnl ---------------------------------------------------------------------------
1323 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
1325 dnl Add checks for large file support.
1326 AC_DEFUN([CF_LARGEFILE],[
1327 ifdef([AC_FUNC_FSEEKO],[
1329 if test "$enable_largefile" != no ; then
1332 # Normally we would collect these definitions in the config.h,
1333 # but (like _XOPEN_SOURCE), some environments rely on having these
1334 # defined before any of the system headers are included. Another
1335 # case comes up with C++, e.g., on AIX the compiler compiles the
1336 # header files by themselves before looking at the body files it is
1337 # told to compile. For ncurses, those header files do not include
1339 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
1340 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
1341 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
1343 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
1345 #include <sys/types.h>
1348 /* if transitional largefile support is setup, this is true */
1349 extern struct dirent64 * readdir(DIR *);
1350 struct dirent64 *x = readdir((DIR *)0);
1351 struct dirent *y = readdir((DIR *)0);
1354 [cf_cv_struct_dirent64=yes],
1355 [cf_cv_struct_dirent64=no])
1357 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
1361 dnl ---------------------------------------------------------------------------
1362 dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
1364 dnl For the given system and compiler, find the compiler flags to pass to the
1365 dnl loader to use the "rpath" feature.
1366 AC_DEFUN([CF_LD_RPATH_OPT],
1368 AC_REQUIRE([CF_CHECK_CACHE])
1371 AC_MSG_CHECKING(for an rpath option)
1372 case $cf_cv_system_name in #(vi
1374 if test "$GCC" = yes; then
1375 LD_RPATH_OPT="-Wl,-rpath,"
1377 LD_RPATH_OPT="-rpath "
1380 linux*|gnu*|k*bsd*-gnu) #(vi
1381 LD_RPATH_OPT="-Wl,-rpath,"
1383 openbsd[[2-9]].*) #(vi
1384 LD_RPATH_OPT="-Wl,-rpath,"
1387 LD_RPATH_OPT="-rpath "
1390 LD_RPATH_OPT="-Wl,-rpath,"
1393 LD_RPATH_OPT="-rpath "
1401 AC_MSG_RESULT($LD_RPATH_OPT)
1403 case "x$LD_RPATH_OPT" in #(vi
1405 AC_MSG_CHECKING(if we need a space after rpath option)
1406 cf_save_LIBS="$LIBS"
1407 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1408 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1409 LIBS="$cf_save_LIBS"
1410 AC_MSG_RESULT($cf_rpath_space)
1411 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1415 dnl ---------------------------------------------------------------------------
1416 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
1418 dnl Construct a search-list of directories for a nonstandard library-file
1421 dnl $1 = the variable to return as result
1422 dnl $2 = the package name
1423 AC_DEFUN([CF_LIBRARY_PATH],
1426 cf_library_path_list=""
1427 if test -n "${LDFLAGS}${LIBS}" ; then
1428 for cf_library_path in $LDFLAGS $LIBS
1430 case $cf_library_path in #(vi
1432 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1433 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1434 cf_library_path_list="$cf_library_path_list [$]$1"
1440 CF_SUBDIR_PATH($1,$2,lib)
1442 $1="$cf_library_path_list [$]$1"
1444 dnl ---------------------------------------------------------------------------
1445 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
1447 dnl Compute the library-prefix for the given host system
1448 dnl $1 = variable to set
1449 AC_DEFUN([CF_LIB_PREFIX],
1451 case $cf_cv_system_name in #(vi
1458 ifelse($1,,,[$1=$LIB_PREFIX])
1459 AC_SUBST(LIB_PREFIX)
1461 dnl ---------------------------------------------------------------------------
1462 dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
1464 dnl Find the and soname for the given shared library. Set the cache variable
1465 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
1466 dnl variable to "unknown".
1470 dnl $3 = library name
1471 AC_DEFUN([CF_LIB_SONAME],
1473 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
1475 cf_cv_$3_soname=unknown
1476 if test "$cross_compiling" != yes ; then
1477 cat >conftest.$ac_ext <<CF_EOF
1482 ${cf_cv_main_return:-return}(0);
1485 cf_save_LIBS="$LIBS"
1487 if AC_TRY_EVAL(ac_compile) ; then
1488 if AC_TRY_EVAL(ac_link) ; then
1489 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
1490 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
1494 LIBS="$cf_save_LIBS"
1498 dnl ---------------------------------------------------------------------------
1499 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
1501 dnl Compute the library file-suffix from the given model name
1503 dnl $2 = variable to set (the nominal library suffix)
1504 dnl $3 = dependency variable to set (actual filename)
1505 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
1506 AC_DEFUN([CF_LIB_SUFFIX],
1508 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
1527 case $cf_cv_system_name in
1557 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
1558 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
1560 dnl ---------------------------------------------------------------------------
1561 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
1563 dnl Compute the string to append to -library from the given model name
1565 dnl $2 = variable to set
1566 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
1567 AC_DEFUN([CF_LIB_TYPE],
1576 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
1578 dnl ---------------------------------------------------------------------------
1579 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
1580 dnl ----------------
1581 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
1582 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
1583 dnl have to provide wrappers for global tables to ensure they're linked
1585 AC_DEFUN([CF_LINK_DATAONLY],
1587 AC_MSG_CHECKING([if data-only library module links])
1588 AC_CACHE_VAL(cf_cv_link_dataonly,[
1590 cat >conftest.$ac_ext <<EOF
1591 #line __oline__ "configure"
1592 int testdata[[3]] = { 123, 456, 789 };
1594 if AC_TRY_EVAL(ac_compile) ; then
1595 mv conftest.o data.o && \
1596 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
1598 rm -f conftest.$ac_ext data.o
1599 cat >conftest.$ac_ext <<EOF
1600 #line __oline__ "configure"
1604 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
1606 extern int testdata[[3]];
1607 return testdata[[0]] == 123
1608 && testdata[[1]] == 456
1609 && testdata[[2]] == 789;
1613 if AC_TRY_EVAL(ac_compile); then
1614 mv conftest.o func.o && \
1615 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
1617 rm -f conftest.$ac_ext func.o
1618 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
1620 LIBS="conftest.a $LIBS"
1624 extern int testfunc();
1625 ${cf_cv_main_return:-return} (!testfunc());
1628 [cf_cv_link_dataonly=yes],
1629 [cf_cv_link_dataonly=no],
1630 [cf_cv_link_dataonly=unknown])
1633 AC_MSG_RESULT($cf_cv_link_dataonly)
1635 if test "$cf_cv_link_dataonly" = no ; then
1636 AC_DEFINE(BROKEN_LINKER)
1641 dnl ---------------------------------------------------------------------------
1642 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
1644 dnl Most Unix systems have both link and symlink, a few don't have symlink.
1645 dnl A few non-Unix systems implement symlink, but not link.
1646 dnl A few non-systems implement neither (or have nonfunctional versions).
1647 AC_DEFUN([CF_LINK_FUNCS],
1653 if test "$cross_compiling" = yes ; then
1658 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
1660 for cf_func in link symlink ; do
1662 #include <sys/types.h>
1663 #include <sys/stat.h>
1664 #ifdef HAVE_UNISTD_H
1670 char *src = "config.log";
1671 char *dst = "conftest.chk";
1676 fail = ($cf_func("config.log", "conftest.chk") < 0)
1677 || (stat(dst, &dst_sb) < 0)
1678 || (dst_sb.st_mtime != src_sb.st_mtime);
1684 ${cf_cv_main_return:-return} (fail);
1687 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
1688 eval 'ac_cv_func_'$cf_func'=yes'],[
1689 eval 'ac_cv_func_'$cf_func'=no'],[
1690 eval 'ac_cv_func_'$cf_func'=error'])
1692 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
1694 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
1695 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
1698 dnl ---------------------------------------------------------------------------
1699 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
1701 dnl Check if a return from main to the shell actually returns the same exit
1702 dnl code. This is true for almost any POSIX environment.
1704 dnl Some very old environments did not flush stdout, etc., on an exit. That
1705 dnl would be a useful case to test for also.
1706 AC_DEFUN([CF_MAIN_RETURN],
1708 cf_cv_main_return=return
1710 dnl ---------------------------------------------------------------------------
1711 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
1713 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
1714 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
1715 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
1716 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
1717 AC_DEFUN([CF_MAKEFLAGS],
1719 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
1721 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
1723 cat >cf_makeflags.tmp <<CF_EOF
1726 @ echo '.$cf_option'
1728 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
1729 case "$cf_result" in
1731 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
1732 case "$cf_result" in
1733 .*CC=*) cf_cv_makeflags=
1735 *) cf_cv_makeflags=$cf_option
1741 *) echo "given option \"$cf_option\", no match \"$cf_result\""
1745 rm -f cf_makeflags.tmp
1748 AC_SUBST(cf_cv_makeflags)
1750 dnl ---------------------------------------------------------------------------
1751 dnl CF_MAKE_TAGS version: 5 updated: 2010/04/03 20:07:32
1753 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1754 dnl a monocase filesystem.
1755 AC_DEFUN([CF_MAKE_TAGS],[
1756 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1758 AC_CHECK_PROGS(CTAGS, exctags ctags)
1759 AC_CHECK_PROGS(ETAGS, exetags etags)
1761 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS-ctags}, yes, no)
1763 if test "$cf_cv_mixedcase" = yes ; then
1764 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS-etags}, yes, no)
1769 if test "$MAKE_UPPER_TAGS" = yes ; then
1775 if test "$MAKE_LOWER_TAGS" = yes ; then
1784 AC_SUBST(MAKE_UPPER_TAGS)
1785 AC_SUBST(MAKE_LOWER_TAGS)
1787 dnl ---------------------------------------------------------------------------
1788 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
1789 dnl ----------------------
1790 dnl Check if the file-system supports mixed-case filenames. If we're able to
1791 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1792 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1794 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1795 if test "$cross_compiling" = yes ; then
1796 case $target_alias in #(vi
1797 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
1805 rm -f conftest CONFTEST
1807 if test -f CONFTEST ; then
1812 rm -f conftest CONFTEST
1815 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
1817 dnl ---------------------------------------------------------------------------
1818 dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
1820 dnl Check for a working mkstemp. This creates two files, checks that they are
1821 dnl successfully created and distinct (AmigaOS apparently fails on the last).
1822 AC_DEFUN([CF_MKSTEMP],[
1823 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
1826 #include <sys/types.h>
1830 #include <sys/stat.h>
1833 char *tmpl = "conftestXXXXXX";
1841 for (n = 0; n < 2; ++n) {
1842 strcpy(name[n], tmpl);
1843 if ((fd = mkstemp(name[n])) >= 0) {
1844 if (!strcmp(name[n], tmpl)
1845 || stat(name[n], &sb) != 0
1846 || (sb.st_mode & S_IFMT) != S_IFREG
1847 || (sb.st_mode & 077) != 0) {
1854 && !strcmp(name[0], name[1]))
1856 ${cf_cv_main_return:-return}(result);
1858 ],[cf_cv_func_mkstemp=yes
1859 ],[cf_cv_func_mkstemp=no
1860 ],[AC_CHECK_FUNC(mkstemp)
1863 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
1864 AC_DEFINE(HAVE_MKSTEMP)
1867 dnl ---------------------------------------------------------------------------
1868 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
1870 dnl Write a debug message to config.log, along with the line number in the
1871 dnl configure script.
1872 AC_DEFUN([CF_MSG_LOG],[
1873 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1875 dnl ---------------------------------------------------------------------------
1876 dnl CF_NCURSES_ADDON version: 2 updated: 2010/02/27 18:27:44
1877 dnl ----------------
1878 dnl Configure an ncurses add-on, built outside the ncurses tree.
1879 AC_DEFUN([CF_NCURSES_ADDON],[
1881 AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
1883 AC_MSG_CHECKING(if you want wide-character code)
1884 AC_ARG_ENABLE(widec,
1885 [ --enable-widec compile with wide-char/UTF-8 code],
1886 [with_widec=$enableval],
1888 AC_MSG_RESULT($with_widec)
1889 if test "$with_widec" = yes ; then
1891 CF_NCURSES_CONFIG(ncursesw)
1893 CF_NCURSES_CONFIG(ncurses)
1896 if test "$NCURSES_CONFIG" != none ; then
1898 cf_version=`$NCURSES_CONFIG --version`
1900 NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
1901 NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]]\+\.//' -e 's/\..*//'`
1902 NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]]\+\.[[0-9]]\+\.//'`
1904 # ABI version is not available from headers
1905 cf_cv_abi_version=`$NCURSES_CONFIG --abi-version`
1909 for cf_name in MAJOR MINOR PATCH
1911 cat >conftest.$ac_ext <<CF_EOF
1912 #include <${cf_cv_ncurses_header-curses.h}>
1913 AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
1915 cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
1917 if test -f conftest.out ; then
1918 cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[[ ]]\+//"`
1919 eval NCURSES_$cf_name=$cf_result
1920 cat conftest.$ac_ext
1925 cf_cv_abi_version=${NCURSES_MAJOR}
1929 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
1931 dnl Show the computed version, for logging
1932 cf_cv_timestamp=`date`
1934 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
1936 dnl We need these values in the generated headers
1937 AC_SUBST(NCURSES_MAJOR)
1938 AC_SUBST(NCURSES_MINOR)
1939 AC_SUBST(NCURSES_PATCH)
1941 dnl We need these values in the generated makefiles
1942 AC_SUBST(cf_cv_rel_version)
1943 AC_SUBST(cf_cv_abi_version)
1945 dnl FIXME - not needed for Ada95
1946 AC_SUBST(cf_cv_builtin_bool)
1947 AC_SUBST(cf_cv_header_stdbool_h)
1948 AC_SUBST(cf_cv_type_of_bool)dnl
1951 dnl ---------------------------------------------------------------------------
1952 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
1953 dnl -------------------
1954 dnl Check if we can compile with ncurses' header file
1955 dnl $1 is the cache variable to set
1956 dnl $2 is the header-file to include
1957 dnl $3 is the root name (ncurses or ncursesw)
1958 AC_DEFUN([CF_NCURSES_CC_CHECK],[
1960 ]ifelse($3,ncursesw,[
1961 #define _XOPEN_SOURCE_EXTENDED
1962 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
1963 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
1966 #ifdef NCURSES_VERSION
1967 ]ifelse($3,ncursesw,[
1972 printf("%s\n", NCURSES_VERSION);
1984 dnl ---------------------------------------------------------------------------
1985 dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
1986 dnl -----------------
1987 dnl Tie together the configure-script macros for ncurses.
1988 dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
1989 dnl Allow that to be overridden using the $NCURSES_CONFIG environment variable.
1991 dnl $1 is the root library name (default: "ncurses")
1992 AC_DEFUN([CF_NCURSES_CONFIG],
1994 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
1996 echo "Looking for ${cf_ncuconfig_root}-config"
1997 AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
1999 if test "$NCURSES_CONFIG" != none ; then
2001 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2002 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2004 # even with config script, some packages use no-override for curses.h
2005 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2007 dnl like CF_NCURSES_CPPFLAGS
2010 dnl like CF_NCURSES_LIBS
2011 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2012 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2014 dnl like CF_NCURSES_VERSION
2015 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2019 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2020 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2024 dnl ---------------------------------------------------------------------------
2025 dnl CF_NCURSES_CPPFLAGS version: 19 updated: 2007/07/29 13:35:20
2026 dnl -------------------
2027 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2028 dnl the CPPFLAGS variable so we can include its header.
2030 dnl The header files may be installed as either curses.h, or ncurses.h (would
2031 dnl be obsolete, except that some packagers prefer this name to distinguish it
2032 dnl from a "native" curses implementation). If not installed for overwrite,
2033 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2034 dnl /usr/include/ncurses), but someone may have installed overwriting the
2035 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2036 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2039 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2040 dnl is already in the include-path, don't even bother with this, since we cannot
2041 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2043 dnl The optional parameter gives the root name of the library, in case it is
2044 dnl not installed as the default curses library. That is how the
2045 dnl wide-character version of ncurses is installed.
2046 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2047 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2049 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2050 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2052 test -n "$cf_cv_curses_dir" && \
2053 test "$cf_cv_curses_dir" != "no" && { \
2054 CF_ADD_INCDIR($cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root)
2057 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2058 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2059 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2060 for cf_header in $cf_header_list
2062 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2063 test "$cf_cv_ncurses_h" != no && break
2070 # some applications need this, but should check for NCURSES_VERSION
2075 dnl ---------------------------------------------------------------------------
2076 dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
2077 dnl -----------------
2078 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2079 dnl variations of ncurses' installs.
2081 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2082 AC_DEFUN([CF_NCURSES_HEADER],[
2084 if test "$cf_cv_ncurses_h" != no ; then
2085 cf_cv_ncurses_header=$cf_cv_ncurses_h
2088 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2089 test -n "$verbose" && echo
2090 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2091 test -n "$verbose" && echo search path $cf_search
2092 cf_save2_CPPFLAGS="$CPPFLAGS"
2093 for cf_incdir in $cf_search
2095 CF_ADD_INCDIR($cf_incdir)
2100 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2101 if test "$cf_cv_ncurses_h2" != no ; then
2102 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2103 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2106 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2108 CPPFLAGS="$cf_save2_CPPFLAGS"
2109 test "$cf_cv_ncurses_h2" != no && break
2111 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2114 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2115 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2116 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2117 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2119 CF_ADD_INCDIR($cf_1st_incdir)
2123 # Set definitions to allow ifdef'ing for ncurses.h
2125 case $cf_cv_ncurses_header in # (vi
2127 AC_DEFINE(HAVE_NCURSES_H)
2131 case $cf_cv_ncurses_header in # (vi
2132 ncurses/curses.h|ncurses/ncurses.h)
2133 AC_DEFINE(HAVE_NCURSES_NCURSES_H)
2135 ncursesw/curses.h|ncursesw/ncurses.h)
2136 AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
2141 dnl ---------------------------------------------------------------------------
2142 dnl CF_NCURSES_LIBS version: 14 updated: 2010/06/20 09:24:28
2144 dnl Look for the ncurses library. This is a little complicated on Linux,
2145 dnl because it may be linked with the gpm (general purpose mouse) library.
2146 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2147 dnl unusable with ncurses. However, we don't want to link with gpm unless
2148 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2149 dnl and the linker will record a dependency.
2151 dnl The optional parameter gives the root name of the library, in case it is
2152 dnl not installed as the default curses library. That is how the
2153 dnl wide-character version of ncurses is installed.
2154 AC_DEFUN([CF_NCURSES_LIBS],
2155 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2157 cf_nculib_root=ifelse($1,,ncurses,$1)
2158 # This works, except for the special case where we find gpm, but
2159 # ncurses is in a nonstandard location via $LIBS, and we really want
2162 cf_ncurses_SAVE="$LIBS"
2163 AC_CHECK_LIB(gpm,Gpm_Open,
2164 [AC_CHECK_LIB(gpm,initscr,
2165 [LIBS="$cf_ncurses_SAVE"],
2166 [cf_ncurses_LIBS="-lgpm"])])
2168 case $host_os in #(vi
2170 # This is only necessary if you are linking against an obsolete
2171 # version of ncurses (but it should do no harm, since it's static).
2172 if test "$cf_nculib_root" = ncurses ; then
2173 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2178 CF_ADD_LIBS($cf_ncurses_LIBS)
2180 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2182 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
2183 CF_ADD_LIBS(-l$cf_nculib_root)
2185 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2186 [#include <${cf_cv_ncurses_header-curses.h}>],
2191 if test -n "$cf_ncurses_LIBS" ; then
2192 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2193 cf_ncurses_SAVE="$LIBS"
2194 for p in $cf_ncurses_LIBS ; do
2195 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2196 if test "$q" != "$LIBS" ; then
2200 AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
2201 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2202 [AC_MSG_RESULT(yes)],
2204 LIBS="$cf_ncurses_SAVE"])
2207 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2208 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2210 dnl ---------------------------------------------------------------------------
2211 dnl CF_NCURSES_VERSION version: 12 updated: 2007/04/28 09:15:55
2212 dnl ------------------
2213 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2214 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2215 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2216 AC_DEFUN([CF_NCURSES_VERSION],
2218 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2219 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2220 cf_cv_ncurses_version=no
2224 #include <${cf_cv_ncurses_header-curses.h}>
2228 FILE *fp = fopen("$cf_tempfile", "w");
2229 #ifdef NCURSES_VERSION
2230 # ifdef NCURSES_VERSION_PATCH
2231 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2233 fprintf(fp, "%s\n", NCURSES_VERSION);
2237 fprintf(fp, "old\n");
2242 ${cf_cv_main_return-return}(0);
2244 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2246 # This will not work if the preprocessor splits the line after the
2247 # Autoconf token. The 'unproto' program does that.
2248 cat > conftest.$ac_ext <<EOF
2249 #include <${cf_cv_ncurses_header-curses.h}>
2251 #ifdef NCURSES_VERSION
2252 Autoconf NCURSES_VERSION
2260 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2262 if test -f conftest.out ; then
2263 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2264 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2270 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
2272 dnl ---------------------------------------------------------------------------
2273 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
2274 dnl ------------------
2275 dnl see CF_WITH_NO_LEAKS
2276 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2277 AC_MSG_CHECKING(if you want to use $1 for testing)
2280 [AC_DEFINE($3)ifelse([$4],,[
2283 : ${with_cflags:=-g}
2284 : ${with_no_leaks:=yes}
2287 AC_MSG_RESULT(${with_$1:-no})
2289 case .$with_cflags in #(vi
2291 case .$CFLAGS in #(vi
2301 dnl ---------------------------------------------------------------------------
2302 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
2303 dnl ----------------
2304 dnl Check if the given variable is a number. If not, report an error.
2305 dnl $1 is the variable
2306 dnl $2 is the message
2307 AC_DEFUN([CF_NUMBER_SYNTAX],[
2308 if test -n "$1" ; then
2313 AC_MSG_ERROR($2 is not a number: $1)
2317 AC_MSG_ERROR($2 value is empty)
2320 dnl ---------------------------------------------------------------------------
2321 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
2323 dnl Compute the object-directory name from the given model name
2324 AC_DEFUN([CF_OBJ_SUBDIR],
2327 libtool) $2='obj_lo' ;;
2328 normal) $2='objects' ;;
2329 debug) $2='obj_g' ;;
2330 profile) $2='obj_p' ;;
2332 case $cf_cv_system_name in #(vi
2340 dnl ---------------------------------------------------------------------------
2341 dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
2343 dnl Provide a value for the $PATH and similar separator
2344 AC_DEFUN([CF_PATHSEP],
2346 case $cf_cv_system_name in
2347 os2*) PATH_SEPARATOR=';' ;;
2348 *) PATH_SEPARATOR=':' ;;
2350 ifelse([$1],,,[$1=$PATH_SEPARATOR])
2351 AC_SUBST(PATH_SEPARATOR)
2353 dnl ---------------------------------------------------------------------------
2354 dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
2356 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2357 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2358 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2359 dnl delayed evaluation of those symbols.
2360 AC_DEFUN([CF_PATH_SYNTAX],[
2361 if test "x$prefix" != xNONE; then
2362 cf_path_syntax="$prefix"
2364 cf_path_syntax="$ac_default_prefix"
2367 case ".[$]$1" in #(vi
2368 .\[$]\(*\)*|.\'*\'*) #(vi
2372 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
2374 .\[$]{*prefix}*) #(vi
2376 case ".[$]$1" in #(vi
2378 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2383 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2386 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2390 dnl ---------------------------------------------------------------------------
2391 dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
2393 dnl Check for the package-config program, unless disabled by command-line.
2394 AC_DEFUN([CF_PKG_CONFIG],
2396 AC_MSG_CHECKING(if you want to use pkg-config)
2397 AC_ARG_WITH(pkg-config,
2398 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2399 [cf_pkg_config=$withval],
2400 [cf_pkg_config=yes])
2401 AC_MSG_RESULT($cf_pkg_config)
2403 case $cf_pkg_config in #(vi
2408 AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
2415 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2416 if test "$PKG_CONFIG" != none ; then
2417 CF_PATH_SYNTAX(PKG_CONFIG)
2420 AC_SUBST(PKG_CONFIG)
2422 dnl ---------------------------------------------------------------------------
2423 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
2424 dnl -----------------
2425 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2427 dnl POSIX.1-1990 _POSIX_SOURCE
2428 dnl POSIX.1-1990 and _POSIX_SOURCE and
2429 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2431 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2432 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2433 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2436 dnl $1 is the nominal value for _POSIX_C_SOURCE
2437 AC_DEFUN([CF_POSIX_C_SOURCE],
2439 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2441 cf_save_CFLAGS="$CFLAGS"
2442 cf_save_CPPFLAGS="$CPPFLAGS"
2444 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2445 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2447 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2448 CF_MSG_LOG(if the symbol is already defined go no further)
2449 AC_TRY_COMPILE([#include <sys/types.h>],[
2450 #ifndef _POSIX_C_SOURCE
2453 [cf_cv_posix_c_source=no],
2454 [cf_want_posix_source=no
2455 case .$cf_POSIX_C_SOURCE in #(vi
2457 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2460 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2461 cf_want_posix_source=yes
2464 cf_want_posix_source=yes
2467 if test "$cf_want_posix_source" = yes ; then
2468 AC_TRY_COMPILE([#include <sys/types.h>],[
2469 #ifdef _POSIX_SOURCE
2472 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2474 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2475 CFLAGS="$cf_trim_CFLAGS"
2476 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2477 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2478 AC_TRY_COMPILE([#include <sys/types.h>],[
2479 #ifndef _POSIX_C_SOURCE
2482 [cf_cv_posix_c_source=no])
2483 CFLAGS="$cf_save_CFLAGS"
2484 CPPFLAGS="$cf_save_CPPFLAGS"
2488 if test "$cf_cv_posix_c_source" != no ; then
2489 CFLAGS="$cf_trim_CFLAGS"
2490 CPPFLAGS="$cf_trim_CPPFLAGS"
2491 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2495 dnl ---------------------------------------------------------------------------
2496 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
2498 dnl Check for archiver "ar".
2499 AC_DEFUN([CF_PROG_AR],[
2500 AC_CHECK_TOOL(AR, ar, ar)
2502 dnl ---------------------------------------------------------------------------
2503 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
2505 dnl Check for awk, ensure that the check found something.
2506 AC_DEFUN([CF_PROG_AWK],
2509 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
2511 dnl ---------------------------------------------------------------------------
2512 dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
2514 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
2515 dnl the output file can be renamed, and allows for a shell variable that can
2516 dnl be used later. The parameter is either CC or CXX. The result is the
2518 dnl $cf_cv_prog_CC_c_o
2519 dnl $cf_cv_prog_CXX_c_o
2520 AC_DEFUN([CF_PROG_CC_C_O],
2521 [AC_REQUIRE([AC_PROG_CC])dnl
2522 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
2523 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
2525 cat > conftest.$ac_ext <<CF_EOF
2529 ${cf_cv_main_return:-return}(0);
2532 # We do the test twice because some compilers refuse to overwrite an
2533 # existing .o file with -o, though they will create one.
2534 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
2535 if AC_TRY_EVAL(ac_try) &&
2536 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
2538 eval cf_cv_prog_$1_c_o=yes
2540 eval cf_cv_prog_$1_c_o=no
2544 if test $cf_cv_prog_$1_c_o = yes; then
2545 AC_MSG_RESULT([yes])
2550 dnl ---------------------------------------------------------------------------
2551 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
2553 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
2554 dnl This macro adds a check to ensure the script found something.
2555 AC_DEFUN([CF_PROG_EGREP],
2556 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
2557 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
2558 then ac_cv_prog_egrep='grep -E'
2559 else ac_cv_prog_egrep='egrep'
2561 EGREP=$ac_cv_prog_egrep
2563 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
2565 dnl ---------------------------------------------------------------------------
2566 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
2568 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
2569 AC_DEFUN([CF_PROG_EXT],
2571 AC_REQUIRE([CF_CHECK_CACHE])
2572 case $cf_cv_system_name in
2574 CFLAGS="$CFLAGS -Zmt"
2575 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
2576 CXXFLAGS="$CXXFLAGS -Zmt"
2577 # autoconf's macro sets -Zexe and suffix both, which conflict:w
2578 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
2588 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
2590 dnl ---------------------------------------------------------------------------
2591 dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18
2593 dnl Check for gnatmake, ensure that it is complete.
2594 AC_DEFUN([CF_PROG_GNAT],[
2595 cf_ada_make=gnatmake
2596 AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
2597 if test "$ac_cv_prog_gnat_exists" = no; then
2601 AC_CHECK_PROG(M4_exists, m4, yes, no)
2602 if test "$ac_cv_prog_M4_exists" = no; then
2603 cf_cv_prog_gnat_correct=no
2604 echo Ada95 binding required program m4 not found. Ada95 binding disabled.
2606 if test "$cf_cv_prog_gnat_correct" = yes; then
2607 AC_MSG_CHECKING(if GNAT works)
2608 CF_GNAT_TRY_RUN([procedure conftest;],
2611 procedure conftest is
2613 Text_IO.Put ("Hello World");
2615 GNAT.OS_Lib.OS_Exit (0);
2616 end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
2617 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
2621 AC_SUBST(cf_ada_make)
2623 dnl ---------------------------------------------------------------------------
2624 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
2626 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
2627 dnl option if it is supported.
2628 AC_DEFUN([CF_PROG_LN_S],[
2630 AC_MSG_CHECKING(if $LN_S -f options work)
2632 rm -f conf$$.src conf$$dst
2634 echo first >conf$$.src
2635 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
2640 rm -f conf$$.dst conf$$src
2641 AC_MSG_RESULT($cf_prog_ln_sf)
2643 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
2645 dnl ---------------------------------------------------------------------------
2646 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2647 dnl ----------------
2648 dnl Remove all -U and -D options that refer to the given symbol from a list
2649 dnl of C compiler options. This works around the problem that not all
2650 dnl compilers process -U and -D options from left-to-right, so a -U option
2651 dnl cannot be used to cancel the effect of a preceding -D option.
2653 dnl $1 = target (which could be the same as the source variable)
2654 dnl $2 = source (including '$')
2655 dnl $3 = symbol to remove
2656 define([CF_REMOVE_DEFINE],
2659 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2660 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2662 dnl ---------------------------------------------------------------------------
2663 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
2665 dnl Remove the given library from the symbol
2667 dnl $1 = target (which could be the same as the source variable)
2668 dnl $2 = source (including '$')
2669 dnl $3 = library to remove
2670 define([CF_REMOVE_LIB],
2672 # remove $3 library from $2
2673 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
2675 dnl ---------------------------------------------------------------------------
2676 dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16
2679 dnl Attempt to determine the appropriate CC/LD options for creating a shared
2682 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
2683 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
2684 dnl We avoid compiling-in a ../lib path for the shared library since that can
2685 dnl lead to unexpected results at runtime.
2686 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
2687 dnl are compiled in ../../lib
2689 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
2690 dnl to install symbolic links to the rel/abi versions of shared libraries.
2692 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
2693 dnl version when making symbolic links.
2695 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
2696 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
2697 dnl (ex: libncurses.so.<ver>).
2699 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
2700 AC_DEFUN([CF_SHARED_OPTS],
2702 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2703 AC_REQUIRE([CF_LD_RPATH_OPT])
2707 INSTALL_LIB="-m 644"
2709 cf_cv_do_symlinks=no
2711 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
2713 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
2714 AC_ARG_WITH(shlib-version,
2715 [ --with-shlib-version=X Specify rel or abi version for shared libs],
2716 [test -z "$withval" && withval=auto
2717 case $withval in #(vi
2719 cf_cv_shlib_version=auto
2721 rel|abi|auto|no) #(vi
2722 cf_cv_shlib_version=$withval
2725 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
2728 ],[cf_cv_shlib_version=auto])
2729 AC_MSG_RESULT($cf_cv_shlib_version)
2733 # Some less-capable ports of gcc support only -fpic
2735 if test "$GCC" = yes
2737 AC_MSG_CHECKING(which $CC option to use)
2738 cf_save_CFLAGS="$CFLAGS"
2739 for CC_SHARED_OPTS in -fPIC -fpic ''
2741 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
2742 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
2744 AC_MSG_RESULT($CC_SHARED_OPTS)
2745 CFLAGS="$cf_save_CFLAGS"
2748 cf_cv_shlib_version_infix=no
2750 case $cf_cv_system_name in #(vi
2752 if test "$GCC" = yes; then
2754 MK_SHARED_LIB='$(CC) -shared'
2758 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
2762 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
2763 cf_cv_shlib_version=cygdll
2764 cf_cv_shlib_version_infix=cygdll
2765 cat >mk_shared_lib.sh <<-CF_EOF
2768 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
2771 Linking shared library
2772 ** SHARED_LIB \[$]SHARED_LIB
2773 ** IMPORT_LIB \[$]IMPORT_LIB
2775 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
2777 chmod +x mk_shared_lib.sh
2780 EXTRA_CFLAGS="-no-cpp-precomp"
2781 CC_SHARED_OPTS="-dynamic"
2782 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
2783 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
2784 cf_cv_shlib_version_infix=yes
2785 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
2786 cf_save_LDFLAGS=$LDFLAGS
2787 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
2788 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
2789 LDFLAGS=$cf_save_LDFLAGS])
2790 if test $cf_cv_ldflags_search_paths_first = yes; then
2791 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
2795 # (tested with gcc 2.7.2 -- I don't have c89)
2796 if test "$GCC" = yes; then
2797 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
2800 LD_SHARED_OPTS='-Wl,+b,${libdir}'
2802 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
2803 # HP-UX shared libraries must be executable, and should be
2804 # readonly to exploit a quirk in the memory manager.
2805 INSTALL_LIB="-m 555"
2808 if test "$cf_cv_enable_rpath" = yes ; then
2809 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
2811 # tested with IRIX 5.2 and 'cc'.
2812 if test "$GCC" != yes; then
2813 CC_SHARED_OPTS='-KPIC'
2814 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
2816 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
2818 cf_cv_rm_so_locs=yes
2820 linux*|gnu*|k*bsd*-gnu) #(vi
2821 if test "$DFT_LWR_MODEL" = "shared" ; then
2822 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
2823 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
2825 if test "$cf_cv_enable_rpath" = yes ; then
2826 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
2829 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
2831 openbsd[[2-9]].*) #(vi
2832 if test "$DFT_LWR_MODEL" = "shared" ; then
2833 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
2834 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
2836 if test "$cf_cv_enable_rpath" = yes ; then
2837 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
2839 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
2841 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
2843 nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
2844 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
2845 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
2846 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
2849 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
2850 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
2851 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
2852 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
2853 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
2856 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
2859 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
2860 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
2861 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
2862 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
2863 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
2864 if test "$cf_cv_shlib_version" = auto; then
2865 if test -f /usr/libexec/ld.elf_so; then
2866 cf_cv_shlib_version=abi
2868 cf_cv_shlib_version=rel
2872 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
2874 MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
2878 # tested with OSF/1 V3.2 and 'cc'
2879 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
2880 # link with shared libs).
2881 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
2882 case $host_os in #(vi
2884 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
2887 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
2888 if test "$DFT_LWR_MODEL" = "shared" ; then
2889 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
2890 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
2892 cf_cv_rm_so_locs=yes
2894 sco3.2v5*) # (also uw2* and UW7: hops 13-Apr-98
2895 # tested with osr5.0.5
2896 if test "$GCC" != yes; then
2897 CC_SHARED_OPTS='-belf -KPIC'
2899 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
2900 if test "$cf_cv_enable_rpath" = yes ; then
2901 # only way is to set LD_RUN_PATH but no switch for it
2904 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
2905 LINK_PROGS='LD_RUN_PATH=${libdir}'
2906 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
2909 # tested with SunOS 4.1.1 and gcc 2.7.0
2910 if test "$GCC" != yes; then
2911 CC_SHARED_OPTS='-KPIC'
2913 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
2914 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
2917 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
2918 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
2919 if test "$DFT_LWR_MODEL" = "shared" ; then
2920 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
2921 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
2923 if test "$cf_cv_enable_rpath" = yes ; then
2924 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
2927 if test "$GCC" != yes; then
2928 cf_save_CFLAGS="$CFLAGS"
2929 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
2931 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
2932 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
2934 CFLAGS="$cf_save_CFLAGS"
2935 CC_SHARED_OPTS=$cf_shared_opts
2936 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
2938 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
2941 sysv5uw7*|unix_sv*) #(vi
2942 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
2943 if test "$GCC" != yes; then
2944 CC_SHARED_OPTS='-KPIC'
2946 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
2949 CC_SHARED_OPTS='unknown'
2950 MK_SHARED_LIB='echo unknown'
2954 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
2955 case "$cf_cv_shlib_version" in #(vi
2957 case "$MK_SHARED_LIB" in #(vi
2959 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
2962 AC_MSG_WARN(ignored --with-shlib-version)
2968 if test -n "$cf_ld_rpath_opt" ; then
2969 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
2972 AC_SUBST(CC_SHARED_OPTS)
2973 AC_SUBST(LD_RPATH_OPT)
2974 AC_SUBST(LD_SHARED_OPTS)
2975 AC_SUBST(MK_SHARED_LIB)
2976 AC_SUBST(LINK_PROGS)
2977 AC_SUBST(LINK_TESTS)
2978 AC_SUBST(EXTRA_LDFLAGS)
2979 AC_SUBST(LOCAL_LDFLAGS)
2980 AC_SUBST(LOCAL_LDFLAGS2)
2981 AC_SUBST(INSTALL_LIB)
2983 dnl ---------------------------------------------------------------------------
2984 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
2985 dnl ----------------
2986 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
2987 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
2990 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
2991 dnl If missing, use "rel".
2992 define([CF_SHARED_SONAME],
2994 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
2995 if test "$cf_cv_shlib_version" = rel; then
2996 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
2998 cf_cv_shared_soname='`basename $[@]`'
3001 dnl ---------------------------------------------------------------------------
3002 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
3004 dnl Remove "-g" option from the compiler options
3005 AC_DEFUN([CF_STRIP_G_OPT],
3006 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
3007 dnl ---------------------------------------------------------------------------
3008 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
3010 dnl Construct a search-list for a nonstandard header/lib-file
3011 dnl $1 = the variable to return as result
3012 dnl $2 = the package name
3013 dnl $3 = the subdirectory, e.g., bin, include or lib
3014 AC_DEFUN([CF_SUBDIR_PATH],
3018 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
3019 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3020 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
3021 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
3022 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
3024 dnl ---------------------------------------------------------------------------
3025 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
3027 dnl Shorthand macro for substituting things that the user may override
3028 dnl with an environment variable.
3030 dnl $1 = long/descriptive name
3031 dnl $2 = environment variable
3032 dnl $3 = default value
3033 AC_DEFUN([CF_SUBST],
3034 [AC_CACHE_VAL(cf_cv_subst_$2,[
3035 AC_MSG_CHECKING(for $1 (symbol $2))
3036 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
3037 cf_cv_subst_$2=[$]$2
3038 AC_MSG_RESULT([$]$2)
3041 dnl ---------------------------------------------------------------------------
3042 dnl CF_TERM_HEADER version: 1 updated: 2005/12/31 13:26:39
3044 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3045 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3046 dnl but some packagers change this, breaking various applications.
3047 AC_DEFUN([CF_TERM_HEADER],[
3048 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3049 case ${cf_cv_ncurses_header} in #(vi
3050 */ncurses.h|*/ncursesw.h) #(vi
3051 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3054 cf_term_header=term.h
3058 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3060 AC_TRY_COMPILE([#include <stdio.h>
3061 #include <${cf_cv_ncurses_header-curses.h}>
3063 ],[int x = auto_left_margin],[
3064 cf_cv_term_header="$cf_test"],[
3065 cf_cv_term_header=unknown
3067 test "$cf_cv_term_header" != unknown && break
3071 # Set definitions to allow ifdef'ing to accommodate subdirectories
3073 case $cf_cv_term_header in # (vi
3075 AC_DEFINE(HAVE_TERM_H)
3079 case $cf_cv_term_header in # (vi
3080 ncurses/term.h) #(vi
3081 AC_DEFINE(HAVE_NCURSES_TERM_H)
3084 AC_DEFINE(HAVE_NCURSESW_TERM_H)
3088 dnl ---------------------------------------------------------------------------
3089 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
3091 dnl Define a top_builddir symbol, for applications that need an absolute path.
3092 AC_DEFUN([CF_TOP_BUILDDIR],
3095 AC_SUBST(top_builddir)
3097 dnl ---------------------------------------------------------------------------
3098 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3100 dnl Make an uppercase version of a variable
3101 dnl $1=uppercase($2)
3102 AC_DEFUN([CF_UPPER],
3104 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3106 dnl ---------------------------------------------------------------------------
3107 dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
3109 dnl Check for multibyte support, and if not found, utf8 compatibility library
3110 AC_DEFUN([CF_UTF8_LIB],
3112 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3113 cf_save_LIBS="$LIBS"
3115 #include <stdlib.h>],[putwc(0,0);],
3116 [cf_cv_utf8_lib=yes],
3118 #include <libutf8.h>],[putwc(0,0);],utf8,
3119 [cf_cv_utf8_lib=add-on],
3120 [cf_cv_utf8_lib=no])
3123 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3125 if test "$cf_cv_utf8_lib" = "add-on" ; then
3126 AC_DEFINE(HAVE_LIBUTF8_H)
3127 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3128 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3129 CF_ADD_LIBS($cf_cv_library_file_utf8)
3132 dnl ---------------------------------------------------------------------------
3133 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3135 dnl Use AC_VERBOSE w/o the warnings
3136 AC_DEFUN([CF_VERBOSE],
3137 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3140 dnl ---------------------------------------------------------------------------
3141 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
3143 dnl Check for compiler-support for weak symbols.
3144 dnl This works with "recent" gcc.
3145 AC_DEFUN([CF_WEAK_SYMBOLS],[
3146 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
3149 #include <stdio.h>],
3151 #if defined(__GNUC__)
3152 # if defined __USE_ISOC99
3153 # define _cat_pragma(exp) _Pragma(#exp)
3154 # define _weak_pragma(exp) _cat_pragma(weak name)
3156 # define _weak_pragma(exp)
3158 # define _declare(name) __extension__ extern __typeof__(name) name
3159 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
3163 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
3166 dnl ---------------------------------------------------------------------------
3167 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
3168 dnl --------------------
3169 dnl Command-line option to specify the Ada95 compiler.
3170 AC_DEFUN([CF_WITH_ADA_COMPILER],[
3171 AC_MSG_CHECKING(for ada-compiler)
3172 AC_ARG_WITH(ada-compiler,
3173 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
3174 [cf_ada_compiler=$withval],
3175 [cf_ada_compiler=gnatmake])
3176 AC_SUBST(cf_ada_compiler)
3177 AC_MSG_RESULT($cf_ada_compiler)
3179 dnl ---------------------------------------------------------------------------
3180 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
3181 dnl -------------------
3182 dnl Command-line option to specify where Ada includes will install.
3183 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
3184 AC_MSG_CHECKING(for ada-include)
3185 CF_WITH_PATH(ada-include,
3186 [ --with-ada-include=DIR Ada includes are in DIR],
3188 PREFIX/share/ada/adainclude,
3189 [$]prefix/share/ada/adainclude)
3190 AC_SUBST(ADA_INCLUDE)
3191 AC_MSG_RESULT($ADA_INCLUDE)
3193 dnl ---------------------------------------------------------------------------
3194 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
3195 dnl -------------------
3196 dnl Command-line option to specify where Ada objects will install.
3197 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
3198 AC_MSG_CHECKING(for ada-objects)
3199 CF_WITH_PATH(ada-objects,
3200 [ --with-ada-objects=DIR Ada objects are in DIR],
3202 PREFIX/lib/ada/adalib,
3203 [$]prefix/lib/ada/adalib)
3204 AC_SUBST(ADA_OBJECTS)
3205 AC_MSG_RESULT($ADA_OBJECTS)
3207 dnl ---------------------------------------------------------------------------
3208 dnl CF_WITH_ADA_SHAREDLIB version: 2 updated: 2010/06/26 17:35:58
3209 dnl ---------------------
3210 dnl Command-line option to specify if an Ada95 shared-library should be built,
3211 dnl and optionally what its soname should be.
3212 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
3213 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
3214 AC_ARG_WITH(ada-sharedlib,
3215 [ --with-ada-sharedlib=XX build Ada95 shared-library],
3216 [with_ada_sharedlib=$withval],
3217 [with_ada_sharedlib=no])
3218 AC_MSG_RESULT($with_ada_sharedlib)
3220 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
3221 MAKE_ADA_SHAREDLIB="#"
3223 if test "x$with_ada_sharedlib" != xno
3226 if test "x$with_ada_sharedlib" != xyes
3228 ADA_SHAREDLIB="$with_ada_sharedlib"
3232 AC_SUBST(ADA_SHAREDLIB)
3233 AC_SUBST(MAKE_ADA_SHAREDLIB)
3235 dnl ---------------------------------------------------------------------------
3236 dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
3237 dnl ------------------
3238 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3240 AC_DEFUN([CF_WITH_CURSES_DIR],[
3241 AC_ARG_WITH(curses-dir,
3242 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3243 [CF_PATH_SYNTAX(withval)
3244 cf_cv_curses_dir=$withval],
3245 [cf_cv_curses_dir=no])
3247 dnl ---------------------------------------------------------------------------
3248 dnl CF_WITH_PATH version: 9 updated: 2010/05/26 05:38:42
3250 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
3251 dnl defaulting to yes/no.
3253 dnl $1 = option name
3255 dnl $3 = environment variable to set
3256 dnl $4 = default value, shown in the help-message, must be a constant
3257 dnl $5 = default value, if it's an expression & cannot be in the help-message
3259 AC_DEFUN([CF_WITH_PATH],
3260 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
3261 ifelse([$4],,[withval="${$3}"],[withval="${$3-ifelse([$5],,[$4],[$5])}"]))dnl
3262 if ifelse([$5],,true,[test -n "$5"]) ; then
3263 CF_PATH_SYNTAX(withval)
3268 dnl ---------------------------------------------------------------------------
3269 dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
3271 dnl Check for POSIX thread library.
3272 AC_DEFUN([CF_WITH_PTHREAD],
3274 AC_MSG_CHECKING(if you want to link with the pthread library)
3275 AC_ARG_WITH(pthread,
3276 [ --with-pthread use POSIX thread library],
3277 [with_pthread=$withval],
3279 AC_MSG_RESULT($with_pthread)
3281 if test "$with_pthread" != no ; then
3282 AC_CHECK_HEADER(pthread.h,[
3283 AC_DEFINE(HAVE_PTHREADS_H)
3285 AC_MSG_CHECKING(if we can link with the pthread library)
3286 cf_save_LIBS="$LIBS"
3289 #include <pthread.h>
3291 int rc = pthread_create(0,0,0,0);
3292 ],[with_pthread=yes],[with_pthread=no])
3293 LIBS="$cf_save_LIBS"
3294 AC_MSG_RESULT($with_pthread)
3296 if test "$with_pthread" = yes ; then
3298 AC_DEFINE(HAVE_LIBPTHREADS)
3300 AC_MSG_ERROR(Cannot link with pthread library)
3305 dnl ---------------------------------------------------------------------------
3306 dnl CF_XOPEN_SOURCE version: 34 updated: 2010/05/26 05:38:42
3308 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3309 dnl or adapt to the vendor's definitions to get equivalent functionality,
3310 dnl without losing the common non-POSIX features.
3313 dnl $1 is the nominal value for _XOPEN_SOURCE
3314 dnl $2 is the nominal value for _POSIX_C_SOURCE
3315 AC_DEFUN([CF_XOPEN_SOURCE],[
3317 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3318 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3321 case $host_os in #(vi
3323 cf_xopen_source="-D_ALL_SOURCE"
3325 darwin[[0-8]].*) #(vi
3326 cf_xopen_source="-D_APPLE_C_SOURCE"
3329 cf_xopen_source="-D_DARWIN_C_SOURCE"
3331 freebsd*|dragonfly*) #(vi
3332 # 5.x headers associate
3333 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3334 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3335 cf_POSIX_C_SOURCE=200112L
3337 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3340 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3343 cf_xopen_source="-D_HPUX_SOURCE"
3346 cf_xopen_source="-D_SGI_SOURCE"
3348 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
3352 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
3355 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3358 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3361 cf_xopen_source="-D_OSF_SOURCE"
3364 cf_xopen_source="-D_QNX_SOURCE"
3367 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3369 solaris2.1[[0-9]]) #(vi
3370 cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3372 solaris2.[[1-9]]) #(vi
3373 cf_xopen_source="-D__EXTENSIONS__"
3376 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3377 AC_TRY_COMPILE([#include <sys/types.h>],[
3378 #ifndef _XOPEN_SOURCE
3381 [cf_cv_xopen_source=no],
3382 [cf_save="$CPPFLAGS"
3383 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3384 AC_TRY_COMPILE([#include <sys/types.h>],[
3385 #ifdef _XOPEN_SOURCE
3388 [cf_cv_xopen_source=no],
3389 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3393 if test "$cf_cv_xopen_source" != no ; then
3394 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3395 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3396 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3397 CF_ADD_CFLAGS($cf_temp_xopen_source)
3399 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3403 if test -n "$cf_xopen_source" ; then
3404 CF_ADD_CFLAGS($cf_xopen_source)