1 dnl***************************************************************************
2 dnl Copyright (c) 2010-2011,2012 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.52 2012/08/04 18:12:47 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_ACVERSION_CHECK version: 2 updated: 2011/05/08 11:22:03
43 dnl ------------------
44 dnl Conditionally generate script according to whether we're using a given autoconf.
46 dnl $1 = version to compare against
47 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
48 dnl $3 = code to use if AC_ACVERSION is older than $1.
49 define(CF_ACVERSION_CHECK,
51 ifdef([m4_version_compare],
52 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
53 [CF_ACVERSION_COMPARE(
54 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
55 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
56 dnl ---------------------------------------------------------------------------
57 dnl CF_ACVERSION_COMPARE version: 2 updated: 2011/04/14 20:56:50
58 dnl --------------------
59 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
60 dnl MAJOR2, MINOR2, TERNARY2,
61 dnl PRINTABLE2, not FOUND, FOUND)
62 define(CF_ACVERSION_COMPARE,
63 [ifelse(builtin([eval], [$2 < $5]), 1,
64 [ifelse([$8], , ,[$8])],
65 [ifelse([$9], , ,[$9])])])dnl
66 dnl ---------------------------------------------------------------------------
67 dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
68 dnl -------------------
69 dnl Construct the list of include-options for the C programs in the Ada95
71 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
73 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
74 if test "$srcdir" != "."; then
75 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
77 if test "$GCC" != yes; then
78 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
79 elif test "$includedir" != "/usr/include"; then
80 if test "$includedir" = '${prefix}/include' ; then
81 if test $prefix != /usr ; then
82 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
85 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
90 dnl ---------------------------------------------------------------------------
91 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
93 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
94 AC_DEFUN([CF_ADD_ADAFLAGS],[
95 ADAFLAGS="$ADAFLAGS $1"
98 dnl ---------------------------------------------------------------------------
99 dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
101 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
102 dnl The second parameter if given makes this macro verbose.
104 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
105 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
106 dnl confused by the quotes (which require backslashes to keep them usable).
107 AC_DEFUN([CF_ADD_CFLAGS],
112 cf_new_extra_cppflags=
114 for cf_add_cflags in $1
116 case $cf_fix_cppflags in
118 case $cf_add_cflags in #(vi
119 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
120 case $cf_add_cflags in
122 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
124 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
125 && test -z "${cf_tst_cflags}" \
126 && cf_fix_cppflags=yes
128 if test $cf_fix_cppflags = yes ; then
129 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
131 elif test "${cf_tst_cflags}" = "\"'" ; then
132 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
138 *$cf_add_cflags) #(vi
141 case $cf_add_cflags in #(vi
143 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
144 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
147 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
152 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
157 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
159 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
161 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
162 && test -z "${cf_tst_cflags}" \
163 && cf_fix_cppflags=no
168 if test -n "$cf_new_cflags" ; then
169 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
170 CFLAGS="$CFLAGS $cf_new_cflags"
173 if test -n "$cf_new_cppflags" ; then
174 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
175 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
178 if test -n "$cf_new_extra_cppflags" ; then
179 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
180 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
183 AC_SUBST(EXTRA_CPPFLAGS)
186 dnl ---------------------------------------------------------------------------
187 dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
189 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
190 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
191 dnl but old versions (and some misinstalled ones) need that. To make things
192 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
193 dnl the include-path).
194 AC_DEFUN([CF_ADD_INCDIR],
196 if test -n "$1" ; then
197 for cf_add_incdir in $1
199 while test $cf_add_incdir != /usr/include
201 if test -d $cf_add_incdir
204 if test -n "$CFLAGS$CPPFLAGS" ; then
205 # a loop is needed to ensure we can add subdirs of existing dirs
206 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
207 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
208 cf_have_incdir=yes; break
213 if test "$cf_have_incdir" = no ; then
214 if test "$cf_add_incdir" = /usr/local/include ; then
217 cf_save_CPPFLAGS=$CPPFLAGS
218 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
219 AC_TRY_COMPILE([#include <stdio.h>],
222 [cf_have_incdir=yes])
223 CPPFLAGS=$cf_save_CPPFLAGS
228 if test "$cf_have_incdir" = no ; then
229 CF_VERBOSE(adding $cf_add_incdir to include-path)
230 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
232 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
233 test "$cf_top_incdir" = "$cf_add_incdir" && break
234 cf_add_incdir="$cf_top_incdir"
243 dnl ---------------------------------------------------------------------------
244 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
246 dnl Add a library, used to enforce consistency.
248 dnl $1 = library to add, without the "-l"
249 dnl $2 = variable to update (default $LIBS)
250 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
251 dnl ---------------------------------------------------------------------------
252 dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
254 dnl Adds to the library-path
256 dnl Some machines have trouble with multiple -L options.
258 dnl $1 is the (list of) directory(s) to add
259 dnl $2 is the optional name of the variable to update (default LDFLAGS)
261 AC_DEFUN([CF_ADD_LIBDIR],
263 if test -n "$1" ; then
264 for cf_add_libdir in $1
266 if test $cf_add_libdir = /usr/lib ; then
268 elif test -d $cf_add_libdir
271 if test -n "$LDFLAGS$LIBS" ; then
272 # a loop is needed to ensure we can add subdirs of existing dirs
273 for cf_test_libdir in $LDFLAGS $LIBS ; do
274 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
275 cf_have_libdir=yes; break
279 if test "$cf_have_libdir" = no ; then
280 CF_VERBOSE(adding $cf_add_libdir to library-path)
281 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
287 dnl ---------------------------------------------------------------------------
288 dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
290 dnl Add one or more libraries, used to enforce consistency.
292 dnl $1 = libraries to add, with the "-l", etc.
293 dnl $2 = variable to update (default $LIBS)
294 AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
295 dnl ---------------------------------------------------------------------------
296 dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
297 dnl ------------------
298 dnl Append to a search-list for a nonstandard header/lib-file
299 dnl $1 = the variable to return as result
300 dnl $2 = the package name
301 dnl $3 = the subdirectory, e.g., bin, include or lib
302 dnl $4 = the directory under which we will test for subdirectories
303 dnl $5 = a directory that we do not want $4 to match
304 AC_DEFUN([CF_ADD_SUBDIR_PATH],
306 test "$4" != "$5" && \
308 ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
309 test -n "$verbose" && echo " ... testing for $3-directories under $4"
310 test -d $4/$3 && $1="[$]$1 $4/$3"
311 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
312 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
313 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
314 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
317 dnl ---------------------------------------------------------------------------
318 dnl CF_ANSI_CC_CHECK version: 11 updated: 2011/07/01 19:47:45
320 dnl This was originally adapted from the macros 'fp_PROG_CC_STDC' and
321 dnl 'fp_C_PROTOTYPES' in the sharutils 4.2 distribution.
322 AC_DEFUN([CF_ANSI_CC_CHECK],
324 # This should have been defined by AC_PROG_CC
327 # Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
328 # into CC. This will not help with broken scripts that wrap the compiler with
329 # options, but eliminates a more common category of user confusion.
330 AC_MSG_CHECKING(\$CC variable)
333 AC_MSG_RESULT(broken)
334 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
336 cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
337 CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
338 CF_ADD_CFLAGS($cf_flags)
345 AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
347 cf_save_CFLAGS="$CFLAGS"
348 cf_save_CPPFLAGS="$CPPFLAGS"
349 # Don't try gcc -ansi; that turns off useful extensions and
350 # breaks some systems' header files.
352 # Ultrix and OSF/1 -std1
353 # HP-UX -Aa -D_HPUX_SOURCE
355 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
356 for cf_arg in "-DCC_HAS_PROTOS" \
361 "-Aa -D_HPUX_SOURCE" \
364 CF_ADD_CFLAGS($cf_arg)
367 #ifndef CC_HAS_PROTOS
368 #if !defined(__STDC__) || (__STDC__ != 1)
373 int test (int i, double x);
374 struct s1 {int (*f) (int a);};
375 struct s2 {int (*f) (double a);};],
376 [cf_cv_ansi_cc="$cf_arg"; break])
378 CFLAGS="$cf_save_CFLAGS"
379 CPPFLAGS="$cf_save_CPPFLAGS"
382 if test "$cf_cv_ansi_cc" != "no"; then
383 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
384 CF_ADD_CFLAGS($cf_cv_ansi_cc)
386 AC_DEFINE(CC_HAS_PROTOS)
390 dnl ---------------------------------------------------------------------------
391 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
393 dnl For programs that must use an ANSI compiler, obtain compiler options that
394 dnl will make it recognize prototypes. We'll do preprocessor checks in other
395 dnl macros, since tools such as unproto can fake prototypes, but only part of
396 dnl the preprocessor.
397 AC_DEFUN([CF_ANSI_CC_REQD],
398 [AC_REQUIRE([CF_ANSI_CC_CHECK])
399 if test "$cf_cv_ansi_cc" = "no"; then
401 [Your compiler does not appear to recognize prototypes.
402 You have the following choices:
403 a. adjust your compiler options
404 b. get an up-to-date compiler
405 c. use a wrapper such as unproto])
408 dnl ---------------------------------------------------------------------------
409 dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
411 dnl Check for suitable "ar" (archiver) options for updating an archive.
412 AC_DEFUN([CF_AR_FLAGS],[
413 AC_REQUIRE([CF_PROG_AR])
415 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
416 cf_cv_ar_flags=unknown
417 for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
420 # check if $ARFLAGS already contains this choice
421 if test "x$ARFLAGS" != "x" ; then
422 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
423 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
429 rm -f conftest.$ac_cv_objext
432 cat >conftest.$ac_ext <<EOF
433 #line __oline__ "configure"
434 int testdata[[3]] = { 123, 456, 789 };
436 if AC_TRY_EVAL(ac_compile) ; then
437 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
438 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
439 if test -f conftest.a ; then
440 cf_cv_ar_flags=$cf_ar_flags
444 CF_VERBOSE(cannot compile test-program)
448 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
451 if test -n "$ARFLAGS" ; then
452 if test -n "$cf_cv_ar_flags" ; then
453 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
456 ARFLAGS=$cf_cv_ar_flags
461 dnl ---------------------------------------------------------------------------
462 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
464 dnl Allow user to disable a normally-on option.
465 AC_DEFUN([CF_ARG_DISABLE],
466 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
467 dnl ---------------------------------------------------------------------------
468 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
470 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
476 dnl $3 = action to perform if option is not default
477 dnl $4 = action if perform if option is default
478 dnl $5 = default option value (either 'yes' or 'no')
479 AC_DEFUN([CF_ARG_OPTION],
480 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
481 if test "$enableval" != "$5" ; then
483 ,[ $3]) ifelse([$4],,,[
486 fi],[enableval=$5 ifelse([$4],,,[
490 dnl ---------------------------------------------------------------------------
491 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
493 dnl If we're cross-compiling, allow the user to override the tools and their
494 dnl options. The configure script is oriented toward identifying the host
495 dnl compiler, etc., but we need a build compiler to generate parts of the
498 dnl $1 = default for $CPPFLAGS
499 dnl $2 = default for $LIBS
500 AC_DEFUN([CF_BUILD_CC],[
501 AC_REQUIRE([CF_PROG_EXT])
502 if test "$cross_compiling" = yes ; then
504 # defaults that we might want to override
505 : ${BUILD_CFLAGS:=''}
506 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
507 : ${BUILD_LDFLAGS:=''}
508 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
509 : ${BUILD_EXEEXT:='$x'}
510 : ${BUILD_OBJEXT:='o'}
512 AC_ARG_WITH(build-cc,
513 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
514 [BUILD_CC="$withval"],
515 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
516 AC_MSG_CHECKING(for native build C compiler)
517 AC_MSG_RESULT($BUILD_CC)
519 AC_MSG_CHECKING(for native build C preprocessor)
520 AC_ARG_WITH(build-cpp,
521 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
522 [BUILD_CPP="$withval"],
523 [BUILD_CPP='${BUILD_CC} -E'])
524 AC_MSG_RESULT($BUILD_CPP)
526 AC_MSG_CHECKING(for native build C flags)
527 AC_ARG_WITH(build-cflags,
528 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
529 [BUILD_CFLAGS="$withval"])
530 AC_MSG_RESULT($BUILD_CFLAGS)
532 AC_MSG_CHECKING(for native build C preprocessor-flags)
533 AC_ARG_WITH(build-cppflags,
534 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
535 [BUILD_CPPFLAGS="$withval"])
536 AC_MSG_RESULT($BUILD_CPPFLAGS)
538 AC_MSG_CHECKING(for native build linker-flags)
539 AC_ARG_WITH(build-ldflags,
540 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
541 [BUILD_LDFLAGS="$withval"])
542 AC_MSG_RESULT($BUILD_LDFLAGS)
544 AC_MSG_CHECKING(for native build linker-libraries)
545 AC_ARG_WITH(build-libs,
546 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
547 [BUILD_LIBS="$withval"])
548 AC_MSG_RESULT($BUILD_LIBS)
550 # this assumes we're on Unix.
554 : ${BUILD_CC:='${CC}'}
556 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
557 AC_MSG_ERROR([Cross-build requires two compilers.
558 Use --with-build-cc to specify the native compiler.])
562 : ${BUILD_CC:='${CC}'}
563 : ${BUILD_CPP:='${CPP}'}
564 : ${BUILD_CFLAGS:='${CFLAGS}'}
565 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
566 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
567 : ${BUILD_LIBS:='${LIBS}'}
568 : ${BUILD_EXEEXT:='$x'}
569 : ${BUILD_OBJEXT:='o'}
574 AC_SUBST(BUILD_CFLAGS)
575 AC_SUBST(BUILD_CPPFLAGS)
576 AC_SUBST(BUILD_LDFLAGS)
578 AC_SUBST(BUILD_EXEEXT)
579 AC_SUBST(BUILD_OBJEXT)
581 dnl ---------------------------------------------------------------------------
582 dnl CF_CFG_DEFAULTS version: 8 updated: 2011/06/04 20:09:13
584 dnl Determine the default configuration into which we'll install ncurses. This
585 dnl can be overridden by the user's command-line options. There's two items to
587 dnl 1. the prefix (e.g., /usr)
588 dnl 2. the header files (e.g., /usr/include/ncurses)
589 dnl We'll look for a previous installation of ncurses and use the same defaults.
591 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
592 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
593 dnl programs from a vendor's.
594 AC_DEFUN([CF_CFG_DEFAULTS],
596 AC_MSG_CHECKING(for prefix)
597 if test "x$prefix" = "xNONE" ; then
598 case "$cf_cv_system_name" in
599 # non-vendor systems don't have a conflict
600 openbsd*|freebsd*|mirbsd*|linux*|cygwin*|k*bsd*-gnu)
603 *) prefix=$ac_default_prefix
607 AC_MSG_RESULT($prefix)
609 if test "x$prefix" = "xNONE" ; then
610 AC_MSG_CHECKING(for default include-directory)
611 test -n "$verbose" && echo 1>&AC_FD_MSG
614 $includedir/ncurses \
616 $prefix/include/ncurses \
618 /usr/local/include/ncurses \
622 cf_dir=`eval echo $cf_symbol`
623 if test -f $cf_dir/curses.h ; then
624 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
625 includedir="$cf_symbol"
626 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
630 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
632 AC_MSG_RESULT($includedir)
635 dnl ---------------------------------------------------------------------------
636 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
638 dnl Check if we're accidentally using a cache from a different machine.
639 dnl Derive the system name, as a check for reusing the autoconf cache.
641 dnl If we've packaged config.guess and config.sub, run that (since it does a
642 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
643 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
644 dnl which is useful in cross-compiles.
646 dnl Note: we would use $ac_config_sub, but that is one of the places where
647 dnl autoconf 2.5x broke compatibility with autoconf 2.13
648 AC_DEFUN([CF_CHECK_CACHE],
650 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
651 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
652 system_name="$host_os"
654 system_name="`(uname -s -r) 2>/dev/null`"
655 if test -z "$system_name" ; then
656 system_name="`(hostname) 2>/dev/null`"
659 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
660 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
662 test -z "$system_name" && system_name="$cf_cv_system_name"
663 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
665 if test ".$system_name" != ".$cf_cv_system_name" ; then
666 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
667 AC_MSG_ERROR("Please remove config.cache and try again.")
670 dnl ---------------------------------------------------------------------------
671 dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39
672 dnl -----------------
673 dnl Check if the given compiler is really clang. clang's C driver defines
674 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
675 dnl not ignore some gcc options.
677 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
678 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
679 dnl the wrappers for gcc and g++ warnings.
681 dnl $1 = GCC (default) or GXX
682 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
683 dnl $3 = CFLAGS (default) or CXXFLAGS
684 AC_DEFUN([CF_CLANG_COMPILER],[
685 ifelse([$2],,CLANG_COMPILER,[$2])=no
687 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
688 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
689 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
690 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
696 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
697 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
699 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
700 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
703 dnl ---------------------------------------------------------------------------
704 dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
706 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
707 dnl variations of ncurses' installs.
709 dnl $1 = ncurses when looking for ncurses, or is empty
710 AC_DEFUN([CF_CURSES_HEADER],[
711 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
712 cf_cv_ncurses_header=none
713 for cf_header in ifelse($1,,,[ \
717 curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
719 AC_TRY_COMPILE([#include <${cf_header}>],
720 [initscr(); tgoto("?", 0,0)],
721 [cf_cv_ncurses_header=$cf_header; break],[])
725 if test "$cf_cv_ncurses_header" = none ; then
726 AC_MSG_ERROR(No curses header-files found)
729 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
730 AC_CHECK_HEADERS($cf_cv_ncurses_header)
732 dnl ---------------------------------------------------------------------------
733 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
735 dnl "dirname" is not portable, so we fake it with a shell script.
736 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
737 dnl ---------------------------------------------------------------------------
738 dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57
740 dnl You can always use "make -n" to see the actual options, but it's hard to
741 dnl pick out/analyze warning messages when the compile-line is long.
744 dnl ECHO_LT - symbol to control if libtool is verbose
745 dnl ECHO_LD - symbol to prefix "cc -o" lines
746 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
747 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
748 dnl ECHO_CC - symbol to put before any "cc" line
750 AC_DEFUN([CF_DISABLE_ECHO],[
751 AC_MSG_CHECKING(if you want to see long compiling messages)
753 [ --disable-echo display "compiling" commands],
756 ECHO_LD='@echo linking [$]@;'
757 RULE_CC='@echo compiling [$]<'
758 SHOW_CC='@echo compiling [$]@'
767 AC_MSG_RESULT($enableval)
774 dnl ---------------------------------------------------------------------------
775 dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
776 dnl ------------------
777 dnl This is the "--enable-pc-files" option, which is available if there is a
778 dnl pkg-config configuration on the local machine.
779 AC_DEFUN([CF_ENABLE_PC_FILES],[
780 AC_REQUIRE([CF_PKG_CONFIG])
781 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
783 if test "$PKG_CONFIG" != none ; then
784 AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
785 AC_ARG_ENABLE(pc-files,
786 [ --enable-pc-files generate and install .pc files for pkg-config],
787 [enable_pc_files=$enableval],
788 [enable_pc_files=no])
789 AC_MSG_RESULT($enable_pc_files)
790 if test "$enable_pc_files" != no
792 CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
798 dnl ---------------------------------------------------------------------------
799 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
801 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
802 dnl prefer a standard location, and use -L options only if we do not find the
803 dnl library in the standard library location(s).
804 dnl $1 = library name
805 dnl $2 = library class, usually the same as library name
807 dnl $4 = code fragment to compile/link
808 dnl $5 = corresponding function-name
809 dnl $6 = flag, nonnull if failure should not cause an error-exit
811 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
812 dnl to use a -L option.
813 AC_DEFUN([CF_FIND_LIBRARY],
815 eval 'cf_cv_have_lib_'$1'=no'
818 eval 'cf_cv_have_lib_'$1'=yes',[
820 AC_MSG_CHECKING(for $5 in -l$1)
822 AC_TRY_LINK([$3],[$4],
824 eval 'cf_cv_have_lib_'$1'=yes'
827 CF_LIBRARY_PATH(cf_search,$2)
828 for cf_libdir in $cf_search
830 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
831 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
832 AC_TRY_LINK([$3],[$4],
834 eval 'cf_cv_have_lib_'$1'=yes'
837 LIBS="$cf_save_LIBS"])
841 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
843 if test $cf_found_library = no ; then
844 AC_MSG_ERROR(Cannot link $1 library)
848 dnl ---------------------------------------------------------------------------
849 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
851 dnl Find a library (specifically the linkage used in the code fragment),
852 dnl searching for it if it is not already in the library path.
853 dnl See also CF_ADD_SEARCHPATH.
855 dnl Parameters (4-on are optional):
856 dnl $1 = headers for library entrypoint
857 dnl $2 = code fragment for library entrypoint
858 dnl $3 = the library name without the "-l" option or ".so" suffix.
859 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
860 dnl $5 = action to perform if not successful
861 dnl $6 = module name, if not the same as the library name
862 dnl $7 = extra libraries
864 dnl Sets these variables:
865 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
866 dnl $cf_cv_header_path_$3 - include-directory if needed
867 dnl $cf_cv_library_path_$3 - library-directory if needed
868 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
869 AC_DEFUN([CF_FIND_LINKAGE],[
871 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
872 # will be set on completion of the AC_TRY_LINK below.
873 cf_cv_header_path_$3=
874 cf_cv_library_path_$3=
876 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
880 AC_TRY_LINK([$1],[$2],[
881 cf_cv_find_linkage_$3=yes
882 cf_cv_header_path_$3=/usr/include
883 cf_cv_library_path_$3=/usr/lib
886 LIBS="-l$3 $7 $cf_save_LIBS"
888 AC_TRY_LINK([$1],[$2],[
889 cf_cv_find_linkage_$3=yes
890 cf_cv_header_path_$3=/usr/include
891 cf_cv_library_path_$3=/usr/lib
892 cf_cv_library_file_$3="-l$3"
894 cf_cv_find_linkage_$3=no
897 CF_VERBOSE(find linkage for $3 library)
898 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
900 cf_save_CPPFLAGS="$CPPFLAGS"
901 cf_test_CPPFLAGS="$CPPFLAGS"
903 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
904 for cf_cv_header_path_$3 in $cf_search
906 if test -d $cf_cv_header_path_$3 ; then
907 CF_VERBOSE(... testing $cf_cv_header_path_$3)
908 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
909 AC_TRY_COMPILE([$1],[$2],[
910 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
911 cf_cv_find_linkage_$3=maybe
912 cf_test_CPPFLAGS="$CPPFLAGS"
914 CPPFLAGS="$cf_save_CPPFLAGS"
919 if test "$cf_cv_find_linkage_$3" = maybe ; then
921 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
924 cf_save_LDFLAGS="$LDFLAGS"
927 CPPFLAGS="$cf_test_CPPFLAGS"
928 LIBS="-l$3 $7 $cf_save_LIBS"
929 AC_TRY_LINK([$1],[$2],[
930 CF_VERBOSE(... found $3 library in system)
931 cf_cv_find_linkage_$3=yes])
932 CPPFLAGS="$cf_save_CPPFLAGS"
936 if test "$cf_cv_find_linkage_$3" != yes ; then
937 CF_LIBRARY_PATH(cf_search,$3)
938 for cf_cv_library_path_$3 in $cf_search
940 if test -d $cf_cv_library_path_$3 ; then
941 CF_VERBOSE(... testing $cf_cv_library_path_$3)
942 CPPFLAGS="$cf_test_CPPFLAGS"
943 LIBS="-l$3 $7 $cf_save_LIBS"
944 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
945 AC_TRY_LINK([$1],[$2],[
946 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
947 cf_cv_find_linkage_$3=yes
948 cf_cv_library_file_$3="-l$3"
950 CPPFLAGS="$cf_save_CPPFLAGS"
952 LDFLAGS="$cf_save_LDFLAGS"
956 CPPFLAGS="$cf_save_CPPFLAGS"
957 LDFLAGS="$cf_save_LDFLAGS"
961 cf_cv_find_linkage_$3=no
968 if test "$cf_cv_find_linkage_$3" = yes ; then
970 CF_ADD_INCDIR($cf_cv_header_path_$3)
971 CF_ADD_LIBDIR($cf_cv_library_path_$3)
975 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
978 dnl ---------------------------------------------------------------------------
979 dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
980 dnl -----------------
981 dnl make ADAFLAGS consistent with CFLAGS
982 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
983 AC_MSG_CHECKING(optimization options for ADAFLAGS)
991 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
992 CF_ADD_ADAFLAGS($cf_O_flag)
995 AC_MSG_RESULT($ADAFLAGS)
997 dnl ---------------------------------------------------------------------------
998 dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
999 dnl -----------------
1000 dnl Test for availability of useful gcc __attribute__ directives to quiet
1001 dnl compiler warnings. Though useful, not all are supported -- and contrary
1002 dnl to documentation, unrecognized directives cause older compilers to barf.
1003 AC_DEFUN([CF_GCC_ATTRIBUTES],
1005 if test "$GCC" = yes
1007 cat > conftest.i <<EOF
1009 #define GCC_PRINTF 0
1014 #ifndef GCC_NORETURN
1015 #define GCC_NORETURN /* nothing */
1018 #define GCC_UNUSED /* nothing */
1021 if test "$GCC" = yes
1023 AC_CHECKING([for $CC __attribute__ directives])
1024 cat > conftest.$ac_ext <<EOF
1025 #line __oline__ "${as_me:-configure}"
1026 #include "confdefs.h"
1027 #include "conftest.h"
1028 #include "conftest.i"
1030 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1032 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1035 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1037 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1039 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1040 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1041 extern void foo(void) GCC_NORETURN;
1042 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1044 cf_printf_attribute=no
1045 cf_scanf_attribute=no
1046 for cf_attribute in scanf printf unused noreturn
1048 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1049 cf_directive="__attribute__(($cf_attribute))"
1050 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1052 case $cf_attribute in #(vi
1054 cf_printf_attribute=yes
1055 cat >conftest.h <<EOF
1056 #define GCC_$cf_ATTRIBUTE 1
1060 cf_scanf_attribute=yes
1061 cat >conftest.h <<EOF
1062 #define GCC_$cf_ATTRIBUTE 1
1066 cat >conftest.h <<EOF
1067 #define GCC_$cf_ATTRIBUTE $cf_directive
1072 if AC_TRY_EVAL(ac_compile); then
1073 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1074 cat conftest.h >>confdefs.h
1075 case $cf_attribute in #(vi
1077 if test "$cf_printf_attribute" = no ; then
1078 cat >>confdefs.h <<EOF
1079 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
1082 cat >>confdefs.h <<EOF
1083 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1088 if test "$cf_scanf_attribute" = no ; then
1089 cat >>confdefs.h <<EOF
1090 #define GCC_SCANFLIKE(fmt,var) /* nothing */
1093 cat >>confdefs.h <<EOF
1094 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1102 fgrep define conftest.i >>confdefs.h
1107 dnl ---------------------------------------------------------------------------
1108 dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
1110 dnl Find version of gcc
1111 AC_DEFUN([CF_GCC_VERSION],[
1112 AC_REQUIRE([AC_PROG_CC])
1114 if test "$GCC" = yes ; then
1115 AC_MSG_CHECKING(version of $CC)
1116 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1117 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1118 AC_MSG_RESULT($GCC_VERSION)
1121 dnl ---------------------------------------------------------------------------
1122 dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39
1124 dnl Check if the compiler supports useful warning options. There's a few that
1125 dnl we don't use, simply because they're too noisy:
1127 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1128 dnl -Wredundant-decls (system headers make this too noisy)
1129 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1130 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1131 dnl is enabled for ncurses using "--enable-const".
1135 dnl $1 is an optional list of gcc warning flags that a particular
1136 dnl application might want to use, e.g., "no-unused" for
1139 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1141 AC_DEFUN([CF_GCC_WARNINGS],
1143 AC_REQUIRE([CF_GCC_VERSION])
1144 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1145 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1147 cat > conftest.$ac_ext <<EOF
1148 #line __oline__ "${as_me:-configure}"
1149 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1152 if test "$INTEL_COMPILER" = yes
1154 # The "-wdXXX" options suppress warnings:
1155 # remark #1419: external declaration in primary source file
1156 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1157 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1158 # remark #193: zero used for undefined preprocessing identifier
1159 # remark #593: variable "curs_sb_left_arrow" was set but never used
1160 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1161 # remark #869: parameter "tw" was never referenced
1162 # remark #981: operands are evaluated in unspecified order
1163 # warning #279: controlling expression is constant
1165 AC_CHECKING([for $CC warning options])
1166 cf_save_CFLAGS="$CFLAGS"
1167 EXTRA_CFLAGS="-Wall"
1179 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1180 if AC_TRY_EVAL(ac_compile); then
1181 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1182 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1185 CFLAGS="$cf_save_CFLAGS"
1187 elif test "$GCC" = yes
1189 AC_CHECKING([for $CC warning options])
1190 cf_save_CFLAGS="$CFLAGS"
1193 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1194 for cf_opt in W Wall \
1195 Wbad-function-cast \
1199 Wmissing-declarations \
1200 Wmissing-prototypes \
1204 Wstrict-prototypes \
1205 Wundef $cf_warn_CONST $1
1207 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1208 if AC_TRY_EVAL(ac_compile); then
1209 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1210 case $cf_opt in #(vi
1212 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1215 case $GCC_VERSION in
1217 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1221 Wpointer-arith) #(vi
1222 case $GCC_VERSION in
1224 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1229 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1232 CFLAGS="$cf_save_CFLAGS"
1236 AC_SUBST(EXTRA_CFLAGS)
1238 dnl ---------------------------------------------------------------------------
1239 dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
1240 dnl ----------------
1241 AC_DEFUN([CF_GNAT_GENERICS],
1243 AC_REQUIRE([CF_GNAT_VERSION])
1245 AC_MSG_CHECKING(if GNAT supports generics)
1246 case $cf_gnat_version in #(vi
1247 3.[[1-9]]*|[[4-9]].*) #(vi
1248 cf_gnat_generics=yes
1254 AC_MSG_RESULT($cf_gnat_generics)
1256 if test "$cf_gnat_generics" = yes
1258 cf_compile_generics=generics
1259 cf_generic_objects="\${GENOBJS}"
1261 cf_compile_generics=
1265 AC_SUBST(cf_compile_generics)
1266 AC_SUBST(cf_generic_objects)
1268 dnl ---------------------------------------------------------------------------
1269 dnl CF_GNAT_PRAGMA_UNREF version: 1 updated: 2010/06/19 15:22:18
1270 dnl --------------------
1271 dnl Check if the gnat pragma "Unreferenced" works.
1272 AC_DEFUN([CF_GNAT_PRAGMA_UNREF],[
1273 AC_CACHE_CHECK(if GNAT pragma Unreferenced works,cf_cv_pragma_unreferenced,[
1274 CF_GNAT_TRY_LINK([procedure conftest;],
1277 procedure conftest is
1279 pragma Unreferenced (test);
1282 Text_IO.Put ("Hello World");
1284 GNAT.OS_Lib.OS_Exit (0);
1286 [cf_cv_pragma_unreferenced=yes],
1287 [cf_cv_pragma_unreferenced=no])])
1289 # if the pragma is supported, use it (needed in the Trace code).
1290 if test $cf_cv_pragma_unreferenced = yes ; then
1295 AC_SUBST(PRAGMA_UNREF)
1297 dnl ---------------------------------------------------------------------------
1298 dnl CF_GNAT_PROJECTS version: 2 updated: 2011/03/23 20:24:41
1299 dnl ----------------
1300 dnl GNAT projects are configured with ".gpr" project files.
1301 dnl GNAT libraries are a further development, using the project feature.
1302 AC_DEFUN([CF_GNAT_PROJECTS],
1304 AC_REQUIRE([CF_GNAT_VERSION])
1306 cf_gnat_libraries=no
1309 AC_MSG_CHECKING(if GNAT supports project files)
1310 case $cf_gnat_version in #(vi
1314 case $cf_cv_system_name in #(vi
1318 mkdir conftest.src conftest.bin conftest.lib
1320 rm -rf conftest* *~conftest*
1321 cat >>library.gpr <<CF_EOF
1323 Kind := External ("LIB_KIND");
1324 for Library_Name use "ConfTest";
1325 for Object_Dir use ".";
1326 for Library_ALI_Dir use External("LIBRARY_DIR");
1327 for Library_Version use External ("SONAME");
1328 for Library_Kind use Kind;
1329 for Library_Dir use External("BUILD_DIR");
1330 Source_Dir := External ("SOURCE_DIR");
1331 for Source_Dirs use (Source_Dir);
1333 for Default_Switches ("Ada") use
1337 "-gnatVa", -- All validity checks
1338 "-gnatwa"); -- Activate all optional errors
1342 cat >>confpackage.ads <<CF_EOF
1343 package ConfPackage is
1347 cat >>confpackage.adb <<CF_EOF
1349 package body ConfPackage is
1350 procedure conftest is
1352 Text_IO.Put ("Hello World");
1357 if ( $cf_ada_make $ADAFLAGS \
1359 -XBUILD_DIR=`cd ../conftest.bin;pwd` \
1360 -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
1361 -XSOURCE_DIR=`pwd` \
1362 -XSONAME=libConfTest.so.1 \
1363 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
1364 cf_gnat_projects=yes
1367 if test -f conftest.lib/confpackage.ali
1369 cf_gnat_libraries=yes
1371 rm -rf conftest* *~conftest*
1376 AC_MSG_RESULT($cf_gnat_projects)
1378 if test $cf_gnat_projects = yes
1380 AC_MSG_CHECKING(if GNAT supports libraries)
1381 AC_MSG_RESULT($cf_gnat_libraries)
1384 if test "$cf_gnat_projects" = yes
1386 USE_OLD_MAKERULES="#"
1387 USE_GNAT_PROJECTS=""
1389 USE_OLD_MAKERULES=""
1390 USE_GNAT_PROJECTS="#"
1393 if test "$cf_gnat_libraries" = yes
1395 USE_GNAT_LIBRARIES=""
1397 USE_GNAT_LIBRARIES="#"
1400 AC_SUBST(USE_OLD_MAKERULES)
1401 AC_SUBST(USE_GNAT_PROJECTS)
1402 AC_SUBST(USE_GNAT_LIBRARIES)
1404 dnl ---------------------------------------------------------------------------
1405 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
1407 dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
1408 dnl is noted that gnat may compile a tasking unit even for configurations which
1409 dnl fail at runtime.
1410 AC_DEFUN([CF_GNAT_SIGINT],[
1411 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
1412 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
1416 pragma Warnings (Off); -- the next pragma exists since 3.11p
1417 pragma Unreserve_All_Interrupts;
1418 pragma Warnings (On);
1420 protected Process is
1422 function Continue return Boolean;
1423 pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
1425 Done : Boolean := False;
1429 [package body ConfTest is
1430 protected body Process is
1435 function Continue return Boolean is
1441 [cf_cv_gnat_sigint=yes],
1442 [cf_cv_gnat_sigint=no])])
1444 if test $cf_cv_gnat_sigint = yes ; then
1449 AC_SUBST(USE_GNAT_SIGINT)
1451 dnl ---------------------------------------------------------------------------
1452 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
1453 dnl ----------------
1454 dnl Verify that a test program compiles/links with GNAT.
1455 dnl $cf_ada_make is set to the program that compiles/links
1456 dnl $ADAFLAGS may be set to the GNAT flags.
1458 dnl $1 is the text of the spec
1459 dnl $2 is the text of the body
1460 dnl $3 is the shell command to execute if successful
1461 dnl $4 is the shell command to execute if not successful
1462 AC_DEFUN([CF_GNAT_TRY_LINK],
1464 rm -rf conftest* *~conftest*
1465 cat >>conftest.ads <<CF_EOF
1468 cat >>conftest.adb <<CF_EOF
1471 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1472 ifelse($3,, :,[ $3])
1476 rm -rf conftest* *~conftest*
1478 dnl ---------------------------------------------------------------------------
1479 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
1481 dnl Verify that a test program compiles and runs with GNAT
1482 dnl $cf_ada_make is set to the program that compiles/links
1483 dnl $ADAFLAGS may be set to the GNAT flags.
1485 dnl $1 is the text of the spec
1486 dnl $2 is the text of the body
1487 dnl $3 is the shell command to execute if successful
1488 dnl $4 is the shell command to execute if not successful
1489 AC_DEFUN([CF_GNAT_TRY_RUN],
1491 rm -rf conftest* *~conftest*
1492 cat >>conftest.ads <<CF_EOF
1495 cat >>conftest.adb <<CF_EOF
1498 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1499 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1500 ifelse($3,, :,[ $3])
1507 rm -rf conftest* *~conftest*
1509 dnl ---------------------------------------------------------------------------
1510 dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
1512 dnl Verify version of GNAT.
1513 AC_DEFUN([CF_GNAT_VERSION],
1515 AC_MSG_CHECKING(for gnat version)
1516 cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
1517 grep '[[0-9]].[[0-9]][[0-9]]*' |\
1518 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1519 AC_MSG_RESULT($cf_gnat_version)
1521 case $cf_gnat_version in #(vi
1522 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
1523 cf_cv_prog_gnat_correct=yes
1526 AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1527 cf_cv_prog_gnat_correct=no
1531 dnl ---------------------------------------------------------------------------
1532 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1534 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1535 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1536 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1537 dnl since it is interwoven with GNU extensions.
1539 dnl Well, yes we could work around it...
1540 AC_DEFUN([CF_GNU_SOURCE],
1542 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1543 AC_TRY_COMPILE([#include <sys/types.h>],[
1544 #ifndef _XOPEN_SOURCE
1547 [cf_cv_gnu_source=no],
1548 [cf_save="$CPPFLAGS"
1549 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1550 AC_TRY_COMPILE([#include <sys/types.h>],[
1551 #ifdef _XOPEN_SOURCE
1554 [cf_cv_gnu_source=no],
1555 [cf_cv_gnu_source=yes])
1559 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1561 dnl ---------------------------------------------------------------------------
1562 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
1564 dnl Construct a search-list of directories for a nonstandard header-file
1567 dnl $1 = the variable to return as result
1568 dnl $2 = the package name
1569 AC_DEFUN([CF_HEADER_PATH],
1573 # collect the current set of include-directories from compiler flags
1574 cf_header_path_list=""
1575 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1576 for cf_header_path in $CPPFLAGS $CFLAGS
1578 case $cf_header_path in #(vi
1580 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1581 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1582 cf_header_path_list="$cf_header_path_list [$]$1"
1588 # add the variations for the package we are looking for
1589 CF_SUBDIR_PATH($1,$2,include)
1591 test "$includedir" != NONE && \
1592 test "$includedir" != "/usr/include" && \
1593 test -d "$includedir" && {
1594 test -d $includedir && $1="[$]$1 $includedir"
1595 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1598 test "$oldincludedir" != NONE && \
1599 test "$oldincludedir" != "/usr/include" && \
1600 test -d "$oldincludedir" && {
1601 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1602 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1605 $1="[$]$1 $cf_header_path_list"
1607 dnl ---------------------------------------------------------------------------
1608 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1610 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1611 AC_DEFUN([CF_HELP_MESSAGE],
1612 [AC_DIVERT_HELP([$1])dnl
1614 dnl ---------------------------------------------------------------------------
1615 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
1617 dnl Construct the list of include-options according to whether we're building
1618 dnl in the source directory or using '--srcdir=DIR' option. If we're building
1619 dnl with gcc, don't append the includedir if it happens to be /usr/include,
1620 dnl since that usually breaks gcc's shadow-includes.
1621 AC_DEFUN([CF_INCLUDE_DIRS],
1623 CPPFLAGS="$CPPFLAGS -I. -I../include"
1624 if test "$srcdir" != "."; then
1625 CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
1627 if test "$GCC" != yes; then
1628 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1629 elif test "$includedir" != "/usr/include"; then
1630 if test "$includedir" = '${prefix}/include' ; then
1631 if test $prefix != /usr ; then
1632 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1635 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1640 dnl ---------------------------------------------------------------------------
1641 dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
1642 dnl -----------------
1643 dnl Check if the given compiler is really the Intel compiler for Linux. It
1644 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1645 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1647 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1648 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1649 dnl the wrappers for gcc and g++ warnings.
1651 dnl $1 = GCC (default) or GXX
1652 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1653 dnl $3 = CFLAGS (default) or CXXFLAGS
1654 AC_DEFUN([CF_INTEL_COMPILER],[
1655 ifelse([$2],,INTEL_COMPILER,[$2])=no
1657 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1660 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1661 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1662 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1664 #ifdef __INTEL_COMPILER
1668 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1669 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1671 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1672 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1677 dnl ---------------------------------------------------------------------------
1678 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
1680 dnl Add checks for large file support.
1681 AC_DEFUN([CF_LARGEFILE],[
1682 ifdef([AC_FUNC_FSEEKO],[
1684 if test "$enable_largefile" != no ; then
1687 # Normally we would collect these definitions in the config.h,
1688 # but (like _XOPEN_SOURCE), some environments rely on having these
1689 # defined before any of the system headers are included. Another
1690 # case comes up with C++, e.g., on AIX the compiler compiles the
1691 # header files by themselves before looking at the body files it is
1692 # told to compile. For ncurses, those header files do not include
1694 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
1695 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
1696 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
1698 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
1700 #include <sys/types.h>
1703 /* if transitional largefile support is setup, this is true */
1704 extern struct dirent64 * readdir(DIR *);
1705 struct dirent64 *x = readdir((DIR *)0);
1706 struct dirent *y = readdir((DIR *)0);
1709 [cf_cv_struct_dirent64=yes],
1710 [cf_cv_struct_dirent64=no])
1712 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
1716 dnl ---------------------------------------------------------------------------
1717 dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
1719 dnl For the given system and compiler, find the compiler flags to pass to the
1720 dnl loader to use the "rpath" feature.
1721 AC_DEFUN([CF_LD_RPATH_OPT],
1723 AC_REQUIRE([CF_CHECK_CACHE])
1726 AC_MSG_CHECKING(for an rpath option)
1727 case $cf_cv_system_name in #(vi
1729 if test "$GCC" = yes; then
1730 LD_RPATH_OPT="-Wl,-rpath,"
1732 LD_RPATH_OPT="-rpath "
1735 linux*|gnu*|k*bsd*-gnu) #(vi
1736 LD_RPATH_OPT="-Wl,-rpath,"
1738 openbsd[[2-9]].*|mirbsd*) #(vi
1739 LD_RPATH_OPT="-Wl,-rpath,"
1741 dragonfly*|freebsd*) #(vi
1742 LD_RPATH_OPT="-rpath "
1745 LD_RPATH_OPT="-Wl,-rpath,"
1748 LD_RPATH_OPT="-rpath "
1756 AC_MSG_RESULT($LD_RPATH_OPT)
1758 case "x$LD_RPATH_OPT" in #(vi
1760 AC_MSG_CHECKING(if we need a space after rpath option)
1761 cf_save_LIBS="$LIBS"
1762 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1763 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1764 LIBS="$cf_save_LIBS"
1765 AC_MSG_RESULT($cf_rpath_space)
1766 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1770 dnl ---------------------------------------------------------------------------
1771 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
1773 dnl Construct a search-list of directories for a nonstandard library-file
1776 dnl $1 = the variable to return as result
1777 dnl $2 = the package name
1778 AC_DEFUN([CF_LIBRARY_PATH],
1781 cf_library_path_list=""
1782 if test -n "${LDFLAGS}${LIBS}" ; then
1783 for cf_library_path in $LDFLAGS $LIBS
1785 case $cf_library_path in #(vi
1787 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1788 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1789 cf_library_path_list="$cf_library_path_list [$]$1"
1795 CF_SUBDIR_PATH($1,$2,lib)
1797 $1="$cf_library_path_list [$]$1"
1799 dnl ---------------------------------------------------------------------------
1800 dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
1802 dnl Compute the library-prefix for the given host system
1803 dnl $1 = variable to set
1804 define([CF_LIB_PREFIX],
1806 case $cf_cv_system_name in #(vi
1813 ifelse($1,,,[$1=$LIB_PREFIX])
1814 AC_SUBST(LIB_PREFIX)
1816 dnl ---------------------------------------------------------------------------
1817 dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
1819 dnl Find the and soname for the given shared library. Set the cache variable
1820 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
1821 dnl variable to "unknown".
1825 dnl $3 = library name
1826 AC_DEFUN([CF_LIB_SONAME],
1828 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
1830 cf_cv_$3_soname=unknown
1831 if test "$cross_compiling" != yes ; then
1832 cat >conftest.$ac_ext <<CF_EOF
1837 ${cf_cv_main_return:-return}(0);
1840 cf_save_LIBS="$LIBS"
1842 if AC_TRY_EVAL(ac_compile) ; then
1843 if AC_TRY_EVAL(ac_link) ; then
1844 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
1845 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
1849 LIBS="$cf_save_LIBS"
1853 dnl ---------------------------------------------------------------------------
1854 dnl CF_LIB_SUFFIX version: 18 updated: 2012/02/25 15:20:07
1856 dnl Compute the library file-suffix from the given model name
1858 dnl $2 = variable to set (the nominal library suffix)
1859 dnl $3 = dependency variable to set (actual filename)
1860 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
1861 AC_DEFUN([CF_LIB_SUFFIX],
1863 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
1882 case $cf_cv_system_name in
1887 cygwin*|mingw*) #(vi
1912 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
1913 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
1915 dnl ---------------------------------------------------------------------------
1916 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
1918 dnl Compute the string to append to -library from the given model name
1920 dnl $2 = variable to set
1921 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
1922 AC_DEFUN([CF_LIB_TYPE],
1931 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
1933 dnl ---------------------------------------------------------------------------
1934 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
1935 dnl ----------------
1936 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
1937 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
1938 dnl have to provide wrappers for global tables to ensure they're linked
1940 AC_DEFUN([CF_LINK_DATAONLY],
1942 AC_MSG_CHECKING([if data-only library module links])
1943 AC_CACHE_VAL(cf_cv_link_dataonly,[
1945 cat >conftest.$ac_ext <<EOF
1946 #line __oline__ "configure"
1947 int testdata[[3]] = { 123, 456, 789 };
1949 if AC_TRY_EVAL(ac_compile) ; then
1950 mv conftest.o data.o && \
1951 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
1953 rm -f conftest.$ac_ext data.o
1954 cat >conftest.$ac_ext <<EOF
1955 #line __oline__ "configure"
1959 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
1961 extern int testdata[[3]];
1962 return testdata[[0]] == 123
1963 && testdata[[1]] == 456
1964 && testdata[[2]] == 789;
1968 if AC_TRY_EVAL(ac_compile); then
1969 mv conftest.o func.o && \
1970 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
1972 rm -f conftest.$ac_ext func.o
1973 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
1975 LIBS="conftest.a $LIBS"
1979 extern int testfunc();
1980 ${cf_cv_main_return:-return} (!testfunc());
1983 [cf_cv_link_dataonly=yes],
1984 [cf_cv_link_dataonly=no],
1985 [cf_cv_link_dataonly=unknown])
1988 AC_MSG_RESULT($cf_cv_link_dataonly)
1990 if test "$cf_cv_link_dataonly" = no ; then
1991 AC_DEFINE(BROKEN_LINKER)
1996 dnl ---------------------------------------------------------------------------
1997 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
1999 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2000 dnl A few non-Unix systems implement symlink, but not link.
2001 dnl A few non-systems implement neither (or have nonfunctional versions).
2002 AC_DEFUN([CF_LINK_FUNCS],
2008 if test "$cross_compiling" = yes ; then
2013 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2015 for cf_func in link symlink ; do
2017 #include <sys/types.h>
2018 #include <sys/stat.h>
2019 #ifdef HAVE_UNISTD_H
2025 char *src = "config.log";
2026 char *dst = "conftest.chk";
2031 fail = ($cf_func("config.log", "conftest.chk") < 0)
2032 || (stat(dst, &dst_sb) < 0)
2033 || (dst_sb.st_mtime != src_sb.st_mtime);
2039 ${cf_cv_main_return:-return} (fail);
2042 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2043 eval 'ac_cv_func_'$cf_func'=yes'],[
2044 eval 'ac_cv_func_'$cf_func'=no'],[
2045 eval 'ac_cv_func_'$cf_func'=error'])
2047 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2049 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2050 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2053 dnl ---------------------------------------------------------------------------
2054 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2056 dnl Check if a return from main to the shell actually returns the same exit
2057 dnl code. This is true for almost any POSIX environment.
2059 dnl Some very old environments did not flush stdout, etc., on an exit. That
2060 dnl would be a useful case to test for also.
2061 AC_DEFUN([CF_MAIN_RETURN],
2063 cf_cv_main_return=return
2065 dnl ---------------------------------------------------------------------------
2066 dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46
2068 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2069 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2070 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2071 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2072 AC_DEFUN([CF_MAKEFLAGS],
2074 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2076 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2078 cat >cf_makeflags.tmp <<CF_EOF
2081 @ echo '.$cf_option'
2083 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ ]]*$,,'`
2084 case "$cf_result" in
2086 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2087 case "$cf_result" in
2088 .*CC=*) cf_cv_makeflags=
2090 *) cf_cv_makeflags=$cf_option
2096 *) echo "given option \"$cf_option\", no match \"$cf_result\""
2100 rm -f cf_makeflags.tmp
2103 AC_SUBST(cf_cv_makeflags)
2105 dnl ---------------------------------------------------------------------------
2106 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2108 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2109 dnl a monocase filesystem.
2110 AC_DEFUN([CF_MAKE_TAGS],[
2111 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2113 AC_CHECK_PROGS(CTAGS, exctags ctags)
2114 AC_CHECK_PROGS(ETAGS, exetags etags)
2116 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2118 if test "$cf_cv_mixedcase" = yes ; then
2119 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2124 if test "$MAKE_UPPER_TAGS" = yes ; then
2130 if test "$MAKE_LOWER_TAGS" = yes ; then
2139 AC_SUBST(MAKE_UPPER_TAGS)
2140 AC_SUBST(MAKE_LOWER_TAGS)
2142 dnl ---------------------------------------------------------------------------
2143 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
2144 dnl ----------------------
2145 dnl Check if the file-system supports mixed-case filenames. If we're able to
2146 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2147 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2149 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2150 if test "$cross_compiling" = yes ; then
2151 case $target_alias in #(vi
2152 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
2160 rm -f conftest CONFTEST
2162 if test -f CONFTEST ; then
2167 rm -f conftest CONFTEST
2170 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
2172 dnl ---------------------------------------------------------------------------
2173 dnl CF_MKSTEMP version: 8 updated: 2012/02/13 20:34:56
2175 dnl Check for a working mkstemp. This creates two files, checks that they are
2176 dnl successfully created and distinct (AmigaOS apparently fails on the last).
2177 AC_DEFUN([CF_MKSTEMP],[
2178 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
2181 #include <sys/types.h>
2185 #include <sys/stat.h>
2188 char *tmpl = "conftestXXXXXX";
2196 for (n = 0; n < 2; ++n) {
2197 strcpy(name[n], tmpl);
2198 if ((fd = mkstemp(name[n])) >= 0) {
2199 if (!strcmp(name[n], tmpl)
2200 || stat(name[n], &sb) != 0
2201 || (sb.st_mode & S_IFMT) != S_IFREG
2202 || (sb.st_mode & 077) != 0) {
2209 && !strcmp(name[0], name[1]))
2211 ${cf_cv_main_return:-return}(result);
2213 ],[cf_cv_func_mkstemp=yes
2214 ],[cf_cv_func_mkstemp=no
2215 ],[cf_cv_func_mkstemp=maybe])
2217 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
2218 AC_CHECK_FUNC(mkstemp)
2220 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
2221 AC_DEFINE(HAVE_MKSTEMP)
2224 dnl ---------------------------------------------------------------------------
2225 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2227 dnl Write a debug message to config.log, along with the line number in the
2228 dnl configure script.
2229 AC_DEFUN([CF_MSG_LOG],[
2230 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2232 dnl ---------------------------------------------------------------------------
2233 dnl CF_NCURSES_ADDON version: 4 updated: 2011/03/27 17:10:13
2234 dnl ----------------
2235 dnl Configure an ncurses add-on, built outside the ncurses tree.
2236 AC_DEFUN([CF_NCURSES_ADDON],[
2238 AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
2240 AC_MSG_CHECKING(if you want wide-character code)
2241 AC_ARG_ENABLE(widec,
2242 [ --enable-widec compile with wide-char/UTF-8 code],
2243 [with_widec=$enableval],
2245 AC_MSG_RESULT($with_widec)
2246 if test "$with_widec" = yes ; then
2248 CF_NCURSES_CONFIG(ncursesw)
2250 CF_NCURSES_CONFIG(ncurses)
2253 if test "$NCURSES_CONFIG" != none ; then
2255 cf_version=`$NCURSES_CONFIG --version`
2257 NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2258 NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2259 NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2261 # ABI version is not available from headers
2262 cf_cv_abi_version=`$NCURSES_CONFIG --abi-version`
2266 for cf_name in MAJOR MINOR PATCH
2268 cat >conftest.$ac_ext <<CF_EOF
2269 #include <${cf_cv_ncurses_header:-curses.h}>
2270 AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
2272 cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
2274 if test -f conftest.out ; then
2275 cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[[ ]][[ ]]*//"`
2276 eval NCURSES_$cf_name=\"$cf_result\"
2277 # cat conftest.$ac_ext
2282 cf_cv_abi_version=${NCURSES_MAJOR}
2286 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
2288 dnl Show the computed version, for logging
2289 cf_cv_timestamp=`date`
2291 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
2293 dnl We need these values in the generated headers
2294 AC_SUBST(NCURSES_MAJOR)
2295 AC_SUBST(NCURSES_MINOR)
2296 AC_SUBST(NCURSES_PATCH)
2298 dnl We need these values in the generated makefiles
2299 AC_SUBST(cf_cv_rel_version)
2300 AC_SUBST(cf_cv_abi_version)
2302 dnl FIXME - not needed for Ada95
2303 AC_SUBST(cf_cv_builtin_bool)
2304 AC_SUBST(cf_cv_header_stdbool_h)
2305 AC_SUBST(cf_cv_type_of_bool)dnl
2308 dnl ---------------------------------------------------------------------------
2309 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2310 dnl -------------------
2311 dnl Check if we can compile with ncurses' header file
2312 dnl $1 is the cache variable to set
2313 dnl $2 is the header-file to include
2314 dnl $3 is the root name (ncurses or ncursesw)
2315 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2317 ]ifelse($3,ncursesw,[
2318 #define _XOPEN_SOURCE_EXTENDED
2319 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
2320 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
2323 #ifdef NCURSES_VERSION
2324 ]ifelse($3,ncursesw,[
2329 printf("%s\n", NCURSES_VERSION);
2341 dnl ---------------------------------------------------------------------------
2342 dnl CF_NCURSES_CONFIG version: 9 updated: 2011/11/26 15:42:05
2343 dnl -----------------
2344 dnl Tie together the configure-script macros for ncurses.
2345 dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
2346 dnl Allow that to be overridden using the $NCURSES_CONFIG environment variable.
2348 dnl $1 is the root library name (default: "ncurses")
2349 AC_DEFUN([CF_NCURSES_CONFIG],
2351 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2353 echo "Looking for ${cf_ncuconfig_root}-config"
2355 CF_ACVERSION_CHECK(2.52,
2356 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2357 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2359 if test "$NCURSES_CONFIG" != none ; then
2361 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2362 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2364 # even with config script, some packages use no-override for curses.h
2365 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2367 dnl like CF_NCURSES_CPPFLAGS
2370 dnl like CF_NCURSES_LIBS
2371 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2372 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2374 dnl like CF_NCURSES_VERSION
2375 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2379 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2380 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2384 dnl ---------------------------------------------------------------------------
2385 dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
2386 dnl -------------------
2387 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2388 dnl the CPPFLAGS variable so we can include its header.
2390 dnl The header files may be installed as either curses.h, or ncurses.h (would
2391 dnl be obsolete, except that some packagers prefer this name to distinguish it
2392 dnl from a "native" curses implementation). If not installed for overwrite,
2393 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2394 dnl /usr/include/ncurses), but someone may have installed overwriting the
2395 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2396 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2399 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2400 dnl is already in the include-path, don't even bother with this, since we cannot
2401 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2403 dnl The optional parameter gives the root name of the library, in case it is
2404 dnl not installed as the default curses library. That is how the
2405 dnl wide-character version of ncurses is installed.
2406 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2407 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2409 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2410 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2412 test -n "$cf_cv_curses_dir" && \
2413 test "$cf_cv_curses_dir" != "no" && { \
2414 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2417 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2418 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2419 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2420 for cf_header in $cf_header_list
2422 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2423 test "$cf_cv_ncurses_h" != no && break
2430 # some applications need this, but should check for NCURSES_VERSION
2435 dnl ---------------------------------------------------------------------------
2436 dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
2437 dnl -----------------
2438 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2439 dnl variations of ncurses' installs.
2441 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2442 AC_DEFUN([CF_NCURSES_HEADER],[
2444 if test "$cf_cv_ncurses_h" != no ; then
2445 cf_cv_ncurses_header=$cf_cv_ncurses_h
2448 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2449 test -n "$verbose" && echo
2450 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2451 test -n "$verbose" && echo search path $cf_search
2452 cf_save2_CPPFLAGS="$CPPFLAGS"
2453 for cf_incdir in $cf_search
2455 CF_ADD_INCDIR($cf_incdir)
2460 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2461 if test "$cf_cv_ncurses_h2" != no ; then
2462 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2463 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2466 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2468 CPPFLAGS="$cf_save2_CPPFLAGS"
2469 test "$cf_cv_ncurses_h2" != no && break
2471 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2474 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2475 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2476 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2477 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2479 CF_ADD_INCDIR($cf_1st_incdir)
2483 # Set definitions to allow ifdef'ing for ncurses.h
2485 case $cf_cv_ncurses_header in # (vi
2487 AC_DEFINE(HAVE_NCURSES_H)
2491 case $cf_cv_ncurses_header in # (vi
2492 ncurses/curses.h|ncurses/ncurses.h)
2493 AC_DEFINE(HAVE_NCURSES_NCURSES_H)
2495 ncursesw/curses.h|ncursesw/ncurses.h)
2496 AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
2501 dnl ---------------------------------------------------------------------------
2502 dnl CF_NCURSES_LIBS version: 16 updated: 2010/11/20 17:02:38
2504 dnl Look for the ncurses library. This is a little complicated on Linux,
2505 dnl because it may be linked with the gpm (general purpose mouse) library.
2506 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2507 dnl unusable with ncurses. However, we don't want to link with gpm unless
2508 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2509 dnl and the linker will record a dependency.
2511 dnl The optional parameter gives the root name of the library, in case it is
2512 dnl not installed as the default curses library. That is how the
2513 dnl wide-character version of ncurses is installed.
2514 AC_DEFUN([CF_NCURSES_LIBS],
2515 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2517 cf_nculib_root=ifelse($1,,ncurses,$1)
2518 # This works, except for the special case where we find gpm, but
2519 # ncurses is in a nonstandard location via $LIBS, and we really want
2522 cf_ncurses_SAVE="$LIBS"
2523 AC_CHECK_LIB(gpm,Gpm_Open,
2524 [AC_CHECK_LIB(gpm,initscr,
2525 [LIBS="$cf_ncurses_SAVE"],
2526 [cf_ncurses_LIBS="-lgpm"])])
2528 case $host_os in #(vi
2530 # This is only necessary if you are linking against an obsolete
2531 # version of ncurses (but it should do no harm, since it's static).
2532 if test "$cf_nculib_root" = ncurses ; then
2533 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2538 CF_ADD_LIBS($cf_ncurses_LIBS)
2540 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2542 CF_ADD_LIBS(-l$cf_nculib_root)
2544 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2545 [#include <${cf_cv_ncurses_header:-curses.h}>],
2550 if test -n "$cf_ncurses_LIBS" ; then
2551 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2552 cf_ncurses_SAVE="$LIBS"
2553 for p in $cf_ncurses_LIBS ; do
2554 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2555 if test "$q" != "$LIBS" ; then
2559 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2560 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2561 [AC_MSG_RESULT(yes)],
2563 LIBS="$cf_ncurses_SAVE"])
2566 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2567 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2569 dnl ---------------------------------------------------------------------------
2570 dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
2571 dnl ------------------
2572 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2573 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2574 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2575 AC_DEFUN([CF_NCURSES_VERSION],
2577 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2578 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2579 cf_cv_ncurses_version=no
2583 #include <${cf_cv_ncurses_header:-curses.h}>
2587 FILE *fp = fopen("$cf_tempfile", "w");
2588 #ifdef NCURSES_VERSION
2589 # ifdef NCURSES_VERSION_PATCH
2590 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2592 fprintf(fp, "%s\n", NCURSES_VERSION);
2596 fprintf(fp, "old\n");
2601 ${cf_cv_main_return:-return}(0);
2603 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2605 # This will not work if the preprocessor splits the line after the
2606 # Autoconf token. The 'unproto' program does that.
2607 cat > conftest.$ac_ext <<EOF
2608 #include <${cf_cv_ncurses_header:-curses.h}>
2610 #ifdef NCURSES_VERSION
2611 Autoconf NCURSES_VERSION
2619 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2621 if test -f conftest.out ; then
2622 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2623 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2629 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
2631 dnl ---------------------------------------------------------------------------
2632 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
2633 dnl ------------------
2634 dnl see CF_WITH_NO_LEAKS
2635 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2636 AC_MSG_CHECKING(if you want to use $1 for testing)
2639 [AC_DEFINE($3)ifelse([$4],,[
2642 : ${with_cflags:=-g}
2643 : ${with_no_leaks:=yes}
2646 AC_MSG_RESULT(${with_$1:-no})
2648 case .$with_cflags in #(vi
2650 case .$CFLAGS in #(vi
2660 dnl ---------------------------------------------------------------------------
2661 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
2662 dnl ----------------
2663 dnl Check if the given variable is a number. If not, report an error.
2664 dnl $1 is the variable
2665 dnl $2 is the message
2666 AC_DEFUN([CF_NUMBER_SYNTAX],[
2667 if test -n "$1" ; then
2672 AC_MSG_ERROR($2 is not a number: $1)
2676 AC_MSG_ERROR($2 value is empty)
2679 dnl ---------------------------------------------------------------------------
2680 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
2682 dnl Compute the object-directory name from the given model name
2683 AC_DEFUN([CF_OBJ_SUBDIR],
2686 libtool) $2='obj_lo' ;;
2687 normal) $2='objects' ;;
2688 debug) $2='obj_g' ;;
2689 profile) $2='obj_p' ;;
2691 case $cf_cv_system_name in #(vi
2699 dnl ---------------------------------------------------------------------------
2700 dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
2702 dnl Provide a value for the $PATH and similar separator
2703 AC_DEFUN([CF_PATHSEP],
2705 case $cf_cv_system_name in
2706 os2*) PATH_SEPARATOR=';' ;;
2707 *) PATH_SEPARATOR=':' ;;
2709 ifelse([$1],,,[$1=$PATH_SEPARATOR])
2710 AC_SUBST(PATH_SEPARATOR)
2712 dnl ---------------------------------------------------------------------------
2713 dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
2715 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2716 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2717 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2718 dnl delayed evaluation of those symbols.
2719 AC_DEFUN([CF_PATH_SYNTAX],[
2720 if test "x$prefix" != xNONE; then
2721 cf_path_syntax="$prefix"
2723 cf_path_syntax="$ac_default_prefix"
2726 case ".[$]$1" in #(vi
2727 .\[$]\(*\)*|.\'*\'*) #(vi
2731 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
2733 .\[$]{*prefix}*|.\[$]{*dir}*) #(vi
2735 case ".[$]$1" in #(vi
2737 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2742 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2745 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2749 dnl ---------------------------------------------------------------------------
2750 dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
2752 dnl Check for the package-config program, unless disabled by command-line.
2753 AC_DEFUN([CF_PKG_CONFIG],
2755 AC_MSG_CHECKING(if you want to use pkg-config)
2756 AC_ARG_WITH(pkg-config,
2757 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2758 [cf_pkg_config=$withval],
2759 [cf_pkg_config=yes])
2760 AC_MSG_RESULT($cf_pkg_config)
2762 case $cf_pkg_config in #(vi
2767 CF_ACVERSION_CHECK(2.52,
2768 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2769 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2776 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2777 if test "$PKG_CONFIG" != none ; then
2778 CF_PATH_SYNTAX(PKG_CONFIG)
2781 AC_SUBST(PKG_CONFIG)
2783 dnl ---------------------------------------------------------------------------
2784 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
2785 dnl -----------------
2786 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2788 dnl POSIX.1-1990 _POSIX_SOURCE
2789 dnl POSIX.1-1990 and _POSIX_SOURCE and
2790 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2792 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2793 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2794 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2797 dnl $1 is the nominal value for _POSIX_C_SOURCE
2798 AC_DEFUN([CF_POSIX_C_SOURCE],
2800 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2802 cf_save_CFLAGS="$CFLAGS"
2803 cf_save_CPPFLAGS="$CPPFLAGS"
2805 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2806 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2808 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2809 CF_MSG_LOG(if the symbol is already defined go no further)
2810 AC_TRY_COMPILE([#include <sys/types.h>],[
2811 #ifndef _POSIX_C_SOURCE
2814 [cf_cv_posix_c_source=no],
2815 [cf_want_posix_source=no
2816 case .$cf_POSIX_C_SOURCE in #(vi
2818 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2821 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2822 cf_want_posix_source=yes
2825 cf_want_posix_source=yes
2828 if test "$cf_want_posix_source" = yes ; then
2829 AC_TRY_COMPILE([#include <sys/types.h>],[
2830 #ifdef _POSIX_SOURCE
2833 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2835 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2836 CFLAGS="$cf_trim_CFLAGS"
2837 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2838 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2839 AC_TRY_COMPILE([#include <sys/types.h>],[
2840 #ifndef _POSIX_C_SOURCE
2843 [cf_cv_posix_c_source=no])
2844 CFLAGS="$cf_save_CFLAGS"
2845 CPPFLAGS="$cf_save_CPPFLAGS"
2849 if test "$cf_cv_posix_c_source" != no ; then
2850 CFLAGS="$cf_trim_CFLAGS"
2851 CPPFLAGS="$cf_trim_CPPFLAGS"
2852 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2856 dnl ---------------------------------------------------------------------------
2857 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
2859 dnl Check for archiver "ar".
2860 AC_DEFUN([CF_PROG_AR],[
2861 AC_CHECK_TOOL(AR, ar, ar)
2863 dnl ---------------------------------------------------------------------------
2864 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
2866 dnl Check for awk, ensure that the check found something.
2867 AC_DEFUN([CF_PROG_AWK],
2870 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
2872 dnl ---------------------------------------------------------------------------
2873 dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
2875 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
2876 dnl the output file can be renamed, and allows for a shell variable that can
2877 dnl be used later. The parameter is either CC or CXX. The result is the
2879 dnl $cf_cv_prog_CC_c_o
2880 dnl $cf_cv_prog_CXX_c_o
2881 AC_DEFUN([CF_PROG_CC_C_O],
2882 [AC_REQUIRE([AC_PROG_CC])dnl
2883 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
2884 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
2886 cat > conftest.$ac_ext <<CF_EOF
2890 ${cf_cv_main_return:-return}(0);
2893 # We do the test twice because some compilers refuse to overwrite an
2894 # existing .o file with -o, though they will create one.
2895 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
2896 if AC_TRY_EVAL(ac_try) &&
2897 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
2899 eval cf_cv_prog_$1_c_o=yes
2901 eval cf_cv_prog_$1_c_o=no
2905 if test $cf_cv_prog_$1_c_o = yes; then
2906 AC_MSG_RESULT([yes])
2911 dnl ---------------------------------------------------------------------------
2912 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
2914 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
2915 dnl This macro adds a check to ensure the script found something.
2916 AC_DEFUN([CF_PROG_EGREP],
2917 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
2918 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
2919 then ac_cv_prog_egrep='grep -E'
2920 else ac_cv_prog_egrep='egrep'
2922 EGREP=$ac_cv_prog_egrep
2924 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
2926 dnl ---------------------------------------------------------------------------
2927 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
2929 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
2930 AC_DEFUN([CF_PROG_EXT],
2932 AC_REQUIRE([CF_CHECK_CACHE])
2933 case $cf_cv_system_name in
2935 CFLAGS="$CFLAGS -Zmt"
2936 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
2937 CXXFLAGS="$CXXFLAGS -Zmt"
2938 # autoconf's macro sets -Zexe and suffix both, which conflict:w
2939 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
2949 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
2951 dnl ---------------------------------------------------------------------------
2952 dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47
2954 dnl Check for gnatmake, ensure that it is complete.
2955 AC_DEFUN([CF_PROG_GNAT],[
2956 cf_ada_make=gnatmake
2957 AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
2958 if test "$ac_cv_prog_gnat_exists" = no; then
2960 cf_cv_prog_gnat_correct=no
2963 AC_CHECK_PROG(M4_exists, m4, yes, no)
2964 if test "$ac_cv_prog_M4_exists" = no; then
2965 cf_cv_prog_gnat_correct=no
2966 echo Ada95 binding required program m4 not found. Ada95 binding disabled.
2968 if test "$cf_cv_prog_gnat_correct" = yes; then
2969 AC_MSG_CHECKING(if GNAT works)
2970 CF_GNAT_TRY_RUN([procedure conftest;],
2973 procedure conftest is
2975 Text_IO.Put ("Hello World");
2977 GNAT.OS_Lib.OS_Exit (0);
2978 end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
2979 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
2983 AC_SUBST(cf_ada_make)
2985 dnl ---------------------------------------------------------------------------
2986 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
2988 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
2989 dnl option if it is supported.
2990 AC_DEFUN([CF_PROG_LN_S],[
2992 AC_MSG_CHECKING(if $LN_S -f options work)
2994 rm -f conf$$.src conf$$dst
2996 echo first >conf$$.src
2997 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
3002 rm -f conf$$.dst conf$$src
3003 AC_MSG_RESULT($cf_prog_ln_sf)
3005 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
3007 dnl ---------------------------------------------------------------------------
3008 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3009 dnl ----------------
3010 dnl Remove all -U and -D options that refer to the given symbol from a list
3011 dnl of C compiler options. This works around the problem that not all
3012 dnl compilers process -U and -D options from left-to-right, so a -U option
3013 dnl cannot be used to cancel the effect of a preceding -D option.
3015 dnl $1 = target (which could be the same as the source variable)
3016 dnl $2 = source (including '$')
3017 dnl $3 = symbol to remove
3018 define([CF_REMOVE_DEFINE],
3021 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
3022 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
3024 dnl ---------------------------------------------------------------------------
3025 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3027 dnl Remove the given library from the symbol
3029 dnl $1 = target (which could be the same as the source variable)
3030 dnl $2 = source (including '$')
3031 dnl $3 = library to remove
3032 define([CF_REMOVE_LIB],
3034 # remove $3 library from $2
3035 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
3037 dnl ---------------------------------------------------------------------------
3038 dnl CF_SHARED_OPTS version: 70 updated: 2012/02/25 15:20:07
3041 dnl Attempt to determine the appropriate CC/LD options for creating a shared
3044 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
3045 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
3046 dnl We avoid compiling-in a ../lib path for the shared library since that can
3047 dnl lead to unexpected results at runtime.
3048 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
3049 dnl are compiled in ../../lib
3051 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
3052 dnl to install symbolic links to the rel/abi versions of shared libraries.
3054 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
3055 dnl version when making symbolic links.
3057 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
3058 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
3059 dnl (ex: libncurses.so.<ver>).
3061 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
3062 AC_DEFUN([CF_SHARED_OPTS],
3064 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
3065 AC_REQUIRE([CF_LD_RPATH_OPT])
3069 INSTALL_LIB="-m 644"
3071 cf_cv_do_symlinks=no
3073 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
3075 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
3076 AC_ARG_WITH(shlib-version,
3077 [ --with-shlib-version=X Specify rel or abi version for shared libs],
3078 [test -z "$withval" && withval=auto
3079 case $withval in #(vi
3081 cf_cv_shlib_version=auto
3083 rel|abi|auto|no) #(vi
3084 cf_cv_shlib_version=$withval
3087 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
3090 ],[cf_cv_shlib_version=auto])
3091 AC_MSG_RESULT($cf_cv_shlib_version)
3095 # Some less-capable ports of gcc support only -fpic
3097 if test "$GCC" = yes
3099 AC_MSG_CHECKING(which $CC option to use)
3100 cf_save_CFLAGS="$CFLAGS"
3101 for CC_SHARED_OPTS in -fPIC -fpic ''
3103 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
3104 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
3106 AC_MSG_RESULT($CC_SHARED_OPTS)
3107 CFLAGS="$cf_save_CFLAGS"
3110 cf_cv_shlib_version_infix=no
3112 case $cf_cv_system_name in #(vi
3113 aix4.[3-9]*|aix[[5-7]]*) #(vi
3114 if test "$GCC" = yes; then
3116 MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3118 # CC_SHARED_OPTS='-qpic=large -G'
3119 # perhaps "-bM:SRE -bnoentry -bexpall"
3120 MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3124 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
3128 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3129 cf_cv_shlib_version=cygdll
3130 cf_cv_shlib_version_infix=cygdll
3131 cat >mk_shared_lib.sh <<-CF_EOF
3134 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3137 Linking shared library
3138 ** SHARED_LIB \[$]SHARED_LIB
3139 ** IMPORT_LIB \[$]IMPORT_LIB
3141 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
3143 chmod +x mk_shared_lib.sh
3146 EXTRA_CFLAGS="-no-cpp-precomp"
3147 CC_SHARED_OPTS="-dynamic"
3148 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
3149 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
3150 cf_cv_shlib_version_infix=yes
3151 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
3152 cf_save_LDFLAGS=$LDFLAGS
3153 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3154 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
3155 LDFLAGS=$cf_save_LDFLAGS])
3156 if test $cf_cv_ldflags_search_paths_first = yes; then
3157 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3161 # (tested with gcc 2.7.2 -- I don't have c89)
3162 if test "$GCC" = yes; then
3163 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
3166 LD_SHARED_OPTS='-Wl,+b,${libdir}'
3168 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
3169 # HP-UX shared libraries must be executable, and should be
3170 # readonly to exploit a quirk in the memory manager.
3171 INSTALL_LIB="-m 555"
3174 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3175 if test "$cf_cv_shlib_version" = rel; then
3176 cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
3178 cf_shared_soname='`basename $@`'
3181 MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
3184 if test "$cf_cv_enable_rpath" = yes ; then
3185 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3187 # tested with IRIX 5.2 and 'cc'.
3188 if test "$GCC" != yes; then
3189 CC_SHARED_OPTS='-KPIC'
3190 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
3192 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
3194 cf_cv_rm_so_locs=yes
3196 linux*|gnu*|k*bsd*-gnu) #(vi
3197 if test "$DFT_LWR_MODEL" = "shared" ; then
3198 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3199 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3201 if test "$cf_cv_enable_rpath" = yes ; then
3202 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3205 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3208 cf_cv_shlib_version=mingw
3209 cf_cv_shlib_version_infix=mingw
3211 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3212 #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]'
3213 #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]'
3214 cat >mk_shared_lib.sh <<-CF_EOF
3217 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3220 Linking shared library
3221 ** SHARED_LIB \[$]SHARED_LIB
3222 ** IMPORT_LIB \[$]IMPORT_LIB
3224 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
3226 chmod +x mk_shared_lib.sh
3228 openbsd[[2-9]].*|mirbsd*) #(vi
3229 if test "$DFT_LWR_MODEL" = "shared" ; then
3230 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3231 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3233 if test "$cf_cv_enable_rpath" = yes ; then
3234 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3236 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3238 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3240 nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
3241 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3242 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
3243 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3245 dragonfly*|freebsd*) #(vi
3246 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3247 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
3248 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
3249 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
3250 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3253 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
3256 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3257 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
3258 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
3259 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3260 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3261 if test "$cf_cv_shlib_version" = auto; then
3262 if test -f /usr/libexec/ld.elf_so; then
3263 cf_cv_shlib_version=abi
3265 cf_cv_shlib_version=rel
3269 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
3271 MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
3275 # tested with OSF/1 V3.2 and 'cc'
3276 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
3277 # link with shared libs).
3278 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
3279 case $host_os in #(vi
3281 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
3284 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
3285 if test "$DFT_LWR_MODEL" = "shared" ; then
3286 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3287 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3289 cf_cv_rm_so_locs=yes
3291 sco3.2v5*) # (also uw2* and UW7: hops 13-Apr-98
3292 # tested with osr5.0.5
3293 if test "$GCC" != yes; then
3294 CC_SHARED_OPTS='-belf -KPIC'
3296 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
3297 if test "$cf_cv_enable_rpath" = yes ; then
3298 # only way is to set LD_RUN_PATH but no switch for it
3301 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3302 LINK_PROGS='LD_RUN_PATH=${libdir}'
3303 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
3306 # tested with SunOS 4.1.1 and gcc 2.7.0
3307 if test "$GCC" != yes; then
3308 CC_SHARED_OPTS='-KPIC'
3310 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
3311 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3314 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
3315 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
3316 if test "$DFT_LWR_MODEL" = "shared" ; then
3317 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
3318 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3320 if test "$cf_cv_enable_rpath" = yes ; then
3321 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
3324 if test "$GCC" != yes; then
3325 cf_save_CFLAGS="$CFLAGS"
3326 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
3328 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
3329 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
3331 CFLAGS="$cf_save_CFLAGS"
3332 CC_SHARED_OPTS=$cf_shared_opts
3333 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
3335 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
3338 sysv5uw7*|unix_sv*) #(vi
3339 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
3340 if test "$GCC" != yes; then
3341 CC_SHARED_OPTS='-KPIC'
3343 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
3346 CC_SHARED_OPTS='unknown'
3347 MK_SHARED_LIB='echo unknown'
3351 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
3352 case "$cf_cv_shlib_version" in #(vi
3354 case "$MK_SHARED_LIB" in #(vi
3356 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
3359 AC_MSG_WARN(ignored --with-shlib-version)
3365 # RPATH_LIST is a colon-separated list of directories
3366 test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
3367 test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
3369 CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
3370 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
3372 AC_SUBST(CC_SHARED_OPTS)
3373 AC_SUBST(LD_RPATH_OPT)
3374 AC_SUBST(LD_SHARED_OPTS)
3375 AC_SUBST(MK_SHARED_LIB)
3376 AC_SUBST(LINK_PROGS)
3377 AC_SUBST(LINK_TESTS)
3378 AC_SUBST(EXTRA_LDFLAGS)
3379 AC_SUBST(LOCAL_LDFLAGS)
3380 AC_SUBST(LOCAL_LDFLAGS2)
3381 AC_SUBST(INSTALL_LIB)
3382 AC_SUBST(RPATH_LIST)
3384 dnl ---------------------------------------------------------------------------
3385 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
3386 dnl ----------------
3387 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
3388 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
3391 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
3392 dnl If missing, use "rel".
3393 define([CF_SHARED_SONAME],
3395 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
3396 if test "$cf_cv_shlib_version" = rel; then
3397 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
3399 cf_cv_shared_soname='`basename $[@]`'
3402 dnl ---------------------------------------------------------------------------
3403 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
3405 dnl Remove "-g" option from the compiler options
3406 AC_DEFUN([CF_STRIP_G_OPT],
3407 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
3408 dnl ---------------------------------------------------------------------------
3409 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
3411 dnl Construct a search-list for a nonstandard header/lib-file
3412 dnl $1 = the variable to return as result
3413 dnl $2 = the package name
3414 dnl $3 = the subdirectory, e.g., bin, include or lib
3415 AC_DEFUN([CF_SUBDIR_PATH],
3419 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
3420 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3421 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
3422 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
3423 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
3425 dnl ---------------------------------------------------------------------------
3426 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
3428 dnl Shorthand macro for substituting things that the user may override
3429 dnl with an environment variable.
3431 dnl $1 = long/descriptive name
3432 dnl $2 = environment variable
3433 dnl $3 = default value
3434 AC_DEFUN([CF_SUBST],
3435 [AC_CACHE_VAL(cf_cv_subst_$2,[
3436 AC_MSG_CHECKING(for $1 (symbol $2))
3437 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
3438 cf_cv_subst_$2=[$]$2
3439 AC_MSG_RESULT([$]$2)
3442 dnl ---------------------------------------------------------------------------
3443 dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
3445 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3446 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3447 dnl but some packagers change this, breaking various applications.
3448 AC_DEFUN([CF_TERM_HEADER],[
3449 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3450 case ${cf_cv_ncurses_header} in #(vi
3451 */ncurses.h|*/ncursesw.h) #(vi
3452 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3455 cf_term_header=term.h
3459 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3461 AC_TRY_COMPILE([#include <stdio.h>
3462 #include <${cf_cv_ncurses_header:-curses.h}>
3464 ],[int x = auto_left_margin],[
3465 cf_cv_term_header="$cf_test"],[
3466 cf_cv_term_header=unknown
3468 test "$cf_cv_term_header" != unknown && break
3472 # Set definitions to allow ifdef'ing to accommodate subdirectories
3474 case $cf_cv_term_header in # (vi
3476 AC_DEFINE(HAVE_TERM_H)
3480 case $cf_cv_term_header in # (vi
3481 ncurses/term.h) #(vi
3482 AC_DEFINE(HAVE_NCURSES_TERM_H)
3485 AC_DEFINE(HAVE_NCURSESW_TERM_H)
3489 dnl ---------------------------------------------------------------------------
3490 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
3492 dnl Define a top_builddir symbol, for applications that need an absolute path.
3493 AC_DEFUN([CF_TOP_BUILDDIR],
3496 AC_SUBST(top_builddir)
3498 dnl ---------------------------------------------------------------------------
3499 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3500 dnl -------------------
3501 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3502 dnl can define it successfully.
3503 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3504 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3508 #include <sys/types.h>
3510 #ifndef _XOPEN_SOURCE
3513 [cf_cv_xopen_source=no],
3514 [cf_save="$CPPFLAGS"
3515 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3519 #include <sys/types.h>
3521 #ifdef _XOPEN_SOURCE
3524 [cf_cv_xopen_source=no],
3525 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3530 if test "$cf_cv_xopen_source" != no ; then
3531 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3532 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3533 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3534 CF_ADD_CFLAGS($cf_temp_xopen_source)
3537 dnl ---------------------------------------------------------------------------
3538 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3540 dnl Make an uppercase version of a variable
3541 dnl $1=uppercase($2)
3542 AC_DEFUN([CF_UPPER],
3544 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3546 dnl ---------------------------------------------------------------------------
3547 dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
3549 dnl Check for multibyte support, and if not found, utf8 compatibility library
3550 AC_DEFUN([CF_UTF8_LIB],
3552 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3553 cf_save_LIBS="$LIBS"
3555 #include <stdlib.h>],[putwc(0,0);],
3556 [cf_cv_utf8_lib=yes],
3558 #include <libutf8.h>],[putwc(0,0);],utf8,
3559 [cf_cv_utf8_lib=add-on],
3560 [cf_cv_utf8_lib=no])
3563 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3565 if test "$cf_cv_utf8_lib" = "add-on" ; then
3566 AC_DEFINE(HAVE_LIBUTF8_H)
3567 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3568 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3569 CF_ADD_LIBS($cf_cv_library_file_utf8)
3572 dnl ---------------------------------------------------------------------------
3573 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3575 dnl Use AC_VERBOSE w/o the warnings
3576 AC_DEFUN([CF_VERBOSE],
3577 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3580 dnl ---------------------------------------------------------------------------
3581 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
3583 dnl Check for compiler-support for weak symbols.
3584 dnl This works with "recent" gcc.
3585 AC_DEFUN([CF_WEAK_SYMBOLS],[
3586 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
3589 #include <stdio.h>],
3591 #if defined(__GNUC__)
3592 # if defined __USE_ISOC99
3593 # define _cat_pragma(exp) _Pragma(#exp)
3594 # define _weak_pragma(exp) _cat_pragma(weak name)
3596 # define _weak_pragma(exp)
3598 # define _declare(name) __extension__ extern __typeof__(name) name
3599 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
3603 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
3606 dnl ---------------------------------------------------------------------------
3607 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
3608 dnl --------------------
3609 dnl Command-line option to specify the Ada95 compiler.
3610 AC_DEFUN([CF_WITH_ADA_COMPILER],[
3611 AC_MSG_CHECKING(for ada-compiler)
3612 AC_ARG_WITH(ada-compiler,
3613 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
3614 [cf_ada_compiler=$withval],
3615 [cf_ada_compiler=gnatmake])
3616 AC_SUBST(cf_ada_compiler)
3617 AC_MSG_RESULT($cf_ada_compiler)
3619 dnl ---------------------------------------------------------------------------
3620 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
3621 dnl -------------------
3622 dnl Command-line option to specify where Ada includes will install.
3623 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
3624 AC_MSG_CHECKING(for ada-include)
3625 CF_WITH_PATH(ada-include,
3626 [ --with-ada-include=DIR Ada includes are in DIR],
3628 PREFIX/share/ada/adainclude,
3629 [$]prefix/share/ada/adainclude)
3630 AC_SUBST(ADA_INCLUDE)
3631 AC_MSG_RESULT($ADA_INCLUDE)
3633 dnl ---------------------------------------------------------------------------
3634 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
3635 dnl -------------------
3636 dnl Command-line option to specify where Ada objects will install.
3637 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
3638 AC_MSG_CHECKING(for ada-objects)
3639 CF_WITH_PATH(ada-objects,
3640 [ --with-ada-objects=DIR Ada objects are in DIR],
3642 PREFIX/lib/ada/adalib,
3643 [$]prefix/lib/ada/adalib)
3644 AC_SUBST(ADA_OBJECTS)
3645 AC_MSG_RESULT($ADA_OBJECTS)
3647 dnl ---------------------------------------------------------------------------
3648 dnl CF_WITH_ADA_SHAREDLIB version: 2 updated: 2010/06/26 17:35:58
3649 dnl ---------------------
3650 dnl Command-line option to specify if an Ada95 shared-library should be built,
3651 dnl and optionally what its soname should be.
3652 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
3653 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
3654 AC_ARG_WITH(ada-sharedlib,
3655 [ --with-ada-sharedlib=XX build Ada95 shared-library],
3656 [with_ada_sharedlib=$withval],
3657 [with_ada_sharedlib=no])
3658 AC_MSG_RESULT($with_ada_sharedlib)
3660 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
3661 MAKE_ADA_SHAREDLIB="#"
3663 if test "x$with_ada_sharedlib" != xno
3666 if test "x$with_ada_sharedlib" != xyes
3668 ADA_SHAREDLIB="$with_ada_sharedlib"
3672 AC_SUBST(ADA_SHAREDLIB)
3673 AC_SUBST(MAKE_ADA_SHAREDLIB)
3675 dnl ---------------------------------------------------------------------------
3676 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3677 dnl ------------------
3678 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3680 AC_DEFUN([CF_WITH_CURSES_DIR],[
3682 AC_MSG_CHECKING(for specific curses-directory)
3683 AC_ARG_WITH(curses-dir,
3684 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3685 [cf_cv_curses_dir=$withval],
3686 [cf_cv_curses_dir=no])
3687 AC_MSG_RESULT($cf_cv_curses_dir)
3689 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3691 CF_PATH_SYNTAX(withval)
3692 if test -d "$cf_cv_curses_dir"
3694 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3695 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3699 dnl ---------------------------------------------------------------------------
3700 dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
3701 dnl ------------------
3702 dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
3703 dnl "lib" prefix, e.g., because it used the dll naming convention.
3705 dnl $1 = variable to set
3706 AC_DEFUN([CF_WITH_LIB_PREFIX],
3708 AC_MSG_CHECKING(if you want to have a library-prefix)
3709 AC_ARG_WITH(lib-prefix,
3710 [ --with-lib-prefix override library-prefix],
3711 [with_lib_prefix=$withval],
3712 [with_lib_prefix=auto])
3713 AC_MSG_RESULT($with_lib_prefix)
3715 if test $with_lib_prefix = auto
3718 elif test $with_lib_prefix = no
3722 LIB_PREFIX=$with_lib_prefix