1 dnl***************************************************************************
2 dnl Copyright (c) 2010-2018,2019 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.145 2019/09/07 23:37:09 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 https://invisible-island.net/autoconf/ for additional information.
40 dnl ---------------------------------------------------------------------------
41 dnl ---------------------------------------------------------------------------
42 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
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([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
52 ifdef([m4_version_compare],
53 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
54 [CF_ACVERSION_COMPARE(
55 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
56 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
57 dnl ---------------------------------------------------------------------------
58 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
59 dnl --------------------
60 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
61 dnl MAJOR2, MINOR2, TERNARY2,
62 dnl PRINTABLE2, not FOUND, FOUND)
63 define([CF_ACVERSION_COMPARE],
64 [ifelse(builtin([eval], [$2 < $5]), 1,
65 [ifelse([$8], , ,[$8])],
66 [ifelse([$9], , ,[$9])])])dnl
67 dnl ---------------------------------------------------------------------------
68 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
69 dnl -------------------
70 dnl Construct the list of include-options for the C programs in the Ada95
72 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
74 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
75 if test "$srcdir" != "."; then
76 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
78 if test "$GCC" != yes; then
79 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
80 elif test "$includedir" != "/usr/include"; then
81 if test "$includedir" = '${prefix}/include' ; then
82 if test x$prefix != x/usr ; then
83 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
86 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
91 dnl ---------------------------------------------------------------------------
92 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
94 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
95 AC_DEFUN([CF_ADD_ADAFLAGS],[
96 ADAFLAGS="$ADAFLAGS $1"
99 dnl ---------------------------------------------------------------------------
100 dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
102 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
103 dnl The second parameter if given makes this macro verbose.
105 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
106 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
107 dnl confused by the quotes (which require backslashes to keep them usable).
108 AC_DEFUN([CF_ADD_CFLAGS],
113 cf_new_extra_cppflags=
115 for cf_add_cflags in $1
117 case $cf_fix_cppflags in
119 case $cf_add_cflags in
120 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
121 case $cf_add_cflags in
123 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
125 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
126 && test -z "${cf_tst_cflags}" \
127 && cf_fix_cppflags=yes
129 if test $cf_fix_cppflags = yes ; then
130 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
132 elif test "${cf_tst_cflags}" = "\"'" ; then
133 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
142 case $cf_add_cflags in
144 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
145 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
148 CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
153 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
158 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
160 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
162 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
163 && test -z "${cf_tst_cflags}" \
164 && cf_fix_cppflags=no
169 if test -n "$cf_new_cflags" ; then
170 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
171 CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
174 if test -n "$cf_new_cppflags" ; then
175 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
176 CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
179 if test -n "$cf_new_extra_cppflags" ; then
180 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
181 CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
184 AC_SUBST(EXTRA_CPPFLAGS)
187 dnl ---------------------------------------------------------------------------
188 dnl CF_ADD_INCDIR version: 15 updated: 2018/06/20 20:23:13
190 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
191 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
192 dnl but old versions (and some misinstalled ones) need that. To make things
193 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
194 dnl the include-path).
195 AC_DEFUN([CF_ADD_INCDIR],
197 if test -n "$1" ; then
198 for cf_add_incdir in $1
200 while test $cf_add_incdir != /usr/include
202 if test -d $cf_add_incdir
205 if test -n "$CFLAGS$CPPFLAGS" ; then
206 # a loop is needed to ensure we can add subdirs of existing dirs
207 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
208 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
209 cf_have_incdir=yes; break
214 if test "$cf_have_incdir" = no ; then
215 if test "$cf_add_incdir" = /usr/local/include ; then
218 cf_save_CPPFLAGS=$CPPFLAGS
219 CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
220 AC_TRY_COMPILE([#include <stdio.h>],
223 [cf_have_incdir=yes])
224 CPPFLAGS=$cf_save_CPPFLAGS
229 if test "$cf_have_incdir" = no ; then
230 CF_VERBOSE(adding $cf_add_incdir to include-path)
231 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
233 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
234 test "$cf_top_incdir" = "$cf_add_incdir" && break
235 cf_add_incdir="$cf_top_incdir"
246 dnl ---------------------------------------------------------------------------
247 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
249 dnl Add a library, used to enforce consistency.
251 dnl $1 = library to add, without the "-l"
252 dnl $2 = variable to update (default $LIBS)
253 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
254 dnl ---------------------------------------------------------------------------
255 dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
257 dnl Adds to the library-path
259 dnl Some machines have trouble with multiple -L options.
261 dnl $1 is the (list of) directory(s) to add
262 dnl $2 is the optional name of the variable to update (default LDFLAGS)
264 AC_DEFUN([CF_ADD_LIBDIR],
266 if test -n "$1" ; then
267 for cf_add_libdir in $1
269 if test $cf_add_libdir = /usr/lib ; then
271 elif test -d $cf_add_libdir
274 if test -n "$LDFLAGS$LIBS" ; then
275 # a loop is needed to ensure we can add subdirs of existing dirs
276 for cf_test_libdir in $LDFLAGS $LIBS ; do
277 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
278 cf_have_libdir=yes; break
282 if test "$cf_have_libdir" = no ; then
283 CF_VERBOSE(adding $cf_add_libdir to library-path)
284 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
290 dnl ---------------------------------------------------------------------------
291 dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
293 dnl Add one or more libraries, used to enforce consistency. Libraries are
294 dnl prepended to an existing list, since their dependencies are assumed to
295 dnl already exist in the list.
297 dnl $1 = libraries to add, with the "-l", etc.
298 dnl $2 = variable to update (default $LIBS)
299 AC_DEFUN([CF_ADD_LIBS],[
301 # Filter out duplicates - this happens with badly-designed ".pc" files...
302 for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
304 for cf_add_2lib in $cf_add_libs
306 if test "x$cf_add_1lib" = "x$cf_add_2lib"
312 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
314 ifelse($2,,LIBS,[$2])="$cf_add_libs"
316 dnl ---------------------------------------------------------------------------
317 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
318 dnl ------------------
319 dnl Append to a search-list for a nonstandard header/lib-file
320 dnl $1 = the variable to return as result
321 dnl $2 = the package name
322 dnl $3 = the subdirectory, e.g., bin, include or lib
323 dnl $4 = the directory under which we will test for subdirectories
324 dnl $5 = a directory that we do not want $4 to match
325 AC_DEFUN([CF_ADD_SUBDIR_PATH],
327 test "x$4" != "x$5" && \
329 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
330 test -n "$verbose" && echo " ... testing for $3-directories under $4"
331 test -d $4/$3 && $1="[$]$1 $4/$3"
332 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
333 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
334 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
335 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
338 dnl ---------------------------------------------------------------------------
339 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
341 dnl use this macro for appending text without introducing an extra blank at
343 define([CF_APPEND_TEXT],
345 test -n "[$]$1" && $1="[$]$1 "
348 dnl ---------------------------------------------------------------------------
349 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
351 dnl Allow user to disable a normally-on option.
352 AC_DEFUN([CF_ARG_DISABLE],
353 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
354 dnl ---------------------------------------------------------------------------
355 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
357 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
363 dnl $3 = action to perform if option is not default
364 dnl $4 = action if perform if option is default
365 dnl $5 = default option value (either 'yes' or 'no')
366 AC_DEFUN([CF_ARG_OPTION],
367 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
368 if test "$enableval" != "$5" ; then
370 ,[ $3]) ifelse([$4],,,[
373 fi],[enableval=$5 ifelse([$4],,,[
377 dnl ---------------------------------------------------------------------------
378 dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05
380 dnl Check for suitable "ar" (archiver) options for updating an archive.
382 dnl In particular, handle some obsolete cases where the "-" might be omitted,
383 dnl as well as a workaround for breakage of make's archive rules by the GNU
384 dnl binutils "ar" program.
385 AC_DEFUN([CF_AR_FLAGS],[
386 AC_REQUIRE([CF_PROG_AR])
388 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
389 cf_cv_ar_flags=unknown
390 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
393 # check if $ARFLAGS already contains this choice
394 if test "x$ARFLAGS" != "x" ; then
395 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
396 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
402 rm -f conftest.$ac_cv_objext
405 cat >conftest.$ac_ext <<EOF
406 #line __oline__ "configure"
407 int testdata[[3]] = { 123, 456, 789 };
409 if AC_TRY_EVAL(ac_compile) ; then
410 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
411 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
412 if test -f conftest.a ; then
413 cf_cv_ar_flags=$cf_ar_flags
417 CF_VERBOSE(cannot compile test-program)
421 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
424 if test -n "$ARFLAGS" ; then
425 if test -n "$cf_cv_ar_flags" ; then
426 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
429 ARFLAGS=$cf_cv_ar_flags
434 dnl ---------------------------------------------------------------------------
435 dnl CF_BUILD_CC version: 8 updated: 2018/01/04 20:31:04
437 dnl If we're cross-compiling, allow the user to override the tools and their
438 dnl options. The configure script is oriented toward identifying the host
439 dnl compiler, etc., but we need a build compiler to generate parts of the
442 dnl $1 = default for $CPPFLAGS
443 dnl $2 = default for $LIBS
444 AC_DEFUN([CF_BUILD_CC],[
445 CF_ACVERSION_CHECK(2.52,,
446 [AC_REQUIRE([CF_PROG_EXT])])
447 if test "$cross_compiling" = yes ; then
449 # defaults that we might want to override
450 : ${BUILD_CFLAGS:=''}
451 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
452 : ${BUILD_LDFLAGS:=''}
453 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
454 : ${BUILD_EXEEXT:='$x'}
455 : ${BUILD_OBJEXT:='o'}
457 AC_ARG_WITH(build-cc,
458 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
459 [BUILD_CC="$withval"],
460 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
461 AC_MSG_CHECKING(for native build C compiler)
462 AC_MSG_RESULT($BUILD_CC)
464 AC_MSG_CHECKING(for native build C preprocessor)
465 AC_ARG_WITH(build-cpp,
466 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
467 [BUILD_CPP="$withval"],
468 [BUILD_CPP='${BUILD_CC} -E'])
469 AC_MSG_RESULT($BUILD_CPP)
471 AC_MSG_CHECKING(for native build C flags)
472 AC_ARG_WITH(build-cflags,
473 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
474 [BUILD_CFLAGS="$withval"])
475 AC_MSG_RESULT($BUILD_CFLAGS)
477 AC_MSG_CHECKING(for native build C preprocessor-flags)
478 AC_ARG_WITH(build-cppflags,
479 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
480 [BUILD_CPPFLAGS="$withval"])
481 AC_MSG_RESULT($BUILD_CPPFLAGS)
483 AC_MSG_CHECKING(for native build linker-flags)
484 AC_ARG_WITH(build-ldflags,
485 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
486 [BUILD_LDFLAGS="$withval"])
487 AC_MSG_RESULT($BUILD_LDFLAGS)
489 AC_MSG_CHECKING(for native build linker-libraries)
490 AC_ARG_WITH(build-libs,
491 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
492 [BUILD_LIBS="$withval"])
493 AC_MSG_RESULT($BUILD_LIBS)
495 # this assumes we're on Unix.
499 : ${BUILD_CC:='${CC}'}
501 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
502 AC_MSG_ERROR([Cross-build requires two compilers.
503 Use --with-build-cc to specify the native compiler.])
507 : ${BUILD_CC:='${CC}'}
508 : ${BUILD_CPP:='${CPP}'}
509 : ${BUILD_CFLAGS:='${CFLAGS}'}
510 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
511 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
512 : ${BUILD_LIBS:='${LIBS}'}
513 : ${BUILD_EXEEXT:='$x'}
514 : ${BUILD_OBJEXT:='o'}
519 AC_SUBST(BUILD_CFLAGS)
520 AC_SUBST(BUILD_CPPFLAGS)
521 AC_SUBST(BUILD_LDFLAGS)
523 AC_SUBST(BUILD_EXEEXT)
524 AC_SUBST(BUILD_OBJEXT)
526 dnl ---------------------------------------------------------------------------
527 dnl CF_CC_ENV_FLAGS version: 9 updated: 2018/07/29 18:03:26
529 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
530 dnl into CC. This will not help with broken scripts that wrap the compiler
531 dnl with options, but eliminates a more common category of user confusion.
533 dnl In particular, it addresses the problem of being able to run the C
534 dnl preprocessor in a consistent manner.
536 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
537 dnl the nuisance of having inconsistent settings for compiler and preprocessor
538 dnl outweighs that limitation.
539 AC_DEFUN([CF_CC_ENV_FLAGS],
541 # This should have been defined by AC_PROG_CC
544 AC_MSG_CHECKING(\$CFLAGS variable)
547 AC_MSG_RESULT(broken)
548 AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
551 for cf_arg in $cf_flags
553 CF_ADD_CFLAGS($cf_arg)
561 AC_MSG_CHECKING(\$CC variable)
564 AC_MSG_RESULT(broken)
565 AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
567 cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
568 cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
570 for cf_arg in $cf_flags
574 CF_ADD_CFLAGS($cf_arg)
581 CF_VERBOSE(resulting CC: '$CC')
582 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
583 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
590 dnl ---------------------------------------------------------------------------
591 dnl CF_CFG_DEFAULTS version: 11 updated: 2015/04/17 21:13:04
593 dnl Determine the default configuration into which we'll install ncurses. This
594 dnl can be overridden by the user's command-line options. There's two items to
596 dnl 1. the prefix (e.g., /usr)
597 dnl 2. the header files (e.g., /usr/include/ncurses)
598 dnl We'll look for a previous installation of ncurses and use the same defaults.
600 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
601 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
602 dnl programs from a vendor's.
603 AC_DEFUN([CF_CFG_DEFAULTS],
605 AC_MSG_CHECKING(for prefix)
606 if test "x$prefix" = "xNONE" ; then
607 case "$cf_cv_system_name" in
608 # non-vendor systems don't have a conflict
609 (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
612 (*) prefix=$ac_default_prefix
616 AC_MSG_RESULT($prefix)
618 if test "x$prefix" = "xNONE" ; then
619 AC_MSG_CHECKING(for default include-directory)
620 test -n "$verbose" && echo 1>&AC_FD_MSG
623 $includedir/ncurses \
625 $prefix/include/ncurses \
627 /usr/local/include/ncurses \
631 cf_dir=`eval echo $cf_symbol`
632 if test -f $cf_dir/curses.h ; then
633 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
634 includedir="$cf_symbol"
635 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
639 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
641 AC_MSG_RESULT($includedir)
644 dnl ---------------------------------------------------------------------------
645 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
647 dnl Check if we're accidentally using a cache from a different machine.
648 dnl Derive the system name, as a check for reusing the autoconf cache.
650 dnl If we've packaged config.guess and config.sub, run that (since it does a
651 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
652 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
653 dnl which is useful in cross-compiles.
655 dnl Note: we would use $ac_config_sub, but that is one of the places where
656 dnl autoconf 2.5x broke compatibility with autoconf 2.13
657 AC_DEFUN([CF_CHECK_CACHE],
659 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
660 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
661 system_name="$host_os"
663 system_name="`(uname -s -r) 2>/dev/null`"
664 if test -z "$system_name" ; then
665 system_name="`(hostname) 2>/dev/null`"
668 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
669 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
671 test -z "$system_name" && system_name="$cf_cv_system_name"
672 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
674 if test ".$system_name" != ".$cf_cv_system_name" ; then
675 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
676 AC_MSG_ERROR("Please remove config.cache and try again.")
679 dnl ---------------------------------------------------------------------------
680 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
681 dnl -----------------
682 dnl Check if the given compiler is really clang. clang's C driver defines
683 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
684 dnl not ignore some gcc options.
686 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
687 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
688 dnl the wrappers for gcc and g++ warnings.
690 dnl $1 = GCC (default) or GXX
691 dnl $2 = CLANG_COMPILER (default)
692 dnl $3 = CFLAGS (default) or CXXFLAGS
693 AC_DEFUN([CF_CLANG_COMPILER],[
694 ifelse([$2],,CLANG_COMPILER,[$2])=no
696 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
697 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
698 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
699 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
705 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
706 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
708 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
709 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
712 dnl ---------------------------------------------------------------------------
713 dnl CF_CONST_X_STRING version: 1 updated: 2019/04/08 17:50:29
714 dnl -----------------
715 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
716 dnl character-strings.
718 dnl It is ambiguous because the specification accommodated the pre-ANSI
719 dnl compilers bundled by more than one vendor in lieu of providing a standard C
720 dnl compiler other than by costly add-ons. Because of this, the specification
721 dnl did not take into account the use of const for telling the compiler that
722 dnl string literals would be in readonly memory.
724 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
725 dnl let the compiler decide how to represent Xt's strings which were #define'd.
726 dnl That does not solve the problem of using the block of Xt's strings which
727 dnl are compiled into the library (and is less efficient than one might want).
729 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
730 dnl when compiling the library and compiling using the library, to tell the
731 dnl compiler that String is const.
732 AC_DEFUN([CF_CONST_X_STRING],
737 #include <X11/Intrinsic.h>
739 [String foo = malloc(1)],[
741 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
744 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
745 #undef XTSTRINGDEFINES /* X11R5 and later */
747 #include <X11/Intrinsic.h>
748 ],[String foo = malloc(1); *foo = 0],[
749 cf_cv_const_x_string=no
751 cf_cv_const_x_string=yes
755 case $cf_cv_const_x_string in
757 CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
760 CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
766 dnl ---------------------------------------------------------------------------
767 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
769 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
770 dnl variations of ncurses' installs.
772 dnl $1 = ncurses when looking for ncurses, or is empty
773 AC_DEFUN([CF_CURSES_HEADER],[
774 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
775 cf_cv_ncurses_header=none
777 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
778 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
780 AC_TRY_COMPILE([#include <${cf_header}>],
781 [initscr(); tgoto("?", 0,0)],
782 [cf_cv_ncurses_header=$cf_header; break],[])
786 if test "$cf_cv_ncurses_header" = none ; then
787 AC_MSG_ERROR(No curses header-files found)
790 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
791 AC_CHECK_HEADERS($cf_cv_ncurses_header)
793 dnl ---------------------------------------------------------------------------
794 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
796 dnl "dirname" is not portable, so we fake it with a shell script.
797 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
798 dnl ---------------------------------------------------------------------------
799 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
801 dnl You can always use "make -n" to see the actual options, but it's hard to
802 dnl pick out/analyze warning messages when the compile-line is long.
805 dnl ECHO_LT - symbol to control if libtool is verbose
806 dnl ECHO_LD - symbol to prefix "cc -o" lines
807 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
808 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
809 dnl ECHO_CC - symbol to put before any "cc" line
811 AC_DEFUN([CF_DISABLE_ECHO],[
812 AC_MSG_CHECKING(if you want to see long compiling messages)
814 [ --disable-echo do not display "compiling" commands],
817 ECHO_LD='@echo linking [$]@;'
818 RULE_CC='@echo compiling [$]<'
819 SHOW_CC='@echo compiling [$]@'
828 AC_MSG_RESULT($enableval)
835 dnl ---------------------------------------------------------------------------
836 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
837 dnl ------------------------
838 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
839 AC_MSG_CHECKING(if we want to use GNAT projects)
840 CF_ARG_DISABLE(gnat-projects,
841 [ --disable-gnat-projects test: disable GNAT projects even if usable],
842 [enable_gnat_projects=no],
843 [enable_gnat_projects=yes])
844 AC_MSG_RESULT($enable_gnat_projects)
846 dnl ---------------------------------------------------------------------------
847 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
849 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
850 dnl prefer a standard location, and use -L options only if we do not find the
851 dnl library in the standard library location(s).
852 dnl $1 = library name
853 dnl $2 = library class, usually the same as library name
855 dnl $4 = code fragment to compile/link
856 dnl $5 = corresponding function-name
857 dnl $6 = flag, nonnull if failure should not cause an error-exit
859 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
860 dnl to use a -L option.
861 AC_DEFUN([CF_FIND_LIBRARY],
863 eval 'cf_cv_have_lib_'$1'=no'
866 eval 'cf_cv_have_lib_'$1'=yes',[
868 AC_MSG_CHECKING(for $5 in -l$1)
870 AC_TRY_LINK([$3],[$4],
872 eval 'cf_cv_have_lib_'$1'=yes'
875 CF_LIBRARY_PATH(cf_search,$2)
876 for cf_libdir in $cf_search
878 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
879 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
880 AC_TRY_LINK([$3],[$4],
882 eval 'cf_cv_have_lib_'$1'=yes'
885 LIBS="$cf_save_LIBS"])
889 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
891 if test $cf_found_library = no ; then
892 AC_MSG_ERROR(Cannot link $1 library)
896 dnl ---------------------------------------------------------------------------
897 dnl CF_FIND_LINKAGE version: 21 updated: 2018/06/20 20:23:13
899 dnl Find a library (specifically the linkage used in the code fragment),
900 dnl searching for it if it is not already in the library path.
901 dnl See also CF_ADD_SEARCHPATH.
903 dnl Parameters (4-on are optional):
904 dnl $1 = headers for library entrypoint
905 dnl $2 = code fragment for library entrypoint
906 dnl $3 = the library name without the "-l" option or ".so" suffix.
907 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
908 dnl $5 = action to perform if not successful
909 dnl $6 = module name, if not the same as the library name
910 dnl $7 = extra libraries
912 dnl Sets these variables:
913 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
914 dnl $cf_cv_header_path_$3 - include-directory if needed
915 dnl $cf_cv_library_path_$3 - library-directory if needed
916 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
917 AC_DEFUN([CF_FIND_LINKAGE],[
919 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
920 # will be set on completion of the AC_TRY_LINK below.
921 cf_cv_header_path_$3=
922 cf_cv_library_path_$3=
924 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
928 AC_TRY_LINK([$1],[$2],[
929 cf_cv_find_linkage_$3=yes
930 cf_cv_header_path_$3=/usr/include
931 cf_cv_library_path_$3=/usr/lib
934 LIBS="-l$3 $7 $cf_save_LIBS"
936 AC_TRY_LINK([$1],[$2],[
937 cf_cv_find_linkage_$3=yes
938 cf_cv_header_path_$3=/usr/include
939 cf_cv_library_path_$3=/usr/lib
940 cf_cv_library_file_$3="-l$3"
942 cf_cv_find_linkage_$3=no
945 CF_VERBOSE(find linkage for $3 library)
946 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
948 cf_save_CPPFLAGS="$CPPFLAGS"
949 cf_test_CPPFLAGS="$CPPFLAGS"
951 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
952 for cf_cv_header_path_$3 in $cf_search
954 if test -d $cf_cv_header_path_$3 ; then
955 CF_VERBOSE(... testing $cf_cv_header_path_$3)
956 CPPFLAGS="$cf_save_CPPFLAGS"
957 CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
958 AC_TRY_COMPILE([$1],[$2],[
959 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
960 cf_cv_find_linkage_$3=maybe
961 cf_test_CPPFLAGS="$CPPFLAGS"
963 CPPFLAGS="$cf_save_CPPFLAGS"
968 if test "$cf_cv_find_linkage_$3" = maybe ; then
970 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
973 cf_save_LDFLAGS="$LDFLAGS"
976 CPPFLAGS="$cf_test_CPPFLAGS"
977 LIBS="-l$3 $7 $cf_save_LIBS"
978 AC_TRY_LINK([$1],[$2],[
979 CF_VERBOSE(... found $3 library in system)
980 cf_cv_find_linkage_$3=yes])
981 CPPFLAGS="$cf_save_CPPFLAGS"
985 if test "$cf_cv_find_linkage_$3" != yes ; then
986 CF_LIBRARY_PATH(cf_search,$3)
987 for cf_cv_library_path_$3 in $cf_search
989 if test -d $cf_cv_library_path_$3 ; then
990 CF_VERBOSE(... testing $cf_cv_library_path_$3)
991 CPPFLAGS="$cf_test_CPPFLAGS"
992 LIBS="-l$3 $7 $cf_save_LIBS"
993 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
994 AC_TRY_LINK([$1],[$2],[
995 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
996 cf_cv_find_linkage_$3=yes
997 cf_cv_library_file_$3="-l$3"
999 CPPFLAGS="$cf_save_CPPFLAGS"
1000 LIBS="$cf_save_LIBS"
1001 LDFLAGS="$cf_save_LDFLAGS"
1005 CPPFLAGS="$cf_save_CPPFLAGS"
1006 LDFLAGS="$cf_save_LDFLAGS"
1010 cf_cv_find_linkage_$3=no
1015 LIBS="$cf_save_LIBS"
1017 if test "$cf_cv_find_linkage_$3" = yes ; then
1019 CF_ADD_INCDIR($cf_cv_header_path_$3)
1020 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1024 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1027 dnl ---------------------------------------------------------------------------
1028 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
1029 dnl -----------------
1030 dnl make ADAFLAGS consistent with CFLAGS
1031 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1032 AC_MSG_CHECKING(optimization options for ADAFLAGS)
1040 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
1041 CF_ADD_ADAFLAGS($cf_O_flag)
1044 AC_MSG_RESULT($ADAFLAGS)
1046 dnl ---------------------------------------------------------------------------
1047 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1048 dnl -----------------
1049 dnl Test for availability of useful gcc __attribute__ directives to quiet
1050 dnl compiler warnings. Though useful, not all are supported -- and contrary
1051 dnl to documentation, unrecognized directives cause older compilers to barf.
1052 AC_DEFUN([CF_GCC_ATTRIBUTES],
1054 if test "$GCC" = yes
1056 cat > conftest.i <<EOF
1058 #define GCC_PRINTF 0
1063 #ifndef GCC_NORETURN
1064 #define GCC_NORETURN /* nothing */
1067 #define GCC_UNUSED /* nothing */
1070 if test "$GCC" = yes
1072 AC_CHECKING([for $CC __attribute__ directives])
1073 cat > conftest.$ac_ext <<EOF
1074 #line __oline__ "${as_me:-configure}"
1075 #include "confdefs.h"
1076 #include "conftest.h"
1077 #include "conftest.i"
1079 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1081 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1084 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1086 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1088 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1089 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1090 extern void foo(void) GCC_NORETURN;
1091 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1093 cf_printf_attribute=no
1094 cf_scanf_attribute=no
1095 for cf_attribute in scanf printf unused noreturn
1097 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1098 cf_directive="__attribute__(($cf_attribute))"
1099 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1101 case $cf_attribute in
1103 cf_printf_attribute=yes
1104 cat >conftest.h <<EOF
1105 #define GCC_$cf_ATTRIBUTE 1
1109 cf_scanf_attribute=yes
1110 cat >conftest.h <<EOF
1111 #define GCC_$cf_ATTRIBUTE 1
1115 cat >conftest.h <<EOF
1116 #define GCC_$cf_ATTRIBUTE $cf_directive
1121 if AC_TRY_EVAL(ac_compile); then
1122 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1123 cat conftest.h >>confdefs.h
1124 case $cf_attribute in
1126 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1129 cf_value='/* nothing */'
1130 if test "$cf_printf_attribute" != no ; then
1131 cf_value='__attribute__((format(printf,fmt,var)))'
1132 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1134 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1137 cf_value='/* nothing */'
1138 if test "$cf_scanf_attribute" != no ; then
1139 cf_value='__attribute__((format(scanf,fmt,var)))'
1140 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1142 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1145 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1151 fgrep define conftest.i >>confdefs.h
1156 dnl ---------------------------------------------------------------------------
1157 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
1159 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
1160 dnl compatible), attempt to determine if icc/clang is actually used.
1161 AC_DEFUN([CF_GCC_VERSION],[
1162 AC_REQUIRE([AC_PROG_CC])
1164 if test "$GCC" = yes ; then
1165 AC_MSG_CHECKING(version of $CC)
1166 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1167 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1168 AC_MSG_RESULT($GCC_VERSION)
1170 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1171 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1173 dnl ---------------------------------------------------------------------------
1174 dnl CF_GCC_WARNINGS version: 36 updated: 2019/09/07 13:38:36
1176 dnl Check if the compiler supports useful warning options. There's a few that
1177 dnl we don't use, simply because they're too noisy:
1179 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1180 dnl -Wredundant-decls (system headers make this too noisy)
1181 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1182 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1183 dnl is enabled for ncurses using "--enable-const".
1187 dnl $1 is an optional list of gcc warning flags that a particular
1188 dnl application might want to use, e.g., "no-unused" for
1191 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1193 AC_DEFUN([CF_GCC_WARNINGS],
1195 AC_REQUIRE([CF_GCC_VERSION])
1196 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
1197 cat > conftest.$ac_ext <<EOF
1198 #line __oline__ "${as_me:-configure}"
1199 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1201 if test "$INTEL_COMPILER" = yes
1203 # The "-wdXXX" options suppress warnings:
1204 # remark #1419: external declaration in primary source file
1205 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1206 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1207 # remark #193: zero used for undefined preprocessing identifier
1208 # remark #593: variable "curs_sb_left_arrow" was set but never used
1209 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1210 # remark #869: parameter "tw" was never referenced
1211 # remark #981: operands are evaluated in unspecified order
1212 # warning #279: controlling expression is constant
1214 AC_CHECKING([for $CC warning options])
1215 cf_save_CFLAGS="$CFLAGS"
1216 EXTRA_CFLAGS="-Wall"
1228 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1229 if AC_TRY_EVAL(ac_compile); then
1230 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1231 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1234 CFLAGS="$cf_save_CFLAGS"
1235 elif test "$GCC" = yes
1237 AC_CHECKING([for $CC warning options])
1238 cf_save_CFLAGS="$CFLAGS"
1241 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1242 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1243 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1244 for cf_opt in W Wall \
1245 Wbad-function-cast \
1248 Wdeclaration-after-statement \
1251 Wmissing-declarations \
1252 Wmissing-prototypes \
1256 Wstrict-prototypes \
1257 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1259 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1260 if AC_TRY_EVAL(ac_compile); then
1261 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1264 case $GCC_VERSION in
1266 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1271 case $GCC_VERSION in
1273 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1278 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1281 CFLAGS="$cf_save_CFLAGS"
1285 AC_SUBST(EXTRA_CFLAGS)
1287 dnl ---------------------------------------------------------------------------
1288 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
1289 dnl -----------------
1290 AC_DEFUN([CF_GNATPREP_OPT_T],[
1291 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
1292 cf_cv_gnatprep_opt_t=no
1293 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
1295 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
1296 AC_SUBST(GNATPREP_OPTS)
1298 dnl ---------------------------------------------------------------------------
1299 dnl CF_GNAT_GENERICS version: 3 updated: 2015/04/17 21:13:04
1300 dnl ----------------
1301 AC_DEFUN([CF_GNAT_GENERICS],
1303 AC_REQUIRE([CF_GNAT_VERSION])
1305 AC_MSG_CHECKING(if GNAT supports generics)
1306 case $cf_gnat_version in
1307 (3.[[1-9]]*|[[4-9]].*)
1308 cf_gnat_generics=yes
1314 AC_MSG_RESULT($cf_gnat_generics)
1316 if test "$cf_gnat_generics" = yes
1318 cf_compile_generics=generics
1319 cf_generic_objects="\${GENOBJS}"
1321 cf_compile_generics=
1325 AC_SUBST(cf_compile_generics)
1326 AC_SUBST(cf_generic_objects)
1328 dnl ---------------------------------------------------------------------------
1329 dnl CF_GNAT_PROJECTS version: 9 updated: 2018/01/14 15:46:09
1330 dnl ----------------
1331 dnl GNAT projects are configured with ".gpr" project files.
1332 dnl GNAT libraries are a further development, using the project feature.
1333 AC_DEFUN([CF_GNAT_PROJECTS],
1335 AC_REQUIRE([CF_GNAT_VERSION])
1336 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
1338 cf_gnat_libraries=no
1341 if test "$enable_gnat_projects" != no ; then
1342 AC_MSG_CHECKING(if GNAT supports project files)
1343 case $cf_gnat_version in
1347 case $cf_cv_system_name in
1351 rm -rf conftest* *~conftest*
1352 if mkdir conftest.src conftest.bin conftest.lib
1355 rm -rf conftest* *~conftest*
1356 cat >>library.gpr <<CF_EOF
1358 Kind := External ("LIB_KIND");
1359 for Library_Name use "ConfTest";
1360 for Object_Dir use ".";
1361 for Library_ALI_Dir use External("LIBRARY_DIR");
1362 for Library_Version use External ("SONAME");
1363 for Library_Kind use Kind;
1364 for Library_Dir use External("BUILD_DIR");
1365 Source_Dir := External ("SOURCE_DIR");
1366 for Source_Dirs use (Source_Dir);
1369 cat >>confpackage.ads <<CF_EOF
1370 package ConfPackage is
1374 cat >>confpackage.adb <<CF_EOF
1376 package body ConfPackage is
1377 procedure conftest is
1379 Text_IO.Put ("Hello World");
1384 if ( $cf_ada_make $ADAFLAGS \
1386 -XBUILD_DIR=`cd ../conftest.bin;pwd` \
1387 -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
1388 -XSOURCE_DIR=`pwd` \
1389 -XSONAME=libConfTest.so.1 \
1390 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
1391 cf_gnat_projects=yes
1395 if test -f conftest.lib/confpackage.ali
1397 cf_gnat_libraries=yes
1399 rm -rf conftest* *~conftest*
1404 AC_MSG_RESULT($cf_gnat_projects)
1405 fi # enable_gnat_projects
1407 if test $cf_gnat_projects = yes
1409 AC_MSG_CHECKING(if GNAT supports libraries)
1410 AC_MSG_RESULT($cf_gnat_libraries)
1413 if test "$cf_gnat_projects" = yes
1415 USE_OLD_MAKERULES="#"
1416 USE_GNAT_PROJECTS=""
1418 USE_OLD_MAKERULES=""
1419 USE_GNAT_PROJECTS="#"
1422 if test "$cf_gnat_libraries" = yes
1424 USE_GNAT_LIBRARIES=""
1426 USE_GNAT_LIBRARIES="#"
1429 AC_SUBST(USE_OLD_MAKERULES)
1430 AC_SUBST(USE_GNAT_PROJECTS)
1431 AC_SUBST(USE_GNAT_LIBRARIES)
1433 dnl ---------------------------------------------------------------------------
1434 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
1436 dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
1437 dnl is noted that gnat may compile a tasking unit even for configurations which
1438 dnl fail at runtime.
1439 AC_DEFUN([CF_GNAT_SIGINT],[
1440 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
1441 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
1445 pragma Warnings (Off); -- the next pragma exists since 3.11p
1446 pragma Unreserve_All_Interrupts;
1447 pragma Warnings (On);
1449 protected Process is
1451 function Continue return Boolean;
1452 pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
1454 Done : Boolean := False;
1458 [package body ConfTest is
1459 protected body Process is
1464 function Continue return Boolean is
1470 [cf_cv_gnat_sigint=yes],
1471 [cf_cv_gnat_sigint=no])])
1473 if test $cf_cv_gnat_sigint = yes ; then
1478 AC_SUBST(USE_GNAT_SIGINT)
1480 dnl ---------------------------------------------------------------------------
1481 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
1482 dnl ----------------
1483 dnl Verify that a test program compiles/links with GNAT.
1484 dnl $cf_ada_make is set to the program that compiles/links
1485 dnl $ADAFLAGS may be set to the GNAT flags.
1487 dnl $1 is the text of the spec
1488 dnl $2 is the text of the body
1489 dnl $3 is the shell command to execute if successful
1490 dnl $4 is the shell command to execute if not successful
1491 AC_DEFUN([CF_GNAT_TRY_LINK],
1493 rm -rf conftest* *~conftest*
1494 cat >>conftest.ads <<CF_EOF
1497 cat >>conftest.adb <<CF_EOF
1500 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1501 ifelse($3,, :,[ $3])
1505 rm -rf conftest* *~conftest*
1507 dnl ---------------------------------------------------------------------------
1508 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
1510 dnl Verify that a test program compiles and runs with GNAT
1511 dnl $cf_ada_make is set to the program that compiles/links
1512 dnl $ADAFLAGS may be set to the GNAT flags.
1514 dnl $1 is the text of the spec
1515 dnl $2 is the text of the body
1516 dnl $3 is the shell command to execute if successful
1517 dnl $4 is the shell command to execute if not successful
1518 AC_DEFUN([CF_GNAT_TRY_RUN],
1520 rm -rf conftest* *~conftest*
1521 cat >>conftest.ads <<CF_EOF
1524 cat >>conftest.adb <<CF_EOF
1527 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1528 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1529 ifelse($3,, :,[ $3])
1536 rm -rf conftest* *~conftest*
1538 dnl ---------------------------------------------------------------------------
1539 dnl CF_GNAT_VERSION version: 20 updated: 2015/04/18 08:56:57
1541 dnl Verify version of GNAT.
1542 AC_DEFUN([CF_GNAT_VERSION],
1544 AC_MSG_CHECKING(for gnat version)
1545 cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
1546 grep '[[0-9]].[[0-9]][[0-9]]*' |\
1547 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1548 AC_MSG_RESULT($cf_gnat_version)
1550 case $cf_gnat_version in
1551 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
1552 cf_cv_prog_gnat_correct=yes
1555 AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1556 cf_cv_prog_gnat_correct=no
1560 dnl ---------------------------------------------------------------------------
1561 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1563 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1564 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1565 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1566 dnl since it is interwoven with GNU extensions.
1568 dnl Well, yes we could work around it...
1571 dnl $1 is the nominal value for _XOPEN_SOURCE
1572 AC_DEFUN([CF_GNU_SOURCE],
1574 cf_gnu_xopen_source=ifelse($1,,500,$1)
1576 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1577 AC_TRY_COMPILE([#include <sys/types.h>],[
1578 #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1580 #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1583 # error not GNU C library
1585 [cf_cv_gnu_library=yes],
1586 [cf_cv_gnu_library=no])
1589 if test x$cf_cv_gnu_library = xyes; then
1591 # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1592 # was changed to help a little. newlib incorporated the change about 4
1594 AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1596 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1597 AC_TRY_COMPILE([#include <sys/types.h>],[
1598 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1600 #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1603 # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1605 [cf_cv_gnu_library_219=yes],
1606 [cf_cv_gnu_library_219=no])
1610 if test "x$cf_cv_gnu_library_219" = xyes; then
1612 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
1613 CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
1616 #include <sys/types.h>
1618 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
1621 # error GNU C library is too old
1623 [cf_cv_gnu_dftsrc_219=yes],
1624 [cf_cv_gnu_dftsrc_219=no])
1626 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
1628 cf_cv_gnu_dftsrc_219=maybe
1631 if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
1633 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1634 AC_TRY_COMPILE([#include <sys/types.h>],[
1635 #ifndef _XOPEN_SOURCE
1636 #error expected _XOPEN_SOURCE to be defined
1638 [cf_cv_gnu_source=no],
1639 [cf_save="$CPPFLAGS"
1640 CF_ADD_CFLAGS(-D_GNU_SOURCE)
1641 AC_TRY_COMPILE([#include <sys/types.h>],[
1642 #ifdef _XOPEN_SOURCE
1643 #error expected _XOPEN_SOURCE to be undefined
1645 [cf_cv_gnu_source=no],
1646 [cf_cv_gnu_source=yes])
1651 if test "$cf_cv_gnu_source" = yes
1653 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1654 CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
1655 AC_TRY_COMPILE([#include <sys/types.h>],[
1656 #ifdef _DEFAULT_SOURCE
1657 #error expected _DEFAULT_SOURCE to be undefined
1659 [cf_cv_default_source=no],
1660 [cf_cv_default_source=yes])
1662 if test "$cf_cv_default_source" = yes
1664 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1671 dnl ---------------------------------------------------------------------------
1672 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1674 dnl Construct a search-list of directories for a nonstandard header-file
1677 dnl $1 = the variable to return as result
1678 dnl $2 = the package name
1679 AC_DEFUN([CF_HEADER_PATH],
1683 # collect the current set of include-directories from compiler flags
1684 cf_header_path_list=""
1685 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1686 for cf_header_path in $CPPFLAGS $CFLAGS
1688 case $cf_header_path in
1690 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1691 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1692 cf_header_path_list="$cf_header_path_list [$]$1"
1698 # add the variations for the package we are looking for
1699 CF_SUBDIR_PATH($1,$2,include)
1701 test "$includedir" != NONE && \
1702 test "$includedir" != "/usr/include" && \
1703 test -d "$includedir" && {
1704 test -d $includedir && $1="[$]$1 $includedir"
1705 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1708 test "$oldincludedir" != NONE && \
1709 test "$oldincludedir" != "/usr/include" && \
1710 test -d "$oldincludedir" && {
1711 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1712 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1715 $1="[$]$1 $cf_header_path_list"
1717 dnl ---------------------------------------------------------------------------
1718 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1720 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1721 AC_DEFUN([CF_HELP_MESSAGE],
1722 [AC_DIVERT_HELP([$1])dnl
1724 dnl ---------------------------------------------------------------------------
1725 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
1727 dnl Construct the list of include-options according to whether we're building
1728 dnl in the source directory or using '--srcdir=DIR' option.
1729 AC_DEFUN([CF_INCLUDE_DIRS],
1731 if test "$srcdir" != "."; then
1732 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
1734 CPPFLAGS="-I../include $CPPFLAGS"
1735 if test "$srcdir" != "."; then
1736 CPPFLAGS="-I\${srcdir} $CPPFLAGS"
1738 CPPFLAGS="-I. $CPPFLAGS"
1741 dnl ---------------------------------------------------------------------------
1742 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
1744 dnl prompt for/fill-in useful install-program options
1745 AC_DEFUN([CF_INSTALL_OPTS],
1751 dnl ---------------------------------------------------------------------------
1752 dnl CF_INSTALL_OPT_O version: 2 updated: 2015/05/15 19:45:35
1753 dnl ----------------
1754 dnl Almost all "install" programs default to the current user's ownership.
1755 dnl Almost - MINIX is an exception.
1756 AC_DEFUN([CF_INSTALL_OPT_O],
1758 AC_MSG_CHECKING(if install needs to be told about ownership)
1759 case `$ac_config_guess` in
1768 AC_MSG_RESULT($with_install_o)
1769 if test "x$with_install_o" = xyes
1771 INSTALL_OPT_O=`id root|sed -e 's/uid=[[0-9]]*(/ -o /' -e 's/gid=[[0-9]]*(/ -g /' -e 's/ [[^=[:space:]]][[^=[:space:]]]*=.*/ /' -e 's/)//g'`
1776 AC_SUBST(INSTALL_OPT_O)
1778 dnl ---------------------------------------------------------------------------
1779 dnl CF_INSTALL_OPT_P version: 1 updated: 2018/08/18 12:19:21
1780 dnl ----------------
1781 dnl Some install-programs accept a "-p" option to preserve file modification
1782 dnl timestamps. That can be useful as an install option, as well as a way to
1783 dnl avoid the need for ranlib after copying a static archive.
1784 AC_DEFUN([CF_INSTALL_OPT_P],
1786 : ${INSTALL:=install}
1787 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
1792 if $INSTALL -p conftest.in conftest.out 2>/dev/null
1794 if test -f conftest.out/conftest.in
1796 test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
1797 test conftest.out/conftest.in -nt conftest.in 2>conftest.err
1798 if test -s conftest.err
1813 dnl ---------------------------------------------------------------------------
1814 dnl CF_INSTALL_OPT_S version: 2 updated: 2018/08/18 12:19:21
1815 dnl ----------------
1816 dnl By default, we should strip executables which are installed, but leave the
1817 dnl ability to suppress that for unit-testing.
1818 AC_DEFUN([CF_INSTALL_OPT_S],
1820 AC_MSG_CHECKING(if you want to install stripped executables)
1821 CF_ARG_DISABLE(stripping,
1822 [ --disable-stripping do not strip (debug info) installed executables],
1823 [with_stripping=no],
1824 [with_stripping=yes])
1825 AC_MSG_RESULT($with_stripping)
1827 if test "$with_stripping" = yes
1833 AC_SUBST(INSTALL_OPT_S)
1835 dnl ---------------------------------------------------------------------------
1836 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1837 dnl -----------------
1838 dnl Check if the given compiler is really the Intel compiler for Linux. It
1839 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1840 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1842 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1843 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1844 dnl the wrappers for gcc and g++ warnings.
1846 dnl $1 = GCC (default) or GXX
1847 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1848 dnl $3 = CFLAGS (default) or CXXFLAGS
1849 AC_DEFUN([CF_INTEL_COMPILER],[
1850 AC_REQUIRE([AC_CANONICAL_HOST])
1851 ifelse([$2],,INTEL_COMPILER,[$2])=no
1853 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1856 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1857 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1858 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1860 #ifdef __INTEL_COMPILER
1864 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1865 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1867 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1868 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1873 dnl ---------------------------------------------------------------------------
1874 dnl CF_LARGEFILE version: 11 updated: 2018/06/20 20:23:13
1876 dnl Add checks for large file support.
1877 AC_DEFUN([CF_LARGEFILE],[
1878 ifdef([AC_FUNC_FSEEKO],[
1880 if test "$enable_largefile" != no ; then
1883 # Normally we would collect these definitions in the config.h,
1884 # but (like _XOPEN_SOURCE), some environments rely on having these
1885 # defined before any of the system headers are included. Another
1886 # case comes up with C++, e.g., on AIX the compiler compiles the
1887 # header files by themselves before looking at the body files it is
1888 # told to compile. For ncurses, those header files do not include
1890 if test "$ac_cv_sys_large_files" != no
1892 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
1894 if test "$ac_cv_sys_largefile_source" != no
1896 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
1898 if test "$ac_cv_sys_file_offset_bits" != no
1900 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
1903 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
1905 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
1906 #include <sys/types.h>
1909 /* if transitional largefile support is setup, this is true */
1910 extern struct dirent64 * readdir(DIR *);
1911 struct dirent64 *x = readdir((DIR *)0);
1912 struct dirent *y = readdir((DIR *)0);
1915 [cf_cv_struct_dirent64=yes],
1916 [cf_cv_struct_dirent64=no])
1918 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
1922 dnl ---------------------------------------------------------------------------
1923 dnl CF_LD_RPATH_OPT version: 8 updated: 2018/08/18 16:36:35
1925 dnl For the given system and compiler, find the compiler flags to pass to the
1926 dnl loader to use the "rpath" feature.
1927 AC_DEFUN([CF_LD_RPATH_OPT],
1929 AC_REQUIRE([CF_CHECK_CACHE])
1932 if test "x$cf_cv_enable_rpath" != xno
1934 AC_MSG_CHECKING(for an rpath option)
1935 case $cf_cv_system_name in
1937 if test "$GCC" = yes; then
1938 LD_RPATH_OPT="-Wl,-rpath,"
1940 LD_RPATH_OPT="-rpath "
1943 (linux*|gnu*|k*bsd*-gnu|freebsd*)
1944 LD_RPATH_OPT="-Wl,-rpath,"
1946 (openbsd[[2-9]].*|mirbsd*)
1947 LD_RPATH_OPT="-Wl,-rpath,"
1950 LD_RPATH_OPT="-rpath "
1953 LD_RPATH_OPT="-Wl,-rpath,"
1956 LD_RPATH_OPT="-rpath "
1964 AC_MSG_RESULT($LD_RPATH_OPT)
1966 case "x$LD_RPATH_OPT" in
1968 AC_MSG_CHECKING(if we need a space after rpath option)
1969 cf_save_LIBS="$LIBS"
1970 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1971 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1972 LIBS="$cf_save_LIBS"
1973 AC_MSG_RESULT($cf_rpath_space)
1974 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1979 dnl ---------------------------------------------------------------------------
1980 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1982 dnl Construct a search-list of directories for a nonstandard library-file
1985 dnl $1 = the variable to return as result
1986 dnl $2 = the package name
1987 AC_DEFUN([CF_LIBRARY_PATH],
1990 cf_library_path_list=""
1991 if test -n "${LDFLAGS}${LIBS}" ; then
1992 for cf_library_path in $LDFLAGS $LIBS
1994 case $cf_library_path in
1996 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1997 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1998 cf_library_path_list="$cf_library_path_list [$]$1"
2004 CF_SUBDIR_PATH($1,$2,lib)
2006 $1="$cf_library_path_list [$]$1"
2008 dnl ---------------------------------------------------------------------------
2009 dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33
2011 dnl Compute the library-prefix for the given host system
2012 dnl $1 = variable to set
2013 define([CF_LIB_PREFIX],
2015 case $cf_cv_system_name in
2017 if test "$DFT_LWR_MODEL" = libtool; then
2023 (*) LIB_PREFIX='lib'
2026 ifelse($1,,,[$1=$LIB_PREFIX])
2027 AC_SUBST(LIB_PREFIX)
2029 dnl ---------------------------------------------------------------------------
2030 dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04
2032 dnl Compute the library file-suffix from the given model name
2034 dnl $2 = variable to set (the nominal library suffix)
2035 dnl $3 = dependency variable to set (actual filename)
2036 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2037 AC_DEFUN([CF_LIB_SUFFIX],
2053 case $cf_cv_system_name in
2058 (cygwin*|msys*|mingw*)
2089 if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
2091 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
2092 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
2095 dnl ---------------------------------------------------------------------------
2096 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
2098 dnl Compute the string to append to -library from the given model name
2100 dnl $2 = variable to set
2101 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2102 AC_DEFUN([CF_LIB_TYPE],
2108 (profile) $2='_p' ;;
2111 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2113 dnl ---------------------------------------------------------------------------
2114 dnl CF_LINK_DATAONLY version: 12 updated: 2017/07/23 17:46:07
2115 dnl ----------------
2116 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2117 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2118 dnl have to provide wrappers for global tables to ensure they're linked
2120 AC_DEFUN([CF_LINK_DATAONLY],
2122 AC_MSG_CHECKING([if data-only library module links])
2123 AC_CACHE_VAL(cf_cv_link_dataonly,[
2125 cat >conftest.$ac_ext <<EOF
2126 #line __oline__ "configure"
2127 int testdata[[3]] = { 123, 456, 789 };
2129 if AC_TRY_EVAL(ac_compile) ; then
2130 mv conftest.o data.o && \
2131 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2133 rm -f conftest.$ac_ext data.o
2134 cat >conftest.$ac_ext <<EOF
2135 #line __oline__ "configure"
2139 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2141 extern int testdata[[3]];
2142 return testdata[[0]] == 123
2143 && testdata[[1]] == 456
2144 && testdata[[2]] == 789;
2148 if AC_TRY_EVAL(ac_compile); then
2149 mv conftest.o func.o && \
2150 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2152 rm -f conftest.$ac_ext func.o
2153 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2155 LIBS="conftest.a $LIBS"
2159 extern int testfunc();
2160 ${cf_cv_main_return:-return} (!testfunc());
2163 [cf_cv_link_dataonly=yes],
2164 [cf_cv_link_dataonly=no],
2165 [cf_cv_link_dataonly=unknown])
2168 AC_MSG_RESULT($cf_cv_link_dataonly)
2170 if test "$cf_cv_link_dataonly" = no ; then
2171 AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
2176 dnl ---------------------------------------------------------------------------
2177 dnl CF_MAKEFLAGS version: 18 updated: 2018/02/21 21:26:03
2179 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2180 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2181 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2182 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2183 AC_DEFUN([CF_MAKEFLAGS],
2185 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2187 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2189 cat >cf_makeflags.tmp <<CF_EOF
2192 @ echo '.$cf_option'
2194 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ ]]*$,,'`
2195 case "$cf_result" in
2197 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2198 case "$cf_result" in
2199 (.*CC=*) cf_cv_makeflags=
2201 (*) cf_cv_makeflags=$cf_option
2209 CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
2213 rm -f cf_makeflags.tmp
2216 AC_SUBST(cf_cv_makeflags)
2218 dnl ---------------------------------------------------------------------------
2219 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2221 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2222 dnl a monocase filesystem.
2223 AC_DEFUN([CF_MAKE_TAGS],[
2224 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2226 AC_CHECK_PROGS(CTAGS, exctags ctags)
2227 AC_CHECK_PROGS(ETAGS, exetags etags)
2229 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2231 if test "$cf_cv_mixedcase" = yes ; then
2232 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2237 if test "$MAKE_UPPER_TAGS" = yes ; then
2243 if test "$MAKE_LOWER_TAGS" = yes ; then
2252 AC_SUBST(MAKE_UPPER_TAGS)
2253 AC_SUBST(MAKE_LOWER_TAGS)
2255 dnl ---------------------------------------------------------------------------
2256 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
2257 dnl ----------------------
2258 dnl Check if the file-system supports mixed-case filenames. If we're able to
2259 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2260 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2262 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2263 if test "$cross_compiling" = yes ; then
2264 case $target_alias in
2265 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
2273 rm -f conftest CONFTEST
2275 if test -f CONFTEST ; then
2280 rm -f conftest CONFTEST
2283 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2285 dnl ---------------------------------------------------------------------------
2286 dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16
2288 dnl Check for a working mkstemp. This creates two files, checks that they are
2289 dnl successfully created and distinct (AmigaOS apparently fails on the last).
2290 AC_DEFUN([CF_MKSTEMP],[
2294 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
2297 #include <sys/types.h>
2298 #ifdef HAVE_UNISTD_H
2304 #include <sys/stat.h>
2307 char *tmpl = "conftestXXXXXX";
2315 for (n = 0; n < 2; ++n) {
2316 strcpy(name[n], tmpl);
2317 if ((fd = mkstemp(name[n])) >= 0) {
2318 if (!strcmp(name[n], tmpl)
2319 || stat(name[n], &sb) != 0
2320 || (sb.st_mode & S_IFMT) != S_IFREG
2321 || (sb.st_mode & 077) != 0) {
2328 && !strcmp(name[0], name[1]))
2330 ${cf_cv_main_return:-return}(result);
2332 ],[cf_cv_func_mkstemp=yes
2333 ],[cf_cv_func_mkstemp=no
2334 ],[cf_cv_func_mkstemp=maybe])
2336 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
2337 AC_CHECK_FUNC(mkstemp)
2339 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
2340 AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
2343 dnl ---------------------------------------------------------------------------
2344 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2346 dnl Write a debug message to config.log, along with the line number in the
2347 dnl configure script.
2348 AC_DEFUN([CF_MSG_LOG],[
2349 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2351 dnl ---------------------------------------------------------------------------
2352 dnl CF_NCURSES_ADDON version: 5 updated: 2015/04/26 18:06:58
2353 dnl ----------------
2354 dnl Configure an ncurses add-on, built outside the ncurses tree.
2355 AC_DEFUN([CF_NCURSES_ADDON],[
2356 AC_REQUIRE([CF_NCURSES_CONFIG])
2358 AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
2360 AC_MSG_CHECKING(if you want wide-character code)
2361 AC_ARG_ENABLE(widec,
2362 [ --enable-widec compile with wide-char/UTF-8 code],
2363 [with_widec=$enableval],
2365 AC_MSG_RESULT($with_widec)
2366 if test "$with_widec" = yes ; then
2368 CF_NCURSES_CONFIG(ncursesw)
2370 CF_NCURSES_CONFIG(ncurses)
2373 if test "$NCURSES_CONFIG_PKG" != none ; then
2374 cf_version=`$PKG_CONFIG --modversion $NCURSES_CONFIG_PKG 2>/dev/null`
2376 NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2377 NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2378 NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2380 cf_cv_abi_version=`$PKG_CONFIG --variable=abi_version $NCURSES_CONFIG_PKG 2>/dev/null`
2381 if test -z "$cf_cv_abi_version"
2383 cf_cv_abi_version=`$PKG_CONFIG --variable=major_version $NCURSES_CONFIG_PKG 2>/dev/null`
2386 elif test "$NCURSES_CONFIG" != none ; then
2388 cf_version=`$NCURSES_CONFIG --version 2>/dev/null`
2390 NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2391 NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2392 NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2394 # ABI version is not available from headers
2395 cf_cv_abi_version=`$NCURSES_CONFIG --abi-version 2>/dev/null`
2399 for cf_name in MAJOR MINOR PATCH
2401 cat >conftest.$ac_ext <<CF_EOF
2402 #include <${cf_cv_ncurses_header:-curses.h}>
2403 AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
2405 cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
2407 if test -f conftest.out ; then
2408 cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[[ ]][[ ]]*//"`
2409 eval NCURSES_$cf_name=\"$cf_result\"
2410 # cat conftest.$ac_ext
2415 cf_cv_abi_version=${NCURSES_MAJOR}
2419 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
2421 dnl Show the computed version, for logging
2422 cf_cv_timestamp=`date`
2424 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
2426 dnl We need these values in the generated headers
2427 AC_SUBST(NCURSES_MAJOR)
2428 AC_SUBST(NCURSES_MINOR)
2429 AC_SUBST(NCURSES_PATCH)
2431 dnl We need these values in the generated makefiles
2432 AC_SUBST(cf_cv_rel_version)
2433 AC_SUBST(cf_cv_abi_version)
2435 dnl FIXME - not needed for Ada95
2436 AC_SUBST(cf_cv_builtin_bool)
2437 AC_SUBST(cf_cv_header_stdbool_h)
2438 AC_SUBST(cf_cv_type_of_bool)dnl
2441 dnl ---------------------------------------------------------------------------
2442 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2443 dnl -------------------
2444 dnl Check if we can compile with ncurses' header file
2445 dnl $1 is the cache variable to set
2446 dnl $2 is the header-file to include
2447 dnl $3 is the root name (ncurses or ncursesw)
2448 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2450 ]ifelse($3,ncursesw,[
2451 #define _XOPEN_SOURCE_EXTENDED
2452 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
2453 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
2456 #ifdef NCURSES_VERSION
2457 ]ifelse($3,ncursesw,[
2462 printf("%s\n", NCURSES_VERSION);
2474 dnl ---------------------------------------------------------------------------
2475 dnl CF_NCURSES_CONFIG version: 21 updated: 2018/06/20 20:23:13
2476 dnl -----------------
2477 dnl Tie together the configure-script macros for ncurses, preferring these in
2479 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2480 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2481 dnl c) just plain libraries
2483 dnl $1 is the root library name (default: "ncurses")
2484 AC_DEFUN([CF_NCURSES_CONFIG],[
2485 AC_REQUIRE([CF_PKG_CONFIG])
2486 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2487 cf_have_ncuconfig=no
2489 if test "x${PKG_CONFIG:=none}" != xnone; then
2490 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2491 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2494 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2495 cf_have_ncuconfig=unknown
2497 cf_save_CPPFLAGS="$CPPFLAGS"
2498 cf_save_LIBS="$LIBS"
2500 CF_ADD_CFLAGS(`$PKG_CONFIG --cflags $cf_ncuconfig_root`)
2501 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
2503 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2504 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2505 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2507 { char *xx = curses_version(); return (xx == 0); }],
2508 [cf_have_ncuconfig=yes],
2509 [cf_have_ncuconfig=no],
2510 [cf_have_ncuconfig=maybe])],
2511 [cf_have_ncuconfig=no])
2512 AC_MSG_RESULT($cf_have_ncuconfig)
2513 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2514 if test "$cf_have_ncuconfig" != "yes"
2516 CPPFLAGS="$cf_save_CPPFLAGS"
2517 LIBS="$cf_save_LIBS"
2518 NCURSES_CONFIG_PKG=none
2520 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2521 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2527 NCURSES_CONFIG_PKG=none
2530 NCURSES_CONFIG_PKG=none
2533 if test "x$cf_have_ncuconfig" = "xno"; then
2534 cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
2536 CF_ACVERSION_CHECK(2.52,
2537 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2538 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2540 if test "$NCURSES_CONFIG" != none ; then
2542 CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
2543 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2545 # even with config script, some packages use no-override for curses.h
2546 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2548 dnl like CF_NCURSES_CPPFLAGS
2549 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2551 dnl like CF_NCURSES_LIBS
2552 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2553 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2555 dnl like CF_NCURSES_VERSION
2556 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2560 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2561 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2568 dnl ---------------------------------------------------------------------------
2569 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2570 dnl -------------------
2571 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2572 dnl the CPPFLAGS variable so we can include its header.
2574 dnl The header files may be installed as either curses.h, or ncurses.h (would
2575 dnl be obsolete, except that some packagers prefer this name to distinguish it
2576 dnl from a "native" curses implementation). If not installed for overwrite,
2577 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2578 dnl /usr/include/ncurses), but someone may have installed overwriting the
2579 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2580 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2583 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2584 dnl is already in the include-path, don't even bother with this, since we cannot
2585 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2587 dnl The optional parameter gives the root name of the library, in case it is
2588 dnl not installed as the default curses library. That is how the
2589 dnl wide-character version of ncurses is installed.
2590 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2591 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2593 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2594 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2596 test -n "$cf_cv_curses_dir" && \
2597 test "$cf_cv_curses_dir" != "no" && { \
2598 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2601 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2602 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2603 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2604 for cf_header in $cf_header_list
2606 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2607 test "$cf_cv_ncurses_h" != no && break
2614 # some applications need this, but should check for NCURSES_VERSION
2615 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2619 dnl ---------------------------------------------------------------------------
2620 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2621 dnl -----------------
2622 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2623 dnl variations of ncurses' installs.
2625 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2626 AC_DEFUN([CF_NCURSES_HEADER],[
2628 if test "$cf_cv_ncurses_h" != no ; then
2629 cf_cv_ncurses_header=$cf_cv_ncurses_h
2632 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2633 test -n "$verbose" && echo
2634 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2635 test -n "$verbose" && echo search path $cf_search
2636 cf_save2_CPPFLAGS="$CPPFLAGS"
2637 for cf_incdir in $cf_search
2639 CF_ADD_INCDIR($cf_incdir)
2644 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2645 if test "$cf_cv_ncurses_h2" != no ; then
2646 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2647 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2650 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2652 CPPFLAGS="$cf_save2_CPPFLAGS"
2653 test "$cf_cv_ncurses_h2" != no && break
2655 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2658 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2659 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2660 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2661 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2663 CF_ADD_INCDIR($cf_1st_incdir)
2667 # Set definitions to allow ifdef'ing for ncurses.h
2669 case $cf_cv_ncurses_header in
2671 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2675 case $cf_cv_ncurses_header in
2676 (ncurses/curses.h|ncurses/ncurses.h)
2677 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2679 (ncursesw/curses.h|ncursesw/ncurses.h)
2680 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2685 dnl ---------------------------------------------------------------------------
2686 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2688 dnl Look for the ncurses library. This is a little complicated on Linux,
2689 dnl because it may be linked with the gpm (general purpose mouse) library.
2690 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2691 dnl unusable with ncurses. However, we don't want to link with gpm unless
2692 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2693 dnl and the linker will record a dependency.
2695 dnl The optional parameter gives the root name of the library, in case it is
2696 dnl not installed as the default curses library. That is how the
2697 dnl wide-character version of ncurses is installed.
2698 AC_DEFUN([CF_NCURSES_LIBS],
2699 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2701 cf_nculib_root=ifelse($1,,ncurses,$1)
2702 # This works, except for the special case where we find gpm, but
2703 # ncurses is in a nonstandard location via $LIBS, and we really want
2706 cf_ncurses_SAVE="$LIBS"
2707 AC_CHECK_LIB(gpm,Gpm_Open,
2708 [AC_CHECK_LIB(gpm,initscr,
2709 [LIBS="$cf_ncurses_SAVE"],
2710 [cf_ncurses_LIBS="-lgpm"])])
2714 # This is only necessary if you are linking against an obsolete
2715 # version of ncurses (but it should do no harm, since it's static).
2716 if test "$cf_nculib_root" = ncurses ; then
2717 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2722 CF_ADD_LIBS($cf_ncurses_LIBS)
2724 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2726 CF_ADD_LIBS(-l$cf_nculib_root)
2728 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2729 [#include <${cf_cv_ncurses_header:-curses.h}>],
2734 if test -n "$cf_ncurses_LIBS" ; then
2735 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2736 cf_ncurses_SAVE="$LIBS"
2737 for p in $cf_ncurses_LIBS ; do
2738 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2739 if test "$q" != "$LIBS" ; then
2743 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2744 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2745 [AC_MSG_RESULT(yes)],
2747 LIBS="$cf_ncurses_SAVE"])
2750 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2751 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2753 dnl ---------------------------------------------------------------------------
2754 dnl CF_NCURSES_VERSION version: 15 updated: 2017/05/09 19:26:10
2755 dnl ------------------
2756 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2757 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2758 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2759 AC_DEFUN([CF_NCURSES_VERSION],
2761 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2762 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2763 cf_cv_ncurses_version=no
2767 #include <${cf_cv_ncurses_header:-curses.h}>
2771 FILE *fp = fopen("$cf_tempfile", "w");
2772 #ifdef NCURSES_VERSION
2773 # ifdef NCURSES_VERSION_PATCH
2774 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2776 fprintf(fp, "%s\n", NCURSES_VERSION);
2780 fprintf(fp, "old\n");
2785 ${cf_cv_main_return:-return}(0);
2787 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2789 # This will not work if the preprocessor splits the line after the
2790 # Autoconf token. The 'unproto' program does that.
2791 cat > conftest.$ac_ext <<EOF
2792 #include <${cf_cv_ncurses_header:-curses.h}>
2794 #ifdef NCURSES_VERSION
2795 Autoconf NCURSES_VERSION
2803 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2805 if test -f conftest.out ; then
2806 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2807 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2813 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2815 dnl ---------------------------------------------------------------------------
2816 dnl CF_OBJ_SUBDIR version: 7 updated: 2015/04/17 21:13:04
2818 dnl Compute the object-directory name from the given model name
2819 AC_DEFUN([CF_OBJ_SUBDIR],
2822 (libtool) $2='obj_lo' ;;
2823 (normal) $2='objects' ;;
2824 (debug) $2='obj_g' ;;
2825 (profile) $2='obj_p' ;;
2827 case $cf_cv_system_name in
2835 dnl ---------------------------------------------------------------------------
2836 dnl CF_PATHSEP version: 7 updated: 2015/04/12 15:39:00
2838 dnl Provide a value for the $PATH and similar separator (or amend the value
2839 dnl as provided in autoconf 2.5x).
2840 AC_DEFUN([CF_PATHSEP],
2842 AC_MSG_CHECKING(for PATH separator)
2843 case $cf_cv_system_name in
2844 (os2*) PATH_SEPARATOR=';' ;;
2845 (*) ${PATH_SEPARATOR:=':'} ;;
2847 ifelse([$1],,,[$1=$PATH_SEPARATOR])
2848 AC_SUBST(PATH_SEPARATOR)
2849 AC_MSG_RESULT($PATH_SEPARATOR)
2851 dnl ---------------------------------------------------------------------------
2852 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2854 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2855 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2856 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2857 dnl delayed evaluation of those symbols.
2858 AC_DEFUN([CF_PATH_SYNTAX],[
2859 if test "x$prefix" != xNONE; then
2860 cf_path_syntax="$prefix"
2862 cf_path_syntax="$ac_default_prefix"
2866 (.\[$]\(*\)*|.\'*\'*)
2870 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2872 (.\[$]{*prefix}*|.\[$]{*dir}*)
2876 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2881 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2884 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2888 dnl ---------------------------------------------------------------------------
2889 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2891 dnl Check for the package-config program, unless disabled by command-line.
2892 AC_DEFUN([CF_PKG_CONFIG],
2894 AC_MSG_CHECKING(if you want to use pkg-config)
2895 AC_ARG_WITH(pkg-config,
2896 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2897 [cf_pkg_config=$withval],
2898 [cf_pkg_config=yes])
2899 AC_MSG_RESULT($cf_pkg_config)
2901 case $cf_pkg_config in
2906 CF_ACVERSION_CHECK(2.52,
2907 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2908 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2915 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2916 if test "$PKG_CONFIG" != none ; then
2917 CF_PATH_SYNTAX(PKG_CONFIG)
2918 elif test "x$cf_pkg_config" != xno ; then
2919 AC_MSG_WARN(pkg-config is not installed)
2922 AC_SUBST(PKG_CONFIG)
2924 dnl ---------------------------------------------------------------------------
2925 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
2926 dnl -----------------
2927 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2929 dnl POSIX.1-1990 _POSIX_SOURCE
2930 dnl POSIX.1-1990 and _POSIX_SOURCE and
2931 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2933 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2934 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2935 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2938 dnl $1 is the nominal value for _POSIX_C_SOURCE
2939 AC_DEFUN([CF_POSIX_C_SOURCE],
2940 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
2942 if test "$cf_cv_posix_visible" = no; then
2944 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2946 cf_save_CFLAGS="$CFLAGS"
2947 cf_save_CPPFLAGS="$CPPFLAGS"
2949 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2950 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2952 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2953 CF_MSG_LOG(if the symbol is already defined go no further)
2954 AC_TRY_COMPILE([#include <sys/types.h>],[
2955 #ifndef _POSIX_C_SOURCE
2958 [cf_cv_posix_c_source=no],
2959 [cf_want_posix_source=no
2960 case .$cf_POSIX_C_SOURCE in
2962 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2965 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2966 cf_want_posix_source=yes
2969 cf_want_posix_source=yes
2972 if test "$cf_want_posix_source" = yes ; then
2973 AC_TRY_COMPILE([#include <sys/types.h>],[
2974 #ifdef _POSIX_SOURCE
2977 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2979 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2980 CFLAGS="$cf_trim_CFLAGS"
2981 CPPFLAGS="$cf_trim_CPPFLAGS"
2982 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
2983 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2984 AC_TRY_COMPILE([#include <sys/types.h>],[
2985 #ifndef _POSIX_C_SOURCE
2988 [cf_cv_posix_c_source=no])
2989 CFLAGS="$cf_save_CFLAGS"
2990 CPPFLAGS="$cf_save_CPPFLAGS"
2994 if test "$cf_cv_posix_c_source" != no ; then
2995 CFLAGS="$cf_trim_CFLAGS"
2996 CPPFLAGS="$cf_trim_CPPFLAGS"
2997 CF_ADD_CFLAGS($cf_cv_posix_c_source)
3000 fi # cf_cv_posix_visible
3003 dnl ---------------------------------------------------------------------------
3004 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
3005 dnl ----------------
3006 dnl POSIX documents test-macros which an application may set before any system
3007 dnl headers are included to make features available.
3009 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
3010 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
3011 dnl recent features visible in the system header files unless the application
3012 dnl overrides the corresponding test-macros. Doing that introduces portability
3015 dnl This macro makes a special check for the symbols used for this, to avoid a
3016 dnl conflicting definition.
3017 AC_DEFUN([CF_POSIX_VISIBLE],
3019 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
3020 AC_TRY_COMPILE([#include <stdio.h>],[
3021 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
3022 && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
3023 && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
3024 && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
3025 #error conflicting symbols found
3027 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
3030 dnl ---------------------------------------------------------------------------
3031 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
3033 dnl Check for archiver "ar".
3034 AC_DEFUN([CF_PROG_AR],[
3035 AC_CHECK_TOOL(AR, ar, ar)
3037 dnl ---------------------------------------------------------------------------
3038 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3040 dnl Check for awk, ensure that the check found something.
3041 AC_DEFUN([CF_PROG_AWK],
3044 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3046 dnl ---------------------------------------------------------------------------
3047 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
3049 dnl standard check for CC, plus followup sanity checks
3050 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
3051 AC_DEFUN([CF_PROG_CC],[
3052 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
3054 CF_ACVERSION_CHECK(2.52,
3059 dnl ---------------------------------------------------------------------------
3060 dnl CF_PROG_CC_C_O version: 5 updated: 2017/01/21 11:06:25
3062 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3063 dnl the output file can be renamed, and allows for a shell variable that can
3064 dnl be used later. The parameter is either CC or CXX. The result is the
3066 dnl $cf_cv_prog_CC_c_o
3067 dnl $cf_cv_prog_CXX_c_o
3070 dnl $2 = compiler options, if any
3071 AC_DEFUN([CF_PROG_CC_C_O],
3072 [AC_REQUIRE([AC_PROG_CC])dnl
3073 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3074 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3076 cat > conftest.$ac_ext <<CF_EOF
3079 ${cf_cv_main_return:-return}(0);
3082 # We do the test twice because some compilers refuse to overwrite an
3083 # existing .o file with -o, though they will create one.
3084 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3085 if AC_TRY_EVAL(ac_try) &&
3086 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3088 eval cf_cv_prog_$1_c_o=yes
3090 eval cf_cv_prog_$1_c_o=no
3094 if test $cf_cv_prog_$1_c_o = yes; then
3095 AC_MSG_RESULT([yes])
3100 dnl ---------------------------------------------------------------------------
3101 dnl CF_PROG_EGREP version: 2 updated: 2015/04/18 08:56:57
3103 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3104 dnl This macro adds a check to ensure the script found something.
3105 AC_DEFUN([CF_PROG_EGREP],
3106 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3107 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3108 then ac_cv_prog_egrep='grep -E'
3109 else ac_cv_prog_egrep='egrep'
3111 EGREP=$ac_cv_prog_egrep
3113 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3115 dnl ---------------------------------------------------------------------------
3116 dnl CF_PROG_EXT version: 14 updated: 2018/06/20 20:23:13
3118 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3119 AC_DEFUN([CF_PROG_EXT],
3121 AC_REQUIRE([CF_CHECK_CACHE])
3122 case $cf_cv_system_name in
3124 CFLAGS="$CFLAGS -Zmt"
3125 CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__)
3126 CXXFLAGS="$CXXFLAGS -Zmt"
3127 # autoconf's macro sets -Zexe and suffix both, which conflict:w
3128 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3138 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
3140 dnl ---------------------------------------------------------------------------
3141 dnl CF_PROG_GNAT version: 8 updated: 2018/11/10 19:47:04
3143 dnl Check for gnatmake, ensure that it is complete.
3144 AC_DEFUN([CF_PROG_GNAT],[
3145 cf_ada_make=gnatmake
3147 AC_CHECK_PROG(gnatmake_exists, $cf_ada_make, yes, no)
3148 if test "$ac_cv_prog_gnatmake_exists" = no; then
3150 cf_cv_prog_gnat_correct=no
3152 AC_CHECK_PROG(gprconfig_exists, gprconfig, yes, no)
3153 if test "$ac_cv_prog_gprconfig_exists" = yes
3155 rm -rf conftest* *~conftest*
3156 if mkdir conftest.src
3160 for cf_gprconfig in Ada C
3162 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
3163 if test $cf_gprconfig = C
3165 for cf_gprconfig_param in \
3166 $cf_gprconfig,,,,GNATGCC \
3167 $cf_gprconfig,,,,GCC \
3170 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3171 test -n "$cf_gprconfig_value" && break
3174 cf_gprconfig_param=$cf_gprconfig
3175 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3177 if test -n "$cf_gprconfig_value"
3179 eval cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value
3180 AC_MSG_RESULT($cf_gprconfig_value)
3182 AC_MSG_RESULT(missing)
3188 rm -rf conftest* *~conftest*
3191 # gprconfig is newer than gnatmake; we can continue...
3194 if test "x$cf_ada_config" != "x#"
3197 AC_CHECK_PROG(M4_exists, m4, yes, no)
3198 if test "$ac_cv_prog_M4_exists" = no; then
3199 cf_cv_prog_gnat_correct=no
3200 echo Ada95 binding required program m4 not found. Ada95 binding disabled.
3202 if test "$cf_cv_prog_gnat_correct" = yes; then
3203 AC_MSG_CHECKING(if GNAT works)
3204 CF_GNAT_TRY_RUN([procedure conftest;],
3207 procedure conftest is
3209 Text_IO.Put ("Hello World");
3211 GNAT.OS_Lib.OS_Exit (0);
3212 end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
3213 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
3216 cf_cv_prog_gnat_correct=no
3220 AC_SUBST(cf_ada_make)
3221 AC_SUBST(cf_ada_config)
3222 AC_SUBST(cf_ada_config_Ada)
3223 AC_SUBST(cf_ada_config_C)
3225 dnl ---------------------------------------------------------------------------
3226 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
3228 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
3229 dnl misc/tabset install won't work properly. Usually this happens only when
3230 dnl using the fallback mkinstalldirs script
3231 AC_DEFUN([CF_PROG_INSTALL],
3237 CF_DIRNAME(cf_dir,$INSTALL)
3238 test -z "$cf_dir" && cf_dir=.
3239 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3243 dnl ---------------------------------------------------------------------------
3244 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
3246 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
3247 dnl option if it is supported.
3248 AC_DEFUN([CF_PROG_LN_S],[
3250 AC_MSG_CHECKING(if $LN_S -f options work)
3252 rm -f conf$$.src conf$$dst
3254 echo first >conf$$.src
3255 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
3260 rm -f conf$$.dst conf$$src
3261 AC_MSG_RESULT($cf_prog_ln_sf)
3263 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
3265 dnl ---------------------------------------------------------------------------
3266 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3267 dnl ----------------
3268 dnl Remove all -U and -D options that refer to the given symbol from a list
3269 dnl of C compiler options. This works around the problem that not all
3270 dnl compilers process -U and -D options from left-to-right, so a -U option
3271 dnl cannot be used to cancel the effect of a preceding -D option.
3273 dnl $1 = target (which could be the same as the source variable)
3274 dnl $2 = source (including '$')
3275 dnl $3 = symbol to remove
3276 define([CF_REMOVE_DEFINE],
3279 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
3280 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
3282 dnl ---------------------------------------------------------------------------
3283 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3285 dnl Remove the given library from the symbol
3287 dnl $1 = target (which could be the same as the source variable)
3288 dnl $2 = source (including '$')
3289 dnl $3 = library to remove
3290 define([CF_REMOVE_LIB],
3292 # remove $3 library from $2
3293 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
3295 dnl ---------------------------------------------------------------------------
3296 dnl CF_SHARED_OPTS version: 93 updated: 2018/08/18 16:36:35
3299 dnl Attempt to determine the appropriate CC/LD options for creating a shared
3303 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
3304 dnl the build-tree, i.e., by making use of the libraries that are compiled in
3305 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
3306 dnl shared library since that can lead to unexpected results at runtime.
3307 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
3308 dnl libraries are compiled in ../../lib
3310 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
3311 dnl to install symbolic links to the rel/abi versions of shared libraries.
3313 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
3314 dnl version when making symbolic links.
3316 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
3317 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
3318 dnl (ex: libncurses.so.<ver>).
3320 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
3321 AC_DEFUN([CF_SHARED_OPTS],
3323 AC_REQUIRE([CF_LD_RPATH_OPT])
3329 INSTALL_LIB="-m 644"
3330 : ${rel_builddir:=.}
3338 cf_cv_do_symlinks=no
3340 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
3342 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
3343 AC_ARG_WITH(shlib-version,
3344 [ --with-shlib-version=X Specify rel or abi version for shared libs],
3345 [test -z "$withval" && withval=auto
3348 cf_cv_shlib_version=auto
3351 cf_cv_shlib_version=$withval
3354 AC_MSG_RESULT($withval)
3355 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
3358 ],[cf_cv_shlib_version=auto])
3359 AC_MSG_RESULT($cf_cv_shlib_version)
3364 # Some less-capable ports of gcc support only -fpic
3368 if test "$GCC" = yes
3372 case $cf_cv_system_name in
3373 (*linux*) # e.g., PGI compiler
3379 if test "$cf_try_fPIC" = yes
3381 AC_MSG_CHECKING(which $CC option to use)
3382 cf_save_CFLAGS="$CFLAGS"
3383 for CC_SHARED_OPTS in -fPIC -fpic ''
3385 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
3386 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
3388 AC_MSG_RESULT($CC_SHARED_OPTS)
3389 CFLAGS="$cf_save_CFLAGS"
3392 cf_cv_shlib_version_infix=no
3394 case $cf_cv_system_name in
3395 (aix4.[3-9]*|aix[[5-7]]*)
3396 if test "$GCC" = yes; then
3397 CC_SHARED_OPTS='-Wl,-brtl'
3398 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3400 CC_SHARED_OPTS='-brtl'
3401 # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
3402 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3406 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
3410 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3411 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3412 cf_cv_shlib_version=cygdll
3413 cf_cv_shlib_version_infix=cygdll
3416 cat >mk_shared_lib.sh <<-CF_EOF
3419 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3422 Linking shared library
3423 ** SHARED_LIB \[$]SHARED_LIB
3424 ** IMPORT_LIB \[$]IMPORT_LIB
3426 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3428 chmod +x mk_shared_lib.sh
3432 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3433 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3434 cf_cv_shlib_version=msysdll
3435 cf_cv_shlib_version_infix=msysdll
3438 cat >mk_shared_lib.sh <<-CF_EOF
3441 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3444 Linking shared library
3445 ** SHARED_LIB \[$]SHARED_LIB
3446 ** IMPORT_LIB \[$]IMPORT_LIB
3448 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3450 chmod +x mk_shared_lib.sh
3453 cf_try_cflags="no-cpp-precomp"
3454 CC_SHARED_OPTS="-dynamic"
3455 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
3456 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
3457 cf_cv_shlib_version_infix=yes
3458 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
3459 cf_save_LDFLAGS=$LDFLAGS
3460 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3461 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
3462 LDFLAGS=$cf_save_LDFLAGS])
3463 if test $cf_cv_ldflags_search_paths_first = yes; then
3464 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3468 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
3469 if test "$GCC" != yes; then
3472 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
3473 INSTALL_LIB="-m 555"
3476 # (tested with gcc 2.7.2 -- I don't have c89)
3477 if test "$GCC" = yes; then
3478 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
3481 LD_SHARED_OPTS='-Wl,+b,${libdir}'
3483 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
3484 # HP-UX shared libraries must be executable, and should be
3485 # readonly to exploit a quirk in the memory manager.
3486 INSTALL_LIB="-m 555"
3489 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3490 if test "$cf_cv_shlib_version" = rel; then
3491 cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
3493 cf_shared_soname='`basename $[@]`'
3496 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
3499 if test "$cf_cv_enable_rpath" = yes ; then
3500 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3502 # tested with IRIX 5.2 and 'cc'.
3503 if test "$GCC" != yes; then
3504 CC_SHARED_OPTS='-KPIC'
3505 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
3507 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
3509 cf_cv_rm_so_locs=yes
3511 (linux*|gnu*|k*bsd*-gnu)
3512 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3513 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3514 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3516 if test "$cf_cv_enable_rpath" = yes ; then
3517 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3520 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3523 cf_cv_shlib_version=mingw
3524 cf_cv_shlib_version_infix=mingw
3527 if test "$DFT_LWR_MODEL" = "shared" ; then
3528 LOCAL_LDFLAGS="-Wl,--enable-auto-import"
3529 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3530 EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
3533 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3534 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3535 cat >mk_shared_lib.sh <<-CF_EOF
3538 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3541 Linking shared library
3542 ** SHARED_LIB \[$]SHARED_LIB
3543 ** IMPORT_LIB \[$]IMPORT_LIB
3545 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3547 chmod +x mk_shared_lib.sh
3549 (openbsd[[2-9]].*|mirbsd*)
3550 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3551 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3552 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3554 if test "$cf_cv_enable_rpath" = yes ; then
3555 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3557 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3559 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3561 (nto-qnx*|openbsd*|freebsd[[12]].*)
3562 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3563 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
3564 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3566 (dragonfly*|freebsd*)
3567 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3568 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
3569 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
3570 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
3571 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3574 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3577 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3578 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
3579 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
3580 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3581 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3582 if test "$cf_cv_shlib_version" = auto; then
3583 if test -f /usr/libexec/ld.elf_so; then
3584 cf_cv_shlib_version=abi
3586 cf_cv_shlib_version=rel
3590 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
3592 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -Wl,-shared -Wl,-Bshareable -o $[@]'
3596 # tested with OSF/1 V3.2 and 'cc'
3597 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
3598 # link with shared libs).
3599 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
3602 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
3605 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
3606 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3607 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3608 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3610 cf_cv_rm_so_locs=yes
3612 (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98
3613 # tested with osr5.0.5
3614 if test "$GCC" != yes; then
3615 CC_SHARED_OPTS='-belf -KPIC'
3617 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
3618 if test "$cf_cv_enable_rpath" = yes ; then
3619 # only way is to set LD_RUN_PATH but no switch for it
3622 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3623 LINK_PROGS='LD_RUN_PATH=${libdir}'
3624 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
3627 # tested with SunOS 4.1.1 and gcc 2.7.0
3628 if test "$GCC" != yes; then
3629 CC_SHARED_OPTS='-KPIC'
3631 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
3632 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3635 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
3636 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
3637 if test "$DFT_LWR_MODEL" = "shared" ; then
3638 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
3639 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3641 if test "$cf_cv_enable_rpath" = yes ; then
3642 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
3645 if test "$GCC" != yes; then
3646 cf_save_CFLAGS="$CFLAGS"
3647 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
3649 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
3650 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
3652 CFLAGS="$cf_save_CFLAGS"
3653 CC_SHARED_OPTS=$cf_shared_opts
3654 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
3656 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
3659 (sysv5uw7*|unix_sv*)
3660 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
3661 if test "$GCC" != yes; then
3662 CC_SHARED_OPTS='-KPIC'
3664 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
3667 CC_SHARED_OPTS='unknown'
3668 MK_SHARED_LIB='echo unknown'
3672 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
3673 case "$cf_cv_shlib_version" in
3675 case "$MK_SHARED_LIB" in
3677 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
3680 AC_MSG_WARN(ignored --with-shlib-version)
3686 if test -n "$cf_try_cflags"
3688 cat > conftest.$ac_ext <<EOF
3689 #line __oline__ "${as_me:-configure}"
3691 int main(int argc, char *argv[[]])
3694 return (argv[[argc-1]] == 0) ;
3697 cf_save_CFLAGS="$CFLAGS"
3698 for cf_opt in $cf_try_cflags
3700 CFLAGS="$cf_save_CFLAGS -$cf_opt"
3701 AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
3702 if AC_TRY_EVAL(ac_compile); then
3704 cf_save_CFLAGS="$CFLAGS"
3709 CFLAGS="$cf_save_CFLAGS"
3713 # RPATH_LIST is a colon-separated list of directories
3714 test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
3715 test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
3717 test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
3719 CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
3720 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
3722 AC_SUBST(CC_SHARED_OPTS)
3723 AC_SUBST(LD_RPATH_OPT)
3724 AC_SUBST(LD_SHARED_OPTS)
3725 AC_SUBST(MK_SHARED_LIB)
3726 AC_SUBST(RM_SHARED_OPTS)
3728 AC_SUBST(LINK_PROGS)
3729 AC_SUBST(LINK_TESTS)
3731 AC_SUBST(EXTRA_LDFLAGS)
3732 AC_SUBST(LOCAL_LDFLAGS)
3733 AC_SUBST(LOCAL_LDFLAGS2)
3735 AC_SUBST(INSTALL_LIB)
3736 AC_SUBST(RPATH_LIST)
3738 dnl ---------------------------------------------------------------------------
3739 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
3740 dnl ----------------
3741 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
3742 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
3745 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
3746 dnl If missing, use "rel".
3747 define([CF_SHARED_SONAME],
3749 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
3750 if test "$cf_cv_shlib_version" = rel; then
3751 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
3753 cf_cv_shared_soname='`basename $[@]`'
3756 dnl ---------------------------------------------------------------------------
3757 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
3759 dnl Remove "-g" option from the compiler options
3760 AC_DEFUN([CF_STRIP_G_OPT],
3761 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
3762 dnl ---------------------------------------------------------------------------
3763 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
3765 dnl Construct a search-list for a nonstandard header/lib-file
3766 dnl $1 = the variable to return as result
3767 dnl $2 = the package name
3768 dnl $3 = the subdirectory, e.g., bin, include or lib
3769 AC_DEFUN([CF_SUBDIR_PATH],
3773 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3775 for cf_subdir_prefix in \
3783 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
3786 dnl ---------------------------------------------------------------------------
3787 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
3789 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3790 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3791 dnl but some packagers change this, breaking various applications.
3792 AC_DEFUN([CF_TERM_HEADER],[
3793 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3794 case ${cf_cv_ncurses_header} in
3795 (*/ncurses.h|*/ncursesw.h)
3796 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3799 cf_term_header=term.h
3803 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3805 AC_TRY_COMPILE([#include <stdio.h>
3806 #include <${cf_cv_ncurses_header:-curses.h}>
3808 ],[int x = auto_left_margin],[
3809 cf_cv_term_header="$cf_test"],[
3810 cf_cv_term_header=unknown
3812 test "$cf_cv_term_header" != unknown && break
3816 # Set definitions to allow ifdef'ing to accommodate subdirectories
3818 case $cf_cv_term_header in
3820 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
3824 case $cf_cv_term_header in
3826 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
3829 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
3833 dnl ---------------------------------------------------------------------------
3834 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
3836 dnl Define a top_builddir symbol, for applications that need an absolute path.
3837 AC_DEFUN([CF_TOP_BUILDDIR],
3839 top_builddir=ifelse($1,,`pwd`,$1)
3840 AC_SUBST(top_builddir)
3842 dnl ---------------------------------------------------------------------------
3843 dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
3844 dnl -------------------
3845 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3846 dnl can define it successfully.
3847 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3848 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3852 #include <sys/types.h>
3854 #ifndef _XOPEN_SOURCE
3857 [cf_cv_xopen_source=no],
3858 [cf_save="$CPPFLAGS"
3859 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
3863 #include <sys/types.h>
3865 #ifdef _XOPEN_SOURCE
3868 [cf_cv_xopen_source=no],
3869 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3874 if test "$cf_cv_xopen_source" != no ; then
3875 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3876 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3877 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3878 CF_ADD_CFLAGS($cf_temp_xopen_source)
3881 dnl ---------------------------------------------------------------------------
3882 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3884 dnl Make an uppercase version of a variable
3885 dnl $1=uppercase($2)
3886 AC_DEFUN([CF_UPPER],
3888 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3890 dnl ---------------------------------------------------------------------------
3891 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3893 dnl Check for multibyte support, and if not found, utf8 compatibility library
3894 AC_DEFUN([CF_UTF8_LIB],
3896 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3897 cf_save_LIBS="$LIBS"
3899 #include <stdlib.h>],[putwc(0,0);],
3900 [cf_cv_utf8_lib=yes],
3902 #include <libutf8.h>],[putwc(0,0);],utf8,
3903 [cf_cv_utf8_lib=add-on],
3904 [cf_cv_utf8_lib=no])
3907 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3909 if test "$cf_cv_utf8_lib" = "add-on" ; then
3910 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3911 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3912 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3913 CF_ADD_LIBS($cf_cv_library_file_utf8)
3916 dnl ---------------------------------------------------------------------------
3917 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3919 dnl Use AC_VERBOSE w/o the warnings
3920 AC_DEFUN([CF_VERBOSE],
3921 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3924 dnl ---------------------------------------------------------------------------
3925 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
3927 dnl Check for compiler-support for weak symbols.
3928 dnl This works with "recent" gcc.
3929 AC_DEFUN([CF_WEAK_SYMBOLS],[
3930 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
3933 #include <stdio.h>],
3935 #if defined(__GNUC__)
3936 # if defined __USE_ISOC99
3937 # define _cat_pragma(exp) _Pragma(#exp)
3938 # define _weak_pragma(exp) _cat_pragma(weak name)
3940 # define _weak_pragma(exp)
3942 # define _declare(name) __extension__ extern __typeof__(name) name
3943 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
3947 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
3950 dnl ---------------------------------------------------------------------------
3951 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
3952 dnl --------------------
3953 dnl Command-line option to specify the Ada95 compiler.
3954 AC_DEFUN([CF_WITH_ADA_COMPILER],[
3955 AC_MSG_CHECKING(for ada-compiler)
3956 AC_ARG_WITH(ada-compiler,
3957 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
3958 [cf_ada_compiler=$withval],
3959 [cf_ada_compiler=gnatmake])
3960 AC_SUBST(cf_ada_compiler)
3961 AC_MSG_RESULT($cf_ada_compiler)
3963 dnl ---------------------------------------------------------------------------
3964 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
3965 dnl -------------------
3966 dnl Command-line option to specify where Ada includes will install.
3967 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
3968 AC_MSG_CHECKING(for ada-include)
3969 CF_WITH_PATH(ada-include,
3970 [ --with-ada-include=DIR Ada includes are in DIR],
3972 PREFIX/share/ada/adainclude,
3973 [$]prefix/share/ada/adainclude)
3974 AC_SUBST(ADA_INCLUDE)
3975 AC_MSG_RESULT($ADA_INCLUDE)
3977 dnl ---------------------------------------------------------------------------
3978 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
3979 dnl -------------------
3980 dnl CF_WITH_ADA_LIBNAME
3981 dnl -------------------
3982 dnl Command-line option to specify how to name the resulting Ada library.
3983 dnl $1 = default value
3984 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
3985 AC_MSG_CHECKING(for ada-libname)
3986 AC_ARG_WITH(ada-libname,
3987 [ --with-ada-libname=XXX override default Ada library-name],
3988 ADA_LIBNAME=[$]withval,
3990 case "x$ADA_LIBNAME" in
3995 AC_SUBST(ADA_LIBNAME)
3996 AC_MSG_RESULT($ADA_LIBNAME)
3998 dnl ---------------------------------------------------------------------------
3999 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
4000 dnl -------------------
4001 dnl Command-line option to specify where Ada objects will install.
4002 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
4003 AC_MSG_CHECKING(for ada-objects)
4004 CF_WITH_PATH(ada-objects,
4005 [ --with-ada-objects=DIR Ada objects are in DIR],
4007 PREFIX/lib/ada/adalib,
4008 [$]prefix/lib/ada/adalib)
4009 AC_SUBST(ADA_OBJECTS)
4010 AC_MSG_RESULT($ADA_OBJECTS)
4012 dnl ---------------------------------------------------------------------------
4013 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
4014 dnl ---------------------
4015 dnl Command-line option to specify if an Ada95 shared-library should be built,
4016 dnl and optionally what its soname should be.
4017 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
4018 AC_REQUIRE([CF_GNAT_PROJECTS])
4019 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
4020 AC_ARG_WITH(ada-sharedlib,
4021 [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
4022 [with_ada_sharedlib=$withval],
4023 [with_ada_sharedlib=no])
4024 AC_MSG_RESULT($with_ada_sharedlib)
4026 if test "x$with_ada_sharedlib" != xno
4028 if test "x$cf_gnat_projects" != xyes
4030 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
4031 with_ada_sharedlib=no
4035 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
4036 MAKE_ADA_SHAREDLIB="#"
4038 if test "x$with_ada_sharedlib" != xno
4041 if test "x$with_ada_sharedlib" != xyes
4043 ADA_SHAREDLIB="$with_ada_sharedlib"
4047 AC_SUBST(ADA_SHAREDLIB)
4048 AC_SUBST(MAKE_ADA_SHAREDLIB)
4050 dnl ---------------------------------------------------------------------------
4051 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
4052 dnl ------------------
4053 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
4055 AC_DEFUN([CF_WITH_CURSES_DIR],[
4057 AC_MSG_CHECKING(for specific curses-directory)
4058 AC_ARG_WITH(curses-dir,
4059 [ --with-curses-dir=DIR directory in which (n)curses is installed],
4060 [cf_cv_curses_dir=$withval],
4061 [cf_cv_curses_dir=no])
4062 AC_MSG_RESULT($cf_cv_curses_dir)
4064 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
4066 CF_PATH_SYNTAX(withval)
4067 if test -d "$cf_cv_curses_dir"
4069 CF_ADD_INCDIR($cf_cv_curses_dir/include)
4070 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
4074 dnl ---------------------------------------------------------------------------
4075 dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
4076 dnl ------------------
4077 dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
4078 dnl "lib" prefix, e.g., because it used the dll naming convention.
4080 dnl $1 = variable to set
4081 AC_DEFUN([CF_WITH_LIB_PREFIX],
4083 AC_MSG_CHECKING(if you want to have a library-prefix)
4084 AC_ARG_WITH(lib-prefix,
4085 [ --with-lib-prefix override library-prefix],
4086 [with_lib_prefix=$withval],
4087 [with_lib_prefix=auto])
4088 AC_MSG_RESULT($with_lib_prefix)
4090 if test $with_lib_prefix = auto
4093 elif test $with_lib_prefix = no
4097 LIB_PREFIX=$with_lib_prefix
4100 dnl ---------------------------------------------------------------------------
4101 dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
4103 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
4104 dnl defaulting to yes/no.
4106 dnl $1 = option name
4108 dnl $3 = environment variable to set
4109 dnl $4 = default value, shown in the help-message, must be a constant
4110 dnl $5 = default value, if it's an expression & cannot be in the help-message
4112 AC_DEFUN([CF_WITH_PATH],
4113 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
4114 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
4115 if ifelse([$5],,true,[test -n "$5"]) ; then
4116 CF_PATH_SYNTAX(withval)
4121 dnl ---------------------------------------------------------------------------
4122 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 10 updated: 2015/08/22 17:10:56
4123 dnl -------------------------
4124 dnl Allow the choice of the pkg-config library directory to be overridden.
4125 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
4129 AC_MSG_CHECKING(for pkg-config library directory)
4132 AC_MSG_CHECKING(for $PKG_CONFIG library directory)
4136 PKG_CONFIG_LIBDIR=no
4137 AC_ARG_WITH(pkg-config-libdir,
4138 [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
4139 [PKG_CONFIG_LIBDIR=$withval],
4140 [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
4142 case x$PKG_CONFIG_LIBDIR in
4146 # Look for the library directory using the same prefix as the executable
4147 if test "x$PKG_CONFIG" = xnone
4151 cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
4154 # If you don't like using the default architecture, you have to specify the
4155 # intended library directory and corresponding compiler/linker options.
4157 # This case allows for Debian's 2014-flavor of multiarch, along with the
4158 # most common variations before that point. Some other variants spell the
4159 # directory differently, e.g., "pkg-config", and put it in unusual places.
4160 # pkg-config has always been poorly standardized, which is ironic...
4161 case x`(arch) 2>/dev/null` in
4164 $cf_path/lib/*64-linux-gnu \
4172 $cf_path/lib/*-linux-gnu \
4181 for cf_config in $cf_search_path
4183 CF_VERBOSE(checking $cf_config/pkgconfig)
4184 if test -d $cf_config/pkgconfig
4186 PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
4187 AC_MSG_CHECKING(done)
4196 if test "x$PKG_CONFIG_LIBDIR" != xno ; then
4197 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
4200 AC_SUBST(PKG_CONFIG_LIBDIR)
4202 dnl ---------------------------------------------------------------------------
4203 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
4205 dnl Check for POSIX thread library.
4206 AC_DEFUN([CF_WITH_PTHREAD],
4208 AC_MSG_CHECKING(if you want to link with the pthread library)
4209 AC_ARG_WITH(pthread,
4210 [ --with-pthread use POSIX thread library],
4211 [with_pthread=$withval],
4213 AC_MSG_RESULT($with_pthread)
4215 if test "$with_pthread" != no ; then
4216 AC_CHECK_HEADER(pthread.h,[
4217 AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
4219 for cf_lib_pthread in pthread c_r
4221 AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
4222 cf_save_LIBS="$LIBS"
4223 CF_ADD_LIB($cf_lib_pthread)
4225 #include <pthread.h>
4227 int rc = pthread_create(0,0,0,0);
4228 int r2 = pthread_mutexattr_settype(0, 0);
4229 ],[with_pthread=yes],[with_pthread=no])
4230 LIBS="$cf_save_LIBS"
4231 AC_MSG_RESULT($with_pthread)
4232 test "$with_pthread" = yes && break
4235 if test "$with_pthread" = yes ; then
4236 CF_ADD_LIB($cf_lib_pthread)
4237 AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
4239 AC_MSG_ERROR(Cannot link with pthread library)
4244 dnl ---------------------------------------------------------------------------
4245 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
4247 dnl For testing, override the derived host system-type which is used to decide
4248 dnl things such as the linker commands used to build shared libraries. This is
4249 dnl normally chosen automatically based on the type of system which you are
4250 dnl building on. We use it for testing the configure script.
4252 dnl This is different from the --host option: it is used only for testing parts
4253 dnl of the configure script which would not be reachable with --host since that
4254 dnl relies on the build environment being real, rather than mocked up.
4255 AC_DEFUN([CF_WITH_SYSTYPE],[
4256 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
4257 AC_ARG_WITH(system-type,
4258 [ --with-system-type=XXX test: override derived host system-type],
4259 [AC_MSG_WARN(overriding system type to $withval)
4260 cf_cv_system_name=$withval
4264 dnl ---------------------------------------------------------------------------
4265 dnl CF_XOPEN_SOURCE version: 55 updated: 2018/12/31 20:46:17
4267 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
4268 dnl or adapt to the vendor's definitions to get equivalent functionality,
4269 dnl without losing the common non-POSIX features.
4272 dnl $1 is the nominal value for _XOPEN_SOURCE
4273 dnl $2 is the nominal value for _POSIX_C_SOURCE
4274 AC_DEFUN([CF_XOPEN_SOURCE],[
4275 AC_REQUIRE([AC_CANONICAL_HOST])
4276 AC_REQUIRE([CF_POSIX_VISIBLE])
4278 if test "$cf_cv_posix_visible" = no; then
4280 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
4281 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
4286 cf_xopen_source="-D_ALL_SOURCE"
4292 cf_xopen_source="-D_APPLE_C_SOURCE"
4295 cf_xopen_source="-D_DARWIN_C_SOURCE"
4298 (freebsd*|dragonfly*|midnightbsd*)
4299 # 5.x headers associate
4300 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
4301 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
4302 cf_POSIX_C_SOURCE=200112L
4304 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
4307 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
4310 cf_xopen_source="-D_HPUX_SOURCE"
4313 cf_xopen_source="-D_SGI_SOURCE"
4316 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
4317 CF_GNU_SOURCE($cf_XOPEN_SOURCE)
4320 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
4323 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
4325 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4328 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
4331 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
4332 cf_xopen_source="-D_BSD_SOURCE"
4336 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
4339 cf_xopen_source="-D_OSF_SOURCE"
4342 cf_xopen_source="-D_QNX_SOURCE"
4345 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
4348 cf_xopen_source="-D__EXTENSIONS__"
4349 cf_cv_xopen_source=broken
4351 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
4357 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4361 if test -n "$cf_xopen_source" ; then
4362 CF_ADD_CFLAGS($cf_xopen_source,true)
4365 dnl In anything but the default case, we may have system-specific setting
4366 dnl which is still not guaranteed to provide all of the entrypoints that
4367 dnl _XOPEN_SOURCE would yield.
4368 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
4369 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
4370 AC_TRY_COMPILE([#include <stdlib.h>],[
4371 #ifndef _XOPEN_SOURCE
4374 [cf_XOPEN_SOURCE_set=yes],
4375 [cf_XOPEN_SOURCE_set=no])
4376 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
4377 if test $cf_XOPEN_SOURCE_set = yes
4379 AC_TRY_COMPILE([#include <stdlib.h>],[
4380 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
4383 [cf_XOPEN_SOURCE_set_ok=yes],
4384 [cf_XOPEN_SOURCE_set_ok=no])
4385 if test $cf_XOPEN_SOURCE_set_ok = no
4387 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
4393 fi # cf_cv_posix_visible