ncurses 6.1 - patch 20191221
[ncurses.git] / Ada95 / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright (c) 2010-2018,2019 Free Software Foundation, Inc.              *
3 dnl                                                                          *
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:                 *
11 dnl                                                                          *
12 dnl The above copyright notice and this permission notice shall be included  *
13 dnl in all copies or substantial portions of the Software.                   *
14 dnl                                                                          *
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.                               *
22 dnl                                                                          *
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       *
26 dnl authorization.                                                           *
27 dnl***************************************************************************
28 dnl
29 dnl Author: Thomas E. Dickey
30 dnl
31 dnl $Id: aclocal.m4,v 1.147 2019/11/02 20:56:52 tom Exp $
32 dnl Macros used in NCURSES Ada95 auto-configuration script.
33 dnl
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.
37 dnl
38 dnl See https://invisible-island.net/autoconf/ for additional information.
39 dnl
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.
45 dnl
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],
50 [
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
71 dnl binding.
72 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
73 [
74 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
75 if test "$srcdir" != "."; then
76         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
77 fi
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}"
84                 fi
85         else
86                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
87         fi
88 fi
89 AC_SUBST(ACPPFLAGS)
90 ])dnl
91 dnl ---------------------------------------------------------------------------
92 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
93 dnl ---------------
94 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
95 AC_DEFUN([CF_ADD_ADAFLAGS],[
96         ADAFLAGS="$ADAFLAGS $1"
97         AC_SUBST(ADAFLAGS)
98 ])dnl
99 dnl ---------------------------------------------------------------------------
100 dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
101 dnl -------------
102 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
103 dnl The second parameter if given makes this macro verbose.
104 dnl
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],
109 [
110 cf_fix_cppflags=no
111 cf_new_cflags=
112 cf_new_cppflags=
113 cf_new_extra_cppflags=
114
115 for cf_add_cflags in $1
116 do
117 case $cf_fix_cppflags in
118 (no)
119         case $cf_add_cflags in
120         (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
121                 case $cf_add_cflags in
122                 (-D*)
123                         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
124
125                         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
126                                 && test -z "${cf_tst_cflags}" \
127                                 && cf_fix_cppflags=yes
128
129                         if test $cf_fix_cppflags = yes ; then
130                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
131                                 continue
132                         elif test "${cf_tst_cflags}" = "\"'" ; then
133                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
134                                 continue
135                         fi
136                         ;;
137                 esac
138                 case "$CPPFLAGS" in
139                 (*$cf_add_cflags)
140                         ;;
141                 (*)
142                         case $cf_add_cflags in
143                         (-D*)
144                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
145                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
146                                 ;;
147                         esac
148                         CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
149                         ;;
150                 esac
151                 ;;
152         (*)
153                 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
154                 ;;
155         esac
156         ;;
157 (yes)
158         CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
159
160         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
161
162         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
163                 && test -z "${cf_tst_cflags}" \
164                 && cf_fix_cppflags=no
165         ;;
166 esac
167 done
168
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)
172 fi
173
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)
177 fi
178
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)
182 fi
183
184 AC_SUBST(EXTRA_CPPFLAGS)
185
186 ])dnl
187 dnl ---------------------------------------------------------------------------
188 dnl CF_ADD_INCDIR version: 15 updated: 2018/06/20 20:23:13
189 dnl -------------
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],
196 [
197 if test -n "$1" ; then
198   for cf_add_incdir in $1
199   do
200         while test $cf_add_incdir != /usr/include
201         do
202           if test -d $cf_add_incdir
203           then
204                 cf_have_incdir=no
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
210                         fi
211                   done
212                 fi
213
214                 if test "$cf_have_incdir" = no ; then
215                   if test "$cf_add_incdir" = /usr/local/include ; then
216                         if test "$GCC" = yes
217                         then
218                           cf_save_CPPFLAGS=$CPPFLAGS
219                           CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
220                           AC_TRY_COMPILE([#include <stdio.h>],
221                                   [printf("Hello")],
222                                   [],
223                                   [cf_have_incdir=yes])
224                           CPPFLAGS=$cf_save_CPPFLAGS
225                         fi
226                   fi
227                 fi
228
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"
232
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"
236                 else
237                   break
238                 fi
239           else
240                 break
241           fi
242         done
243   done
244 fi
245 ])dnl
246 dnl ---------------------------------------------------------------------------
247 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
248 dnl ----------
249 dnl Add a library, used to enforce consistency.
250 dnl
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
256 dnl -------------
257 dnl     Adds to the library-path
258 dnl
259 dnl     Some machines have trouble with multiple -L options.
260 dnl
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)
263 dnl
264 AC_DEFUN([CF_ADD_LIBDIR],
265 [
266 if test -n "$1" ; then
267         for cf_add_libdir in $1
268         do
269                 if test $cf_add_libdir = /usr/lib ; then
270                         :
271                 elif test -d $cf_add_libdir
272                 then
273                         cf_have_libdir=no
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
279                                         fi
280                                 done
281                         fi
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])"
285                         fi
286                 fi
287         done
288 fi
289 ])dnl
290 dnl ---------------------------------------------------------------------------
291 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
292 dnl -----------
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.
296 dnl
297 dnl $1 = libraries to add, with the "-l", etc.
298 dnl $2 = variable to update (default $LIBS)
299 AC_DEFUN([CF_ADD_LIBS],[
300 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
301 # reverse order
302 cf_add_0lib=
303 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
304 # filter duplicates
305 for cf_add_1lib in $cf_add_0lib; do
306         for cf_add_2lib in $cf_add_libs; do
307                 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
308                         cf_add_1lib=
309                         break
310                 fi
311         done
312         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
313 done
314 ifelse($2,,LIBS,[$2])="$cf_add_libs"
315 ])dnl
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],
326 [
327 test "x$4" != "x$5" && \
328 test -d "$4" && \
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"
336 }
337 ])dnl
338 dnl ---------------------------------------------------------------------------
339 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
340 dnl --------------
341 dnl use this macro for appending text without introducing an extra blank at
342 dnl the beginning
343 define([CF_APPEND_TEXT],
344 [
345         test -n "[$]$1" && $1="[$]$1 "
346         $1="[$]{$1}$2"
347 ])dnl
348 dnl ---------------------------------------------------------------------------
349 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
350 dnl --------------
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
356 dnl -------------
357 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
358 dnl values.
359 dnl
360 dnl Parameters:
361 dnl $1 = option name
362 dnl $2 = help-string
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
369 ifelse([$3],,[    :]dnl
370 ,[    $3]) ifelse([$4],,,[
371         else
372                 $4])
373         fi],[enableval=$5 ifelse([$4],,,[
374         $4
375 ])dnl
376 ])])dnl
377 dnl ---------------------------------------------------------------------------
378 dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05
379 dnl -----------
380 dnl Check for suitable "ar" (archiver) options for updating an archive.
381 dnl
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])
387
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
391         do
392
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
397                                 cf_cv_ar_flags=
398                                 break
399                         fi
400                 fi
401
402                 rm -f conftest.$ac_cv_objext
403                 rm -f conftest.a
404
405                 cat >conftest.$ac_ext <<EOF
406 #line __oline__ "configure"
407 int     testdata[[3]] = { 123, 456, 789 };
408 EOF
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
414                                 break
415                         fi
416                 else
417                         CF_VERBOSE(cannot compile test-program)
418                         break
419                 fi
420         done
421         rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
422 ])
423
424 if test -n "$ARFLAGS" ; then
425         if test -n "$cf_cv_ar_flags" ; then
426                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
427         fi
428 else
429         ARFLAGS=$cf_cv_ar_flags
430 fi
431
432 AC_SUBST(ARFLAGS)
433 ])
434 dnl ---------------------------------------------------------------------------
435 dnl CF_BUILD_CC version: 8 updated: 2018/01/04 20:31:04
436 dnl -----------
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
440 dnl source.
441 dnl
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
448
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'}
456
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)
463
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)
470
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)
476
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)
482
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)
488
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)
494
495         # this assumes we're on Unix.
496         BUILD_EXEEXT=
497         BUILD_OBJEXT=o
498
499         : ${BUILD_CC:='${CC}'}
500
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.])
504         fi
505
506 else
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'}
515 fi
516
517 AC_SUBST(BUILD_CC)
518 AC_SUBST(BUILD_CPP)
519 AC_SUBST(BUILD_CFLAGS)
520 AC_SUBST(BUILD_CPPFLAGS)
521 AC_SUBST(BUILD_LDFLAGS)
522 AC_SUBST(BUILD_LIBS)
523 AC_SUBST(BUILD_EXEEXT)
524 AC_SUBST(BUILD_OBJEXT)
525 ])dnl
526 dnl ---------------------------------------------------------------------------
527 dnl CF_CC_ENV_FLAGS version: 9 updated: 2018/07/29 18:03:26
528 dnl ---------------
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.
532 dnl
533 dnl In particular, it addresses the problem of being able to run the C
534 dnl preprocessor in a consistent manner.
535 dnl
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],
540 [
541 # This should have been defined by AC_PROG_CC
542 : ${CC:=cc}
543
544 AC_MSG_CHECKING(\$CFLAGS variable)
545 case "x$CFLAGS" in
546 (*-[[IUD]]*)
547         AC_MSG_RESULT(broken)
548         AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
549         cf_flags="$CFLAGS"
550         CFLAGS=
551         for cf_arg in $cf_flags
552         do
553                 CF_ADD_CFLAGS($cf_arg)
554         done
555         ;;
556 (*)
557         AC_MSG_RESULT(ok)
558         ;;
559 esac
560
561 AC_MSG_CHECKING(\$CC variable)
562 case "$CC" in
563 (*[[\ \ ]]-*)
564         AC_MSG_RESULT(broken)
565         AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
566         # humor him...
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))); }'`
569         CC="$cf_prog"
570         for cf_arg in $cf_flags
571         do
572                 case "x$cf_arg" in
573                 (x-[[IUDfgOW]]*)
574                         CF_ADD_CFLAGS($cf_arg)
575                         ;;
576                 (*)
577                         CC="$CC $cf_arg"
578                         ;;
579                 esac
580         done
581         CF_VERBOSE(resulting CC: '$CC')
582         CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
583         CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
584         ;;
585 (*)
586         AC_MSG_RESULT(ok)
587         ;;
588 esac
589 ])dnl
590 dnl ---------------------------------------------------------------------------
591 dnl CF_CFG_DEFAULTS version: 11 updated: 2015/04/17 21:13:04
592 dnl ---------------
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
595 dnl look for:
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.
599 dnl
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],
604 [
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*)
610                 prefix=/usr
611                 ;;
612         (*)     prefix=$ac_default_prefix
613                 ;;
614         esac
615 fi
616 AC_MSG_RESULT($prefix)
617
618 if test "x$prefix" = "xNONE" ; then
619 AC_MSG_CHECKING(for default include-directory)
620 test -n "$verbose" && echo 1>&AC_FD_MSG
621 for cf_symbol in \
622         $includedir \
623         $includedir/ncurses \
624         $prefix/include \
625         $prefix/include/ncurses \
626         /usr/local/include \
627         /usr/local/include/ncurses \
628         /usr/include \
629         /usr/include/ncurses
630 do
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
636                 break
637         fi
638         fi
639         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
640 done
641 AC_MSG_RESULT($includedir)
642 fi
643 ])dnl
644 dnl ---------------------------------------------------------------------------
645 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
646 dnl --------------
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.
649 dnl
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.
654 dnl
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],
658 [
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"
662 else
663         system_name="`(uname -s -r) 2>/dev/null`"
664         if test -z "$system_name" ; then
665                 system_name="`(hostname) 2>/dev/null`"
666         fi
667 fi
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"])
670
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)
673
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.")
677 fi
678 ])dnl
679 dnl ---------------------------------------------------------------------------
680 dnl CF_CHECK_GNAT_VERSION version: 1 updated: 2019/09/21 18:08:42
681 dnl ---------------------
682 AC_DEFUN([CF_CHECK_GNAT_VERSION],
683 [
684 AC_REQUIRE([CF_GNAT_VERSION])
685 case $cf_gnat_version in
686 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
687         cf_cv_prog_gnat_correct=yes
688         ;;
689 (*)
690         AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
691         cf_cv_prog_gnat_correct=no
692         ;;
693 esac
694 ])
695 dnl ---------------------------------------------------------------------------
696 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
697 dnl -----------------
698 dnl Check if the given compiler is really clang.  clang's C driver defines
699 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
700 dnl not ignore some gcc options.
701 dnl
702 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
703 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
704 dnl the wrappers for gcc and g++ warnings.
705 dnl
706 dnl $1 = GCC (default) or GXX
707 dnl $2 = CLANG_COMPILER (default)
708 dnl $3 = CFLAGS (default) or CXXFLAGS
709 AC_DEFUN([CF_CLANG_COMPILER],[
710 ifelse([$2],,CLANG_COMPILER,[$2])=no
711
712 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
713         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
714         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
715         ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
716         AC_TRY_COMPILE([],[
717 #ifdef __clang__
718 #else
719 make an error
720 #endif
721 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
722 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
723 ],[])
724         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
725         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
726 fi
727 ])
728 dnl ---------------------------------------------------------------------------
729 dnl CF_CONST_X_STRING version: 1 updated: 2019/04/08 17:50:29
730 dnl -----------------
731 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
732 dnl character-strings.
733 dnl
734 dnl It is ambiguous because the specification accommodated the pre-ANSI
735 dnl compilers bundled by more than one vendor in lieu of providing a standard C
736 dnl compiler other than by costly add-ons.  Because of this, the specification
737 dnl did not take into account the use of const for telling the compiler that
738 dnl string literals would be in readonly memory.
739 dnl
740 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
741 dnl let the compiler decide how to represent Xt's strings which were #define'd. 
742 dnl That does not solve the problem of using the block of Xt's strings which
743 dnl are compiled into the library (and is less efficient than one might want).
744 dnl
745 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
746 dnl when compiling the library and compiling using the library, to tell the
747 dnl compiler that String is const.
748 AC_DEFUN([CF_CONST_X_STRING],
749 [
750 AC_TRY_COMPILE(
751 [
752 #include <stdlib.h>
753 #include <X11/Intrinsic.h>
754 ],
755 [String foo = malloc(1)],[
756
757 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
758         AC_TRY_COMPILE(
759                 [
760 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
761 #undef  XTSTRINGDEFINES /* X11R5 and later */
762 #include <stdlib.h>
763 #include <X11/Intrinsic.h>
764                 ],[String foo = malloc(1); *foo = 0],[
765                         cf_cv_const_x_string=no
766                 ],[
767                         cf_cv_const_x_string=yes
768                 ])
769 ])
770
771 case $cf_cv_const_x_string in
772 (no)
773         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
774         ;;
775 (*)
776         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
777         ;;
778 esac
779
780 ])
781 ])dnl
782 dnl ---------------------------------------------------------------------------
783 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
784 dnl ----------------
785 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
786 dnl variations of ncurses' installs.
787 dnl
788 dnl $1 = ncurses when looking for ncurses, or is empty
789 AC_DEFUN([CF_CURSES_HEADER],[
790 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
791 cf_cv_ncurses_header=none
792 for cf_header in \
793         ncurses.h ifelse($1,,,[$1/ncurses.h]) \
794         curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
795 do
796 AC_TRY_COMPILE([#include <${cf_header}>],
797         [initscr(); tgoto("?", 0,0)],
798         [cf_cv_ncurses_header=$cf_header; break],[])
799 done
800 ])
801
802 if test "$cf_cv_ncurses_header" = none ; then
803         AC_MSG_ERROR(No curses header-files found)
804 fi
805
806 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
807 AC_CHECK_HEADERS($cf_cv_ncurses_header)
808 ])dnl
809 dnl ---------------------------------------------------------------------------
810 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
811 dnl ----------
812 dnl "dirname" is not portable, so we fake it with a shell script.
813 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
814 dnl ---------------------------------------------------------------------------
815 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
816 dnl ---------------
817 dnl You can always use "make -n" to see the actual options, but it's hard to
818 dnl pick out/analyze warning messages when the compile-line is long.
819 dnl
820 dnl Sets:
821 dnl     ECHO_LT - symbol to control if libtool is verbose
822 dnl     ECHO_LD - symbol to prefix "cc -o" lines
823 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
824 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
825 dnl     ECHO_CC - symbol to put before any "cc" line
826 dnl
827 AC_DEFUN([CF_DISABLE_ECHO],[
828 AC_MSG_CHECKING(if you want to see long compiling messages)
829 CF_ARG_DISABLE(echo,
830         [  --disable-echo          do not display "compiling" commands],
831         [
832         ECHO_LT='--silent'
833         ECHO_LD='@echo linking [$]@;'
834         RULE_CC='@echo compiling [$]<'
835         SHOW_CC='@echo compiling [$]@'
836         ECHO_CC='@'
837 ],[
838         ECHO_LT=''
839         ECHO_LD=''
840         RULE_CC=''
841         SHOW_CC=''
842         ECHO_CC=''
843 ])
844 AC_MSG_RESULT($enableval)
845 AC_SUBST(ECHO_LT)
846 AC_SUBST(ECHO_LD)
847 AC_SUBST(RULE_CC)
848 AC_SUBST(SHOW_CC)
849 AC_SUBST(ECHO_CC)
850 ])dnl
851 dnl ---------------------------------------------------------------------------
852 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
853 dnl ------------------------
854 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
855 AC_MSG_CHECKING(if we want to use GNAT projects)
856 CF_ARG_DISABLE(gnat-projects,
857         [  --disable-gnat-projects test: disable GNAT projects even if usable],
858         [enable_gnat_projects=no],
859         [enable_gnat_projects=yes])
860 AC_MSG_RESULT($enable_gnat_projects)
861 ])dnl
862 dnl ---------------------------------------------------------------------------
863 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
864 dnl ---------------
865 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
866 dnl prefer a standard location, and use -L options only if we do not find the
867 dnl library in the standard library location(s).
868 dnl     $1 = library name
869 dnl     $2 = library class, usually the same as library name
870 dnl     $3 = includes
871 dnl     $4 = code fragment to compile/link
872 dnl     $5 = corresponding function-name
873 dnl     $6 = flag, nonnull if failure should not cause an error-exit
874 dnl
875 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
876 dnl to use a -L option.
877 AC_DEFUN([CF_FIND_LIBRARY],
878 [
879         eval 'cf_cv_have_lib_'$1'=no'
880         cf_libdir=""
881         AC_CHECK_FUNC($5,
882                 eval 'cf_cv_have_lib_'$1'=yes',[
883                 cf_save_LIBS="$LIBS"
884                 AC_MSG_CHECKING(for $5 in -l$1)
885                 LIBS="-l$1 $LIBS"
886                 AC_TRY_LINK([$3],[$4],
887                         [AC_MSG_RESULT(yes)
888                          eval 'cf_cv_have_lib_'$1'=yes'
889                         ],
890                         [AC_MSG_RESULT(no)
891                         CF_LIBRARY_PATH(cf_search,$2)
892                         for cf_libdir in $cf_search
893                         do
894                                 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
895                                 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
896                                 AC_TRY_LINK([$3],[$4],
897                                         [AC_MSG_RESULT(yes)
898                                          eval 'cf_cv_have_lib_'$1'=yes'
899                                          break],
900                                         [AC_MSG_RESULT(no)
901                                          LIBS="$cf_save_LIBS"])
902                         done
903                         ])
904                 ])
905 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
906 ifelse($6,,[
907 if test $cf_found_library = no ; then
908         AC_MSG_ERROR(Cannot link $1 library)
909 fi
910 ])
911 ])dnl
912 dnl ---------------------------------------------------------------------------
913 dnl CF_FIND_LINKAGE version: 21 updated: 2018/06/20 20:23:13
914 dnl ---------------
915 dnl Find a library (specifically the linkage used in the code fragment),
916 dnl searching for it if it is not already in the library path.
917 dnl See also CF_ADD_SEARCHPATH.
918 dnl
919 dnl Parameters (4-on are optional):
920 dnl     $1 = headers for library entrypoint
921 dnl     $2 = code fragment for library entrypoint
922 dnl     $3 = the library name without the "-l" option or ".so" suffix.
923 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
924 dnl     $5 = action to perform if not successful
925 dnl     $6 = module name, if not the same as the library name
926 dnl     $7 = extra libraries
927 dnl
928 dnl Sets these variables:
929 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
930 dnl     $cf_cv_header_path_$3 - include-directory if needed
931 dnl     $cf_cv_library_path_$3 - library-directory if needed
932 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
933 AC_DEFUN([CF_FIND_LINKAGE],[
934
935 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
936 # will be set on completion of the AC_TRY_LINK below.
937 cf_cv_header_path_$3=
938 cf_cv_library_path_$3=
939
940 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
941
942 cf_save_LIBS="$LIBS"
943
944 AC_TRY_LINK([$1],[$2],[
945         cf_cv_find_linkage_$3=yes
946         cf_cv_header_path_$3=/usr/include
947         cf_cv_library_path_$3=/usr/lib
948 ],[
949
950 LIBS="-l$3 $7 $cf_save_LIBS"
951
952 AC_TRY_LINK([$1],[$2],[
953         cf_cv_find_linkage_$3=yes
954         cf_cv_header_path_$3=/usr/include
955         cf_cv_library_path_$3=/usr/lib
956         cf_cv_library_file_$3="-l$3"
957 ],[
958         cf_cv_find_linkage_$3=no
959         LIBS="$cf_save_LIBS"
960
961         CF_VERBOSE(find linkage for $3 library)
962         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
963
964         cf_save_CPPFLAGS="$CPPFLAGS"
965         cf_test_CPPFLAGS="$CPPFLAGS"
966
967         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
968         for cf_cv_header_path_$3 in $cf_search
969         do
970                 if test -d $cf_cv_header_path_$3 ; then
971                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
972                         CPPFLAGS="$cf_save_CPPFLAGS"
973                         CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
974                         AC_TRY_COMPILE([$1],[$2],[
975                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
976                                 cf_cv_find_linkage_$3=maybe
977                                 cf_test_CPPFLAGS="$CPPFLAGS"
978                                 break],[
979                                 CPPFLAGS="$cf_save_CPPFLAGS"
980                                 ])
981                 fi
982         done
983
984         if test "$cf_cv_find_linkage_$3" = maybe ; then
985
986                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
987
988                 cf_save_LIBS="$LIBS"
989                 cf_save_LDFLAGS="$LDFLAGS"
990
991                 ifelse([$6],,,[
992                 CPPFLAGS="$cf_test_CPPFLAGS"
993                 LIBS="-l$3 $7 $cf_save_LIBS"
994                 AC_TRY_LINK([$1],[$2],[
995                         CF_VERBOSE(... found $3 library in system)
996                         cf_cv_find_linkage_$3=yes])
997                         CPPFLAGS="$cf_save_CPPFLAGS"
998                         LIBS="$cf_save_LIBS"
999                         ])
1000
1001                 if test "$cf_cv_find_linkage_$3" != yes ; then
1002                         CF_LIBRARY_PATH(cf_search,$3)
1003                         for cf_cv_library_path_$3 in $cf_search
1004                         do
1005                                 if test -d $cf_cv_library_path_$3 ; then
1006                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
1007                                         CPPFLAGS="$cf_test_CPPFLAGS"
1008                                         LIBS="-l$3 $7 $cf_save_LIBS"
1009                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1010                                         AC_TRY_LINK([$1],[$2],[
1011                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1012                                         cf_cv_find_linkage_$3=yes
1013                                         cf_cv_library_file_$3="-l$3"
1014                                         break],[
1015                                         CPPFLAGS="$cf_save_CPPFLAGS"
1016                                         LIBS="$cf_save_LIBS"
1017                                         LDFLAGS="$cf_save_LDFLAGS"
1018                                         ])
1019                                 fi
1020                         done
1021                         CPPFLAGS="$cf_save_CPPFLAGS"
1022                         LDFLAGS="$cf_save_LDFLAGS"
1023                 fi
1024
1025         else
1026                 cf_cv_find_linkage_$3=no
1027         fi
1028         ],$7)
1029 ])
1030
1031 LIBS="$cf_save_LIBS"
1032
1033 if test "$cf_cv_find_linkage_$3" = yes ; then
1034 ifelse([$4],,[
1035         CF_ADD_INCDIR($cf_cv_header_path_$3)
1036         CF_ADD_LIBDIR($cf_cv_library_path_$3)
1037         CF_ADD_LIB($3)
1038 ],[$4])
1039 else
1040 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1041 fi
1042 ])dnl
1043 dnl ---------------------------------------------------------------------------
1044 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
1045 dnl -----------------
1046 dnl make ADAFLAGS consistent with CFLAGS
1047 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1048         AC_MSG_CHECKING(optimization options for ADAFLAGS)
1049         case "$CFLAGS" in
1050         (*-g*)
1051                 CF_ADD_ADAFLAGS(-g)
1052                 ;;
1053         esac
1054         case "$CFLAGS" in
1055         (*-O*)
1056                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
1057                 CF_ADD_ADAFLAGS($cf_O_flag)
1058                 ;;
1059         esac
1060         AC_MSG_RESULT($ADAFLAGS)
1061 ])dnl
1062 dnl ---------------------------------------------------------------------------
1063 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1064 dnl -----------------
1065 dnl Test for availability of useful gcc __attribute__ directives to quiet
1066 dnl compiler warnings.  Though useful, not all are supported -- and contrary
1067 dnl to documentation, unrecognized directives cause older compilers to barf.
1068 AC_DEFUN([CF_GCC_ATTRIBUTES],
1069 [
1070 if test "$GCC" = yes
1071 then
1072 cat > conftest.i <<EOF
1073 #ifndef GCC_PRINTF
1074 #define GCC_PRINTF 0
1075 #endif
1076 #ifndef GCC_SCANF
1077 #define GCC_SCANF 0
1078 #endif
1079 #ifndef GCC_NORETURN
1080 #define GCC_NORETURN /* nothing */
1081 #endif
1082 #ifndef GCC_UNUSED
1083 #define GCC_UNUSED /* nothing */
1084 #endif
1085 EOF
1086 if test "$GCC" = yes
1087 then
1088         AC_CHECKING([for $CC __attribute__ directives])
1089 cat > conftest.$ac_ext <<EOF
1090 #line __oline__ "${as_me:-configure}"
1091 #include "confdefs.h"
1092 #include "conftest.h"
1093 #include "conftest.i"
1094 #if     GCC_PRINTF
1095 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1096 #else
1097 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1098 #endif
1099 #if     GCC_SCANF
1100 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1101 #else
1102 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1103 #endif
1104 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1105 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1106 extern void foo(void) GCC_NORETURN;
1107 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1108 EOF
1109         cf_printf_attribute=no
1110         cf_scanf_attribute=no
1111         for cf_attribute in scanf printf unused noreturn
1112         do
1113                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1114                 cf_directive="__attribute__(($cf_attribute))"
1115                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1116
1117                 case $cf_attribute in
1118                 (printf)
1119                         cf_printf_attribute=yes
1120                         cat >conftest.h <<EOF
1121 #define GCC_$cf_ATTRIBUTE 1
1122 EOF
1123                         ;;
1124                 (scanf)
1125                         cf_scanf_attribute=yes
1126                         cat >conftest.h <<EOF
1127 #define GCC_$cf_ATTRIBUTE 1
1128 EOF
1129                         ;;
1130                 (*)
1131                         cat >conftest.h <<EOF
1132 #define GCC_$cf_ATTRIBUTE $cf_directive
1133 EOF
1134                         ;;
1135                 esac
1136
1137                 if AC_TRY_EVAL(ac_compile); then
1138                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1139                         cat conftest.h >>confdefs.h
1140                         case $cf_attribute in
1141                         (noreturn)
1142                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1143                                 ;;
1144                         (printf)
1145                                 cf_value='/* nothing */'
1146                                 if test "$cf_printf_attribute" != no ; then
1147                                         cf_value='__attribute__((format(printf,fmt,var)))'
1148                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1149                                 fi
1150                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1151                                 ;;
1152                         (scanf)
1153                                 cf_value='/* nothing */'
1154                                 if test "$cf_scanf_attribute" != no ; then
1155                                         cf_value='__attribute__((format(scanf,fmt,var)))'
1156                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1157                                 fi
1158                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1159                                 ;;
1160                         (unused)
1161                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1162                                 ;;
1163                         esac
1164                 fi
1165         done
1166 else
1167         fgrep define conftest.i >>confdefs.h
1168 fi
1169 rm -rf conftest*
1170 fi
1171 ])dnl
1172 dnl ---------------------------------------------------------------------------
1173 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
1174 dnl --------------
1175 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
1176 dnl compatible), attempt to determine if icc/clang is actually used.
1177 AC_DEFUN([CF_GCC_VERSION],[
1178 AC_REQUIRE([AC_PROG_CC])
1179 GCC_VERSION=none
1180 if test "$GCC" = yes ; then
1181         AC_MSG_CHECKING(version of $CC)
1182         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.]].*//'`"
1183         test -z "$GCC_VERSION" && GCC_VERSION=unknown
1184         AC_MSG_RESULT($GCC_VERSION)
1185 fi
1186 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1187 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1188 ])dnl
1189 dnl ---------------------------------------------------------------------------
1190 dnl CF_GCC_WARNINGS version: 36 updated: 2019/09/07 13:38:36
1191 dnl ---------------
1192 dnl Check if the compiler supports useful warning options.  There's a few that
1193 dnl we don't use, simply because they're too noisy:
1194 dnl
1195 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1196 dnl     -Wredundant-decls (system headers make this too noisy)
1197 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
1198 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
1199 dnl             is enabled for ncurses using "--enable-const".
1200 dnl     -pedantic
1201 dnl
1202 dnl Parameter:
1203 dnl     $1 is an optional list of gcc warning flags that a particular
1204 dnl             application might want to use, e.g., "no-unused" for
1205 dnl             -Wno-unused
1206 dnl Special:
1207 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
1208 dnl
1209 AC_DEFUN([CF_GCC_WARNINGS],
1210 [
1211 AC_REQUIRE([CF_GCC_VERSION])
1212 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
1213 cat > conftest.$ac_ext <<EOF
1214 #line __oline__ "${as_me:-configure}"
1215 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1216 EOF
1217 if test "$INTEL_COMPILER" = yes
1218 then
1219 # The "-wdXXX" options suppress warnings:
1220 # remark #1419: external declaration in primary source file
1221 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1222 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1223 # remark #193: zero used for undefined preprocessing identifier
1224 # remark #593: variable "curs_sb_left_arrow" was set but never used
1225 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1226 # remark #869: parameter "tw" was never referenced
1227 # remark #981: operands are evaluated in unspecified order
1228 # warning #279: controlling expression is constant
1229
1230         AC_CHECKING([for $CC warning options])
1231         cf_save_CFLAGS="$CFLAGS"
1232         EXTRA_CFLAGS="-Wall"
1233         for cf_opt in \
1234                 wd1419 \
1235                 wd1683 \
1236                 wd1684 \
1237                 wd193 \
1238                 wd593 \
1239                 wd279 \
1240                 wd810 \
1241                 wd869 \
1242                 wd981
1243         do
1244                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1245                 if AC_TRY_EVAL(ac_compile); then
1246                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1247                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1248                 fi
1249         done
1250         CFLAGS="$cf_save_CFLAGS"
1251 elif test "$GCC" = yes
1252 then
1253         AC_CHECKING([for $CC warning options])
1254         cf_save_CFLAGS="$CFLAGS"
1255         EXTRA_CFLAGS=
1256         cf_warn_CONST=""
1257         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1258         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1259         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1260         for cf_opt in W Wall \
1261                 Wbad-function-cast \
1262                 Wcast-align \
1263                 Wcast-qual \
1264                 Wdeclaration-after-statement \
1265                 Wextra \
1266                 Winline \
1267                 Wmissing-declarations \
1268                 Wmissing-prototypes \
1269                 Wnested-externs \
1270                 Wpointer-arith \
1271                 Wshadow \
1272                 Wstrict-prototypes \
1273                 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1274         do
1275                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1276                 if AC_TRY_EVAL(ac_compile); then
1277                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1278                         case $cf_opt in
1279                         (Winline)
1280                                 case $GCC_VERSION in
1281                                 ([[34]].*)
1282                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1283                                         continue;;
1284                                 esac
1285                                 ;;
1286                         (Wpointer-arith)
1287                                 case $GCC_VERSION in
1288                                 ([[12]].*)
1289                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1290                                         continue;;
1291                                 esac
1292                                 ;;
1293                         esac
1294                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1295                 fi
1296         done
1297         CFLAGS="$cf_save_CFLAGS"
1298 fi
1299 rm -rf conftest*
1300
1301 AC_SUBST(EXTRA_CFLAGS)
1302 ])dnl
1303 dnl ---------------------------------------------------------------------------
1304 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
1305 dnl -----------------
1306 AC_DEFUN([CF_GNATPREP_OPT_T],[
1307 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
1308 cf_cv_gnatprep_opt_t=no
1309 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
1310 ])
1311 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
1312 AC_SUBST(GNATPREP_OPTS)
1313 ])dnl
1314 dnl ---------------------------------------------------------------------------
1315 dnl CF_GNAT_GENERICS version: 3 updated: 2015/04/17 21:13:04
1316 dnl ----------------
1317 AC_DEFUN([CF_GNAT_GENERICS],
1318 [
1319 AC_REQUIRE([CF_GNAT_VERSION])
1320
1321 AC_MSG_CHECKING(if GNAT supports generics)
1322 case $cf_gnat_version in
1323 (3.[[1-9]]*|[[4-9]].*)
1324         cf_gnat_generics=yes
1325         ;;
1326 (*)
1327         cf_gnat_generics=no
1328         ;;
1329 esac
1330 AC_MSG_RESULT($cf_gnat_generics)
1331
1332 if test "$cf_gnat_generics" = yes
1333 then
1334         cf_compile_generics=generics
1335         cf_generic_objects="\${GENOBJS}"
1336 else
1337         cf_compile_generics=
1338         cf_generic_objects=
1339 fi
1340
1341 AC_SUBST(cf_compile_generics)
1342 AC_SUBST(cf_generic_objects)
1343 ])dnl
1344 dnl ---------------------------------------------------------------------------
1345 dnl CF_GNAT_PROJECTS version: 9 updated: 2018/01/14 15:46:09
1346 dnl ----------------
1347 dnl GNAT projects are configured with ".gpr" project files.
1348 dnl GNAT libraries are a further development, using the project feature.
1349 AC_DEFUN([CF_GNAT_PROJECTS],
1350 [
1351 AC_REQUIRE([CF_GNAT_VERSION])
1352 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
1353
1354 cf_gnat_libraries=no
1355 cf_gnat_projects=no
1356
1357 if test "$enable_gnat_projects" != no ; then
1358 AC_MSG_CHECKING(if GNAT supports project files)
1359 case $cf_gnat_version in
1360 (3.[[0-9]]*)
1361         ;;
1362 (*)
1363         case $cf_cv_system_name in
1364         (cygwin*|msys*)
1365                 ;;
1366         (*)
1367                 rm -rf conftest* *~conftest*
1368                 if mkdir conftest.src conftest.bin conftest.lib
1369                 then
1370                         cd conftest.src
1371                         rm -rf conftest* *~conftest*
1372                         cat >>library.gpr <<CF_EOF
1373 project Library is
1374   Kind := External ("LIB_KIND");
1375   for Library_Name use "ConfTest";
1376   for Object_Dir use ".";
1377   for Library_ALI_Dir use External("LIBRARY_DIR");
1378   for Library_Version use External ("SONAME");
1379   for Library_Kind use Kind;
1380   for Library_Dir use External("BUILD_DIR");
1381   Source_Dir := External ("SOURCE_DIR");
1382   for Source_Dirs use (Source_Dir);
1383 end Library;
1384 CF_EOF
1385                         cat >>confpackage.ads <<CF_EOF
1386 package ConfPackage is
1387    procedure conftest;
1388 end ConfPackage;
1389 CF_EOF
1390                         cat >>confpackage.adb <<CF_EOF
1391 with Text_IO;
1392 package body ConfPackage is
1393    procedure conftest is
1394    begin
1395       Text_IO.Put ("Hello World");
1396       Text_IO.New_Line;
1397    end conftest;
1398 end ConfPackage;
1399 CF_EOF
1400                         if ( $cf_ada_make $ADAFLAGS \
1401                                         -Plibrary.gpr \
1402                                         -XBUILD_DIR=`cd ../conftest.bin;pwd` \
1403                                         -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
1404                                         -XSOURCE_DIR=`pwd` \
1405                                         -XSONAME=libConfTest.so.1 \
1406                                         -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
1407                                 cf_gnat_projects=yes
1408                         fi
1409                         cd ..
1410                 fi
1411                 if test -f conftest.lib/confpackage.ali
1412                 then
1413                         cf_gnat_libraries=yes
1414                 fi
1415                 rm -rf conftest* *~conftest*
1416                 ;;
1417         esac
1418         ;;
1419 esac
1420 AC_MSG_RESULT($cf_gnat_projects)
1421 fi # enable_gnat_projects
1422
1423 if test $cf_gnat_projects = yes
1424 then
1425         AC_MSG_CHECKING(if GNAT supports libraries)
1426         AC_MSG_RESULT($cf_gnat_libraries)
1427 fi
1428
1429 if test "$cf_gnat_projects" = yes
1430 then
1431         USE_OLD_MAKERULES="#"
1432         USE_GNAT_PROJECTS=""
1433 else
1434         USE_OLD_MAKERULES=""
1435         USE_GNAT_PROJECTS="#"
1436 fi
1437
1438 if test "$cf_gnat_libraries" = yes
1439 then
1440         USE_GNAT_LIBRARIES=""
1441 else
1442         USE_GNAT_LIBRARIES="#"
1443 fi
1444
1445 AC_SUBST(USE_OLD_MAKERULES)
1446 AC_SUBST(USE_GNAT_PROJECTS)
1447 AC_SUBST(USE_GNAT_LIBRARIES)
1448 ])dnl
1449 dnl ---------------------------------------------------------------------------
1450 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
1451 dnl --------------
1452 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
1453 dnl is noted that gnat may compile a tasking unit even for configurations which
1454 dnl fail at runtime.
1455 AC_DEFUN([CF_GNAT_SIGINT],[
1456 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
1457 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
1458
1459 package ConfTest is
1460
1461    pragma Warnings (Off);  --  the next pragma exists since 3.11p
1462    pragma Unreserve_All_Interrupts;
1463    pragma Warnings (On);
1464
1465    protected Process is
1466       procedure Stop;
1467       function Continue return Boolean;
1468       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
1469    private
1470       Done : Boolean := False;
1471    end Process;
1472
1473 end ConfTest;],
1474 [package body ConfTest is
1475    protected body Process is
1476       procedure Stop is
1477       begin
1478          Done := True;
1479       end Stop;
1480       function Continue return Boolean is
1481       begin
1482          return not Done;
1483       end Continue;
1484    end Process;
1485 end ConfTest;],
1486         [cf_cv_gnat_sigint=yes],
1487         [cf_cv_gnat_sigint=no])])
1488
1489 if test $cf_cv_gnat_sigint = yes ; then
1490         USE_GNAT_SIGINT=""
1491 else
1492         USE_GNAT_SIGINT="#"
1493 fi
1494 AC_SUBST(USE_GNAT_SIGINT)
1495 ])dnl
1496 dnl ---------------------------------------------------------------------------
1497 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
1498 dnl ----------------
1499 dnl Verify that a test program compiles/links with GNAT.
1500 dnl $cf_ada_make is set to the program that compiles/links
1501 dnl $ADAFLAGS may be set to the GNAT flags.
1502 dnl
1503 dnl $1 is the text of the spec
1504 dnl $2 is the text of the body
1505 dnl $3 is the shell command to execute if successful
1506 dnl $4 is the shell command to execute if not successful
1507 AC_DEFUN([CF_GNAT_TRY_LINK],
1508 [
1509 rm -rf conftest* *~conftest*
1510 cat >>conftest.ads <<CF_EOF
1511 $1
1512 CF_EOF
1513 cat >>conftest.adb <<CF_EOF
1514 $2
1515 CF_EOF
1516 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1517 ifelse($3,,      :,[      $3])
1518 ifelse($4,,,[else
1519    $4])
1520 fi
1521 rm -rf conftest* *~conftest*
1522 ])dnl
1523 dnl ---------------------------------------------------------------------------
1524 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
1525 dnl ---------------
1526 dnl Verify that a test program compiles and runs with GNAT
1527 dnl $cf_ada_make is set to the program that compiles/links
1528 dnl $ADAFLAGS may be set to the GNAT flags.
1529 dnl
1530 dnl $1 is the text of the spec
1531 dnl $2 is the text of the body
1532 dnl $3 is the shell command to execute if successful
1533 dnl $4 is the shell command to execute if not successful
1534 AC_DEFUN([CF_GNAT_TRY_RUN],
1535 [
1536 rm -rf conftest* *~conftest*
1537 cat >>conftest.ads <<CF_EOF
1538 $1
1539 CF_EOF
1540 cat >>conftest.adb <<CF_EOF
1541 $2
1542 CF_EOF
1543 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1544    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1545 ifelse($3,,      :,[      $3])
1546 ifelse($4,,,[   else
1547       $4])
1548    fi
1549 ifelse($4,,,[else
1550    $4])
1551 fi
1552 rm -rf conftest* *~conftest*
1553 ])dnl
1554 dnl ---------------------------------------------------------------------------
1555 dnl CF_GNAT_VERSION version: 21 updated: 2019/09/21 18:08:42
1556 dnl ---------------
1557 dnl $1 = cache variable to update
1558 dnl $2 = program name
1559 dnl Verify version of GNAT or related tool
1560 AC_DEFUN([CF_GNAT_VERSION],
1561 [
1562 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_gnat_version,[
1563 cf_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
1564         grep '[[0-9]].[[0-9]][[0-9]]*' |\
1565         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1566 ])
1567 test -z "$cf_gnat_version" && cf_gnat_version=no
1568 ifelse($1,,,[eval $1=$cf_gnat_version; unset cf_gnat_version])
1569 ])dnl
1570 dnl ---------------------------------------------------------------------------
1571 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1572 dnl -------------
1573 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1574 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1575 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1576 dnl since it is interwoven with GNU extensions.
1577 dnl
1578 dnl Well, yes we could work around it...
1579 dnl
1580 dnl Parameters:
1581 dnl     $1 is the nominal value for _XOPEN_SOURCE
1582 AC_DEFUN([CF_GNU_SOURCE],
1583 [
1584 cf_gnu_xopen_source=ifelse($1,,500,$1)
1585
1586 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1587 AC_TRY_COMPILE([#include <sys/types.h>],[
1588         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1589                 return 0;
1590         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1591                 return 0;
1592         #else
1593         #       error not GNU C library
1594         #endif],
1595         [cf_cv_gnu_library=yes],
1596         [cf_cv_gnu_library=no])
1597 ])
1598
1599 if test x$cf_cv_gnu_library = xyes; then
1600
1601         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1602         # was changed to help a little.  newlib incorporated the change about 4
1603         # years later.
1604         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1605                 cf_save="$CPPFLAGS"
1606                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1607                 AC_TRY_COMPILE([#include <sys/types.h>],[
1608                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1609                                 return 0;
1610                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1611                                 return 0;
1612                         #else
1613                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1614                         #endif],
1615                         [cf_cv_gnu_library_219=yes],
1616                         [cf_cv_gnu_library_219=no])
1617                 CPPFLAGS="$cf_save"
1618         ])
1619
1620         if test "x$cf_cv_gnu_library_219" = xyes; then
1621                 cf_save="$CPPFLAGS"
1622                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
1623                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
1624                         AC_TRY_COMPILE([
1625                                 #include <limits.h>
1626                                 #include <sys/types.h>
1627                                 ],[
1628                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
1629                                         return 0;
1630                                 #else
1631                                 #       error GNU C library is too old
1632                                 #endif],
1633                                 [cf_cv_gnu_dftsrc_219=yes],
1634                                 [cf_cv_gnu_dftsrc_219=no])
1635                         ])
1636                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
1637         else
1638                 cf_cv_gnu_dftsrc_219=maybe
1639         fi
1640
1641         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
1642
1643                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1644                 AC_TRY_COMPILE([#include <sys/types.h>],[
1645                         #ifndef _XOPEN_SOURCE
1646                         #error  expected _XOPEN_SOURCE to be defined
1647                         #endif],
1648                         [cf_cv_gnu_source=no],
1649                         [cf_save="$CPPFLAGS"
1650                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
1651                          AC_TRY_COMPILE([#include <sys/types.h>],[
1652                                 #ifdef _XOPEN_SOURCE
1653                                 #error  expected _XOPEN_SOURCE to be undefined
1654                                 #endif],
1655                                 [cf_cv_gnu_source=no],
1656                                 [cf_cv_gnu_source=yes])
1657                         CPPFLAGS="$cf_save"
1658                         ])
1659                 ])
1660
1661                 if test "$cf_cv_gnu_source" = yes
1662                 then
1663                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1664                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
1665                         AC_TRY_COMPILE([#include <sys/types.h>],[
1666                                 #ifdef _DEFAULT_SOURCE
1667                                 #error  expected _DEFAULT_SOURCE to be undefined
1668                                 #endif],
1669                                 [cf_cv_default_source=no],
1670                                 [cf_cv_default_source=yes])
1671                         ])
1672                         if test "$cf_cv_default_source" = yes
1673                         then
1674                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1675                         fi
1676                 fi
1677         fi
1678
1679 fi
1680 ])dnl
1681 dnl ---------------------------------------------------------------------------
1682 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1683 dnl --------------
1684 dnl Construct a search-list of directories for a nonstandard header-file
1685 dnl
1686 dnl Parameters
1687 dnl     $1 = the variable to return as result
1688 dnl     $2 = the package name
1689 AC_DEFUN([CF_HEADER_PATH],
1690 [
1691 $1=
1692
1693 # collect the current set of include-directories from compiler flags
1694 cf_header_path_list=""
1695 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1696         for cf_header_path in $CPPFLAGS $CFLAGS
1697         do
1698                 case $cf_header_path in
1699                 (-I*)
1700                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1701                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1702                         cf_header_path_list="$cf_header_path_list [$]$1"
1703                         ;;
1704                 esac
1705         done
1706 fi
1707
1708 # add the variations for the package we are looking for
1709 CF_SUBDIR_PATH($1,$2,include)
1710
1711 test "$includedir" != NONE && \
1712 test "$includedir" != "/usr/include" && \
1713 test -d "$includedir" && {
1714         test -d $includedir &&    $1="[$]$1 $includedir"
1715         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1716 }
1717
1718 test "$oldincludedir" != NONE && \
1719 test "$oldincludedir" != "/usr/include" && \
1720 test -d "$oldincludedir" && {
1721         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
1722         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1723 }
1724
1725 $1="[$]$1 $cf_header_path_list"
1726 ])dnl
1727 dnl ---------------------------------------------------------------------------
1728 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1729 dnl ---------------
1730 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1731 AC_DEFUN([CF_HELP_MESSAGE],
1732 [AC_DIVERT_HELP([$1])dnl
1733 ])dnl
1734 dnl ---------------------------------------------------------------------------
1735 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
1736 dnl ---------------
1737 dnl Construct the list of include-options according to whether we're building
1738 dnl in the source directory or using '--srcdir=DIR' option.
1739 AC_DEFUN([CF_INCLUDE_DIRS],
1740 [
1741 if test "$srcdir" != "."; then
1742         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
1743 fi
1744 CPPFLAGS="-I../include $CPPFLAGS"
1745 if test "$srcdir" != "."; then
1746         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
1747 fi
1748 CPPFLAGS="-I. $CPPFLAGS"
1749 AC_SUBST(CPPFLAGS)
1750 ])dnl
1751 dnl ---------------------------------------------------------------------------
1752 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
1753 dnl ---------------
1754 dnl prompt for/fill-in useful install-program options
1755 AC_DEFUN([CF_INSTALL_OPTS],
1756 [
1757 CF_INSTALL_OPT_S
1758 CF_INSTALL_OPT_P
1759 CF_INSTALL_OPT_O
1760 ])dnl
1761 dnl ---------------------------------------------------------------------------
1762 dnl CF_INSTALL_OPT_O version: 2 updated: 2015/05/15 19:45:35
1763 dnl ----------------
1764 dnl Almost all "install" programs default to the current user's ownership.
1765 dnl Almost - MINIX is an exception.
1766 AC_DEFUN([CF_INSTALL_OPT_O],
1767 [
1768 AC_MSG_CHECKING(if install needs to be told about ownership)
1769 case `$ac_config_guess` in
1770 (*minix)
1771         with_install_o=yes
1772         ;;
1773 (*)
1774         with_install_o=no
1775         ;;
1776 esac
1777
1778 AC_MSG_RESULT($with_install_o)
1779 if test "x$with_install_o" = xyes
1780 then
1781         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'`
1782 else
1783         INSTALL_OPT_O=
1784 fi
1785
1786 AC_SUBST(INSTALL_OPT_O)
1787 ])dnl
1788 dnl ---------------------------------------------------------------------------
1789 dnl CF_INSTALL_OPT_P version: 1 updated: 2018/08/18 12:19:21
1790 dnl ----------------
1791 dnl Some install-programs accept a "-p" option to preserve file modification
1792 dnl timestamps.  That can be useful as an install option, as well as a way to
1793 dnl avoid the need for ranlib after copying a static archive.
1794 AC_DEFUN([CF_INSTALL_OPT_P],
1795 [
1796 : ${INSTALL:=install}
1797 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
1798         rm -rf conftest*
1799         date >conftest.in
1800         mkdir conftest.out
1801         sleep 3
1802         if $INSTALL -p conftest.in conftest.out 2>/dev/null
1803         then
1804                 if test -f conftest.out/conftest.in
1805                 then
1806                         test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
1807                         test conftest.out/conftest.in -nt conftest.in 2>conftest.err
1808                         if test -s conftest.err
1809                         then
1810                                 cf_cv_install_p=no
1811                         else
1812                                 cf_cv_install_p=yes
1813                         fi
1814                 else
1815                         cf_cv_install_p=no
1816                 fi
1817         else
1818                 cf_cv_install_p=no
1819         fi
1820         rm -rf conftest*
1821 ])
1822 ])dnl
1823 dnl ---------------------------------------------------------------------------
1824 dnl CF_INSTALL_OPT_S version: 2 updated: 2018/08/18 12:19:21
1825 dnl ----------------
1826 dnl By default, we should strip executables which are installed, but leave the
1827 dnl ability to suppress that for unit-testing.
1828 AC_DEFUN([CF_INSTALL_OPT_S],
1829 [
1830 AC_MSG_CHECKING(if you want to install stripped executables)
1831 CF_ARG_DISABLE(stripping,
1832         [  --disable-stripping     do not strip (debug info) installed executables],
1833         [with_stripping=no],
1834         [with_stripping=yes])
1835 AC_MSG_RESULT($with_stripping)
1836
1837 if test "$with_stripping" = yes
1838 then
1839         INSTALL_OPT_S="-s"
1840 else
1841         INSTALL_OPT_S=
1842 fi
1843 AC_SUBST(INSTALL_OPT_S)
1844 ])dnl
1845 dnl ---------------------------------------------------------------------------
1846 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1847 dnl -----------------
1848 dnl Check if the given compiler is really the Intel compiler for Linux.  It
1849 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1850 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1851 dnl
1852 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1853 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1854 dnl the wrappers for gcc and g++ warnings.
1855 dnl
1856 dnl $1 = GCC (default) or GXX
1857 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1858 dnl $3 = CFLAGS (default) or CXXFLAGS
1859 AC_DEFUN([CF_INTEL_COMPILER],[
1860 AC_REQUIRE([AC_CANONICAL_HOST])
1861 ifelse([$2],,INTEL_COMPILER,[$2])=no
1862
1863 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1864         case $host_os in
1865         (linux*|gnu*)
1866                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1867                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1868                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1869                 AC_TRY_COMPILE([],[
1870 #ifdef __INTEL_COMPILER
1871 #else
1872 make an error
1873 #endif
1874 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1875 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1876 ],[])
1877                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1878                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1879                 ;;
1880         esac
1881 fi
1882 ])dnl
1883 dnl ---------------------------------------------------------------------------
1884 dnl CF_LARGEFILE version: 11 updated: 2018/06/20 20:23:13
1885 dnl ------------
1886 dnl Add checks for large file support.
1887 AC_DEFUN([CF_LARGEFILE],[
1888 ifdef([AC_FUNC_FSEEKO],[
1889         AC_SYS_LARGEFILE
1890         if test "$enable_largefile" != no ; then
1891         AC_FUNC_FSEEKO
1892
1893         # Normally we would collect these definitions in the config.h,
1894         # but (like _XOPEN_SOURCE), some environments rely on having these
1895         # defined before any of the system headers are included.  Another
1896         # case comes up with C++, e.g., on AIX the compiler compiles the
1897         # header files by themselves before looking at the body files it is
1898         # told to compile.  For ncurses, those header files do not include
1899         # the config.h
1900         if test "$ac_cv_sys_large_files" != no
1901         then
1902                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
1903         fi
1904         if test "$ac_cv_sys_largefile_source" != no
1905         then
1906                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
1907         fi
1908         if test "$ac_cv_sys_file_offset_bits" != no
1909         then
1910                 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
1911         fi
1912
1913         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
1914                 AC_TRY_COMPILE([
1915 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
1916 #include <sys/types.h>
1917 #include <dirent.h>
1918                 ],[
1919                 /* if transitional largefile support is setup, this is true */
1920                 extern struct dirent64 * readdir(DIR *);
1921                 struct dirent64 *x = readdir((DIR *)0);
1922                 struct dirent *y = readdir((DIR *)0);
1923                 int z = x - y;
1924                 ],
1925                 [cf_cv_struct_dirent64=yes],
1926                 [cf_cv_struct_dirent64=no])
1927         ])
1928         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
1929         fi
1930 ])
1931 ])
1932 dnl ---------------------------------------------------------------------------
1933 dnl CF_LD_RPATH_OPT version: 8 updated: 2018/08/18 16:36:35
1934 dnl ---------------
1935 dnl For the given system and compiler, find the compiler flags to pass to the
1936 dnl loader to use the "rpath" feature.
1937 AC_DEFUN([CF_LD_RPATH_OPT],
1938 [
1939 AC_REQUIRE([CF_CHECK_CACHE])
1940
1941 LD_RPATH_OPT=
1942 if test "x$cf_cv_enable_rpath" != xno
1943 then
1944         AC_MSG_CHECKING(for an rpath option)
1945         case $cf_cv_system_name in
1946         (irix*)
1947                 if test "$GCC" = yes; then
1948                         LD_RPATH_OPT="-Wl,-rpath,"
1949                 else
1950                         LD_RPATH_OPT="-rpath "
1951                 fi
1952                 ;;
1953         (linux*|gnu*|k*bsd*-gnu|freebsd*)
1954                 LD_RPATH_OPT="-Wl,-rpath,"
1955                 ;;
1956         (openbsd[[2-9]].*|mirbsd*)
1957                 LD_RPATH_OPT="-Wl,-rpath,"
1958                 ;;
1959         (dragonfly*)
1960                 LD_RPATH_OPT="-rpath "
1961                 ;;
1962         (netbsd*)
1963                 LD_RPATH_OPT="-Wl,-rpath,"
1964                 ;;
1965         (osf*|mls+*)
1966                 LD_RPATH_OPT="-rpath "
1967                 ;;
1968         (solaris2*)
1969                 LD_RPATH_OPT="-R"
1970                 ;;
1971         (*)
1972                 ;;
1973         esac
1974         AC_MSG_RESULT($LD_RPATH_OPT)
1975
1976         case "x$LD_RPATH_OPT" in
1977         (x-R*)
1978                 AC_MSG_CHECKING(if we need a space after rpath option)
1979                 cf_save_LIBS="$LIBS"
1980                 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1981                 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1982                 LIBS="$cf_save_LIBS"
1983                 AC_MSG_RESULT($cf_rpath_space)
1984                 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1985                 ;;
1986         esac
1987 fi
1988 ])dnl
1989 dnl ---------------------------------------------------------------------------
1990 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1991 dnl ---------------
1992 dnl Construct a search-list of directories for a nonstandard library-file
1993 dnl
1994 dnl Parameters
1995 dnl     $1 = the variable to return as result
1996 dnl     $2 = the package name
1997 AC_DEFUN([CF_LIBRARY_PATH],
1998 [
1999 $1=
2000 cf_library_path_list=""
2001 if test -n "${LDFLAGS}${LIBS}" ; then
2002         for cf_library_path in $LDFLAGS $LIBS
2003         do
2004                 case $cf_library_path in
2005                 (-L*)
2006                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2007                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2008                         cf_library_path_list="$cf_library_path_list [$]$1"
2009                         ;;
2010                 esac
2011         done
2012 fi
2013
2014 CF_SUBDIR_PATH($1,$2,lib)
2015
2016 $1="$cf_library_path_list [$]$1"
2017 ])dnl
2018 dnl ---------------------------------------------------------------------------
2019 dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33
2020 dnl -------------
2021 dnl Compute the library-prefix for the given host system
2022 dnl $1 = variable to set
2023 define([CF_LIB_PREFIX],
2024 [
2025         case $cf_cv_system_name in
2026         (OS/2*|os2*)
2027                 if test "$DFT_LWR_MODEL" = libtool; then
2028                         LIB_PREFIX='lib'
2029                 else
2030                         LIB_PREFIX=''
2031                 fi
2032                 ;;
2033         (*)     LIB_PREFIX='lib'
2034                 ;;
2035         esac
2036 ifelse($1,,,[$1=$LIB_PREFIX])
2037         AC_SUBST(LIB_PREFIX)
2038 ])dnl
2039 dnl ---------------------------------------------------------------------------
2040 dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04
2041 dnl -------------
2042 dnl Compute the library file-suffix from the given model name
2043 dnl $1 = model name
2044 dnl $2 = variable to set (the nominal library suffix)
2045 dnl $3 = dependency variable to set (actual filename)
2046 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2047 AC_DEFUN([CF_LIB_SUFFIX],
2048 [
2049         case X$1 in
2050         (Xlibtool)
2051                 $2='.la'
2052                 $3=[$]$2
2053                 ;;
2054         (Xdebug)
2055                 $2='_g.a'
2056                 $3=[$]$2
2057                 ;;
2058         (Xprofile)
2059                 $2='_p.a'
2060                 $3=[$]$2
2061                 ;;
2062         (Xshared)
2063                 case $cf_cv_system_name in
2064                 (aix[[5-7]]*)
2065                         $2='.so'
2066                         $3=[$]$2
2067                         ;;
2068                 (cygwin*|msys*|mingw*)
2069                         $2='.dll'
2070                         $3='.dll.a'
2071                         ;;
2072                 (darwin*)
2073                         $2='.dylib'
2074                         $3=[$]$2
2075                         ;;
2076                 (hpux*)
2077                         case $target in
2078                         (ia64*)
2079                                 $2='.so'
2080                                 $3=[$]$2
2081                                 ;;
2082                         (*)
2083                                 $2='.sl'
2084                                 $3=[$]$2
2085                                 ;;
2086                         esac
2087                         ;;
2088                 (*)
2089                         $2='.so'
2090                         $3=[$]$2
2091                         ;;
2092                 esac
2093                 ;;
2094         (*)
2095                 $2='.a'
2096                 $3=[$]$2
2097                 ;;
2098         esac
2099         if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
2100         then
2101                 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
2102                 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
2103         fi
2104 ])dnl
2105 dnl ---------------------------------------------------------------------------
2106 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
2107 dnl -----------
2108 dnl Compute the string to append to -library from the given model name
2109 dnl $1 = model name
2110 dnl $2 = variable to set
2111 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2112 AC_DEFUN([CF_LIB_TYPE],
2113 [
2114         case $1 in
2115         (libtool) $2=''   ;;
2116         (normal)  $2=''   ;;
2117         (debug)   $2='_g' ;;
2118         (profile) $2='_p' ;;
2119         (shared)  $2=''   ;;
2120         esac
2121         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2122 ])dnl
2123 dnl ---------------------------------------------------------------------------
2124 dnl CF_LINK_DATAONLY version: 12 updated: 2017/07/23 17:46:07
2125 dnl ----------------
2126 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2127 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
2128 dnl have to provide wrappers for global tables to ensure they're linked
2129 dnl properly.
2130 AC_DEFUN([CF_LINK_DATAONLY],
2131 [
2132 AC_MSG_CHECKING([if data-only library module links])
2133 AC_CACHE_VAL(cf_cv_link_dataonly,[
2134         rm -f conftest.a
2135         cat >conftest.$ac_ext <<EOF
2136 #line __oline__ "configure"
2137 int     testdata[[3]] = { 123, 456, 789 };
2138 EOF
2139         if AC_TRY_EVAL(ac_compile) ; then
2140                 mv conftest.o data.o && \
2141                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2142         fi
2143         rm -f conftest.$ac_ext data.o
2144         cat >conftest.$ac_ext <<EOF
2145 #line __oline__ "configure"
2146 int     testfunc(void)
2147 {
2148 #if defined(NeXT)
2149         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
2150 #else
2151         extern int testdata[[3]];
2152         return testdata[[0]] == 123
2153            &&  testdata[[1]] == 456
2154            &&  testdata[[2]] == 789;
2155 #endif
2156 }
2157 EOF
2158         if AC_TRY_EVAL(ac_compile); then
2159                 mv conftest.o func.o && \
2160                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2161         fi
2162         rm -f conftest.$ac_ext func.o
2163         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2164         cf_saveLIBS="$LIBS"
2165         LIBS="conftest.a $LIBS"
2166         AC_TRY_RUN([
2167         int main(void)
2168         {
2169                 extern int testfunc();
2170                 ${cf_cv_main_return:-return} (!testfunc());
2171         }
2172         ],
2173         [cf_cv_link_dataonly=yes],
2174         [cf_cv_link_dataonly=no],
2175         [cf_cv_link_dataonly=unknown])
2176         LIBS="$cf_saveLIBS"
2177         ])
2178 AC_MSG_RESULT($cf_cv_link_dataonly)
2179
2180 if test "$cf_cv_link_dataonly" = no ; then
2181         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
2182         BROKEN_LINKER=1
2183 fi
2184
2185 ])dnl
2186 dnl ---------------------------------------------------------------------------
2187 dnl CF_MAKEFLAGS version: 18 updated: 2018/02/21 21:26:03
2188 dnl ------------
2189 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2190 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
2191 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2192 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2193 AC_DEFUN([CF_MAKEFLAGS],
2194 [
2195 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2196         cf_cv_makeflags=''
2197         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2198         do
2199                 cat >cf_makeflags.tmp <<CF_EOF
2200 SHELL = $SHELL
2201 all :
2202         @ echo '.$cf_option'
2203 CF_EOF
2204                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[   ]]*$,,'`
2205                 case "$cf_result" in
2206                 (.*k|.*kw)
2207                         cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2208                         case "$cf_result" in
2209                         (.*CC=*)        cf_cv_makeflags=
2210                                 ;;
2211                         (*)     cf_cv_makeflags=$cf_option
2212                                 ;;
2213                         esac
2214                         break
2215                         ;;
2216                 (.-)
2217                         ;;
2218                 (*)
2219                         CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
2220                         ;;
2221                 esac
2222         done
2223         rm -f cf_makeflags.tmp
2224 ])
2225
2226 AC_SUBST(cf_cv_makeflags)
2227 ])dnl
2228 dnl ---------------------------------------------------------------------------
2229 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2230 dnl ------------
2231 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
2232 dnl a monocase filesystem.
2233 AC_DEFUN([CF_MAKE_TAGS],[
2234 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2235
2236 AC_CHECK_PROGS(CTAGS, exctags ctags)
2237 AC_CHECK_PROGS(ETAGS, exetags etags)
2238
2239 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2240
2241 if test "$cf_cv_mixedcase" = yes ; then
2242         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2243 else
2244         MAKE_UPPER_TAGS=no
2245 fi
2246
2247 if test "$MAKE_UPPER_TAGS" = yes ; then
2248         MAKE_UPPER_TAGS=
2249 else
2250         MAKE_UPPER_TAGS="#"
2251 fi
2252
2253 if test "$MAKE_LOWER_TAGS" = yes ; then
2254         MAKE_LOWER_TAGS=
2255 else
2256         MAKE_LOWER_TAGS="#"
2257 fi
2258
2259 AC_SUBST(CTAGS)
2260 AC_SUBST(ETAGS)
2261
2262 AC_SUBST(MAKE_UPPER_TAGS)
2263 AC_SUBST(MAKE_LOWER_TAGS)
2264 ])dnl
2265 dnl ---------------------------------------------------------------------------
2266 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
2267 dnl ----------------------
2268 dnl Check if the file-system supports mixed-case filenames.  If we're able to
2269 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2270 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2271 [
2272 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2273 if test "$cross_compiling" = yes ; then
2274         case $target_alias in
2275         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
2276                 cf_cv_mixedcase=no
2277                 ;;
2278         (*)
2279                 cf_cv_mixedcase=yes
2280                 ;;
2281         esac
2282 else
2283         rm -f conftest CONFTEST
2284         echo test >conftest
2285         if test -f CONFTEST ; then
2286                 cf_cv_mixedcase=no
2287         else
2288                 cf_cv_mixedcase=yes
2289         fi
2290         rm -f conftest CONFTEST
2291 fi
2292 ])
2293 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2294 ])dnl
2295 dnl ---------------------------------------------------------------------------
2296 dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16
2297 dnl ----------
2298 dnl Check for a working mkstemp.  This creates two files, checks that they are
2299 dnl successfully created and distinct (AmigaOS apparently fails on the last).
2300 AC_DEFUN([CF_MKSTEMP],[
2301 AC_CHECK_HEADERS( \
2302 unistd.h \
2303 )
2304 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
2305 rm -rf conftest*
2306 AC_TRY_RUN([
2307 #include <sys/types.h>
2308 #ifdef HAVE_UNISTD_H
2309 #include <unistd.h>
2310 #endif
2311 #include <stdlib.h>
2312 #include <stdio.h>
2313 #include <string.h>
2314 #include <sys/stat.h>
2315 int main(void)
2316 {
2317         char *tmpl = "conftestXXXXXX";
2318         char name[2][80];
2319         int n;
2320         int result = 0;
2321         int fd;
2322         struct stat sb;
2323
2324         umask(077);
2325         for (n = 0; n < 2; ++n) {
2326                 strcpy(name[n], tmpl);
2327                 if ((fd = mkstemp(name[n])) >= 0) {
2328                         if (!strcmp(name[n], tmpl)
2329                          || stat(name[n], &sb) != 0
2330                          || (sb.st_mode & S_IFMT) != S_IFREG
2331                          || (sb.st_mode & 077) != 0) {
2332                                 result = 1;
2333                         }
2334                         close(fd);
2335                 }
2336         }
2337         if (result == 0
2338          && !strcmp(name[0], name[1]))
2339                 result = 1;
2340         ${cf_cv_main_return:-return}(result);
2341 }
2342 ],[cf_cv_func_mkstemp=yes
2343 ],[cf_cv_func_mkstemp=no
2344 ],[cf_cv_func_mkstemp=maybe])
2345 ])
2346 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
2347         AC_CHECK_FUNC(mkstemp)
2348 fi
2349 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
2350         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
2351 fi
2352 ])dnl
2353 dnl ---------------------------------------------------------------------------
2354 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2355 dnl ----------
2356 dnl Write a debug message to config.log, along with the line number in the
2357 dnl configure script.
2358 AC_DEFUN([CF_MSG_LOG],[
2359 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2360 ])dnl
2361 dnl ---------------------------------------------------------------------------
2362 dnl CF_NCURSES_ADDON version: 5 updated: 2015/04/26 18:06:58
2363 dnl ----------------
2364 dnl Configure an ncurses add-on, built outside the ncurses tree.
2365 AC_DEFUN([CF_NCURSES_ADDON],[
2366 AC_REQUIRE([CF_NCURSES_CONFIG])
2367
2368 AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
2369
2370 AC_MSG_CHECKING(if you want wide-character code)
2371 AC_ARG_ENABLE(widec,
2372         [  --enable-widec          compile with wide-char/UTF-8 code],
2373         [with_widec=$enableval],
2374         [with_widec=no])
2375 AC_MSG_RESULT($with_widec)
2376 if test "$with_widec" = yes ; then
2377         CF_UTF8_LIB
2378         CF_NCURSES_CONFIG(ncursesw)
2379 else
2380         CF_NCURSES_CONFIG(ncurses)
2381 fi
2382
2383 if test "$NCURSES_CONFIG_PKG" != none ; then
2384         cf_version=`$PKG_CONFIG --modversion $NCURSES_CONFIG_PKG 2>/dev/null`
2385
2386         NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2387         NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2388         NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2389
2390         cf_cv_abi_version=`$PKG_CONFIG --variable=abi_version $NCURSES_CONFIG_PKG 2>/dev/null`
2391         if test -z "$cf_cv_abi_version"
2392         then
2393                 cf_cv_abi_version=`$PKG_CONFIG --variable=major_version $NCURSES_CONFIG_PKG 2>/dev/null`
2394         fi
2395
2396 elif test "$NCURSES_CONFIG" != none ; then
2397
2398         cf_version=`$NCURSES_CONFIG --version 2>/dev/null`
2399
2400         NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2401         NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2402         NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2403
2404         # ABI version is not available from headers
2405         cf_cv_abi_version=`$NCURSES_CONFIG --abi-version 2>/dev/null`
2406
2407 else
2408
2409         for cf_name in MAJOR MINOR PATCH
2410         do
2411         cat >conftest.$ac_ext <<CF_EOF
2412         #include <${cf_cv_ncurses_header:-curses.h}>
2413         AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
2414 CF_EOF
2415                 cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
2416                 AC_TRY_EVAL(cf_try)
2417                 if test -f conftest.out ; then
2418                         cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[[  ]][[    ]]*//"`
2419                         eval NCURSES_$cf_name=\"$cf_result\"
2420                         # cat conftest.$ac_ext
2421                         # cat conftest.out
2422                 fi
2423         done
2424
2425         cf_cv_abi_version=${NCURSES_MAJOR}
2426
2427 fi
2428
2429 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
2430
2431 dnl Show the computed version, for logging
2432 cf_cv_timestamp=`date`
2433
2434 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
2435
2436 dnl We need these values in the generated headers
2437 AC_SUBST(NCURSES_MAJOR)
2438 AC_SUBST(NCURSES_MINOR)
2439 AC_SUBST(NCURSES_PATCH)
2440
2441 dnl We need these values in the generated makefiles
2442 AC_SUBST(cf_cv_rel_version)
2443 AC_SUBST(cf_cv_abi_version)
2444
2445 dnl FIXME - not needed for Ada95
2446 AC_SUBST(cf_cv_builtin_bool)
2447 AC_SUBST(cf_cv_header_stdbool_h)
2448 AC_SUBST(cf_cv_type_of_bool)dnl
2449
2450 ])
2451 dnl ---------------------------------------------------------------------------
2452 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2453 dnl -------------------
2454 dnl Check if we can compile with ncurses' header file
2455 dnl $1 is the cache variable to set
2456 dnl $2 is the header-file to include
2457 dnl $3 is the root name (ncurses or ncursesw)
2458 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2459         AC_TRY_COMPILE([
2460 ]ifelse($3,ncursesw,[
2461 #define _XOPEN_SOURCE_EXTENDED
2462 #undef  HAVE_LIBUTF8_H  /* in case we used CF_UTF8_LIB */
2463 #define HAVE_LIBUTF8_H  /* to force ncurses' header file to use cchar_t */
2464 ])[
2465 #include <$2>],[
2466 #ifdef NCURSES_VERSION
2467 ]ifelse($3,ncursesw,[
2468 #ifndef WACS_BSSB
2469         make an error
2470 #endif
2471 ])[
2472 printf("%s\n", NCURSES_VERSION);
2473 #else
2474 #ifdef __NCURSES_H
2475 printf("old\n");
2476 #else
2477         make an error
2478 #endif
2479 #endif
2480         ]
2481         ,[$1=$2]
2482         ,[$1=no])
2483 ])dnl
2484 dnl ---------------------------------------------------------------------------
2485 dnl CF_NCURSES_CONFIG version: 21 updated: 2018/06/20 20:23:13
2486 dnl -----------------
2487 dnl Tie together the configure-script macros for ncurses, preferring these in
2488 dnl order:
2489 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2490 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2491 dnl c) just plain libraries
2492 dnl
2493 dnl $1 is the root library name (default: "ncurses")
2494 AC_DEFUN([CF_NCURSES_CONFIG],[
2495 AC_REQUIRE([CF_PKG_CONFIG])
2496 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2497 cf_have_ncuconfig=no
2498
2499 if test "x${PKG_CONFIG:=none}" != xnone; then
2500         AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2501         if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2502                 AC_MSG_RESULT(yes)
2503
2504                 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2505                 cf_have_ncuconfig=unknown
2506
2507                 cf_save_CPPFLAGS="$CPPFLAGS"
2508                 cf_save_LIBS="$LIBS"
2509
2510                 CF_ADD_CFLAGS(`$PKG_CONFIG --cflags $cf_ncuconfig_root`)
2511                 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
2512
2513                 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2514                         [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2515                         [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2516                                 int main(void)
2517                                 { char *xx = curses_version(); return (xx == 0); }],
2518                                 [cf_have_ncuconfig=yes],
2519                                 [cf_have_ncuconfig=no],
2520                                 [cf_have_ncuconfig=maybe])],
2521                         [cf_have_ncuconfig=no])
2522                 AC_MSG_RESULT($cf_have_ncuconfig)
2523                 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2524                 if test "$cf_have_ncuconfig" != "yes"
2525                 then
2526                         CPPFLAGS="$cf_save_CPPFLAGS"
2527                         LIBS="$cf_save_LIBS"
2528                         NCURSES_CONFIG_PKG=none
2529                 else
2530                         AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2531                         NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2532                         CF_TERM_HEADER
2533                 fi
2534
2535         else
2536                 AC_MSG_RESULT(no)
2537                 NCURSES_CONFIG_PKG=none
2538         fi
2539 else
2540         NCURSES_CONFIG_PKG=none
2541 fi
2542
2543 if test "x$cf_have_ncuconfig" = "xno"; then
2544         cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
2545
2546         CF_ACVERSION_CHECK(2.52,
2547                 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2548                 [AC_PATH_PROGS(NCURSES_CONFIG,  ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2549
2550         if test "$NCURSES_CONFIG" != none ; then
2551
2552                 CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
2553                 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2554
2555                 # even with config script, some packages use no-override for curses.h
2556                 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2557
2558                 dnl like CF_NCURSES_CPPFLAGS
2559                 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2560
2561                 dnl like CF_NCURSES_LIBS
2562                 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2563                 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2564
2565                 dnl like CF_NCURSES_VERSION
2566                 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2567
2568         else
2569
2570                 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2571                 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2572
2573         fi
2574 else
2575         NCURSES_CONFIG=none
2576 fi
2577 ])dnl
2578 dnl ---------------------------------------------------------------------------
2579 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2580 dnl -------------------
2581 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2582 dnl the CPPFLAGS variable so we can include its header.
2583 dnl
2584 dnl The header files may be installed as either curses.h, or ncurses.h (would
2585 dnl be obsolete, except that some packagers prefer this name to distinguish it
2586 dnl from a "native" curses implementation).  If not installed for overwrite,
2587 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2588 dnl /usr/include/ncurses), but someone may have installed overwriting the
2589 dnl vendor's curses.  Only very old versions (pre-1.9.2d, the first autoconf'd
2590 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2591 dnl the header.
2592 dnl
2593 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2594 dnl is already in the include-path, don't even bother with this, since we cannot
2595 dnl easily determine which file it is.  In this case, it has to be <curses.h>.
2596 dnl
2597 dnl The optional parameter gives the root name of the library, in case it is
2598 dnl not installed as the default curses library.  That is how the
2599 dnl wide-character version of ncurses is installed.
2600 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2601 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2602
2603 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2604 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2605
2606 test -n "$cf_cv_curses_dir" && \
2607 test "$cf_cv_curses_dir" != "no" && { \
2608   CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2609 }
2610
2611 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2612         cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2613         ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2614         for cf_header in $cf_header_list
2615         do
2616                 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2617                 test "$cf_cv_ncurses_h" != no && break
2618         done
2619 ])
2620
2621 CF_NCURSES_HEADER
2622 CF_TERM_HEADER
2623
2624 # some applications need this, but should check for NCURSES_VERSION
2625 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2626
2627 CF_NCURSES_VERSION
2628 ])dnl
2629 dnl ---------------------------------------------------------------------------
2630 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2631 dnl -----------------
2632 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2633 dnl variations of ncurses' installs.
2634 dnl
2635 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2636 AC_DEFUN([CF_NCURSES_HEADER],[
2637
2638 if test "$cf_cv_ncurses_h" != no ; then
2639         cf_cv_ncurses_header=$cf_cv_ncurses_h
2640 else
2641
2642 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2643         test -n "$verbose" && echo
2644         CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2645         test -n "$verbose" && echo search path $cf_search
2646         cf_save2_CPPFLAGS="$CPPFLAGS"
2647         for cf_incdir in $cf_search
2648         do
2649                 CF_ADD_INCDIR($cf_incdir)
2650                 for cf_header in \
2651                         ncurses.h \
2652                         curses.h
2653                 do
2654                         CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2655                         if test "$cf_cv_ncurses_h2" != no ; then
2656                                 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2657                                 test -n "$verbose" && echo $ac_n "      ... found $ac_c" 1>&AC_FD_MSG
2658                                 break
2659                         fi
2660                         test -n "$verbose" && echo "    ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2661                 done
2662                 CPPFLAGS="$cf_save2_CPPFLAGS"
2663                 test "$cf_cv_ncurses_h2" != no && break
2664         done
2665         test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2666         ])
2667
2668         CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2669         cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2670         if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2671                 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2672         fi
2673         CF_ADD_INCDIR($cf_1st_incdir)
2674
2675 fi
2676
2677 # Set definitions to allow ifdef'ing for ncurses.h
2678
2679 case $cf_cv_ncurses_header in
2680 (*ncurses.h)
2681         AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2682         ;;
2683 esac
2684
2685 case $cf_cv_ncurses_header in
2686 (ncurses/curses.h|ncurses/ncurses.h)
2687         AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2688         ;;
2689 (ncursesw/curses.h|ncursesw/ncurses.h)
2690         AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2691         ;;
2692 esac
2693
2694 ])dnl
2695 dnl ---------------------------------------------------------------------------
2696 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2697 dnl ---------------
2698 dnl Look for the ncurses library.  This is a little complicated on Linux,
2699 dnl because it may be linked with the gpm (general purpose mouse) library.
2700 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2701 dnl unusable with ncurses.  However, we don't want to link with gpm unless
2702 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2703 dnl and the linker will record a dependency.
2704 dnl
2705 dnl The optional parameter gives the root name of the library, in case it is
2706 dnl not installed as the default curses library.  That is how the
2707 dnl wide-character version of ncurses is installed.
2708 AC_DEFUN([CF_NCURSES_LIBS],
2709 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2710
2711 cf_nculib_root=ifelse($1,,ncurses,$1)
2712         # This works, except for the special case where we find gpm, but
2713         # ncurses is in a nonstandard location via $LIBS, and we really want
2714         # to link gpm.
2715 cf_ncurses_LIBS=""
2716 cf_ncurses_SAVE="$LIBS"
2717 AC_CHECK_LIB(gpm,Gpm_Open,
2718         [AC_CHECK_LIB(gpm,initscr,
2719                 [LIBS="$cf_ncurses_SAVE"],
2720                 [cf_ncurses_LIBS="-lgpm"])])
2721
2722 case $host_os in
2723 (freebsd*)
2724         # This is only necessary if you are linking against an obsolete
2725         # version of ncurses (but it should do no harm, since it's static).
2726         if test "$cf_nculib_root" = ncurses ; then
2727                 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2728         fi
2729         ;;
2730 esac
2731
2732 CF_ADD_LIBS($cf_ncurses_LIBS)
2733
2734 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2735 then
2736         CF_ADD_LIBS(-l$cf_nculib_root)
2737 else
2738         CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2739                 [#include <${cf_cv_ncurses_header:-curses.h}>],
2740                 [initscr()],
2741                 initscr)
2742 fi
2743
2744 if test -n "$cf_ncurses_LIBS" ; then
2745         AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2746         cf_ncurses_SAVE="$LIBS"
2747         for p in $cf_ncurses_LIBS ; do
2748                 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2749                 if test "$q" != "$LIBS" ; then
2750                         LIBS="$q"
2751                 fi
2752         done
2753         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2754                 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2755                 [AC_MSG_RESULT(yes)],
2756                 [AC_MSG_RESULT(no)
2757                  LIBS="$cf_ncurses_SAVE"])
2758 fi
2759
2760 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2761 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2762 ])dnl
2763 dnl ---------------------------------------------------------------------------
2764 dnl CF_NCURSES_VERSION version: 15 updated: 2017/05/09 19:26:10
2765 dnl ------------------
2766 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2767 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
2768 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2769 AC_DEFUN([CF_NCURSES_VERSION],
2770 [
2771 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2772 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2773         cf_cv_ncurses_version=no
2774         cf_tempfile=out$$
2775         rm -f $cf_tempfile
2776         AC_TRY_RUN([
2777 #include <${cf_cv_ncurses_header:-curses.h}>
2778 #include <stdio.h>
2779 int main(void)
2780 {
2781         FILE *fp = fopen("$cf_tempfile", "w");
2782 #ifdef NCURSES_VERSION
2783 # ifdef NCURSES_VERSION_PATCH
2784         fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2785 # else
2786         fprintf(fp, "%s\n", NCURSES_VERSION);
2787 # endif
2788 #else
2789 # ifdef __NCURSES_H
2790         fprintf(fp, "old\n");
2791 # else
2792         make an error
2793 # endif
2794 #endif
2795         ${cf_cv_main_return:-return}(0);
2796 }],[
2797         cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2798
2799         # This will not work if the preprocessor splits the line after the
2800         # Autoconf token.  The 'unproto' program does that.
2801         cat > conftest.$ac_ext <<EOF
2802 #include <${cf_cv_ncurses_header:-curses.h}>
2803 #undef Autoconf
2804 #ifdef NCURSES_VERSION
2805 Autoconf NCURSES_VERSION
2806 #else
2807 #ifdef __NCURSES_H
2808 Autoconf "old"
2809 #endif
2810 ;
2811 #endif
2812 EOF
2813         cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2814         AC_TRY_EVAL(cf_try)
2815         if test -f conftest.out ; then
2816                 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2817                 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2818                 rm -f conftest.out
2819         fi
2820 ])
2821         rm -f $cf_tempfile
2822 ])
2823 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2824 ])dnl
2825 dnl ---------------------------------------------------------------------------
2826 dnl CF_OBJ_SUBDIR version: 7 updated: 2015/04/17 21:13:04
2827 dnl -------------
2828 dnl Compute the object-directory name from the given model name
2829 AC_DEFUN([CF_OBJ_SUBDIR],
2830 [
2831         case $1 in
2832         (libtool) $2='obj_lo'  ;;
2833         (normal)  $2='objects' ;;
2834         (debug)   $2='obj_g' ;;
2835         (profile) $2='obj_p' ;;
2836         (shared)
2837                 case $cf_cv_system_name in
2838                 (cygwin|msys)
2839                         $2='objects' ;;
2840                 (*)
2841                         $2='obj_s' ;;
2842                 esac
2843         esac
2844 ])dnl
2845 dnl ---------------------------------------------------------------------------
2846 dnl CF_PATHSEP version: 7 updated: 2015/04/12 15:39:00
2847 dnl ----------
2848 dnl Provide a value for the $PATH and similar separator (or amend the value
2849 dnl as provided in autoconf 2.5x).
2850 AC_DEFUN([CF_PATHSEP],
2851 [
2852         AC_MSG_CHECKING(for PATH separator)
2853         case $cf_cv_system_name in
2854         (os2*)  PATH_SEPARATOR=';'  ;;
2855         (*)     ${PATH_SEPARATOR:=':'}  ;;
2856         esac
2857 ifelse([$1],,,[$1=$PATH_SEPARATOR])
2858         AC_SUBST(PATH_SEPARATOR)
2859         AC_MSG_RESULT($PATH_SEPARATOR)
2860 ])dnl
2861 dnl ---------------------------------------------------------------------------
2862 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2863 dnl --------------
2864 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
2865 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2866 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
2867 dnl delayed evaluation of those symbols.
2868 AC_DEFUN([CF_PATH_SYNTAX],[
2869 if test "x$prefix" != xNONE; then
2870         cf_path_syntax="$prefix"
2871 else
2872         cf_path_syntax="$ac_default_prefix"
2873 fi
2874
2875 case ".[$]$1" in
2876 (.\[$]\(*\)*|.\'*\'*)
2877         ;;
2878 (..|./*|.\\*)
2879         ;;
2880 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2881         ;;
2882 (.\[$]{*prefix}*|.\[$]{*dir}*)
2883         eval $1="[$]$1"
2884         case ".[$]$1" in
2885         (.NONE/*)
2886                 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2887                 ;;
2888         esac
2889         ;;
2890 (.no|.NONE/*)
2891         $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2892         ;;
2893 (*)
2894         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2895         ;;
2896 esac
2897 ])dnl
2898 dnl ---------------------------------------------------------------------------
2899 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2900 dnl -------------
2901 dnl Check for the package-config program, unless disabled by command-line.
2902 AC_DEFUN([CF_PKG_CONFIG],
2903 [
2904 AC_MSG_CHECKING(if you want to use pkg-config)
2905 AC_ARG_WITH(pkg-config,
2906         [  --with-pkg-config{=path} enable/disable use of pkg-config],
2907         [cf_pkg_config=$withval],
2908         [cf_pkg_config=yes])
2909 AC_MSG_RESULT($cf_pkg_config)
2910
2911 case $cf_pkg_config in
2912 (no)
2913         PKG_CONFIG=none
2914         ;;
2915 (yes)
2916         CF_ACVERSION_CHECK(2.52,
2917                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2918                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2919         ;;
2920 (*)
2921         PKG_CONFIG=$withval
2922         ;;
2923 esac
2924
2925 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2926 if test "$PKG_CONFIG" != none ; then
2927         CF_PATH_SYNTAX(PKG_CONFIG)
2928 elif test "x$cf_pkg_config" != xno ; then
2929         AC_MSG_WARN(pkg-config is not installed)
2930 fi
2931
2932 AC_SUBST(PKG_CONFIG)
2933 ])dnl
2934 dnl ---------------------------------------------------------------------------
2935 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
2936 dnl -----------------
2937 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2938 dnl
2939 dnl     POSIX.1-1990                            _POSIX_SOURCE
2940 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
2941 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
2942 dnl             Bindings Option
2943 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
2944 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
2945 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
2946 dnl
2947 dnl Parameters:
2948 dnl     $1 is the nominal value for _POSIX_C_SOURCE
2949 AC_DEFUN([CF_POSIX_C_SOURCE],
2950 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
2951
2952 if test "$cf_cv_posix_visible" = no; then
2953
2954 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2955
2956 cf_save_CFLAGS="$CFLAGS"
2957 cf_save_CPPFLAGS="$CPPFLAGS"
2958
2959 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2960 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2961
2962 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2963         CF_MSG_LOG(if the symbol is already defined go no further)
2964         AC_TRY_COMPILE([#include <sys/types.h>],[
2965 #ifndef _POSIX_C_SOURCE
2966 make an error
2967 #endif],
2968         [cf_cv_posix_c_source=no],
2969         [cf_want_posix_source=no
2970          case .$cf_POSIX_C_SOURCE in
2971          (.[[12]]??*)
2972                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2973                 ;;
2974          (.2)
2975                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2976                 cf_want_posix_source=yes
2977                 ;;
2978          (.*)
2979                 cf_want_posix_source=yes
2980                 ;;
2981          esac
2982          if test "$cf_want_posix_source" = yes ; then
2983                 AC_TRY_COMPILE([#include <sys/types.h>],[
2984 #ifdef _POSIX_SOURCE
2985 make an error
2986 #endif],[],
2987                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2988          fi
2989          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2990          CFLAGS="$cf_trim_CFLAGS"
2991          CPPFLAGS="$cf_trim_CPPFLAGS"
2992          CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
2993          CF_MSG_LOG(if the second compile does not leave our definition intact error)
2994          AC_TRY_COMPILE([#include <sys/types.h>],[
2995 #ifndef _POSIX_C_SOURCE
2996 make an error
2997 #endif],,
2998          [cf_cv_posix_c_source=no])
2999          CFLAGS="$cf_save_CFLAGS"
3000          CPPFLAGS="$cf_save_CPPFLAGS"
3001         ])
3002 ])
3003
3004 if test "$cf_cv_posix_c_source" != no ; then
3005         CFLAGS="$cf_trim_CFLAGS"
3006         CPPFLAGS="$cf_trim_CPPFLAGS"
3007         CF_ADD_CFLAGS($cf_cv_posix_c_source)
3008 fi
3009
3010 fi # cf_cv_posix_visible
3011
3012 ])dnl
3013 dnl ---------------------------------------------------------------------------
3014 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
3015 dnl ----------------
3016 dnl POSIX documents test-macros which an application may set before any system
3017 dnl headers are included to make features available.
3018 dnl
3019 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
3020 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
3021 dnl recent features visible in the system header files unless the application
3022 dnl overrides the corresponding test-macros.  Doing that introduces portability
3023 dnl problems.
3024 dnl
3025 dnl This macro makes a special check for the symbols used for this, to avoid a
3026 dnl conflicting definition.
3027 AC_DEFUN([CF_POSIX_VISIBLE],
3028 [
3029 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
3030 AC_TRY_COMPILE([#include <stdio.h>],[
3031 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
3032         && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
3033         && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
3034         && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
3035 #error conflicting symbols found
3036 #endif
3037 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
3038 ])
3039 ])dnl
3040 dnl ---------------------------------------------------------------------------
3041 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
3042 dnl ----------
3043 dnl Check for archiver "ar".
3044 AC_DEFUN([CF_PROG_AR],[
3045 AC_CHECK_TOOL(AR, ar, ar)
3046 ])
3047 dnl ---------------------------------------------------------------------------
3048 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3049 dnl -----------
3050 dnl Check for awk, ensure that the check found something.
3051 AC_DEFUN([CF_PROG_AWK],
3052 [
3053 AC_PROG_AWK
3054 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3055 ])dnl
3056 dnl ---------------------------------------------------------------------------
3057 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
3058 dnl ----------
3059 dnl standard check for CC, plus followup sanity checks
3060 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
3061 AC_DEFUN([CF_PROG_CC],[
3062 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
3063 CF_GCC_VERSION
3064 CF_ACVERSION_CHECK(2.52,
3065         [AC_PROG_CC_STDC],
3066         [CF_ANSI_CC_REQD])
3067 CF_CC_ENV_FLAGS
3068 ])dnl
3069 dnl ---------------------------------------------------------------------------
3070 dnl CF_PROG_CC_C_O version: 5 updated: 2017/01/21 11:06:25
3071 dnl --------------
3072 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3073 dnl the output file can be renamed, and allows for a shell variable that can
3074 dnl be used later.  The parameter is either CC or CXX.  The result is the
3075 dnl cache variable:
3076 dnl     $cf_cv_prog_CC_c_o
3077 dnl     $cf_cv_prog_CXX_c_o
3078 dnl
3079 dnl $1 = compiler
3080 dnl $2 = compiler options, if any
3081 AC_DEFUN([CF_PROG_CC_C_O],
3082 [AC_REQUIRE([AC_PROG_CC])dnl
3083 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3084 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3085 [
3086 cat > conftest.$ac_ext <<CF_EOF
3087 int main(void)
3088 {
3089         ${cf_cv_main_return:-return}(0);
3090 }
3091 CF_EOF
3092 # We do the test twice because some compilers refuse to overwrite an
3093 # existing .o file with -o, though they will create one.
3094 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3095 if AC_TRY_EVAL(ac_try) &&
3096   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3097 then
3098   eval cf_cv_prog_$1_c_o=yes
3099 else
3100   eval cf_cv_prog_$1_c_o=no
3101 fi
3102 rm -rf conftest*
3103 ])dnl
3104 if test $cf_cv_prog_$1_c_o = yes; then
3105   AC_MSG_RESULT([yes])
3106 else
3107   AC_MSG_RESULT([no])
3108 fi
3109 ])dnl
3110 dnl ---------------------------------------------------------------------------
3111 dnl CF_PROG_EGREP version: 2 updated: 2015/04/18 08:56:57
3112 dnl -------------
3113 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3114 dnl This macro adds a check to ensure the script found something.
3115 AC_DEFUN([CF_PROG_EGREP],
3116 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3117         [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3118                 then ac_cv_prog_egrep='grep -E'
3119                 else ac_cv_prog_egrep='egrep'
3120         fi])
3121         EGREP=$ac_cv_prog_egrep
3122         AC_SUBST([EGREP])
3123         test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3124 ])dnl
3125 dnl ---------------------------------------------------------------------------
3126 dnl CF_PROG_EXT version: 14 updated: 2018/06/20 20:23:13
3127 dnl -----------
3128 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3129 AC_DEFUN([CF_PROG_EXT],
3130 [
3131 AC_REQUIRE([CF_CHECK_CACHE])
3132 case $cf_cv_system_name in
3133 (os2*)
3134         CFLAGS="$CFLAGS -Zmt"
3135         CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__)
3136         CXXFLAGS="$CXXFLAGS -Zmt"
3137         # autoconf's macro sets -Zexe and suffix both, which conflict:w
3138         LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3139         ac_cv_exeext=.exe
3140         ;;
3141 esac
3142
3143 AC_EXEEXT
3144 AC_OBJEXT
3145
3146 PROG_EXT="$EXEEXT"
3147 AC_SUBST(PROG_EXT)
3148 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
3149 ])dnl
3150 dnl ---------------------------------------------------------------------------
3151 dnl CF_PROG_GNAT version: 9 updated: 2019/09/21 18:08:42
3152 dnl ------------
3153 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
3154 AC_DEFUN([CF_PROG_GNAT],[
3155 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
3156 do
3157         CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
3158
3159         unset ac_cv_path_cf_TEMP_gnat
3160         unset cf_TEMP_gnat
3161         AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
3162         eval cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat
3163
3164         if test "x$cf_TEMP_gnat" != xno; then
3165                 unset cf_gnat_version
3166                 unset cf_TEMP_gnat
3167                 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
3168         fi
3169         eval cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat
3170
3171         unset cf_TEMP_gnat
3172         unset cf_gnat_version
3173         unset ac_cv_path_cf_TEMP_gnat
3174 done
3175
3176 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
3177         cf_ada_make=
3178         cf_cv_prog_gnat_correct=no
3179 else
3180         cf_ada_make=gnatmake
3181         if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
3182                 # gprconfig is newer than gnatmake; we can continue...
3183                 cf_ada_config="##"
3184         else
3185                 rm -rf conftest* *~conftest*
3186                 if mkdir conftest.src
3187                 then
3188                         cf_ada_config=""
3189                         cd conftest.src
3190                         for cf_gprconfig in Ada C
3191                         do
3192                                 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
3193                                 if test $cf_gprconfig = C
3194                                 then
3195                                         for cf_gprconfig_param in \
3196                                                 $cf_gprconfig,,,,GNATGCC \
3197                                                 $cf_gprconfig,,,,GCC \
3198                                                 $cf_gprconfig
3199                                         do
3200                                                 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3201                                                 test -n "$cf_gprconfig_value" && break
3202                                         done
3203                                 else
3204                                         cf_gprconfig_param=$cf_gprconfig
3205                                         cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3206                                 fi
3207                                 if test -n "$cf_gprconfig_value"
3208                                 then
3209                                         eval cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value
3210                                         AC_MSG_RESULT($cf_gprconfig_value)
3211                                 else
3212                                         AC_MSG_RESULT(missing)
3213                                         cf_ada_config="#"
3214                                         break
3215                                 fi
3216                         done
3217                         cd ..
3218                         rm -rf conftest* *~conftest*
3219                 fi
3220         fi
3221         if test "x$cf_ada_config" != "x#"
3222         then
3223                 CF_GNAT_VERSION
3224                 CF_CHECK_GNAT_VERSION
3225                 AC_CHECK_PROG(M4_exists, m4, yes, no)
3226                 if test "$ac_cv_prog_M4_exists" = no; then
3227                         cf_cv_prog_gnat_correct=no
3228                         AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
3229                 fi
3230                 if test "$cf_cv_prog_gnat_correct" = yes; then
3231                         AC_MSG_CHECKING(if GNAT works)
3232                         CF_GNAT_TRY_RUN([procedure conftest;],
3233 [with Text_IO;
3234 with GNAT.OS_Lib;
3235 procedure conftest is
3236 begin
3237    Text_IO.Put ("Hello World");
3238    Text_IO.New_Line;
3239    GNAT.OS_Lib.OS_Exit (0);
3240 end conftest;],
3241 [cf_cv_prog_gnat_correct=yes],
3242 [cf_cv_prog_gnat_correct=no])
3243                         AC_MSG_RESULT($cf_cv_prog_gnat_correct)
3244                 fi
3245         else
3246                 cf_cv_prog_gnat_correct=no
3247         fi
3248 fi
3249
3250 AC_SUBST(cf_ada_make)
3251 AC_SUBST(cf_ada_config)
3252 AC_SUBST(cf_ada_config_Ada)
3253 AC_SUBST(cf_ada_config_C)
3254 ])dnl
3255 dnl ---------------------------------------------------------------------------
3256 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
3257 dnl ---------------
3258 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
3259 dnl misc/tabset install won't work properly.  Usually this happens only when
3260 dnl using the fallback mkinstalldirs script
3261 AC_DEFUN([CF_PROG_INSTALL],
3262 [AC_PROG_INSTALL
3263 case $INSTALL in
3264 (/*)
3265         ;;
3266 (*)
3267         CF_DIRNAME(cf_dir,$INSTALL)
3268         test -z "$cf_dir" && cf_dir=.
3269         INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3270         ;;
3271 esac
3272 ])dnl
3273 dnl ---------------------------------------------------------------------------
3274 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
3275 dnl ------------
3276 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
3277 dnl option if it is supported.
3278 AC_DEFUN([CF_PROG_LN_S],[
3279 AC_PROG_LN_S
3280 AC_MSG_CHECKING(if $LN_S -f options work)
3281
3282 rm -f conf$$.src conf$$dst
3283 echo >conf$$.dst
3284 echo first >conf$$.src
3285 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
3286         cf_prog_ln_sf=yes
3287 else
3288         cf_prog_ln_sf=no
3289 fi
3290 rm -f conf$$.dst conf$$src
3291 AC_MSG_RESULT($cf_prog_ln_sf)
3292
3293 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
3294 ])dnl
3295 dnl ---------------------------------------------------------------------------
3296 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3297 dnl ----------------
3298 dnl Remove all -U and -D options that refer to the given symbol from a list
3299 dnl of C compiler options.  This works around the problem that not all
3300 dnl compilers process -U and -D options from left-to-right, so a -U option
3301 dnl cannot be used to cancel the effect of a preceding -D option.
3302 dnl
3303 dnl $1 = target (which could be the same as the source variable)
3304 dnl $2 = source (including '$')
3305 dnl $3 = symbol to remove
3306 define([CF_REMOVE_DEFINE],
3307 [
3308 $1=`echo "$2" | \
3309         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
3310                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
3311 ])dnl
3312 dnl ---------------------------------------------------------------------------
3313 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3314 dnl -------------
3315 dnl Remove the given library from the symbol
3316 dnl
3317 dnl $1 = target (which could be the same as the source variable)
3318 dnl $2 = source (including '$')
3319 dnl $3 = library to remove
3320 define([CF_REMOVE_LIB],
3321 [
3322 # remove $3 library from $2
3323 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
3324 ])dnl
3325 dnl ---------------------------------------------------------------------------
3326 dnl CF_SHARED_OPTS version: 93 updated: 2018/08/18 16:36:35
3327 dnl --------------
3328 dnl --------------
3329 dnl Attempt to determine the appropriate CC/LD options for creating a shared
3330 dnl library.
3331 dnl
3332 dnl Notes:
3333 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
3334 dnl the build-tree, i.e., by making use of the libraries that are compiled in
3335 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
3336 dnl shared library since that can lead to unexpected results at runtime.
3337 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
3338 dnl libraries are compiled in ../../lib
3339 dnl
3340 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
3341 dnl to install symbolic links to the rel/abi versions of shared libraries.
3342 dnl
3343 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
3344 dnl version when making symbolic links.
3345 dnl
3346 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
3347 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
3348 dnl (ex: libncurses.so.<ver>).
3349 dnl
3350 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
3351 AC_DEFUN([CF_SHARED_OPTS],
3352 [
3353         AC_REQUIRE([CF_LD_RPATH_OPT])
3354
3355         RM_SHARED_OPTS=
3356         LOCAL_LDFLAGS=
3357         LOCAL_LDFLAGS2=
3358         LD_SHARED_OPTS=
3359         INSTALL_LIB="-m 644"
3360         : ${rel_builddir:=.}
3361
3362         shlibdir=$libdir
3363         AC_SUBST(shlibdir)
3364
3365         MAKE_DLLS="#"
3366         AC_SUBST(MAKE_DLLS)
3367
3368         cf_cv_do_symlinks=no
3369         cf_ld_rpath_opt=
3370         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
3371
3372         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
3373         AC_ARG_WITH(shlib-version,
3374         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
3375         [test -z "$withval" && withval=auto
3376         case $withval in
3377         (yes)
3378                 cf_cv_shlib_version=auto
3379                 ;;
3380         (rel|abi|auto)
3381                 cf_cv_shlib_version=$withval
3382                 ;;
3383         (*)
3384                 AC_MSG_RESULT($withval)
3385                 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
3386                 ;;
3387         esac
3388         ],[cf_cv_shlib_version=auto])
3389         AC_MSG_RESULT($cf_cv_shlib_version)
3390
3391         cf_cv_rm_so_locs=no
3392         cf_try_cflags=
3393
3394         # Some less-capable ports of gcc support only -fpic
3395         CC_SHARED_OPTS=
3396
3397         cf_try_fPIC=no
3398         if test "$GCC" = yes
3399         then
3400                 cf_try_fPIC=yes
3401         else
3402                 case $cf_cv_system_name in
3403                 (*linux*)       # e.g., PGI compiler
3404                         cf_try_fPIC=yes
3405                         ;;
3406                 esac
3407         fi
3408
3409         if test "$cf_try_fPIC" = yes
3410         then
3411                 AC_MSG_CHECKING(which $CC option to use)
3412                 cf_save_CFLAGS="$CFLAGS"
3413                 for CC_SHARED_OPTS in -fPIC -fpic ''
3414                 do
3415                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
3416                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
3417                 done
3418                 AC_MSG_RESULT($CC_SHARED_OPTS)
3419                 CFLAGS="$cf_save_CFLAGS"
3420         fi
3421
3422         cf_cv_shlib_version_infix=no
3423
3424         case $cf_cv_system_name in
3425         (aix4.[3-9]*|aix[[5-7]]*)
3426                 if test "$GCC" = yes; then
3427                         CC_SHARED_OPTS='-Wl,-brtl'
3428                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3429                 else
3430                         CC_SHARED_OPTS='-brtl'
3431                         # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
3432                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3433                 fi
3434                 ;;
3435         (beos*)
3436                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
3437                 ;;
3438         (cygwin*)
3439                 CC_SHARED_OPTS=
3440                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3441                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3442                 cf_cv_shlib_version=cygdll
3443                 cf_cv_shlib_version_infix=cygdll
3444                 shlibdir=$bindir
3445                 MAKE_DLLS=
3446                 cat >mk_shared_lib.sh <<-CF_EOF
3447                 #!$SHELL
3448                 SHARED_LIB=\[$]1
3449                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3450                 shift
3451                 cat <<-EOF
3452                 Linking shared library
3453                 ** SHARED_LIB \[$]SHARED_LIB
3454                 ** IMPORT_LIB \[$]IMPORT_LIB
3455 EOF
3456                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3457 CF_EOF
3458                 chmod +x mk_shared_lib.sh
3459                 ;;
3460         (msys*)
3461                 CC_SHARED_OPTS=
3462                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3463                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3464                 cf_cv_shlib_version=msysdll
3465                 cf_cv_shlib_version_infix=msysdll
3466                 shlibdir=$bindir
3467                 MAKE_DLLS=
3468                 cat >mk_shared_lib.sh <<-CF_EOF
3469                 #!$SHELL
3470                 SHARED_LIB=\[$]1
3471                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3472                 shift
3473                 cat <<-EOF
3474                 Linking shared library
3475                 ** SHARED_LIB \[$]SHARED_LIB
3476                 ** IMPORT_LIB \[$]IMPORT_LIB
3477 EOF
3478                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3479 CF_EOF
3480                 chmod +x mk_shared_lib.sh
3481                 ;;
3482         (darwin*)
3483                 cf_try_cflags="no-cpp-precomp"
3484                 CC_SHARED_OPTS="-dynamic"
3485                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
3486                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
3487                 cf_cv_shlib_version_infix=yes
3488                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
3489                         cf_save_LDFLAGS=$LDFLAGS
3490                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3491                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
3492                                 LDFLAGS=$cf_save_LDFLAGS])
3493                 if test $cf_cv_ldflags_search_paths_first = yes; then
3494                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3495                 fi
3496                 ;;
3497         (hpux[[7-8]]*)
3498                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
3499                 if test "$GCC" != yes; then
3500                         CC_SHARED_OPTS='+Z'
3501                 fi
3502                 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
3503                 INSTALL_LIB="-m 555"
3504                 ;;
3505         (hpux*)
3506                 # (tested with gcc 2.7.2 -- I don't have c89)
3507                 if test "$GCC" = yes; then
3508                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
3509                 else
3510                         CC_SHARED_OPTS='+Z'
3511                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
3512                 fi
3513                 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
3514                 # HP-UX shared libraries must be executable, and should be
3515                 # readonly to exploit a quirk in the memory manager.
3516                 INSTALL_LIB="-m 555"
3517                 ;;
3518         (interix*)
3519                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3520                 if test "$cf_cv_shlib_version" = rel; then
3521                         cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
3522                 else
3523                         cf_shared_soname='`basename $[@]`'
3524                 fi
3525                 CC_SHARED_OPTS=
3526                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
3527                 ;;
3528         (irix*)
3529                 if test "$cf_cv_enable_rpath" = yes ; then
3530                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3531                 fi
3532                 # tested with IRIX 5.2 and 'cc'.
3533                 if test "$GCC" != yes; then
3534                         CC_SHARED_OPTS='-KPIC'
3535                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
3536                 else
3537                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
3538                 fi
3539                 cf_cv_rm_so_locs=yes
3540                 ;;
3541         (linux*|gnu*|k*bsd*-gnu)
3542                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3543                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3544                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3545                 fi
3546                 if test "$cf_cv_enable_rpath" = yes ; then
3547                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3548                 fi
3549                 CF_SHARED_SONAME
3550                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3551                 ;;
3552         (mingw*)
3553                 cf_cv_shlib_version=mingw
3554                 cf_cv_shlib_version_infix=mingw
3555                 shlibdir=$bindir
3556                 MAKE_DLLS=
3557                 if test "$DFT_LWR_MODEL" = "shared" ; then
3558                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
3559                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3560                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
3561                 fi
3562                 CC_SHARED_OPTS=
3563                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3564                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3565                 cat >mk_shared_lib.sh <<-CF_EOF
3566                 #!$SHELL
3567                 SHARED_LIB=\[$]1
3568                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3569                 shift
3570                 cat <<-EOF
3571                 Linking shared library
3572                 ** SHARED_LIB \[$]SHARED_LIB
3573                 ** IMPORT_LIB \[$]IMPORT_LIB
3574 EOF
3575                 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3576 CF_EOF
3577                 chmod +x mk_shared_lib.sh
3578                 ;;
3579         (openbsd[[2-9]].*|mirbsd*)
3580                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3581                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3582                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3583                 fi
3584                 if test "$cf_cv_enable_rpath" = yes ; then
3585                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3586                 fi
3587                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3588                 CF_SHARED_SONAME
3589                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3590                 ;;
3591         (nto-qnx*|openbsd*|freebsd[[12]].*)
3592                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
3593                 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
3594                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3595                 ;;
3596         (dragonfly*