]> ncurses.scripts.mit.edu Git - ncurses.git/blob - Ada95/aclocal.m4
ncurses 6.2 - patch 20201128
[ncurses.git] / Ada95 / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright 2018-2019,2020 Thomas E. Dickey                                *
3 dnl Copyright 2010-2017,2018 Free Software Foundation, Inc.                  *
4 dnl                                                                          *
5 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
6 dnl copy of this software and associated documentation files (the            *
7 dnl "Software"), to deal in the Software without restriction, including      *
8 dnl without limitation the rights to use, copy, modify, merge, publish,      *
9 dnl distribute, distribute with modifications, sublicense, and/or sell       *
10 dnl copies of the Software, and to permit persons to whom the Software is    *
11 dnl furnished to do so, subject to the following conditions:                 *
12 dnl                                                                          *
13 dnl The above copyright notice and this permission notice shall be included  *
14 dnl in all copies or substantial portions of the Software.                   *
15 dnl                                                                          *
16 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23 dnl                                                                          *
24 dnl Except as contained in this notice, the name(s) of the above copyright   *
25 dnl holders shall not be used in advertising or otherwise to promote the     *
26 dnl sale, use or other dealings in this Software without prior written       *
27 dnl authorization.                                                           *
28 dnl***************************************************************************
29 dnl
30 dnl Author: Thomas E. Dickey
31 dnl
32 dnl $Id: aclocal.m4,v 1.166 2020/11/26 22:37:55 tom Exp $
33 dnl Macros used in NCURSES Ada95 auto-configuration script.
34 dnl
35 dnl These macros are maintained separately from NCURSES.  The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
38 dnl
39 dnl See these pages for additional information:
40 dnl             https://invisible-island.net/autoconf/
41 dnl             https://invisible-island.net/autoconf/my-autoconf.html
42 dnl
43 dnl ---------------------------------------------------------------------------
44 dnl ---------------------------------------------------------------------------
45 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
46 dnl ------------------
47 dnl Conditionally generate script according to whether we're using a given autoconf.
48 dnl
49 dnl $1 = version to compare against
50 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
51 dnl $3 = code to use if AC_ACVERSION is older than $1.
52 define([CF_ACVERSION_CHECK],
53 [
54 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
55 ifdef([m4_version_compare],
56 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
57 [CF_ACVERSION_COMPARE(
58 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
59 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
60 dnl ---------------------------------------------------------------------------
61 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
62 dnl --------------------
63 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
64 dnl                      MAJOR2, MINOR2, TERNARY2,
65 dnl                      PRINTABLE2, not FOUND, FOUND)
66 define([CF_ACVERSION_COMPARE],
67 [ifelse(builtin([eval], [$2 < $5]), 1,
68 [ifelse([$8], , ,[$8])],
69 [ifelse([$9], , ,[$9])])])dnl
70 dnl ---------------------------------------------------------------------------
71 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
72 dnl -------------------
73 dnl Construct the list of include-options for the C programs in the Ada95
74 dnl binding.
75 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
76 [
77 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
78 if test "$srcdir" != "."; then
79         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
80 fi
81 if test "$GCC" != yes; then
82         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
83 elif test "$includedir" != "/usr/include"; then
84         if test "$includedir" = '${prefix}/include' ; then
85                 if test x$prefix != x/usr ; then
86                         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
87                 fi
88         else
89                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
90         fi
91 fi
92 AC_SUBST(ACPPFLAGS)
93 ])dnl
94 dnl ---------------------------------------------------------------------------
95 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
96 dnl ---------------
97 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
98 AC_DEFUN([CF_ADD_ADAFLAGS],[
99         ADAFLAGS="$ADAFLAGS $1"
100         AC_SUBST(ADAFLAGS)
101 ])dnl
102 dnl ---------------------------------------------------------------------------
103 dnl CF_ADD_CFLAGS version: 14 updated: 2020/04/04 16:16:13
104 dnl -------------
105 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
106 dnl $1 = flags to add
107 dnl $2 = if given makes this macro verbose.
108 dnl
109 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
110 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
111 dnl confused by the quotes (which require backslashes to keep them usable).
112 AC_DEFUN([CF_ADD_CFLAGS],
113 [
114 cf_fix_cppflags=no
115 cf_new_cflags=
116 cf_new_cppflags=
117 cf_new_extra_cppflags=
118
119 for cf_add_cflags in $1
120 do
121 case $cf_fix_cppflags in
122 (no)
123         case $cf_add_cflags in
124         (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
125                 case $cf_add_cflags in
126                 (-D*)
127                         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
128
129                         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
130                                 && test -z "${cf_tst_cflags}" \
131                                 && cf_fix_cppflags=yes
132
133                         if test $cf_fix_cppflags = yes ; then
134                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
135                                 continue
136                         elif test "${cf_tst_cflags}" = "\"'" ; then
137                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
138                                 continue
139                         fi
140                         ;;
141                 esac
142                 case "$CPPFLAGS" in
143                 (*$cf_add_cflags)
144                         ;;
145                 (*)
146                         case $cf_add_cflags in
147                         (-D*)
148                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
149                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
150                                 ;;
151                         esac
152                         CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
153                         ;;
154                 esac
155                 ;;
156         (*)
157                 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
158                 ;;
159         esac
160         ;;
161 (yes)
162         CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
163
164         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
165
166         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
167                 && test -z "${cf_tst_cflags}" \
168                 && cf_fix_cppflags=no
169         ;;
170 esac
171 done
172
173 if test -n "$cf_new_cflags" ; then
174         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
175         CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
176 fi
177
178 if test -n "$cf_new_cppflags" ; then
179         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
180         CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
181 fi
182
183 if test -n "$cf_new_extra_cppflags" ; then
184         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
185         CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
186 fi
187
188 AC_SUBST(EXTRA_CPPFLAGS)
189
190 ])dnl
191 dnl ---------------------------------------------------------------------------
192 dnl CF_ADD_INCDIR version: 15 updated: 2018/06/20 20:23:13
193 dnl -------------
194 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
195 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
196 dnl but old versions (and some misinstalled ones) need that.  To make things
197 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
198 dnl the include-path).
199 AC_DEFUN([CF_ADD_INCDIR],
200 [
201 if test -n "$1" ; then
202   for cf_add_incdir in $1
203   do
204         while test $cf_add_incdir != /usr/include
205         do
206           if test -d $cf_add_incdir
207           then
208                 cf_have_incdir=no
209                 if test -n "$CFLAGS$CPPFLAGS" ; then
210                   # a loop is needed to ensure we can add subdirs of existing dirs
211                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
212                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
213                           cf_have_incdir=yes; break
214                         fi
215                   done
216                 fi
217
218                 if test "$cf_have_incdir" = no ; then
219                   if test "$cf_add_incdir" = /usr/local/include ; then
220                         if test "$GCC" = yes
221                         then
222                           cf_save_CPPFLAGS=$CPPFLAGS
223                           CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
224                           AC_TRY_COMPILE([#include <stdio.h>],
225                                   [printf("Hello")],
226                                   [],
227                                   [cf_have_incdir=yes])
228                           CPPFLAGS=$cf_save_CPPFLAGS
229                         fi
230                   fi
231                 fi
232
233                 if test "$cf_have_incdir" = no ; then
234                   CF_VERBOSE(adding $cf_add_incdir to include-path)
235                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
236
237                   cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
238                   test "$cf_top_incdir" = "$cf_add_incdir" && break
239                   cf_add_incdir="$cf_top_incdir"
240                 else
241                   break
242                 fi
243           else
244                 break
245           fi
246         done
247   done
248 fi
249 ])dnl
250 dnl ---------------------------------------------------------------------------
251 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
252 dnl ----------
253 dnl Add a library, used to enforce consistency.
254 dnl
255 dnl $1 = library to add, without the "-l"
256 dnl $2 = variable to update (default $LIBS)
257 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
258 dnl ---------------------------------------------------------------------------
259 dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
260 dnl -------------
261 dnl     Adds to the library-path
262 dnl
263 dnl     Some machines have trouble with multiple -L options.
264 dnl
265 dnl $1 is the (list of) directory(s) to add
266 dnl $2 is the optional name of the variable to update (default LDFLAGS)
267 dnl
268 AC_DEFUN([CF_ADD_LIBDIR],
269 [
270 if test -n "$1" ; then
271         for cf_add_libdir in $1
272         do
273                 if test $cf_add_libdir = /usr/lib ; then
274                         :
275                 elif test -d $cf_add_libdir
276                 then
277                         cf_have_libdir=no
278                         if test -n "$LDFLAGS$LIBS" ; then
279                                 # a loop is needed to ensure we can add subdirs of existing dirs
280                                 for cf_test_libdir in $LDFLAGS $LIBS ; do
281                                         if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
282                                                 cf_have_libdir=yes; break
283                                         fi
284                                 done
285                         fi
286                         if test "$cf_have_libdir" = no ; then
287                                 CF_VERBOSE(adding $cf_add_libdir to library-path)
288                                 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
289                         fi
290                 fi
291         done
292 fi
293 ])dnl
294 dnl ---------------------------------------------------------------------------
295 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
296 dnl -----------
297 dnl Add one or more libraries, used to enforce consistency.  Libraries are
298 dnl prepended to an existing list, since their dependencies are assumed to
299 dnl already exist in the list.
300 dnl
301 dnl $1 = libraries to add, with the "-l", etc.
302 dnl $2 = variable to update (default $LIBS)
303 AC_DEFUN([CF_ADD_LIBS],[
304 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
305 # reverse order
306 cf_add_0lib=
307 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
308 # filter duplicates
309 for cf_add_1lib in $cf_add_0lib; do
310         for cf_add_2lib in $cf_add_libs; do
311                 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
312                         cf_add_1lib=
313                         break
314                 fi
315         done
316         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
317 done
318 ifelse($2,,LIBS,[$2])="$cf_add_libs"
319 ])dnl
320 dnl ---------------------------------------------------------------------------
321 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
322 dnl ------------------
323 dnl Append to a search-list for a nonstandard header/lib-file
324 dnl     $1 = the variable to return as result
325 dnl     $2 = the package name
326 dnl     $3 = the subdirectory, e.g., bin, include or lib
327 dnl $4 = the directory under which we will test for subdirectories
328 dnl $5 = a directory that we do not want $4 to match
329 AC_DEFUN([CF_ADD_SUBDIR_PATH],
330 [
331 test "x$4" != "x$5" && \
332 test -d "$4" && \
333 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
334         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
335         test -d $4/$3 &&          $1="[$]$1 $4/$3"
336         test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
337         test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
338         test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
339         test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
340 }
341 ])dnl
342 dnl ---------------------------------------------------------------------------
343 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
344 dnl --------------
345 dnl use this macro for appending text without introducing an extra blank at
346 dnl the beginning
347 define([CF_APPEND_TEXT],
348 [
349         test -n "[$]$1" && $1="[$]$1 "
350         $1="[$]{$1}$2"
351 ])dnl
352 dnl ---------------------------------------------------------------------------
353 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
354 dnl --------------
355 dnl Allow user to disable a normally-on option.
356 AC_DEFUN([CF_ARG_DISABLE],
357 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
358 dnl ---------------------------------------------------------------------------
359 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
360 dnl -------------
361 dnl Allow user to enable a normally-off option.
362 AC_DEFUN([CF_ARG_ENABLE],
363 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
364 dnl ---------------------------------------------------------------------------
365 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
366 dnl -------------
367 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
368 dnl values.
369 dnl
370 dnl Parameters:
371 dnl $1 = option name
372 dnl $2 = help-string
373 dnl $3 = action to perform if option is not default
374 dnl $4 = action if perform if option is default
375 dnl $5 = default option value (either 'yes' or 'no')
376 AC_DEFUN([CF_ARG_OPTION],
377 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
378         if test "$enableval" != "$5" ; then
379 ifelse([$3],,[    :]dnl
380 ,[    $3]) ifelse([$4],,,[
381         else
382                 $4])
383         fi],[enableval=$5 ifelse([$4],,,[
384         $4
385 ])dnl
386 ])])dnl
387 dnl ---------------------------------------------------------------------------
388 dnl CF_AR_FLAGS version: 7 updated: 2020/04/04 11:37:29
389 dnl -----------
390 dnl Check for suitable "ar" (archiver) options for updating an archive.
391 dnl
392 dnl In particular, handle some obsolete cases where the "-" might be omitted,
393 dnl as well as a workaround for breakage of make's archive rules by the GNU
394 dnl binutils "ar" program.
395 AC_DEFUN([CF_AR_FLAGS],[
396 AC_REQUIRE([CF_PROG_AR])
397
398 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
399         case $cf_cv_system_name in
400         (*-msvc*)
401                 cf_cv_ar_flags=''
402                 cat >mk_static_lib.sh <<-EOF
403                 #!$SHELL
404                 MSVC_BIN="[$]AR"
405                 out="\[$]1"
406                 shift
407                 exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
408                 EOF
409                 chmod +x mk_static_lib.sh
410                 AR=`pwd`/mk_static_lib.sh
411                 ;;
412         (*)
413                 cf_cv_ar_flags=unknown
414                 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
415                 do
416
417                         # check if $ARFLAGS already contains this choice
418                         if test "x$ARFLAGS" != "x" ; then
419                                 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
420                                 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
421                                         cf_cv_ar_flags=
422                                         break
423                                 fi
424                         fi
425
426                         rm -f conftest.$ac_cv_objext
427                         rm -f conftest.a
428
429                         cat >conftest.$ac_ext <<EOF
430 #line __oline__ "configure"
431 int     testdata[[3]] = { 123, 456, 789 };
432 EOF
433                         if AC_TRY_EVAL(ac_compile) ; then
434                                 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
435                                 $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
436                                 if test -f conftest.a ; then
437                                         cf_cv_ar_flags=$cf_ar_flags
438                                         break
439                                 fi
440                         else
441                                 CF_VERBOSE(cannot compile test-program)
442                                 break
443                         fi
444                 done
445                 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
446                 ;;
447         esac
448 ])
449
450 if test -n "$ARFLAGS" ; then
451         if test -n "$cf_cv_ar_flags" ; then
452                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
453         fi
454 else
455         ARFLAGS=$cf_cv_ar_flags
456 fi
457
458 AC_SUBST(ARFLAGS)
459 ])
460 dnl ---------------------------------------------------------------------------
461 dnl CF_BUILD_CC version: 8 updated: 2018/01/04 20:31:04
462 dnl -----------
463 dnl If we're cross-compiling, allow the user to override the tools and their
464 dnl options.  The configure script is oriented toward identifying the host
465 dnl compiler, etc., but we need a build compiler to generate parts of the
466 dnl source.
467 dnl
468 dnl $1 = default for $CPPFLAGS
469 dnl $2 = default for $LIBS
470 AC_DEFUN([CF_BUILD_CC],[
471 CF_ACVERSION_CHECK(2.52,,
472         [AC_REQUIRE([CF_PROG_EXT])])
473 if test "$cross_compiling" = yes ; then
474
475         # defaults that we might want to override
476         : ${BUILD_CFLAGS:=''}
477         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
478         : ${BUILD_LDFLAGS:=''}
479         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
480         : ${BUILD_EXEEXT:='$x'}
481         : ${BUILD_OBJEXT:='o'}
482
483         AC_ARG_WITH(build-cc,
484                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
485                 [BUILD_CC="$withval"],
486                 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
487         AC_MSG_CHECKING(for native build C compiler)
488         AC_MSG_RESULT($BUILD_CC)
489
490         AC_MSG_CHECKING(for native build C preprocessor)
491         AC_ARG_WITH(build-cpp,
492                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
493                 [BUILD_CPP="$withval"],
494                 [BUILD_CPP='${BUILD_CC} -E'])
495         AC_MSG_RESULT($BUILD_CPP)
496
497         AC_MSG_CHECKING(for native build C flags)
498         AC_ARG_WITH(build-cflags,
499                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
500                 [BUILD_CFLAGS="$withval"])
501         AC_MSG_RESULT($BUILD_CFLAGS)
502
503         AC_MSG_CHECKING(for native build C preprocessor-flags)
504         AC_ARG_WITH(build-cppflags,
505                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
506                 [BUILD_CPPFLAGS="$withval"])
507         AC_MSG_RESULT($BUILD_CPPFLAGS)
508
509         AC_MSG_CHECKING(for native build linker-flags)
510         AC_ARG_WITH(build-ldflags,
511                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
512                 [BUILD_LDFLAGS="$withval"])
513         AC_MSG_RESULT($BUILD_LDFLAGS)
514
515         AC_MSG_CHECKING(for native build linker-libraries)
516         AC_ARG_WITH(build-libs,
517                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
518                 [BUILD_LIBS="$withval"])
519         AC_MSG_RESULT($BUILD_LIBS)
520
521         # this assumes we're on Unix.
522         BUILD_EXEEXT=
523         BUILD_OBJEXT=o
524
525         : ${BUILD_CC:='${CC}'}
526
527         if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
528                 AC_MSG_ERROR([Cross-build requires two compilers.
529 Use --with-build-cc to specify the native compiler.])
530         fi
531
532 else
533         : ${BUILD_CC:='${CC}'}
534         : ${BUILD_CPP:='${CPP}'}
535         : ${BUILD_CFLAGS:='${CFLAGS}'}
536         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
537         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
538         : ${BUILD_LIBS:='${LIBS}'}
539         : ${BUILD_EXEEXT:='$x'}
540         : ${BUILD_OBJEXT:='o'}
541 fi
542
543 AC_SUBST(BUILD_CC)
544 AC_SUBST(BUILD_CPP)
545 AC_SUBST(BUILD_CFLAGS)
546 AC_SUBST(BUILD_CPPFLAGS)
547 AC_SUBST(BUILD_LDFLAGS)
548 AC_SUBST(BUILD_LIBS)
549 AC_SUBST(BUILD_EXEEXT)
550 AC_SUBST(BUILD_OBJEXT)
551 ])dnl
552 dnl ---------------------------------------------------------------------------
553 dnl CF_CC_ENV_FLAGS version: 9 updated: 2018/07/29 18:03:26
554 dnl ---------------
555 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
556 dnl into CC.  This will not help with broken scripts that wrap the compiler
557 dnl with options, but eliminates a more common category of user confusion.
558 dnl
559 dnl In particular, it addresses the problem of being able to run the C
560 dnl preprocessor in a consistent manner.
561 dnl
562 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
563 dnl the nuisance of having inconsistent settings for compiler and preprocessor
564 dnl outweighs that limitation.
565 AC_DEFUN([CF_CC_ENV_FLAGS],
566 [
567 # This should have been defined by AC_PROG_CC
568 : ${CC:=cc}
569
570 AC_MSG_CHECKING(\$CFLAGS variable)
571 case "x$CFLAGS" in
572 (*-[[IUD]]*)
573         AC_MSG_RESULT(broken)
574         AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
575         cf_flags="$CFLAGS"
576         CFLAGS=
577         for cf_arg in $cf_flags
578         do
579                 CF_ADD_CFLAGS($cf_arg)
580         done
581         ;;
582 (*)
583         AC_MSG_RESULT(ok)
584         ;;
585 esac
586
587 AC_MSG_CHECKING(\$CC variable)
588 case "$CC" in
589 (*[[\ \ ]]-*)
590         AC_MSG_RESULT(broken)
591         AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
592         # humor him...
593         cf_prog=`echo "$CC" | sed -e 's/        / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
594         cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
595         CC="$cf_prog"
596         for cf_arg in $cf_flags
597         do
598                 case "x$cf_arg" in
599                 (x-[[IUDfgOW]]*)
600                         CF_ADD_CFLAGS($cf_arg)
601                         ;;
602                 (*)
603                         CC="$CC $cf_arg"
604                         ;;
605                 esac
606         done
607         CF_VERBOSE(resulting CC: '$CC')
608         CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
609         CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
610         ;;
611 (*)
612         AC_MSG_RESULT(ok)
613         ;;
614 esac
615 ])dnl
616 dnl ---------------------------------------------------------------------------
617 dnl CF_CFG_DEFAULTS version: 11 updated: 2015/04/17 21:13:04
618 dnl ---------------
619 dnl Determine the default configuration into which we'll install ncurses.  This
620 dnl can be overridden by the user's command-line options.  There's two items to
621 dnl look for:
622 dnl     1. the prefix (e.g., /usr)
623 dnl     2. the header files (e.g., /usr/include/ncurses)
624 dnl We'll look for a previous installation of ncurses and use the same defaults.
625 dnl
626 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
627 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
628 dnl programs from a vendor's.
629 AC_DEFUN([CF_CFG_DEFAULTS],
630 [
631 AC_MSG_CHECKING(for prefix)
632 if test "x$prefix" = "xNONE" ; then
633         case "$cf_cv_system_name" in
634                 # non-vendor systems don't have a conflict
635         (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
636                 prefix=/usr
637                 ;;
638         (*)     prefix=$ac_default_prefix
639                 ;;
640         esac
641 fi
642 AC_MSG_RESULT($prefix)
643
644 if test "x$prefix" = "xNONE" ; then
645 AC_MSG_CHECKING(for default include-directory)
646 test -n "$verbose" && echo 1>&AC_FD_MSG
647 for cf_symbol in \
648         $includedir \
649         $includedir/ncurses \
650         $prefix/include \
651         $prefix/include/ncurses \
652         /usr/local/include \
653         /usr/local/include/ncurses \
654         /usr/include \
655         /usr/include/ncurses
656 do
657         cf_dir=`eval echo $cf_symbol`
658         if test -f $cf_dir/curses.h ; then
659         if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
660                 includedir="$cf_symbol"
661                 test -n "$verbose"  && echo $ac_n "     found " 1>&AC_FD_MSG
662                 break
663         fi
664         fi
665         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
666 done
667 AC_MSG_RESULT($includedir)
668 fi
669 ])dnl
670 dnl ---------------------------------------------------------------------------
671 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
672 dnl --------------
673 dnl Check if we're accidentally using a cache from a different machine.
674 dnl Derive the system name, as a check for reusing the autoconf cache.
675 dnl
676 dnl If we've packaged config.guess and config.sub, run that (since it does a
677 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
678 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
679 dnl which is useful in cross-compiles.
680 dnl
681 dnl Note: we would use $ac_config_sub, but that is one of the places where
682 dnl autoconf 2.5x broke compatibility with autoconf 2.13
683 AC_DEFUN([CF_CHECK_CACHE],
684 [
685 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
686         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
687         system_name="$host_os"
688 else
689         system_name="`(uname -s -r) 2>/dev/null`"
690         if test -z "$system_name" ; then
691                 system_name="`(hostname) 2>/dev/null`"
692         fi
693 fi
694 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
695 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
696
697 test -z "$system_name" && system_name="$cf_cv_system_name"
698 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
699
700 if test ".$system_name" != ".$cf_cv_system_name" ; then
701         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
702         AC_MSG_ERROR("Please remove config.cache and try again.")
703 fi
704 ])dnl
705 dnl ---------------------------------------------------------------------------
706 dnl CF_CHECK_GNAT_VERSION version: 3 updated: 2020/05/23 19:39:36
707 dnl ---------------------
708 AC_DEFUN([CF_CHECK_GNAT_VERSION],
709 [
710 AC_REQUIRE([CF_GNAT_VERSION])
711 case $cf_cv_gnat_version in
712 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
713         cf_cv_prog_gnat_correct=yes
714         ;;
715 (*)
716         AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
717         cf_cv_prog_gnat_correct=no
718         ;;
719 esac
720 ])
721 dnl ---------------------------------------------------------------------------
722 dnl CF_CLANG_COMPILER version: 6 updated: 2020/11/26 17:37:55
723 dnl -----------------
724 dnl Check if the given compiler is really clang.  clang's C driver defines
725 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
726 dnl not ignore some gcc options.
727 dnl
728 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
729 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
730 dnl the wrappers for gcc and g++ warnings.
731 dnl
732 dnl $1 = GCC (default) or GXX
733 dnl $2 = CLANG_COMPILER (default)
734 dnl $3 = CFLAGS (default) or CXXFLAGS
735 AC_DEFUN([CF_CLANG_COMPILER],[
736 ifelse([$2],,CLANG_COMPILER,[$2])=no
737
738 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
739         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
740         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
741         AC_TRY_COMPILE([],[
742 #ifdef __clang__
743 #else
744 make an error
745 #endif
746 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
747 ],[])
748         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
749         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
750 fi
751
752 CLANG_VERSION=none
753
754 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
755         case "$CC" in
756         (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
757                 AC_MSG_WARN(replacing broken compiler alias $CC)
758                 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
759                 CC=clang
760                 ;;
761         esac
762
763         AC_MSG_CHECKING(version of $CC)
764         CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
765         test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
766         AC_MSG_RESULT($CLANG_VERSION)
767
768         for cf_clang_opt in \
769                 -Qunused-arguments \
770                 -Wno-error=implicit-function-declaration
771         do
772                 AC_MSG_CHECKING(if option $cf_clang_opt works)
773                 cf_save_CFLAGS="$CFLAGS"
774                 CFLAGS="$CFLAGS $cf_clang_opt"
775                 AC_TRY_LINK([
776                         #include <stdio.h>],[
777                         printf("hello!\n");],[
778                         cf_clang_optok=yes],[
779                         cf_clang_optok=no])
780                 AC_MSG_RESULT($cf_clang_optok)
781                 CFLAGS="$cf_save_CFLAGS"
782                 if test $cf_clang_optok = yes; then
783                         CF_VERBOSE(adding option $cf_clang_opt)
784                         CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
785                 fi
786         done
787 fi
788 ])
789 dnl ---------------------------------------------------------------------------
790 dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
791 dnl -----------------
792 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
793 dnl character-strings.
794 dnl
795 dnl It is ambiguous because the specification accommodated the pre-ANSI
796 dnl compilers bundled by more than one vendor in lieu of providing a standard C
797 dnl compiler other than by costly add-ons.  Because of this, the specification
798 dnl did not take into account the use of const for telling the compiler that
799 dnl string literals would be in readonly memory.
800 dnl
801 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
802 dnl let the compiler decide how to represent Xt's strings which were #define'd. 
803 dnl That does not solve the problem of using the block of Xt's strings which
804 dnl are compiled into the library (and is less efficient than one might want).
805 dnl
806 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
807 dnl when compiling the library and compiling using the library, to tell the
808 dnl compiler that String is const.
809 AC_DEFUN([CF_CONST_X_STRING],
810 [
811 AC_REQUIRE([AC_PATH_XTRA])
812
813 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
814
815 AC_TRY_COMPILE(
816 [
817 #include <stdlib.h>
818 #include <X11/Intrinsic.h>
819 ],
820 [String foo = malloc(1); (void)foo],[
821
822 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
823         AC_TRY_COMPILE(
824                 [
825 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
826 #undef  XTSTRINGDEFINES /* X11R5 and later */
827 #include <stdlib.h>
828 #include <X11/Intrinsic.h>
829                 ],[String foo = malloc(1); *foo = 0],[
830                         cf_cv_const_x_string=no
831                 ],[
832                         cf_cv_const_x_string=yes
833                 ])
834 ])
835
836 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
837
838 case $cf_cv_const_x_string in
839 (no)
840         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
841         ;;
842 (*)
843         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
844         ;;
845 esac
846
847 ])
848 ])dnl
849 dnl ---------------------------------------------------------------------------
850 dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
851 dnl -----------------
852 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
853 dnl character-strings.
854 dnl
855 dnl It is ambiguous because the specification accommodated the pre-ANSI
856 dnl compilers bundled by more than one vendor in lieu of providing a standard C
857 dnl compiler other than by costly add-ons.  Because of this, the specification
858 dnl did not take into account the use of const for telling the compiler that
859 dnl string literals would be in readonly memory.
860 dnl
861 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
862 dnl let the compiler decide how to represent Xt's strings which were #define'd. 
863 dnl That does not solve the problem of using the block of Xt's strings which
864 dnl are compiled into the library (and is less efficient than one might want).
865 dnl
866 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
867 dnl when compiling the library and compiling using the library, to tell the
868 dnl compiler that String is const.
869 AC_DEFUN([CF_CONST_X_STRING],
870 [
871 AC_REQUIRE([AC_PATH_XTRA])
872
873 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
874
875 AC_TRY_COMPILE(
876 [
877 #include <stdlib.h>
878 #include <X11/Intrinsic.h>
879 ],
880 [String foo = malloc(1); (void)foo],[
881
882 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
883         AC_TRY_COMPILE(
884                 [
885 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
886 #undef  XTSTRINGDEFINES /* X11R5 and later */
887 #include <stdlib.h>
888 #include <X11/Intrinsic.h>
889                 ],[String foo = malloc(1); *foo = 0],[
890                         cf_cv_const_x_string=no
891                 ],[
892                         cf_cv_const_x_string=yes
893                 ])
894 ])
895
896 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
897
898 case $cf_cv_const_x_string in
899 (no)
900         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
901         ;;
902 (*)
903         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
904         ;;
905 esac
906
907 ])
908 ])dnl
909 dnl ---------------------------------------------------------------------------
910 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
911 dnl ----------------
912 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
913 dnl variations of ncurses' installs.
914 dnl
915 dnl $1 = ncurses when looking for ncurses, or is empty
916 AC_DEFUN([CF_CURSES_HEADER],[
917 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
918 cf_cv_ncurses_header=none
919 for cf_header in \
920         ncurses.h ifelse($1,,,[$1/ncurses.h]) \
921         curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
922 do
923 AC_TRY_COMPILE([#include <${cf_header}>],
924         [initscr(); tgoto("?", 0,0)],
925         [cf_cv_ncurses_header=$cf_header; break],[])
926 done
927 ])
928
929 if test "$cf_cv_ncurses_header" = none ; then
930         AC_MSG_ERROR(No curses header-files found)
931 fi
932
933 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
934 AC_CHECK_HEADERS($cf_cv_ncurses_header)
935 ])dnl
936 dnl ---------------------------------------------------------------------------
937 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
938 dnl ----------
939 dnl "dirname" is not portable, so we fake it with a shell script.
940 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
941 dnl ---------------------------------------------------------------------------
942 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
943 dnl ---------------
944 dnl You can always use "make -n" to see the actual options, but it's hard to
945 dnl pick out/analyze warning messages when the compile-line is long.
946 dnl
947 dnl Sets:
948 dnl     ECHO_LT - symbol to control if libtool is verbose
949 dnl     ECHO_LD - symbol to prefix "cc -o" lines
950 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
951 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
952 dnl     ECHO_CC - symbol to put before any "cc" line
953 dnl
954 AC_DEFUN([CF_DISABLE_ECHO],[
955 AC_MSG_CHECKING(if you want to see long compiling messages)
956 CF_ARG_DISABLE(echo,
957         [  --disable-echo          do not display "compiling" commands],
958         [
959         ECHO_LT='--silent'
960         ECHO_LD='@echo linking [$]@;'
961         RULE_CC='@echo compiling [$]<'
962         SHOW_CC='@echo compiling [$]@'
963         ECHO_CC='@'
964 ],[
965         ECHO_LT=''
966         ECHO_LD=''
967         RULE_CC=''
968         SHOW_CC=''
969         ECHO_CC=''
970 ])
971 AC_MSG_RESULT($enableval)
972 AC_SUBST(ECHO_LT)
973 AC_SUBST(ECHO_LD)
974 AC_SUBST(RULE_CC)
975 AC_SUBST(SHOW_CC)
976 AC_SUBST(ECHO_CC)
977 ])dnl
978 dnl ---------------------------------------------------------------------------
979 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
980 dnl ------------------------
981 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
982 AC_MSG_CHECKING(if we want to use GNAT projects)
983 CF_ARG_DISABLE(gnat-projects,
984         [  --disable-gnat-projects test: disable GNAT projects even if usable],
985         [enable_gnat_projects=no],
986         [enable_gnat_projects=yes])
987 AC_MSG_RESULT($enable_gnat_projects)
988 ])dnl
989 dnl ---------------------------------------------------------------------------
990 dnl CF_ENABLE_BROKEN_LINKER version: 1 updated: 2020/02/08 15:59:30
991 dnl -----------------------
992 dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
993 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
994 dnl an unconditional feature.
995 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
996
997 AC_MSG_CHECKING(if you want broken-linker support code)
998 AC_ARG_ENABLE(broken_linker,
999         [  --enable-broken_linker  compile with broken-linker support code],
1000         [with_broken_linker=$enableval],
1001         [with_broken_linker=no])
1002 AC_MSG_RESULT($with_broken_linker)
1003
1004 : ${BROKEN_LINKER:=0}
1005 if test "x$with_broken_linker" = xyes ; then
1006         AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
1007         BROKEN_LINKER=1
1008 fi
1009 AC_SUBST(BROKEN_LINKER)
1010 ])dnl
1011 dnl ---------------------------------------------------------------------------
1012 dnl CF_ENABLE_WARNINGS version: 7 updated: 2020/08/29 09:05:21
1013 dnl ------------------
1014 dnl Configure-option to enable gcc warnings
1015 dnl
1016 dnl $1 = extra options to add, if supported
1017 dnl $2 = option for checking attributes.  By default, this is done when
1018 dnl      warnings are enabled.  For other values:
1019 dnl      yes: always do this, e.g., to use in generated library-headers
1020 dnl      no: never do this
1021 AC_DEFUN([CF_ENABLE_WARNINGS],[
1022 if ( test "$GCC" = yes || test "$GXX" = yes )
1023 then
1024 CF_FIX_WARNINGS(CFLAGS)
1025 CF_FIX_WARNINGS(CPPFLAGS)
1026 CF_FIX_WARNINGS(LDFLAGS)
1027 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1028 CF_ARG_ENABLE(warnings,
1029         [  --enable-warnings       test: turn on gcc compiler warnings],
1030         [with_warnings=yes],
1031         [with_warnings=no])
1032 AC_MSG_RESULT($with_warnings)
1033 if test "$with_warnings" = "yes"
1034 then
1035         ifelse($2,,[CF_GCC_ATTRIBUTES])
1036         CF_GCC_WARNINGS($1)
1037 fi
1038 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
1039 fi
1040 ])dnl
1041 dnl ---------------------------------------------------------------------------
1042 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1043 dnl ---------------
1044 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
1045 dnl prefer a standard location, and use -L options only if we do not find the
1046 dnl library in the standard library location(s).
1047 dnl     $1 = library name
1048 dnl     $2 = library class, usually the same as library name
1049 dnl     $3 = includes
1050 dnl     $4 = code fragment to compile/link
1051 dnl     $5 = corresponding function-name
1052 dnl     $6 = flag, nonnull if failure should not cause an error-exit
1053 dnl
1054 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1055 dnl to use a -L option.
1056 AC_DEFUN([CF_FIND_LIBRARY],
1057 [
1058         eval 'cf_cv_have_lib_'$1'=no'
1059         cf_libdir=""
1060         AC_CHECK_FUNC($5,
1061                 eval 'cf_cv_have_lib_'$1'=yes',[
1062                 cf_save_LIBS="$LIBS"
1063                 AC_MSG_CHECKING(for $5 in -l$1)
1064                 LIBS="-l$1 $LIBS"
1065                 AC_TRY_LINK([$3],[$4],
1066                         [AC_MSG_RESULT(yes)
1067                          eval 'cf_cv_have_lib_'$1'=yes'
1068                         ],
1069                         [AC_MSG_RESULT(no)
1070                         CF_LIBRARY_PATH(cf_search,$2)
1071                         for cf_libdir in $cf_search
1072                         do
1073                                 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1074                                 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1075                                 AC_TRY_LINK([$3],[$4],
1076                                         [AC_MSG_RESULT(yes)
1077                                          eval 'cf_cv_have_lib_'$1'=yes'
1078                                          break],
1079                                         [AC_MSG_RESULT(no)
1080                                          LIBS="$cf_save_LIBS"])
1081                         done
1082                         ])
1083                 ])
1084 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1085 ifelse($6,,[
1086 if test $cf_found_library = no ; then
1087         AC_MSG_ERROR(Cannot link $1 library)
1088 fi
1089 ])
1090 ])dnl
1091 dnl ---------------------------------------------------------------------------
1092 dnl CF_FIND_LINKAGE version: 21 updated: 2018/06/20 20:23:13
1093 dnl ---------------
1094 dnl Find a library (specifically the linkage used in the code fragment),
1095 dnl searching for it if it is not already in the library path.
1096 dnl See also CF_ADD_SEARCHPATH.
1097 dnl
1098 dnl Parameters (4-on are optional):
1099 dnl     $1 = headers for library entrypoint
1100 dnl     $2 = code fragment for library entrypoint
1101 dnl     $3 = the library name without the "-l" option or ".so" suffix.
1102 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1103 dnl     $5 = action to perform if not successful
1104 dnl     $6 = module name, if not the same as the library name
1105 dnl     $7 = extra libraries
1106 dnl
1107 dnl Sets these variables:
1108 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1109 dnl     $cf_cv_header_path_$3 - include-directory if needed
1110 dnl     $cf_cv_library_path_$3 - library-directory if needed
1111 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1112 AC_DEFUN([CF_FIND_LINKAGE],[
1113
1114 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1115 # will be set on completion of the AC_TRY_LINK below.
1116 cf_cv_header_path_$3=
1117 cf_cv_library_path_$3=
1118
1119 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1120
1121 cf_save_LIBS="$LIBS"
1122
1123 AC_TRY_LINK([$1],[$2],[
1124         cf_cv_find_linkage_$3=yes
1125         cf_cv_header_path_$3=/usr/include
1126         cf_cv_library_path_$3=/usr/lib
1127 ],[
1128
1129 LIBS="-l$3 $7 $cf_save_LIBS"
1130
1131 AC_TRY_LINK([$1],[$2],[
1132         cf_cv_find_linkage_$3=yes
1133         cf_cv_header_path_$3=/usr/include
1134         cf_cv_library_path_$3=/usr/lib
1135         cf_cv_library_file_$3="-l$3"
1136 ],[
1137         cf_cv_find_linkage_$3=no
1138         LIBS="$cf_save_LIBS"
1139
1140         CF_VERBOSE(find linkage for $3 library)
1141         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1142
1143         cf_save_CPPFLAGS="$CPPFLAGS"
1144         cf_test_CPPFLAGS="$CPPFLAGS"
1145
1146         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1147         for cf_cv_header_path_$3 in $cf_search
1148         do
1149                 if test -d $cf_cv_header_path_$3 ; then
1150                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
1151                         CPPFLAGS="$cf_save_CPPFLAGS"
1152                         CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
1153                         AC_TRY_COMPILE([$1],[$2],[
1154                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1155                                 cf_cv_find_linkage_$3=maybe
1156                                 cf_test_CPPFLAGS="$CPPFLAGS"
1157                                 break],[
1158                                 CPPFLAGS="$cf_save_CPPFLAGS"
1159                                 ])
1160                 fi
1161         done
1162
1163         if test "$cf_cv_find_linkage_$3" = maybe ; then
1164
1165                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1166
1167                 cf_save_LIBS="$LIBS"
1168                 cf_save_LDFLAGS="$LDFLAGS"
1169
1170                 ifelse([$6],,,[
1171                 CPPFLAGS="$cf_test_CPPFLAGS"
1172                 LIBS="-l$3 $7 $cf_save_LIBS"
1173                 AC_TRY_LINK([$1],[$2],[
1174                         CF_VERBOSE(... found $3 library in system)
1175                         cf_cv_find_linkage_$3=yes])
1176                         CPPFLAGS="$cf_save_CPPFLAGS"
1177                         LIBS="$cf_save_LIBS"
1178                         ])
1179
1180                 if test "$cf_cv_find_linkage_$3" != yes ; then
1181                         CF_LIBRARY_PATH(cf_search,$3)
1182                         for cf_cv_library_path_$3 in $cf_search
1183                         do
1184                                 if test -d $cf_cv_library_path_$3 ; then
1185                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
1186                                         CPPFLAGS="$cf_test_CPPFLAGS"
1187                                         LIBS="-l$3 $7 $cf_save_LIBS"
1188                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1189                                         AC_TRY_LINK([$1],[$2],[
1190                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1191                                         cf_cv_find_linkage_$3=yes
1192                                         cf_cv_library_file_$3="-l$3"
1193                                         break],[
1194                                         CPPFLAGS="$cf_save_CPPFLAGS"
1195                                         LIBS="$cf_save_LIBS"
1196                                         LDFLAGS="$cf_save_LDFLAGS"
1197                                         ])
1198                                 fi
1199                         done
1200                         CPPFLAGS="$cf_save_CPPFLAGS"
1201                         LDFLAGS="$cf_save_LDFLAGS"
1202                 fi
1203
1204         else
1205                 cf_cv_find_linkage_$3=no
1206         fi
1207         ],$7)
1208 ])
1209
1210 LIBS="$cf_save_LIBS"
1211
1212 if test "$cf_cv_find_linkage_$3" = yes ; then
1213 ifelse([$4],,[
1214         CF_ADD_INCDIR($cf_cv_header_path_$3)
1215         CF_ADD_LIBDIR($cf_cv_library_path_$3)
1216         CF_ADD_LIB($3)
1217 ],[$4])
1218 else
1219 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1220 fi
1221 ])dnl
1222 dnl ---------------------------------------------------------------------------
1223 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
1224 dnl -----------------
1225 dnl make ADAFLAGS consistent with CFLAGS
1226 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1227         AC_MSG_CHECKING(optimization options for ADAFLAGS)
1228         case "$CFLAGS" in
1229         (*-g*)
1230                 CF_ADD_ADAFLAGS(-g)
1231                 ;;
1232         esac
1233         case "$CFLAGS" in
1234         (*-O*)
1235                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
1236                 CF_ADD_ADAFLAGS($cf_O_flag)
1237                 ;;
1238         esac
1239         AC_MSG_RESULT($ADAFLAGS)
1240 ])dnl
1241 dnl ---------------------------------------------------------------------------
1242 dnl CF_FIX_WARNINGS version: 2 updated: 2020/08/28 15:08:28
1243 dnl ---------------
1244 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
1245 dnl "-Werror" flags can interfere with configure-checks.  Those go into
1246 dnl EXTRA_CFLAGS.
1247 dnl
1248 dnl $1 = variable name to repair
1249 define([CF_FIX_WARNINGS],[
1250 if ( test "$GCC" = yes || test "$GXX" = yes )
1251 then
1252         case [$]$1 in
1253         (*-Werror=*)
1254                 CF_VERBOSE(repairing $1: [$]$1)
1255                 cf_temp_flags=
1256                 for cf_temp_scan in [$]$1
1257                 do
1258                         case "x$cf_temp_scan" in
1259                         (x-Werror=*)
1260                                 CF_APPEND_TEXT(EXTRA_CFLAGS,"$cf_temp_scan")
1261                                 ;;
1262                         (*)
1263                                 CF_APPEND_TEXT(cf_temp_flags,"$cf_temp_scan")
1264                                 ;;
1265                         esac
1266                 done
1267                 $1="$cf_temp_flags"
1268                 CF_VERBOSE(... fixed [$]$1)
1269                 CF_VERBOSE(... extra $EXTRA_CFLAGS)
1270                 ;;
1271         esac
1272 fi
1273 AC_SUBST(EXTRA_CFLAGS)
1274 ])dnl
1275 dnl ---------------------------------------------------------------------------
1276 dnl CF_GCC_ATTRIBUTES version: 19 updated: 2020/08/29 09:05:21
1277 dnl -----------------
1278 dnl Test for availability of useful gcc __attribute__ directives to quiet
1279 dnl compiler warnings.  Though useful, not all are supported -- and contrary
1280 dnl to documentation, unrecognized directives cause older compilers to barf.
1281 AC_DEFUN([CF_GCC_ATTRIBUTES],
1282 [
1283 if ( test "$GCC" = yes || test "$GXX" = yes )
1284 then
1285 cat > conftest.i <<EOF
1286 #ifndef GCC_PRINTF
1287 #define GCC_PRINTF 0
1288 #endif
1289 #ifndef GCC_SCANF
1290 #define GCC_SCANF 0
1291 #endif
1292 #ifndef GCC_NORETURN
1293 #define GCC_NORETURN /* nothing */
1294 #endif
1295 #ifndef GCC_UNUSED
1296 #define GCC_UNUSED /* nothing */
1297 #endif
1298 EOF
1299 if test "$GCC" = yes
1300 then
1301         AC_CHECKING([for $CC __attribute__ directives])
1302 cat > conftest.$ac_ext <<EOF
1303 #line __oline__ "${as_me:-configure}"
1304 #include "confdefs.h"
1305 #include "conftest.h"
1306 #include "conftest.i"
1307 #if     GCC_PRINTF
1308 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1309 #else
1310 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1311 #endif
1312 #if     GCC_SCANF
1313 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1314 #else
1315 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1316 #endif
1317 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1318 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1319 extern void foo(void) GCC_NORETURN;
1320 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
1321 EOF
1322         cf_printf_attribute=no
1323         cf_scanf_attribute=no
1324         for cf_attribute in scanf printf unused noreturn
1325         do
1326                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1327                 cf_directive="__attribute__(($cf_attribute))"
1328                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1329
1330                 case $cf_attribute in
1331                 (printf)
1332                         cf_printf_attribute=yes
1333                         cat >conftest.h <<EOF
1334 #define GCC_$cf_ATTRIBUTE 1
1335 EOF
1336                         ;;
1337                 (scanf)
1338                         cf_scanf_attribute=yes
1339                         cat >conftest.h <<EOF
1340 #define GCC_$cf_ATTRIBUTE 1
1341 EOF
1342                         ;;
1343                 (*)
1344                         cat >conftest.h <<EOF
1345 #define GCC_$cf_ATTRIBUTE $cf_directive
1346 EOF
1347                         ;;
1348                 esac
1349
1350                 if AC_TRY_EVAL(ac_compile); then
1351                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1352                         cat conftest.h >>confdefs.h
1353                         case $cf_attribute in
1354                         (noreturn)
1355                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1356                                 ;;
1357                         (printf)
1358                                 cf_value='/* nothing */'
1359                                 if test "$cf_printf_attribute" != no ; then
1360                                         cf_value='__attribute__((format(printf,fmt,var)))'
1361                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1362                                 fi
1363                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1364                                 ;;
1365                         (scanf)
1366                                 cf_value='/* nothing */'
1367                                 if test "$cf_scanf_attribute" != no ; then
1368                                         cf_value='__attribute__((format(scanf,fmt,var)))'
1369                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1370                                 fi
1371                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1372                                 ;;
1373                         (unused)
1374                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1375                                 ;;
1376                         esac
1377                 fi
1378         done
1379 else
1380         fgrep define conftest.i >>confdefs.h
1381 fi
1382 rm -rf conftest*
1383 fi
1384 ])dnl
1385 dnl ---------------------------------------------------------------------------
1386 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
1387 dnl --------------
1388 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
1389 dnl compatible), attempt to determine if icc/clang is actually used.
1390 AC_DEFUN([CF_GCC_VERSION],[
1391 AC_REQUIRE([AC_PROG_CC])
1392 GCC_VERSION=none
1393 if test "$GCC" = yes ; then
1394         AC_MSG_CHECKING(version of $CC)
1395         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.]].*//'`"
1396         test -z "$GCC_VERSION" && GCC_VERSION=unknown
1397         AC_MSG_RESULT($GCC_VERSION)
1398 fi
1399 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1400 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1401 ])dnl
1402 dnl ---------------------------------------------------------------------------
1403 dnl CF_GCC_WARNINGS version: 38 updated: 2020/08/28 15:08:28
1404 dnl ---------------
1405 dnl Check if the compiler supports useful warning options.  There's a few that
1406 dnl we don't use, simply because they're too noisy:
1407 dnl
1408 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1409 dnl     -Winline (usually not worthwhile)
1410 dnl     -Wredundant-decls (system headers make this too noisy)
1411 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
1412 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
1413 dnl             is enabled for ncurses using "--enable-const".
1414 dnl     -pedantic
1415 dnl
1416 dnl Parameter:
1417 dnl     $1 is an optional list of gcc warning flags that a particular
1418 dnl             application might want to use, e.g., "no-unused" for
1419 dnl             -Wno-unused
1420 dnl Special:
1421 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
1422 dnl
1423 AC_DEFUN([CF_GCC_WARNINGS],
1424 [
1425 AC_REQUIRE([CF_GCC_VERSION])
1426 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
1427 cat > conftest.$ac_ext <<EOF
1428 #line __oline__ "${as_me:-configure}"
1429 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1430 EOF
1431 if test "$INTEL_COMPILER" = yes
1432 then
1433 # The "-wdXXX" options suppress warnings:
1434 # remark #1419: external declaration in primary source file
1435 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1436 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1437 # remark #193: zero used for undefined preprocessing identifier
1438 # remark #593: variable "curs_sb_left_arrow" was set but never used
1439 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1440 # remark #869: parameter "tw" was never referenced
1441 # remark #981: operands are evaluated in unspecified order
1442 # warning #279: controlling expression is constant
1443
1444         AC_CHECKING([for $CC warning options])
1445         cf_save_CFLAGS="$CFLAGS"
1446         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
1447         for cf_opt in \
1448                 wd1419 \
1449                 wd1683 \
1450                 wd1684 \
1451                 wd193 \
1452                 wd593 \
1453                 wd279 \
1454                 wd810 \
1455                 wd869 \
1456                 wd981
1457         do
1458                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1459                 if AC_TRY_EVAL(ac_compile); then
1460                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1461                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1462                 fi
1463         done
1464         CFLAGS="$cf_save_CFLAGS"
1465 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
1466 then
1467         AC_CHECKING([for $CC warning options])
1468         cf_save_CFLAGS="$CFLAGS"
1469         cf_warn_CONST=""
1470         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1471         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1472         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1473         for cf_opt in W Wall \
1474                 Wbad-function-cast \
1475                 Wcast-align \
1476                 Wcast-qual \
1477                 Wdeclaration-after-statement \
1478                 Wextra \
1479                 Winline \
1480                 Wmissing-declarations \
1481                 Wmissing-prototypes \
1482                 Wnested-externs \
1483                 Wpointer-arith \
1484                 Wshadow \
1485                 Wstrict-prototypes \
1486                 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
1487         do
1488                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1489                 if AC_TRY_EVAL(ac_compile); then
1490                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1491                         case $cf_opt in
1492                         (Winline)
1493                                 case $GCC_VERSION in
1494                                 ([[34]].*)
1495                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1496                                         continue;;
1497                                 esac
1498                                 ;;
1499                         (Wpointer-arith)
1500                                 case $GCC_VERSION in
1501                                 ([[12]].*)
1502                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1503                                         continue;;
1504                                 esac
1505                                 ;;
1506                         esac
1507                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1508                 fi
1509         done
1510         CFLAGS="$cf_save_CFLAGS"
1511 fi
1512 rm -rf conftest*
1513
1514 AC_SUBST(EXTRA_CFLAGS)
1515 ])dnl
1516 dnl ---------------------------------------------------------------------------
1517 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
1518 dnl -----------------
1519 AC_DEFUN([CF_GNATPREP_OPT_T],[
1520 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
1521 cf_cv_gnatprep_opt_t=no
1522 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
1523 ])
1524 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
1525 AC_SUBST(GNATPREP_OPTS)
1526 ])dnl
1527 dnl ---------------------------------------------------------------------------
1528 dnl CF_GNAT_GENERICS version: 6 updated: 2020/07/04 19:30:27
1529 dnl ----------------
1530 AC_DEFUN([CF_GNAT_GENERICS],
1531 [
1532 AC_REQUIRE([CF_GNAT_VERSION])
1533
1534 AC_MSG_CHECKING(if GNAT supports generics)
1535 case $cf_cv_gnat_version in
1536 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1537         cf_gnat_generics=yes
1538         ;;
1539 (*)
1540         cf_gnat_generics=no
1541         ;;
1542 esac
1543 AC_MSG_RESULT($cf_gnat_generics)
1544
1545 if test "$cf_gnat_generics" = yes
1546 then
1547         cf_compile_generics=generics
1548         cf_generic_objects="\${GENOBJS}"
1549 else
1550         cf_compile_generics=
1551         cf_generic_objects=
1552 fi
1553
1554 AC_SUBST(cf_compile_generics)
1555 AC_SUBST(cf_generic_objects)
1556 ])dnl
1557 dnl ---------------------------------------------------------------------------
1558 dnl CF_GNAT_PROJECTS version: 10 updated: 2019/12/31 08:53:54
1559 dnl ----------------
1560 dnl GNAT projects are configured with ".gpr" project files.
1561 dnl GNAT libraries are a further development, using the project feature.
1562 AC_DEFUN([CF_GNAT_PROJECTS],
1563 [
1564 AC_REQUIRE([CF_GNAT_VERSION])
1565 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
1566
1567 cf_gnat_libraries=no
1568 cf_gnat_projects=no
1569
1570 if test "$enable_gnat_projects" != no ; then
1571 AC_MSG_CHECKING(if GNAT supports project files)
1572 case $cf_cv_gnat_version in
1573 (3.[[0-9]]*)
1574         ;;
1575 (*)
1576         case $cf_cv_system_name in
1577         (cygwin*|msys*)
1578                 ;;
1579         (*)
1580                 rm -rf conftest* *~conftest*
1581                 if mkdir conftest.src conftest.bin conftest.lib
1582                 then
1583                         cd conftest.src
1584                         rm -rf conftest* *~conftest*
1585                         cat >>library.gpr <<CF_EOF
1586 project Library is
1587   Kind := External ("LIB_KIND");
1588   for Library_Name use "ConfTest";
1589   for Object_Dir use ".";
1590   for Library_ALI_Dir use External("LIBRARY_DIR");
1591   for Library_Version use External ("SONAME");
1592   for Library_Kind use Kind;
1593   for Library_Dir use External("BUILD_DIR");
1594   Source_Dir := External ("SOURCE_DIR");
1595   for Source_Dirs use (Source_Dir);
1596 end Library;
1597 CF_EOF
1598                         cat >>confpackage.ads <<CF_EOF
1599 package ConfPackage is
1600    procedure conftest;
1601 end ConfPackage;
1602 CF_EOF
1603                         cat >>confpackage.adb <<CF_EOF
1604 with Text_IO;
1605 package body ConfPackage is
1606    procedure conftest is
1607    begin
1608       Text_IO.Put ("Hello World");
1609       Text_IO.New_Line;
1610    end conftest;
1611 end ConfPackage;
1612 CF_EOF
1613                         if ( $cf_ada_make $ADAFLAGS \
1614                                         -Plibrary.gpr \
1615                                         -XBUILD_DIR=`cd ../conftest.bin;pwd` \
1616                                         -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
1617                                         -XSOURCE_DIR=`pwd` \
1618                                         -XSONAME=libConfTest.so.1 \
1619                                         -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
1620                                 cf_gnat_projects=yes
1621                         fi
1622                         cd ..
1623                 fi
1624                 if test -f conftest.lib/confpackage.ali
1625                 then
1626                         cf_gnat_libraries=yes
1627                 fi
1628                 rm -rf conftest* *~conftest*
1629                 ;;
1630         esac
1631         ;;
1632 esac
1633 AC_MSG_RESULT($cf_gnat_projects)
1634 fi # enable_gnat_projects
1635
1636 if test $cf_gnat_projects = yes
1637 then
1638         AC_MSG_CHECKING(if GNAT supports libraries)
1639         AC_MSG_RESULT($cf_gnat_libraries)
1640 fi
1641
1642 if test "$cf_gnat_projects" = yes
1643 then
1644         USE_OLD_MAKERULES="#"
1645         USE_GNAT_PROJECTS=""
1646 else
1647         USE_OLD_MAKERULES=""
1648         USE_GNAT_PROJECTS="#"
1649 fi
1650
1651 if test "$cf_gnat_libraries" = yes
1652 then
1653         USE_GNAT_LIBRARIES=""
1654 else
1655         USE_GNAT_LIBRARIES="#"
1656 fi
1657
1658 AC_SUBST(USE_OLD_MAKERULES)
1659 AC_SUBST(USE_GNAT_PROJECTS)
1660 AC_SUBST(USE_GNAT_LIBRARIES)
1661 ])dnl
1662 dnl ---------------------------------------------------------------------------
1663 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
1664 dnl --------------
1665 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
1666 dnl is noted that gnat may compile a tasking unit even for configurations which
1667 dnl fail at runtime.
1668 AC_DEFUN([CF_GNAT_SIGINT],[
1669 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
1670 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
1671
1672 package ConfTest is
1673
1674    pragma Warnings (Off);  --  the next pragma exists since 3.11p
1675    pragma Unreserve_All_Interrupts;
1676    pragma Warnings (On);
1677
1678    protected Process is
1679       procedure Stop;
1680       function Continue return Boolean;
1681       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
1682    private
1683       Done : Boolean := False;
1684    end Process;
1685
1686 end ConfTest;],
1687 [package body ConfTest is
1688    protected body Process is
1689       procedure Stop is
1690       begin
1691          Done := True;
1692       end Stop;
1693       function Continue return Boolean is
1694       begin
1695          return not Done;
1696       end Continue;
1697    end Process;
1698 end ConfTest;],
1699         [cf_cv_gnat_sigint=yes],
1700         [cf_cv_gnat_sigint=no])])
1701
1702 if test $cf_cv_gnat_sigint = yes ; then
1703         USE_GNAT_SIGINT=""
1704 else
1705         USE_GNAT_SIGINT="#"
1706 fi
1707 AC_SUBST(USE_GNAT_SIGINT)
1708 ])dnl
1709 dnl ---------------------------------------------------------------------------
1710 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
1711 dnl ----------------
1712 dnl Verify that a test program compiles/links with GNAT.
1713 dnl $cf_ada_make is set to the program that compiles/links
1714 dnl $ADAFLAGS may be set to the GNAT flags.
1715 dnl
1716 dnl $1 is the text of the spec
1717 dnl $2 is the text of the body
1718 dnl $3 is the shell command to execute if successful
1719 dnl $4 is the shell command to execute if not successful
1720 AC_DEFUN([CF_GNAT_TRY_LINK],
1721 [
1722 rm -rf conftest* *~conftest*
1723 cat >>conftest.ads <<CF_EOF
1724 $1
1725 CF_EOF
1726 cat >>conftest.adb <<CF_EOF
1727 $2
1728 CF_EOF
1729 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1730 ifelse($3,,      :,[      $3])
1731 ifelse($4,,,[else
1732    $4])
1733 fi
1734 rm -rf conftest* *~conftest*
1735 ])dnl
1736 dnl ---------------------------------------------------------------------------
1737 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
1738 dnl ---------------
1739 dnl Verify that a test program compiles and runs with GNAT
1740 dnl $cf_ada_make is set to the program that compiles/links
1741 dnl $ADAFLAGS may be set to the GNAT flags.
1742 dnl
1743 dnl $1 is the text of the spec
1744 dnl $2 is the text of the body
1745 dnl $3 is the shell command to execute if successful
1746 dnl $4 is the shell command to execute if not successful
1747 AC_DEFUN([CF_GNAT_TRY_RUN],
1748 [
1749 rm -rf conftest* *~conftest*
1750 cat >>conftest.ads <<CF_EOF
1751 $1
1752 CF_EOF
1753 cat >>conftest.adb <<CF_EOF
1754 $2
1755 CF_EOF
1756 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1757    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1758 ifelse($3,,      :,[      $3])
1759 ifelse($4,,,[   else
1760       $4])
1761    fi
1762 ifelse($4,,,[else
1763    $4])
1764 fi
1765 rm -rf conftest* *~conftest*
1766 ])dnl
1767 dnl ---------------------------------------------------------------------------
1768 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
1769 dnl ---------------
1770 dnl $1 = cache variable to update
1771 dnl $2 = program name
1772 dnl Verify version of GNAT or related tool
1773 AC_DEFUN([CF_GNAT_VERSION],
1774 [
1775 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
1776 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
1777         grep '[[0-9]].[[0-9]][[0-9]]*' |\
1778         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1779 ])
1780 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
1781 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
1782 ])dnl
1783 dnl ---------------------------------------------------------------------------
1784 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1785 dnl -------------
1786 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1787 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1788 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1789 dnl since it is interwoven with GNU extensions.
1790 dnl
1791 dnl Well, yes we could work around it...
1792 dnl
1793 dnl Parameters:
1794 dnl     $1 is the nominal value for _XOPEN_SOURCE
1795 AC_DEFUN([CF_GNU_SOURCE],
1796 [
1797 cf_gnu_xopen_source=ifelse($1,,500,$1)
1798
1799 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1800 AC_TRY_COMPILE([#include <sys/types.h>],[
1801         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1802                 return 0;
1803         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1804                 return 0;
1805         #else
1806         #       error not GNU C library
1807         #endif],
1808         [cf_cv_gnu_library=yes],
1809         [cf_cv_gnu_library=no])
1810 ])
1811
1812 if test x$cf_cv_gnu_library = xyes; then
1813
1814         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1815         # was changed to help a little.  newlib incorporated the change about 4
1816         # years later.
1817         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1818                 cf_save="$CPPFLAGS"
1819                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1820                 AC_TRY_COMPILE([#include <sys/types.h>],[
1821                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1822                                 return 0;
1823                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1824                                 return 0;
1825                         #else
1826                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1827                         #endif],
1828                         [cf_cv_gnu_library_219=yes],
1829                         [cf_cv_gnu_library_219=no])
1830                 CPPFLAGS="$cf_save"
1831         ])
1832
1833         if test "x$cf_cv_gnu_library_219" = xyes; then
1834                 cf_save="$CPPFLAGS"
1835                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
1836                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
1837                         AC_TRY_COMPILE([
1838                                 #include <limits.h>
1839                                 #include <sys/types.h>
1840                                 ],[
1841                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
1842                                         return 0;
1843                                 #else
1844                                 #       error GNU C library is too old
1845                                 #endif],
1846                                 [cf_cv_gnu_dftsrc_219=yes],
1847                                 [cf_cv_gnu_dftsrc_219=no])
1848                         ])
1849                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
1850         else
1851                 cf_cv_gnu_dftsrc_219=maybe
1852         fi
1853
1854         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
1855
1856                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1857                 AC_TRY_COMPILE([#include <sys/types.h>],[
1858                         #ifndef _XOPEN_SOURCE
1859                         #error  expected _XOPEN_SOURCE to be defined
1860                         #endif],
1861                         [cf_cv_gnu_source=no],
1862                         [cf_save="$CPPFLAGS"
1863                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
1864                          AC_TRY_COMPILE([#include <sys/types.h>],[
1865                                 #ifdef _XOPEN_SOURCE
1866                                 #error  expected _XOPEN_SOURCE to be undefined
1867                                 #endif],
1868                                 [cf_cv_gnu_source=no],
1869                                 [cf_cv_gnu_source=yes])
1870                         CPPFLAGS="$cf_save"
1871                         ])
1872                 ])
1873
1874                 if test "$cf_cv_gnu_source" = yes
1875                 then
1876                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1877                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
1878                         AC_TRY_COMPILE([#include <sys/types.h>],[
1879                                 #ifdef _DEFAULT_SOURCE
1880                                 #error  expected _DEFAULT_SOURCE to be undefined
1881                                 #endif],
1882                                 [cf_cv_default_source=no],
1883                                 [cf_cv_default_source=yes])
1884                         ])
1885                         if test "$cf_cv_default_source" = yes
1886                         then
1887                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1888                         fi
1889                 fi
1890         fi
1891
1892 fi
1893 ])dnl
1894 dnl ---------------------------------------------------------------------------
1895 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1896 dnl --------------
1897 dnl Construct a search-list of directories for a nonstandard header-file
1898 dnl
1899 dnl Parameters
1900 dnl     $1 = the variable to return as result
1901 dnl     $2 = the package name
1902 AC_DEFUN([CF_HEADER_PATH],
1903 [
1904 $1=
1905
1906 # collect the current set of include-directories from compiler flags
1907 cf_header_path_list=""
1908 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1909         for cf_header_path in $CPPFLAGS $CFLAGS
1910         do
1911                 case $cf_header_path in
1912                 (-I*)
1913                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1914                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1915                         cf_header_path_list="$cf_header_path_list [$]$1"
1916                         ;;
1917                 esac
1918         done
1919 fi
1920
1921 # add the variations for the package we are looking for
1922 CF_SUBDIR_PATH($1,$2,include)
1923
1924 test "$includedir" != NONE && \
1925 test "$includedir" != "/usr/include" && \
1926 test -d "$includedir" && {
1927         test -d $includedir &&    $1="[$]$1 $includedir"
1928         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1929 }
1930
1931 test "$oldincludedir" != NONE && \
1932 test "$oldincludedir" != "/usr/include" && \
1933 test -d "$oldincludedir" && {
1934         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
1935         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1936 }
1937
1938 $1="[$]$1 $cf_header_path_list"
1939 ])dnl
1940 dnl ---------------------------------------------------------------------------
1941 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
1942 dnl ---------------
1943 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1944 AC_DEFUN([CF_HELP_MESSAGE],
1945 [CF_ACVERSION_CHECK(2.53,[],[
1946 AC_DIVERT_HELP($1)])dnl
1947 ])dnl
1948 dnl ---------------------------------------------------------------------------
1949 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
1950 dnl ---------------
1951 dnl Construct the list of include-options according to whether we're building
1952 dnl in the source directory or using '--srcdir=DIR' option.
1953 AC_DEFUN([CF_INCLUDE_DIRS],
1954 [
1955 if test "$srcdir" != "."; then
1956         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
1957 fi
1958 CPPFLAGS="-I../include $CPPFLAGS"
1959 if test "$srcdir" != "."; then
1960         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
1961 fi
1962 CPPFLAGS="-I. $CPPFLAGS"
1963 AC_SUBST(CPPFLAGS)
1964 ])dnl
1965 dnl ---------------------------------------------------------------------------
1966 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
1967 dnl ---------------
1968 dnl prompt for/fill-in useful install-program options
1969 AC_DEFUN([CF_INSTALL_OPTS],
1970 [
1971 CF_INSTALL_OPT_S
1972 CF_INSTALL_OPT_P
1973 CF_INSTALL_OPT_O
1974 ])dnl
1975 dnl ---------------------------------------------------------------------------
1976 dnl CF_INSTALL_OPT_O version: 2 updated: 2015/05/15 19:45:35
1977 dnl ----------------
1978 dnl Almost all "install" programs default to the current user's ownership.
1979 dnl Almost - MINIX is an exception.
1980 AC_DEFUN([CF_INSTALL_OPT_O],
1981 [
1982 AC_MSG_CHECKING(if install needs to be told about ownership)
1983 case `$ac_config_guess` in
1984 (*minix)
1985         with_install_o=yes
1986         ;;
1987 (*)
1988         with_install_o=no
1989         ;;
1990 esac
1991
1992 AC_MSG_RESULT($with_install_o)
1993 if test "x$with_install_o" = xyes
1994 then
1995         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'`
1996 else
1997         INSTALL_OPT_O=
1998 fi
1999
2000 AC_SUBST(INSTALL_OPT_O)
2001 ])dnl
2002 dnl ---------------------------------------------------------------------------
2003 dnl CF_INSTALL_OPT_P version: 1 updated: 2018/08/18 12:19:21
2004 dnl ----------------
2005 dnl Some install-programs accept a "-p" option to preserve file modification
2006 dnl timestamps.  That can be useful as an install option, as well as a way to
2007 dnl avoid the need for ranlib after copying a static archive.
2008 AC_DEFUN([CF_INSTALL_OPT_P],
2009 [
2010 : ${INSTALL:=install}
2011 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
2012         rm -rf conftest*
2013         date >conftest.in
2014         mkdir conftest.out
2015         sleep 3
2016         if $INSTALL -p conftest.in conftest.out 2>/dev/null
2017         then
2018                 if test -f conftest.out/conftest.in
2019                 then
2020                         test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
2021                         test conftest.out/conftest.in -nt conftest.in 2>conftest.err
2022                         if test -s conftest.err
2023                         then
2024                                 cf_cv_install_p=no
2025                         else
2026                                 cf_cv_install_p=yes
2027                         fi
2028                 else
2029                         cf_cv_install_p=no
2030                 fi
2031         else
2032                 cf_cv_install_p=no
2033         fi
2034         rm -rf conftest*
2035 ])
2036 ])dnl
2037 dnl ---------------------------------------------------------------------------
2038 dnl CF_INSTALL_OPT_S version: 2 updated: 2018/08/18 12:19:21
2039 dnl ----------------
2040 dnl By default, we should strip executables which are installed, but leave the
2041 dnl ability to suppress that for unit-testing.
2042 AC_DEFUN([CF_INSTALL_OPT_S],
2043 [
2044 AC_MSG_CHECKING(if you want to install stripped executables)
2045 CF_ARG_DISABLE(stripping,
2046         [  --disable-stripping     do not strip (debug info) installed executables],
2047         [with_stripping=no],
2048         [with_stripping=yes])
2049 AC_MSG_RESULT($with_stripping)
2050
2051 if test "$with_stripping" = yes
2052 then
2053         INSTALL_OPT_S="-s"
2054 else
2055         INSTALL_OPT_S=
2056 fi
2057 AC_SUBST(INSTALL_OPT_S)
2058 ])dnl
2059 dnl ---------------------------------------------------------------------------
2060 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
2061 dnl -----------------
2062 dnl Check if the given compiler is really the Intel compiler for Linux.  It
2063 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2064 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2065 dnl
2066 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2067 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2068 dnl the wrappers for gcc and g++ warnings.
2069 dnl
2070 dnl $1 = GCC (default) or GXX
2071 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2072 dnl $3 = CFLAGS (default) or CXXFLAGS
2073 AC_DEFUN([CF_INTEL_COMPILER],[
2074 AC_REQUIRE([AC_CANONICAL_HOST])
2075 ifelse([$2],,INTEL_COMPILER,[$2])=no
2076
2077 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2078         case $host_os in
2079         (linux*|gnu*)
2080                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2081                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2082                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2083                 AC_TRY_COMPILE([],[
2084 #ifdef __INTEL_COMPILER
2085 #else
2086 make an error
2087 #endif
2088 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2089 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2090 ],[])
2091                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2092                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2093                 ;;
2094         esac
2095 fi
2096 ])dnl
2097 dnl ---------------------------------------------------------------------------
2098 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
2099 dnl ------------
2100 dnl Add checks for large file support.
2101 AC_DEFUN([CF_LARGEFILE],[
2102 ifdef([AC_FUNC_FSEEKO],[
2103         AC_SYS_LARGEFILE
2104         if test "$enable_largefile" != no ; then
2105         AC_FUNC_FSEEKO
2106
2107         # Normally we would collect these definitions in the config.h,
2108         # but (like _XOPEN_SOURCE), some environments rely on having these
2109         # defined before any of the system headers are included.  Another
2110         # case comes up with C++, e.g., on AIX the compiler compiles the
2111         # header files by themselves before looking at the body files it is
2112         # told to compile.  For ncurses, those header files do not include
2113         # the config.h
2114         if test "$ac_cv_sys_large_files" != no
2115         then
2116                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
2117         fi
2118         if test "$ac_cv_sys_largefile_source" != no
2119         then
2120                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
2121         fi
2122         if test "$ac_cv_sys_file_offset_bits" != no
2123         then
2124                 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
2125         fi
2126
2127         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2128                 AC_TRY_COMPILE([
2129 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
2130 #include <sys/types.h>
2131 #include <dirent.h>
2132                 ],[
2133                 /* if transitional largefile support is setup, this is true */
2134                 extern struct dirent64 * readdir(DIR *);
2135                 struct dirent64 *x = readdir((DIR *)0);
2136                 struct dirent *y = readdir((DIR *)0);
2137                 int z = x - y;
2138                 (void)z;
2139                 ],
2140                 [cf_cv_struct_dirent64=yes],
2141                 [cf_cv_struct_dirent64=no])
2142         ])
2143         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
2144         fi
2145 ])
2146 ])
2147 dnl ---------------------------------------------------------------------------
2148 dnl CF_LD_RPATH_OPT version: 8 updated: 2018/08/18 16:36:35
2149 dnl ---------------
2150 dnl For the given system and compiler, find the compiler flags to pass to the
2151 dnl loader to use the "rpath" feature.
2152 AC_DEFUN([CF_LD_RPATH_OPT],
2153 [
2154 AC_REQUIRE([CF_CHECK_CACHE])
2155
2156 LD_RPATH_OPT=
2157 if test "x$cf_cv_enable_rpath" != xno
2158 then
2159         AC_MSG_CHECKING(for an rpath option)
2160         case $cf_cv_system_name in
2161         (irix*)
2162                 if test "$GCC" = yes; then
2163                         LD_RPATH_OPT="-Wl,-rpath,"
2164                 else
2165                         LD_RPATH_OPT="-rpath "
2166                 fi
2167                 ;;
2168         (linux*|gnu*|k*bsd*-gnu|freebsd*)
2169                 LD_RPATH_OPT="-Wl,-rpath,"
2170                 ;;
2171         (openbsd[[2-9]].*|mirbsd*)
2172                 LD_RPATH_OPT="-Wl,-rpath,"
2173                 ;;
2174         (dragonfly*)
2175                 LD_RPATH_OPT="-rpath "
2176                 ;;
2177         (netbsd*)
2178                 LD_RPATH_OPT="-Wl,-rpath,"
2179                 ;;
2180         (osf*|mls+*)
2181                 LD_RPATH_OPT="-rpath "
2182                 ;;
2183         (solaris2*)
2184                 LD_RPATH_OPT="-R"
2185                 ;;
2186         (*)
2187                 ;;
2188         esac
2189         AC_MSG_RESULT($LD_RPATH_OPT)
2190
2191         case "x$LD_RPATH_OPT" in
2192         (x-R*)
2193                 AC_MSG_CHECKING(if we need a space after rpath option)
2194                 cf_save_LIBS="$LIBS"
2195                 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2196                 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2197                 LIBS="$cf_save_LIBS"
2198                 AC_MSG_RESULT($cf_rpath_space)
2199                 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2200                 ;;
2201         esac
2202 fi
2203 ])dnl
2204 dnl ---------------------------------------------------------------------------
2205 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
2206 dnl ---------------
2207 dnl Construct a search-list of directories for a nonstandard library-file
2208 dnl
2209 dnl Parameters
2210 dnl     $1 = the variable to return as result
2211 dnl     $2 = the package name
2212 AC_DEFUN([CF_LIBRARY_PATH],
2213 [
2214 $1=
2215 cf_library_path_list=""
2216 if test -n "${LDFLAGS}${LIBS}" ; then
2217         for cf_library_path in $LDFLAGS $LIBS
2218         do
2219                 case $cf_library_path in
2220                 (-L*)
2221                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2222                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2223                         cf_library_path_list="$cf_library_path_list [$]$1"
2224                         ;;
2225                 esac
2226         done
2227 fi
2228
2229 CF_SUBDIR_PATH($1,$2,lib)
2230
2231 $1="$cf_library_path_list [$]$1"
2232 ])dnl
2233 dnl ---------------------------------------------------------------------------
2234 dnl CF_LIB_PREFIX version: 13 updated: 2020/04/04 10:11:47
2235 dnl -------------
2236 dnl Compute the library-prefix for the given host system
2237 dnl $1 = variable to set
2238 define([CF_LIB_PREFIX],
2239 [
2240         case $cf_cv_system_name in
2241         (OS/2*|os2*)
2242                 if test "$DFT_LWR_MODEL" = libtool; then
2243                         LIB_PREFIX='lib'
2244                 else
2245                         LIB_PREFIX=''
2246                 fi
2247                 ;;
2248         (*-msvc*)
2249                 LIB_PREFIX=''
2250                 ;;
2251         (*)     LIB_PREFIX='lib'
2252                 ;;
2253         esac
2254 ifelse($1,,,[$1=$LIB_PREFIX])
2255         AC_SUBST(LIB_PREFIX)
2256 ])dnl
2257 dnl ---------------------------------------------------------------------------
2258 dnl CF_LIB_SUFFIX version: 26 updated: 2020/04/04 10:11:47
2259 dnl -------------
2260 dnl Compute the library file-suffix from the given model name
2261 dnl $1 = model name
2262 dnl $2 = variable to set (the nominal library suffix)
2263 dnl $3 = dependency variable to set (actual filename)
2264 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2265 AC_DEFUN([CF_LIB_SUFFIX],
2266 [
2267         case X$1 in
2268         (Xlibtool)
2269                 $2='.la'
2270                 $3=[$]$2
2271                 ;;
2272         (Xdebug)
2273                 case $cf_cv_system_name in
2274                 (*-msvc*)
2275                         $2='_g.lib'
2276                         ;;
2277                 (*)
2278                         $2='_g.a'
2279                         ;;
2280                 esac
2281                 $3=[$]$2
2282                 ;;
2283         (Xprofile)
2284                 case $cf_cv_system_name in
2285                 (*-msvc*)
2286                         $2='_p.lib'
2287                         ;;
2288                 (*)
2289                         $2='_p.a'
2290                         ;;
2291                 esac
2292                 $3=[$]$2
2293                 ;;
2294         (Xshared)
2295                 case $cf_cv_system_name in
2296                 (aix[[5-7]]*)
2297                         $2='.so'
2298                         $3=[$]$2
2299                         ;;
2300                 (*-msvc*)
2301                         $2='.dll'
2302                         $3='.dll.lib'
2303                         ;;
2304                 (cygwin*|msys*|mingw*)
2305                         $2='.dll'
2306                         $3='.dll.a'
2307                         ;;
2308                 (darwin*)
2309                         $2='.dylib'
2310                         $3=[$]$2
2311                         ;;
2312                 (hpux*)
2313                         case $target in
2314                         (ia64*)
2315                                 $2='.so'
2316                                 $3=[$]$2
2317                                 ;;
2318                         (*)
2319                                 $2='.sl'
2320                                 $3=[$]$2
2321                                 ;;
2322                         esac
2323                         ;;
2324                 (*)
2325                         $2='.so'
2326                         $3=[$]$2
2327                         ;;
2328                 esac
2329                 ;;
2330         (*)
2331                 case $target in
2332                 (*-msvc*)
2333                         $2='.lib'
2334                         ;;
2335                 (*)
2336                         $2='.a'
2337                         ;;
2338                 esac
2339                 $3=[$]$2
2340                 ;;
2341         esac
2342         if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
2343         then
2344                 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
2345                 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
2346         fi
2347 ])dnl
2348 dnl ---------------------------------------------------------------------------
2349 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
2350 dnl -----------
2351 dnl Compute the string to append to -library from the given model name
2352 dnl $1 = model name
2353 dnl $2 = variable to set
2354 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2355 AC_DEFUN([CF_LIB_TYPE],
2356 [
2357         case $1 in
2358         (libtool) $2=''   ;;
2359         (normal)  $2=''   ;;
2360         (debug)   $2='_g' ;;
2361         (profile) $2='_p' ;;
2362         (shared)  $2=''   ;;
2363         esac
2364         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2365 ])dnl
2366 dnl ---------------------------------------------------------------------------
2367 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
2368 dnl ----------------
2369 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2370 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
2371 dnl have to provide wrappers for global tables to ensure they're linked
2372 dnl properly.
2373 AC_DEFUN([CF_LINK_DATAONLY],
2374 [
2375 AC_MSG_CHECKING([if data-only library module links])
2376 AC_CACHE_VAL(cf_cv_link_dataonly,[
2377         rm -f conftest.a
2378         cat >conftest.$ac_ext <<EOF
2379 #line __oline__ "configure"
2380 int     testdata[[3]] = { 123, 456, 789 };
2381 EOF
2382         if AC_TRY_EVAL(ac_compile) ; then
2383                 mv conftest.o data.o && \
2384                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2385         fi
2386         rm -f conftest.$ac_ext data.o
2387         cat >conftest.$ac_ext <<EOF
2388 #line __oline__ "configure"
2389 int     testfunc(void)
2390 {
2391 #if defined(NeXT)
2392         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
2393 #else
2394         extern int testdata[[3]];
2395         return testdata[[0]] == 123
2396            &&  testdata[[1]] == 456
2397            &&  testdata[[2]] == 789;
2398 #endif
2399 }
2400 EOF
2401         if AC_TRY_EVAL(ac_compile); then
2402                 mv conftest.o func.o && \
2403                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2404         fi
2405         rm -f conftest.$ac_ext func.o
2406         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2407         cf_saveLIBS="$LIBS"
2408         LIBS="conftest.a $LIBS"
2409         AC_TRY_RUN([
2410         int main(void)
2411         {
2412                 extern int testfunc();
2413                 ${cf_cv_main_return:-return} (!testfunc());
2414         }
2415         ],
2416         [cf_cv_link_dataonly=yes],
2417         [cf_cv_link_dataonly=no],
2418         [cf_cv_link_dataonly=unknown])
2419         LIBS="$cf_saveLIBS"
2420         ])
2421 AC_MSG_RESULT($cf_cv_link_dataonly)
2422
2423 if test "$cf_cv_link_dataonly" = no ; then
2424         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
2425         BROKEN_LINKER=1
2426 fi
2427 AC_SUBST(BROKEN_LINKER)
2428
2429 ])dnl
2430 dnl ---------------------------------------------------------------------------
2431 dnl CF_MAKEFLAGS version: 18 updated: 2018/02/21 21:26:03
2432 dnl ------------
2433 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2434 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
2435 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2436 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2437 AC_DEFUN([CF_MAKEFLAGS],
2438 [
2439 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2440         cf_cv_makeflags=''
2441         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2442         do
2443                 cat >cf_makeflags.tmp <<CF_EOF
2444 SHELL = $SHELL
2445 all :
2446         @ echo '.$cf_option'
2447 CF_EOF
2448                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[   ]]*$,,'`
2449                 case "$cf_result" in
2450                 (.*k|.*kw)
2451                         cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2452                         case "$cf_result" in
2453                         (.*CC=*)        cf_cv_makeflags=
2454                                 ;;
2455                         (*)     cf_cv_makeflags=$cf_option
2456                                 ;;
2457                         esac
2458                         break
2459                         ;;
2460                 (.-)
2461                         ;;
2462                 (*)
2463                         CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
2464                         ;;
2465                 esac
2466         done
2467         rm -f cf_makeflags.tmp
2468 ])
2469
2470 AC_SUBST(cf_cv_makeflags)
2471 ])dnl
2472 dnl ---------------------------------------------------------------------------
2473 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2474 dnl ------------
2475 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
2476 dnl a monocase filesystem.
2477 AC_DEFUN([CF_MAKE_TAGS],[
2478 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2479
2480 AC_CHECK_PROGS(CTAGS, exctags ctags)
2481 AC_CHECK_PROGS(ETAGS, exetags etags)
2482
2483 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2484
2485 if test "$cf_cv_mixedcase" = yes ; then
2486         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2487 else
2488         MAKE_UPPER_TAGS=no
2489 fi
2490
2491 if test "$MAKE_UPPER_TAGS" = yes ; then
2492         MAKE_UPPER_TAGS=
2493 else
2494         MAKE_UPPER_TAGS="#"
2495 fi
2496
2497 if test "$MAKE_LOWER_TAGS" = yes ; then
2498         MAKE_LOWER_TAGS=
2499 else
2500         MAKE_LOWER_TAGS="#"
2501 fi
2502
2503 AC_SUBST(CTAGS)
2504 AC_SUBST(ETAGS)
2505
2506 AC_SUBST(MAKE_UPPER_TAGS)
2507 AC_SUBST(MAKE_LOWER_TAGS)
2508 ])dnl
2509 dnl ---------------------------------------------------------------------------
2510 dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
2511 dnl ----------------------
2512 dnl Check if the file-system supports mixed-case filenames.  If we're able to
2513 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2514 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2515 [
2516 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2517 if test "$cross_compiling" = yes ; then
2518         case $target_alias in
2519         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
2520                 cf_cv_mixedcase=no
2521                 ;;
2522         (*)
2523                 cf_cv_mixedcase=yes
2524                 ;;
2525         esac
2526 else
2527         rm -f conftest CONFTEST
2528         echo test >conftest
2529         if test -f CONFTEST ; then
2530                 cf_cv_mixedcase=no
2531         else
2532                 cf_cv_mixedcase=yes
2533         fi
2534         rm -f conftest CONFTEST
2535 fi
2536 ])
2537 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2538 ])dnl
2539 dnl ---------------------------------------------------------------------------
2540 dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16
2541 dnl ----------
2542 dnl Check for a working mkstemp.  This creates two files, checks that they are
2543 dnl successfully created and distinct (AmigaOS apparently fails on the last).
2544 AC_DEFUN([CF_MKSTEMP],[
2545 AC_CHECK_HEADERS( \
2546 unistd.h \
2547 )
2548 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
2549 rm -rf conftest*
2550 AC_TRY_RUN([
2551 #include <sys/types.h>
2552 #ifdef HAVE_UNISTD_H
2553 #include <unistd.h>
2554 #endif
2555 #include <stdlib.h>
2556 #include <stdio.h>
2557 #include <string.h>
2558 #include <sys/stat.h>
2559 int main(void)
2560 {
2561         char *tmpl = "conftestXXXXXX";
2562         char name[2][80];
2563         int n;
2564         int result = 0;
2565         int fd;
2566         struct stat sb;
2567
2568         umask(077);
2569         for (n = 0; n < 2; ++n) {
2570                 strcpy(name[n], tmpl);
2571                 if ((fd = mkstemp(name[n])) >= 0) {
2572                         if (!strcmp(name[n], tmpl)
2573                          || stat(name[n], &sb) != 0
2574                          || (sb.st_mode & S_IFMT) != S_IFREG
2575                          || (sb.st_mode & 077) != 0) {
2576                                 result = 1;
2577                         }
2578                         close(fd);
2579                 }
2580         }
2581         if (result == 0
2582          && !strcmp(name[0], name[1]))
2583                 result = 1;
2584         ${cf_cv_main_return:-return}(result);
2585 }
2586 ],[cf_cv_func_mkstemp=yes
2587 ],[cf_cv_func_mkstemp=no
2588 ],[cf_cv_func_mkstemp=maybe])
2589 ])
2590 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
2591         AC_CHECK_FUNC(mkstemp)
2592 fi
2593 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
2594         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
2595 fi
2596 ])dnl
2597 dnl ---------------------------------------------------------------------------
2598 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2599 dnl ----------
2600 dnl Write a debug message to config.log, along with the line number in the
2601 dnl configure script.
2602 AC_DEFUN([CF_MSG_LOG],[
2603 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2604 ])dnl
2605 dnl ---------------------------------------------------------------------------
2606 dnl CF_NCURSES_ADDON version: 5 updated: 2015/04/26 18:06:58
2607 dnl ----------------
2608 dnl Configure an ncurses add-on, built outside the ncurses tree.
2609 AC_DEFUN([CF_NCURSES_ADDON],[
2610 AC_REQUIRE([CF_NCURSES_CONFIG])
2611
2612 AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
2613
2614 AC_MSG_CHECKING(if you want wide-character code)
2615 AC_ARG_ENABLE(widec,
2616         [  --enable-widec          compile with wide-char/UTF-8 code],
2617         [with_widec=$enableval],
2618         [with_widec=no])
2619 AC_MSG_RESULT($with_widec)
2620 if test "$with_widec" = yes ; then
2621         CF_UTF8_LIB
2622         CF_NCURSES_CONFIG(ncursesw)
2623 else
2624         CF_NCURSES_CONFIG(ncurses)
2625 fi
2626
2627 if test "$NCURSES_CONFIG_PKG" != none ; then
2628         cf_version=`$PKG_CONFIG --modversion $NCURSES_CONFIG_PKG 2>/dev/null`
2629
2630         NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2631         NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2632         NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2633
2634         cf_cv_abi_version=`$PKG_CONFIG --variable=abi_version $NCURSES_CONFIG_PKG 2>/dev/null`
2635         if test -z "$cf_cv_abi_version"
2636         then
2637                 cf_cv_abi_version=`$PKG_CONFIG --variable=major_version $NCURSES_CONFIG_PKG 2>/dev/null`
2638         fi
2639
2640 elif test "$NCURSES_CONFIG" != none ; then
2641
2642         cf_version=`$NCURSES_CONFIG --version 2>/dev/null`
2643
2644         NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2645         NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2646         NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2647
2648         # ABI version is not available from headers
2649         cf_cv_abi_version=`$NCURSES_CONFIG --abi-version 2>/dev/null`
2650
2651 else
2652
2653         for cf_name in MAJOR MINOR PATCH
2654         do
2655         cat >conftest.$ac_ext <<CF_EOF
2656         #include <${cf_cv_ncurses_header:-curses.h}>
2657         AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
2658 CF_EOF
2659                 cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
2660                 AC_TRY_EVAL(cf_try)
2661                 if test -f conftest.out ; then
2662                         cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[[  ]][[    ]]*//"`
2663                         eval NCURSES_$cf_name=\"$cf_result\"
2664                         # cat conftest.$ac_ext
2665                         # cat conftest.out
2666                 fi
2667         done
2668
2669         cf_cv_abi_version=${NCURSES_MAJOR}
2670
2671 fi
2672
2673 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
2674
2675 dnl Show the computed version, for logging
2676 cf_cv_timestamp=`date`
2677
2678 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
2679
2680 dnl We need these values in the generated headers
2681 AC_SUBST(NCURSES_MAJOR)
2682 AC_SUBST(NCURSES_MINOR)
2683 AC_SUBST(NCURSES_PATCH)
2684
2685 dnl We need these values in the generated makefiles
2686 AC_SUBST(cf_cv_rel_version)
2687 AC_SUBST(cf_cv_abi_version)
2688
2689 dnl FIXME - not needed for Ada95
2690 AC_SUBST(cf_cv_builtin_bool)
2691 AC_SUBST(cf_cv_header_stdbool_h)
2692 AC_SUBST(cf_cv_type_of_bool)dnl
2693
2694 ])
2695 dnl ---------------------------------------------------------------------------
2696 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2697 dnl -------------------
2698 dnl Check if we can compile with ncurses' header file
2699 dnl $1 is the cache variable to set
2700 dnl $2 is the header-file to include
2701 dnl $3 is the root name (ncurses or ncursesw)
2702 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2703         AC_TRY_COMPILE([
2704 ]ifelse($3,ncursesw,[
2705 #define _XOPEN_SOURCE_EXTENDED
2706 #undef  HAVE_LIBUTF8_H  /* in case we used CF_UTF8_LIB */
2707 #define HAVE_LIBUTF8_H  /* to force ncurses' header file to use cchar_t */
2708 ])[
2709 #include <$2>],[
2710 #ifdef NCURSES_VERSION
2711 ]ifelse($3,ncursesw,[
2712 #ifndef WACS_BSSB
2713         make an error
2714 #endif
2715 ])[
2716 printf("%s\n", NCURSES_VERSION);
2717 #else
2718 #ifdef __NCURSES_H
2719 printf("old\n");
2720 #else
2721         make an error
2722 #endif
2723 #endif
2724         ]
2725         ,[$1=$2]
2726         ,[$1=no])
2727 ])dnl
2728 dnl ---------------------------------------------------------------------------
2729 dnl CF_NCURSES_CONFIG version: 23 updated: 2020/02/27 05:21:59
2730 dnl -----------------
2731 dnl Tie together the configure-script macros for ncurses, preferring these in
2732 dnl order:
2733 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2734 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2735 dnl c) just plain libraries
2736 dnl
2737 dnl $1 is the root library name (default: "ncurses")
2738 AC_DEFUN([CF_NCURSES_CONFIG],[
2739 AC_REQUIRE([CF_PKG_CONFIG])
2740 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2741 cf_have_ncuconfig=no
2742
2743 if test "x${PKG_CONFIG:=none}" != xnone; then
2744         AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2745         if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2746                 AC_MSG_RESULT(yes)
2747
2748                 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2749                 cf_have_ncuconfig=unknown
2750
2751                 cf_save_CFLAGS="$CFLAGS"
2752                 cf_save_CPPFLAGS="$CPPFLAGS"
2753                 cf_save_LIBS="$LIBS"
2754
2755                 cf_pkg_cflags=`$PKG_CONFIG --cflags $cf_ncuconfig_root`
2756                 cf_pkg_libs=`$PKG_CONFIG --libs $cf_ncuconfig_root`
2757
2758                 # while -W for passing linker flags is prevalent, it is not "standard". 
2759                 # At least one wrapper for c89/c99 (in Apple's xcode) has its own
2760                 # incompatible _and_ non-standard -W option which gives an error.  Work
2761                 # around that pitfall.
2762                 case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in
2763                 (x*c[[89]]9@@*-W*)
2764                         CF_ADD_CFLAGS($cf_pkg_cflags)
2765                         CF_ADD_LIBS($cf_pkg_libs)
2766
2767                         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2768                                 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2769                                 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2770                                         int main(void)
2771                                         { char *xx = curses_version(); return (xx == 0); }],
2772                                         [cf_test_ncuconfig=yes],
2773                                         [cf_test_ncuconfig=no],
2774                                         [cf_test_ncuconfig=maybe])],
2775                                 [cf_test_ncuconfig=no])
2776
2777                         CFLAGS="$cf_save_CFLAGS"
2778                         CPPFLAGS="$cf_save_CPPFLAGS"
2779                         LIBS="$cf_save_LIBS"
2780
2781                         if test "x$cf_test_ncuconfig" != xyes; then
2782                                 cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^     ]]*//g'`
2783                                 cf_pkg_cflags="$cf_temp"
2784                                 cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^       ]]*//g'`
2785                                 cf_pkg_libs="$cf_temp"
2786                         fi
2787                         ;;
2788                 esac
2789
2790                 CF_ADD_CFLAGS($cf_pkg_cflags)
2791                 CF_ADD_LIBS($cf_pkg_libs)
2792
2793                 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2794                         [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2795                         [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2796                                 int main(void)
2797                                 { char *xx = curses_version(); return (xx == 0); }],
2798                                 [cf_have_ncuconfig=yes],
2799                                 [cf_have_ncuconfig=no],
2800                                 [cf_have_ncuconfig=maybe])],
2801                         [cf_have_ncuconfig=no])
2802                 AC_MSG_RESULT($cf_have_ncuconfig)
2803                 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2804                 if test "$cf_have_ncuconfig" != "yes"
2805                 then
2806                         CPPFLAGS="$cf_save_CPPFLAGS"
2807                         LIBS="$cf_save_LIBS"
2808                         NCURSES_CONFIG_PKG=none
2809                 else
2810                         AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2811                         NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2812                         CF_TERM_HEADER
2813                 fi
2814
2815         else
2816                 AC_MSG_RESULT(no)
2817                 NCURSES_CONFIG_PKG=none
2818         fi
2819 else
2820         NCURSES_CONFIG_PKG=none
2821 fi
2822
2823 if test "x$cf_have_ncuconfig" = "xno"; then
2824         cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
2825
2826         CF_ACVERSION_CHECK(2.52,
2827                 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2828                 [AC_PATH_PROGS(NCURSES_CONFIG,  ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2829
2830         if test "$NCURSES_CONFIG" != none ; then
2831
2832                 CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
2833                 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2834
2835                 # even with config script, some packages use no-override for curses.h
2836                 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2837
2838                 dnl like CF_NCURSES_CPPFLAGS
2839                 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2840
2841                 dnl like CF_NCURSES_LIBS
2842                 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2843                 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2844
2845                 dnl like CF_NCURSES_VERSION
2846                 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2847
2848         else
2849
2850                 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2851                 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2852
2853         fi
2854 else
2855         NCURSES_CONFIG=none
2856 fi
2857 ])dnl
2858 dnl ---------------------------------------------------------------------------
2859 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2860 dnl -------------------
2861 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2862 dnl the CPPFLAGS variable so we can include its header.
2863 dnl
2864 dnl The header files may be installed as either curses.h, or ncurses.h (would
2865 dnl be obsolete, except that some packagers prefer this name to distinguish it
2866 dnl from a "native" curses implementation).  If not installed for overwrite,
2867 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2868 dnl /usr/include/ncurses), but someone may have installed overwriting the
2869 dnl vendor's curses.  Only very old versions (pre-1.9.2d, the first autoconf'd
2870 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2871 dnl the header.
2872 dnl
2873 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2874 dnl is already in the include-path, don't even bother with this, since we cannot
2875 dnl easily determine which file it is.  In this case, it has to be <curses.h>.
2876 dnl
2877 dnl The optional parameter gives the root name of the library, in case it is
2878 dnl not installed as the default curses library.  That is how the
2879 dnl wide-character version of ncurses is installed.
2880 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2881 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2882
2883 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2884 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2885
2886 test -n "$cf_cv_curses_dir" && \
2887 test "$cf_cv_curses_dir" != "no" && { \
2888   CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2889 }
2890
2891 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2892         cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2893         ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2894         for cf_header in $cf_header_list
2895         do
2896                 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2897                 test "$cf_cv_ncurses_h" != no && break
2898         done
2899 ])
2900
2901 CF_NCURSES_HEADER
2902 CF_TERM_HEADER
2903
2904 # some applications need this, but should check for NCURSES_VERSION
2905 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2906
2907 CF_NCURSES_VERSION
2908 ])dnl
2909 dnl ---------------------------------------------------------------------------
2910 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2911 dnl -----------------
2912 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2913 dnl variations of ncurses' installs.
2914 dnl
2915 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2916 AC_DEFUN([CF_NCURSES_HEADER],[
2917
2918 if test "$cf_cv_ncurses_h" != no ; then
2919         cf_cv_ncurses_header=$cf_cv_ncurses_h
2920 else
2921
2922 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2923         test -n "$verbose" && echo
2924         CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2925         test -n "$verbose" && echo search path $cf_search
2926         cf_save2_CPPFLAGS="$CPPFLAGS"
2927         for cf_incdir in $cf_search
2928         do
2929                 CF_ADD_INCDIR($cf_incdir)
2930                 for cf_header in \
2931                         ncurses.h \
2932                         curses.h
2933                 do
2934                         CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2935                         if test "$cf_cv_ncurses_h2" != no ; then
2936                                 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2937                                 test -n "$verbose" && echo $ac_n "      ... found $ac_c" 1>&AC_FD_MSG
2938                                 break
2939                         fi
2940                         test -n "$verbose" && echo "    ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2941                 done
2942                 CPPFLAGS="$cf_save2_CPPFLAGS"
2943                 test "$cf_cv_ncurses_h2" != no && break
2944         done
2945         test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2946         ])
2947
2948         CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2949         cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2950         if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2951                 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2952         fi
2953         CF_ADD_INCDIR($cf_1st_incdir)
2954
2955 fi
2956
2957 # Set definitions to allow ifdef'ing for ncurses.h
2958
2959 case $cf_cv_ncurses_header in
2960 (*ncurses.h)
2961         AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2962         ;;
2963 esac
2964
2965 case $cf_cv_ncurses_header in
2966 (ncurses/curses.h|ncurses/ncurses.h)
2967         AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2968         ;;
2969 (ncursesw/curses.h|ncursesw/ncurses.h)
2970         AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2971         ;;
2972 esac
2973
2974 ])dnl
2975 dnl ---------------------------------------------------------------------------
2976 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2977 dnl ---------------
2978 dnl Look for the ncurses library.  This is a little complicated on Linux,
2979 dnl because it may be linked with the gpm (general purpose mouse) library.
2980 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2981 dnl unusable with ncurses.  However, we don't want to link with gpm unless
2982 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2983 dnl and the linker will record a dependency.
2984 dnl
2985 dnl The optional parameter gives the root name of the library, in case it is
2986 dnl not installed as the default curses library.  That is how the
2987 dnl wide-character version of ncurses is installed.
2988 AC_DEFUN([CF_NCURSES_LIBS],
2989 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2990
2991 cf_nculib_root=ifelse($1,,ncurses,$1)
2992         # This works, except for the special case where we find gpm, but
2993         # ncurses is in a nonstandard location via $LIBS, and we really want
2994         # to link gpm.
2995 cf_ncurses_LIBS=""
2996 cf_ncurses_SAVE="$LIBS"
2997 AC_CHECK_LIB(gpm,Gpm_Open,
2998         [AC_CHECK_LIB(gpm,initscr,
2999                 [LIBS="$cf_ncurses_SAVE"],
3000                 [cf_ncurses_LIBS="-lgpm"])])
3001
3002 case $host_os in
3003 (freebsd*)
3004         # This is only necessary if you are linking against an obsolete
3005         # version of ncurses (but it should do no harm, since it's static).
3006         if test "$cf_nculib_root" = ncurses ; then
3007                 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
3008         fi
3009         ;;
3010 esac
3011
3012 CF_ADD_LIBS($cf_ncurses_LIBS)
3013
3014 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3015 then
3016         CF_ADD_LIBS(-l$cf_nculib_root)
3017 else
3018         CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
3019                 [#include <${cf_cv_ncurses_header:-curses.h}>],
3020                 [initscr()],
3021                 initscr)
3022 fi
3023
3024 if test -n "$cf_ncurses_LIBS" ; then
3025         AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
3026         cf_ncurses_SAVE="$LIBS"
3027         for p in $cf_ncurses_LIBS ; do
3028                 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
3029                 if test "$q" != "$LIBS" ; then
3030                         LIBS="$q"
3031                 fi
3032         done
3033         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3034                 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
3035                 [AC_MSG_RESULT(yes)],
3036                 [AC_MSG_RESULT(no)
3037                  LIBS="$cf_ncurses_SAVE"])
3038 fi
3039
3040 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
3041 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
3042 ])dnl
3043 dnl ---------------------------------------------------------------------------
3044 dnl CF_NCURSES_VERSION version: 15 updated: 2017/05/09 19:26:10
3045 dnl ------------------
3046 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
3047 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
3048 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
3049 AC_DEFUN([CF_NCURSES_VERSION],
3050 [
3051 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3052 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
3053         cf_cv_ncurses_version=no
3054         cf_tempfile=out$$
3055         rm -f $cf_tempfile
3056         AC_TRY_RUN([
3057 #include <${cf_cv_ncurses_header:-curses.h}>
3058 #include <stdio.h>
3059 int main(void)
3060 {
3061         FILE *fp = fopen("$cf_tempfile", "w");
3062 #ifdef NCURSES_VERSION
3063 # ifdef NCURSES_VERSION_PATCH
3064         fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
3065 # else
3066         fprintf(fp, "%s\n", NCURSES_VERSION);
3067 # endif
3068 #else
3069 # ifdef __NCURSES_H
3070         fprintf(fp, "old\n");
3071 # else
3072         make an error
3073 # endif
3074 #endif
3075         ${cf_cv_main_return:-return}(0);
3076 }],[
3077         cf_cv_ncurses_version=`cat $cf_tempfile`],,[
3078
3079         # This will not work if the preprocessor splits the line after the
3080         # Autoconf token.  The 'unproto' program does that.
3081         cat > conftest.$ac_ext <<EOF
3082 #include <${cf_cv_ncurses_header:-curses.h}>
3083 #undef Autoconf
3084 #ifdef NCURSES_VERSION
3085 Autoconf NCURSES_VERSION
3086 #else
3087 #ifdef __NCURSES_H
3088 Autoconf "old"
3089 #endif
3090 ;
3091 #endif
3092 EOF
3093         cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
3094         AC_TRY_EVAL(cf_try)
3095         if test -f conftest.out ; then
3096                 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
3097                 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
3098                 rm -f conftest.out
3099         fi
3100 ])
3101         rm -f $cf_tempfile
3102 ])
3103 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3104 ])dnl
3105 dnl ---------------------------------------------------------------------------
3106 dnl CF_OBJ_SUBDIR version: 7 updated: 2015/04/17 21:13:04
3107 dnl -------------
3108 dnl Compute the object-directory name from the given model name
3109 AC_DEFUN([CF_OBJ_SUBDIR],
3110 [
3111         case $1 in
3112         (libtool) $2='obj_lo'  ;;
3113         (normal)  $2='objects' ;;
3114         (debug)   $2='obj_g' ;;
3115         (profile) $2='obj_p' ;;
3116         (shared)
3117                 case $cf_cv_system_name in
3118                 (cygwin|msys)
3119                         $2='objects' ;;
3120                 (*)
3121                         $2='obj_s' ;;
3122                 esac
3123         esac
3124 ])dnl
3125 dnl ---------------------------------------------------------------------------
3126 dnl CF_PATHSEP version: 7 updated: 2015/04/12 15:39:00
3127 dnl ----------
3128 dnl Provide a value for the $PATH and similar separator (or amend the value
3129 dnl as provided in autoconf 2.5x).
3130 AC_DEFUN([CF_PATHSEP],
3131 [
3132         AC_MSG_CHECKING(for PATH separator)
3133         case $cf_cv_system_name in
3134         (os2*)  PATH_SEPARATOR=';'  ;;
3135         (*)     ${PATH_SEPARATOR:=':'}  ;;
3136         esac
3137 ifelse([$1],,,[$1=$PATH_SEPARATOR])
3138         AC_SUBST(PATH_SEPARATOR)
3139         AC_MSG_RESULT($PATH_SEPARATOR)
3140 ])dnl
3141 dnl ---------------------------------------------------------------------------
3142 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
3143 dnl --------------
3144 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
3145 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3146 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
3147 dnl delayed evaluation of those symbols.
3148 AC_DEFUN([CF_PATH_SYNTAX],[
3149 if test "x$prefix" != xNONE; then
3150         cf_path_syntax="$prefix"
3151 else
3152         cf_path_syntax="$ac_default_prefix"
3153 fi
3154
3155 case ".[$]$1" in
3156 (.\[$]\(*\)*|.\'*\'*)
3157         ;;
3158 (..|./*|.\\*)
3159         ;;
3160 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
3161         ;;
3162 (.\[$]{*prefix}*|.\[$]{*dir}*)
3163         eval $1="[$]$1"
3164         case ".[$]$1" in
3165         (.NONE/*)
3166                 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3167                 ;;
3168         esac
3169         ;;
3170 (.no|.NONE/*)
3171         $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3172         ;;
3173 (*)
3174         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3175         ;;
3176 esac
3177 ])dnl
3178 dnl ---------------------------------------------------------------------------
3179 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
3180 dnl -------------
3181 dnl Check for the package-config program, unless disabled by command-line.
3182 AC_DEFUN([CF_PKG_CONFIG],
3183 [
3184 AC_MSG_CHECKING(if you want to use pkg-config)
3185 AC_ARG_WITH(pkg-config,
3186         [  --with-pkg-config{=path} enable/disable use of pkg-config],
3187         [cf_pkg_config=$withval],
3188         [cf_pkg_config=yes])
3189 AC_MSG_RESULT($cf_pkg_config)
3190
3191 case $cf_pkg_config in
3192 (no)
3193         PKG_CONFIG=none
3194         ;;
3195 (yes)
3196         CF_ACVERSION_CHECK(2.52,
3197                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
3198                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
3199         ;;
3200 (*)
3201         PKG_CONFIG=$withval
3202         ;;
3203 esac
3204
3205 test -z "$PKG_CONFIG" && PKG_CONFIG=none
3206 if test "$PKG_CONFIG" != none ; then
3207         CF_PATH_SYNTAX(PKG_CONFIG)
3208 elif test "x$cf_pkg_config" != xno ; then
3209         AC_MSG_WARN(pkg-config is not installed)
3210 fi
3211
3212 AC_SUBST(PKG_CONFIG)
3213 ])dnl
3214 dnl ---------------------------------------------------------------------------
3215 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
3216 dnl -----------------
3217 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3218 dnl
3219 dnl     POSIX.1-1990                            _POSIX_SOURCE
3220 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
3221 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
3222 dnl             Bindings Option
3223 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
3224 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
3225 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
3226 dnl
3227 dnl Parameters:
3228 dnl     $1 is the nominal value for _POSIX_C_SOURCE
3229 AC_DEFUN([CF_POSIX_C_SOURCE],
3230 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
3231
3232 if test "$cf_cv_posix_visible" = no; then
3233
3234 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
3235
3236 cf_save_CFLAGS="$CFLAGS"
3237 cf_save_CPPFLAGS="$CPPFLAGS"
3238
3239 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3240 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3241
3242 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3243         CF_MSG_LOG(if the symbol is already defined go no further)
3244         AC_TRY_COMPILE([#include <sys/types.h>],[
3245 #ifndef _POSIX_C_SOURCE
3246 make an error
3247 #endif],
3248         [cf_cv_posix_c_source=no],
3249         [cf_want_posix_source=no
3250          case .$cf_POSIX_C_SOURCE in
3251          (.[[12]]??*)
3252                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3253                 ;;
3254          (.2)
3255                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3256                 cf_want_posix_source=yes
3257                 ;;
3258          (.*)
3259                 cf_want_posix_source=yes
3260                 ;;
3261          esac
3262          if test "$cf_want_posix_source" = yes ; then
3263                 AC_TRY_COMPILE([#include <sys/types.h>],[
3264 #ifdef _POSIX_SOURCE
3265 make an error
3266 #endif],[],
3267                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3268          fi
3269          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3270          CFLAGS="$cf_trim_CFLAGS"
3271          CPPFLAGS="$cf_trim_CPPFLAGS"
3272          CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
3273          CF_MSG_LOG(if the second compile does not leave our definition intact error)
3274          AC_TRY_COMPILE([#include <sys/types.h>],[
3275 #ifndef _POSIX_C_SOURCE
3276 make an error
3277 #endif],,
3278          [cf_cv_posix_c_source=no])
3279          CFLAGS="$cf_save_CFLAGS"
3280          CPPFLAGS="$cf_save_CPPFLAGS"
3281         ])
3282 ])
3283
3284 if test "$cf_cv_posix_c_source" != no ; then
3285         CFLAGS="$cf_trim_CFLAGS"
3286         CPPFLAGS="$cf_trim_CPPFLAGS"
3287         CF_ADD_CFLAGS($cf_cv_posix_c_source)
3288 fi
3289
3290 fi # cf_cv_posix_visible
3291
3292 ])dnl
3293 dnl ---------------------------------------------------------------------------
3294 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
3295 dnl ----------------
3296 dnl POSIX documents test-macros which an application may set before any system
3297 dnl headers are included to make features available.
3298 dnl
3299 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
3300 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
3301 dnl recent features visible in the system header files unless the application
3302 dnl overrides the corresponding test-macros.  Doing that introduces portability
3303 dnl problems.
3304 dnl
3305 dnl This macro makes a special check for the symbols used for this, to avoid a
3306 dnl conflicting definition.
3307 AC_DEFUN([CF_POSIX_VISIBLE],
3308 [
3309 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
3310 AC_TRY_COMPILE([#include <stdio.h>],[
3311 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
3312         && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
3313         && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
3314         && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
3315 #error conflicting symbols found
3316 #endif
3317 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
3318 ])
3319 ])dnl
3320 dnl ---------------------------------------------------------------------------
3321 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
3322 dnl ----------
3323 dnl Check for archiver "ar".
3324 AC_DEFUN([CF_PROG_AR],[
3325 AC_CHECK_TOOL(AR, ar, ar)
3326 ])
3327 dnl ---------------------------------------------------------------------------
3328 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3329 dnl -----------
3330 dnl Check for awk, ensure that the check found something.
3331 AC_DEFUN([CF_PROG_AWK],
3332 [
3333 AC_PROG_AWK
3334 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3335 ])dnl
3336 dnl ---------------------------------------------------------------------------
3337 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
3338 dnl ----------
3339 dnl standard check for CC, plus followup sanity checks
3340 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
3341 AC_DEFUN([CF_PROG_CC],[
3342 CF_ACVERSION_CHECK(2.53,
3343         [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
3344          AC_REQUIRE([AC_PROG_CC])],
3345         [])
3346 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
3347 CF_GCC_VERSION
3348 CF_ACVERSION_CHECK(2.52,
3349         [AC_PROG_CC_STDC],
3350         [CF_ANSI_CC_REQD])
3351 CF_CC_ENV_FLAGS
3352 ])dnl
3353 dnl ---------------------------------------------------------------------------
3354 dnl CF_PROG_CC_C_O version: 5 updated: 2017/01/21 11:06:25
3355 dnl --------------
3356 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3357 dnl the output file can be renamed, and allows for a shell variable that can
3358 dnl be used later.  The parameter is either CC or CXX.  The result is the
3359 dnl cache variable:
3360 dnl     $cf_cv_prog_CC_c_o
3361 dnl     $cf_cv_prog_CXX_c_o
3362 dnl
3363 dnl $1 = compiler
3364 dnl $2 = compiler options, if any
3365 AC_DEFUN([CF_PROG_CC_C_O],
3366 [AC_REQUIRE([AC_PROG_CC])dnl
3367 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3368 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3369 [
3370 cat > conftest.$ac_ext <<CF_EOF
3371 int main(void)
3372 {
3373         ${cf_cv_main_return:-return}(0);
3374 }
3375 CF_EOF
3376 # We do the test twice because some compilers refuse to overwrite an
3377 # existing .o file with -o, though they will create one.
3378 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3379 if AC_TRY_EVAL(ac_try) &&
3380   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3381 then
3382   eval cf_cv_prog_$1_c_o=yes
3383 else
3384   eval cf_cv_prog_$1_c_o=no
3385 fi
3386 rm -rf conftest*
3387 ])dnl
3388 if test $cf_cv_prog_$1_c_o = yes; then
3389   AC_MSG_RESULT([yes])
3390 else
3391   AC_MSG_RESULT([no])
3392 fi
3393 ])dnl
3394 dnl ---------------------------------------------------------------------------
3395 dnl CF_PROG_EGREP version: 2 updated: 2015/04/18 08:56:57
3396 dnl -------------
3397 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3398 dnl This macro adds a check to ensure the script found something.
3399 AC_DEFUN([CF_PROG_EGREP],
3400 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3401         [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3402                 then ac_cv_prog_egrep='grep -E'
3403                 else ac_cv_prog_egrep='egrep'
3404         fi])
3405         EGREP=$ac_cv_prog_egrep
3406         AC_SUBST([EGREP])
3407         test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3408 ])dnl
3409 dnl ---------------------------------------------------------------------------
3410 dnl CF_PROG_EXT version: 14 updated: 2018/06/20 20:23:13
3411 dnl -----------
3412 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3413 AC_DEFUN([CF_PROG_EXT],
3414 [
3415 AC_REQUIRE([CF_CHECK_CACHE])
3416 case $cf_cv_system_name in
3417 (os2*)
3418         CFLAGS="$CFLAGS -Zmt"
3419         CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__)
3420         CXXFLAGS="$CXXFLAGS -Zmt"
3421         # autoconf's macro sets -Zexe and suffix both, which conflict:w
3422         LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3423         ac_cv_exeext=.exe
3424         ;;
3425 esac
3426
3427 AC_EXEEXT
3428 AC_OBJEXT
3429
3430 PROG_EXT="$EXEEXT"
3431 AC_SUBST(PROG_EXT)
3432 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
3433 ])dnl
3434 dnl ---------------------------------------------------------------------------
3435 dnl CF_PROG_GNAT version: 10 updated: 2019/12/31 08:53:54
3436 dnl ------------
3437 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
3438 AC_DEFUN([CF_PROG_GNAT],[
3439 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
3440 do
3441         CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
3442
3443         unset ac_cv_path_cf_TEMP_gnat
3444         unset cf_TEMP_gnat
3445         AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
3446         eval cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat
3447
3448         if test "x$cf_TEMP_gnat" != xno; then
3449                 unset cf_cv_gnat_version
3450                 unset cf_TEMP_gnat
3451                 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
3452         fi
3453         eval cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat
3454
3455         unset cf_TEMP_gnat
3456         unset cf_cv_gnat_version
3457         unset ac_cv_path_cf_TEMP_gnat
3458 done
3459
3460 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
3461         cf_ada_make=
3462         cf_cv_prog_gnat_correct=no
3463 else
3464         cf_ada_make=gnatmake
3465         if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
3466                 # gprconfig is newer than gnatmake; we can continue...
3467                 cf_ada_config="##"
3468         else
3469                 rm -rf conftest* *~conftest*
3470                 if mkdir conftest.src
3471                 then
3472                         cf_ada_config=""
3473                         cd conftest.src
3474                         for cf_gprconfig in Ada C
3475                         do
3476                                 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
3477                                 if test $cf_gprconfig = C
3478                                 then
3479                                         for cf_gprconfig_param in \
3480                                                 $cf_gprconfig,,,,GNATGCC \
3481                                                 $cf_gprconfig,,,,GCC \
3482                                                 $cf_gprconfig
3483                                         do
3484                                                 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3485                                                 test -n "$cf_gprconfig_value" && break
3486                                         done
3487                                 else
3488                                         cf_gprconfig_param=$cf_gprconfig
3489                                         cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3490                                 fi
3491                                 if test -n "$cf_gprconfig_value"
3492                                 then
3493                                         eval cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value
3494                                         AC_MSG_RESULT($cf_gprconfig_value)
3495                                 else
3496                                         AC_MSG_RESULT(missing)
3497                                         cf_ada_config="#"
3498                                         break
3499                                 fi
3500                         done
3501                         cd ..
3502                         rm -rf conftest* *~conftest*
3503                 fi
3504         fi
3505         if test "x$cf_ada_config" != "x#"
3506         then
3507                 CF_GNAT_VERSION
3508                 CF_CHECK_GNAT_VERSION
3509                 AC_CHECK_PROG(M4_exists, m4, yes, no)
3510                 if test "$ac_cv_prog_M4_exists" = no; then
3511                         cf_cv_prog_gnat_correct=no
3512                         AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
3513                 fi
3514                 if test "$cf_cv_prog_gnat_correct" = yes; then
3515                         AC_MSG_CHECKING(if GNAT works)
3516                         CF_GNAT_TRY_RUN([procedure conftest;],
3517 [with Text_IO;
3518 with GNAT.OS_Lib;
3519 procedure conftest is
3520 begin
3521    Text_IO.Put ("Hello World");
3522    Text_IO.New_Line;
3523    GNAT.OS_Lib.OS_Exit (0);
3524 end conftest;],
3525 [cf_cv_prog_gnat_correct=yes],
3526 [cf_cv_prog_gnat_correct=no])
3527                         AC_MSG_RESULT($cf_cv_prog_gnat_correct)
3528                 fi
3529         else
3530                 cf_cv_prog_gnat_correct=no
3531         fi
3532 fi
3533
3534 AC_SUBST(cf_ada_make)
3535 AC_SUBST(cf_ada_config)
3536 AC_SUBST(cf_ada_config_Ada)
3537 AC_SUBST(cf_ada_config_C)
3538 ])dnl
3539 dnl ---------------------------------------------------------------------------
3540 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
3541 dnl ---------------
3542 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
3543 dnl misc/tabset install won't work properly.  Usually this happens only when
3544 dnl using the fallback mkinstalldirs script
3545 AC_DEFUN([CF_PROG_INSTALL],
3546 [AC_PROG_INSTALL
3547 case $INSTALL in
3548 (/*)
3549         ;;
3550 (*)
3551         CF_DIRNAME(cf_dir,$INSTALL)
3552         test -z "$cf_dir" && cf_dir=.
3553         INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3554         ;;
3555 esac
3556 ])dnl
3557 dnl ---------------------------------------------------------------------------
3558 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
3559 dnl ------------
3560 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
3561 dnl option if it is supported.
3562 AC_DEFUN([CF_PROG_LN_S],[
3563 AC_PROG_LN_S
3564 AC_MSG_CHECKING(if $LN_S -f options work)
3565
3566 rm -f conf$$.src conf$$dst
3567 echo >conf$$.dst
3568 echo first >conf$$.src
3569 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
3570         cf_prog_ln_sf=yes
3571 else
3572         cf_prog_ln_sf=no
3573 fi
3574 rm -f conf$$.dst conf$$src
3575 AC_MSG_RESULT($cf_prog_ln_sf)
3576
3577 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
3578 ])dnl
3579 dnl ---------------------------------------------------------------------------
3580 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3581 dnl ----------------
3582 dnl Remove all -U and -D options that refer to the given symbol from a list
3583 dnl of C compiler options.  This works around the problem that not all
3584 dnl compilers process -U and -D options from left-to-right, so a -U option
3585 dnl cannot be used to cancel the effect of a preceding -D option.
3586 dnl
3587 dnl $1 = target (which could be the same as the source variable)
3588 dnl $2 = source (including '$')
3589 dnl $3 = symbol to remove
3590 define([CF_REMOVE_DEFINE],
3591 [
3592 $1=`echo "$2" | \
3593         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
3594                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
3595 ])dnl
3596 dnl ---------------------------------------------------------------------------
3597 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3598 dnl -------------
3599 dnl Remove the given library from the symbol
3600 dnl
3601 dnl $1 = target (which could be the same as the source variable)
3602 dnl $2 = source (including '$')
3603 dnl $3 = library to remove
3604 define([CF_REMOVE_LIB],
3605 [
3606 # remove $3 library from $2
3607 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
3608 ])dnl
3609 dnl ---------------------------------------------------------------------------
3610 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
3611 dnl ---------------------
3612 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
3613 dnl $1 = name of current macro
3614 define([CF_RESTORE_XTRA_FLAGS],
3615 [
3616 LIBS="$cf_save_LIBS_$1"
3617 CFLAGS="$cf_save_CFLAGS_$1"
3618 CPPFLAGS="$cf_save_CPPFLAGS_$1"
3619 ])dnl
3620 dnl ---------------------------------------------------------------------------
3621 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
3622 dnl ------------------
3623 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
3624 dnl and libraries which do not update those variables.
3625 dnl
3626 dnl $1 = name of current macro
3627 define([CF_SAVE_XTRA_FLAGS],
3628 [
3629 cf_save_LIBS_$1="$LIBS"
3630 cf_save_CFLAGS_$1="$CFLAGS"
3631 cf_save_CPPFLAGS_$1="$CPPFLAGS"
3632 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
3633 for cf_X_CFLAGS in $X_CFLAGS
3634 do
3635         case "x$cf_X_CFLAGS" in
3636         x-[[IUD]]*)
3637                 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
3638                 ;;
3639         *)
3640                 CFLAGS="$CFLAGS $cf_X_CFLAGS"
3641                 ;;
3642         esac
3643 done
3644 ])dnl
3645 dnl ---------------------------------------------------------------------------
3646 dnl CF_SHARED_OPTS version: 102 updated: 2020/08/22 18:17:19
3647 dnl --------------
3648 dnl --------------
3649 dnl Attempt to determine the appropriate CC/LD options for creating a shared
3650 dnl library.
3651 dnl
3652 dnl Notes:
3653 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
3654 dnl the build-tree, i.e., by making use of the libraries that are compiled in
3655 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
3656 dnl shared library since that can lead to unexpected results at runtime.
3657 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
3658 dnl libraries are compiled in ../../lib
3659 dnl
3660 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
3661 dnl to install symbolic links to the rel/abi versions of shared libraries.
3662 dnl
3663 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
3664 dnl version when making symbolic links.
3665 dnl
3666 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
3667 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
3668 dnl (ex: libncurses.so.<ver>).
3669 dnl
3670 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
3671 AC_DEFUN([CF_SHARED_OPTS],
3672 [
3673         AC_REQUIRE([CF_LD_RPATH_OPT])
3674
3675         RM_SHARED_OPTS=
3676         LOCAL_LDFLAGS=
3677         LOCAL_LDFLAGS2=
3678         LD_SHARED_OPTS=
3679         INSTALL_LIB="-m 644"
3680         : ${rel_builddir:=.}
3681
3682         shlibdir=$libdir
3683         AC_SUBST(shlibdir)
3684
3685         MAKE_DLLS="#"
3686         AC_SUBST(MAKE_DLLS)
3687
3688         cf_cv_do_symlinks=no
3689         cf_ld_rpath_opt=
3690         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
3691
3692         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
3693         AC_ARG_WITH(shlib-version,
3694         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
3695         [test -z "$withval" && withval=auto
3696         case $withval in
3697         (yes)
3698                 cf_cv_shlib_version=auto
3699                 ;;
3700         (rel|abi|auto)
3701                 cf_cv_shlib_version=$withval
3702                 ;;
3703         (*)
3704                 AC_MSG_RESULT($withval)
3705                 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
3706                 ;;
3707         esac
3708         ],[cf_cv_shlib_version=auto])
3709         AC_MSG_RESULT($cf_cv_shlib_version)
3710
3711         cf_cv_rm_so_locs=no
3712         cf_try_cflags=
3713
3714         # Some less-capable ports of gcc support only -fpic
3715         CC_SHARED_OPTS=
3716
3717         cf_try_fPIC=no
3718         if test "$GCC" = yes
3719         then
3720                 cf_try_fPIC=yes
3721         else
3722                 case $cf_cv_system_name in
3723                 (*linux*)       # e.g., PGI compiler
3724                         cf_try_fPIC=yes
3725                         ;;
3726                 esac
3727         fi
3728
3729         if test "$cf_try_fPIC" = yes
3730         then
3731                 AC_MSG_CHECKING(which $CC option to use)
3732                 cf_save_CFLAGS="$CFLAGS"
3733                 for CC_SHARED_OPTS in -fPIC -fpic ''
3734                 do
3735                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
3736                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
3737                 done
3738                 AC_MSG_RESULT($CC_SHARED_OPTS)
3739                 CFLAGS="$cf_save_CFLAGS"
3740         fi
3741
3742         cf_cv_shlib_version_infix=no
3743
3744         case $cf_cv_system_name in
3745         (aix4.[3-9]*|aix[[5-7]]*)
3746                 if test "$GCC" = yes; then
3747                         CC_SHARED_OPTS='-Wl,-brtl'
3748                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3749                 else
3750                         CC_SHARED_OPTS='-brtl'
3751                         # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
3752                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3753                 fi
3754                 ;;
3755         (beos*)
3756                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
3757                 ;;
3758         (cygwin*)
3759                 CC_SHARED_OPTS=
3760                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3761                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3762                 cf_cv_shlib_version=cygdll
3763                 cf_cv_shlib_version_infix=cygdll
3764                 shlibdir=$bindir
3765                 MAKE_DLLS=
3766                 cat >mk_shared_lib.sh <<-CF_EOF
3767                 #!$SHELL
3768                 SHARED_LIB=\[$]1
3769                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3770                 shift
3771                 cat <<-EOF
3772                 Linking shared library
3773                 ** SHARED_LIB \[$]SHARED_LIB
3774                 ** IMPORT_LIB \[$]IMPORT_LIB
3775 EOF
3776                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3777 CF_EOF
3778                 chmod +x mk_shared_lib.sh
3779                 ;;
3780         (msys*)
3781                 CC_SHARED_OPTS=
3782                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3783                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3784                 cf_cv_shlib_version=msysdll
3785                 cf_cv_shlib_version_infix=msysdll
3786                 shlibdir=$bindir
3787                 MAKE_DLLS=
3788                 cat >mk_shared_lib.sh <<-CF_EOF
3789                 #!$SHELL
3790                 SHARED_LIB=\[$]1
3791                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3792                 shift
3793                 cat <<-EOF
3794                 Linking shared library
3795                 ** SHARED_LIB \[$]SHARED_LIB
3796                 ** IMPORT_LIB \[$]IMPORT_LIB
3797 EOF
3798                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3799 CF_EOF
3800                 chmod +x mk_shared_lib.sh
3801                 ;;
3802         (darwin*)
3803                 cf_try_cflags="no-cpp-precomp"
3804                 CC_SHARED_OPTS="-dynamic"
3805                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
3806                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
3807                 cf_cv_shlib_version_infix=yes
3808                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
3809                         cf_save_LDFLAGS=$LDFLAGS
3810                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3811                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
3812                                 LDFLAGS=$cf_save_LDFLAGS])
3813                 if test $cf_cv_ldflags_search_paths_first = yes; then
3814                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3815                 fi
3816                 ;;
3817         (hpux[[7-8]]*)
3818                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
3819                 if test "$GCC" != yes; then
3820                         CC_SHARED_OPTS='+Z'
3821                 fi
3822                 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
3823                 INSTALL_LIB="-m 555"
3824                 ;;
3825         (hpux*)
3826                 # (tested with gcc 2.7.2 -- I don't have c89)
3827                 if test "$GCC" = yes; then
3828                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
3829                 else
3830                         CC_SHARED_OPTS='+Z'
3831                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
3832                 fi
3833                 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
3834                 # HP-UX shared libraries must be executable, and should be
3835                 # readonly to exploit a quirk in the memory manager.
3836                 INSTALL_LIB="-m 555"
3837                 ;;
3838         (interix*)
3839                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3840                 if test "$cf_cv_shlib_version" = rel; then
3841                         cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
3842                 else
3843                         cf_shared_soname='`basename $[@]`'
3844                 fi
3845                 CC_SHARED_OPTS=
3846                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
3847                 ;;
3848         (irix*)
3849                 if test "$cf_cv_enable_rpath" = yes ; then
3850                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3851                 fi
3852                 # tested with IRIX 5.2 and 'cc'.
3853                 if test "$GCC" != yes; then
3854                         CC_SHARED_OPTS='-KPIC'
3855                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
3856                 else
3857                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
3858                 fi
3859                 cf_cv_rm_so_locs=yes
3860                 ;;
3861         (linux*|gnu*|k*bsd*-gnu)
3862                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3863                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3864                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3865                 fi
3866                 if test "$cf_cv_enable_rpath" = yes ; then
3867                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3868                 fi
3869                 CF_SHARED_SONAME
3870                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3871                 ;;
3872         (mingw*msvc*)
3873                 cf_cv_shlib_version=msvcdll
3874                 cf_cv_shlib_version_infix=msvcdll
3875                 shlibdir=$bindir
3876                 MAKE_DLLS=
3877                 if test "$DFT_LWR_MODEL" = "shared" ; then
3878                         LOCAL_LDFLAGS="-link -dll"
3879                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3880                         EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
3881                 fi
3882                 CC_SHARED_OPTS=
3883                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
3884                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
3885                 cat >mk_shared_lib.sh <<-CF_EOF
3886                 #!$SHELL
3887                 SHARED_LIB=\[$]1
3888                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
3889                 shift
3890                 my_ld=\[$]1
3891                 shift
3892                 cat <<-EOF
3893                 Linking shared library
3894                 ** SHARED LIB \$SHARED_LIB
3895                 ** IMPORT_LIB \$IMPORT_LIB
3896 EOF
3897                 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
3898                 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
3899                 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
3900 CF_EOF
3901                 chmod +x mk_shared_lib.sh
3902                 cat >mk_prog.sh <<-CF_EOF
3903                 #!$SHELL
3904                 shift
3905                 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
3906                 LD="[$]LD"
3907                 clopts=()
3908                 ldopts=("/subsystem:console")
3909                 libs=()
3910                 isdll=0
3911                 while test \[$]# -gt 0; do
3912                         case "\[$]1" in
3913                                 -link)
3914                                         # ignore -link argument
3915                                         ;;
3916                                 -M[[TD]] | -M[[TD]]d)
3917                                         # ignore runtime-library option
3918                                         ;;
3919                                 -dll)
3920                                         isdll=1
3921                                         ;;
3922                                 -W* | -w*)
3923                                         # ignore warnings
3924                                         ;;
3925                                 -D*)
3926                                         clopts+=("\[$]1")
3927                                         ;;
3928                                 -I*)
3929                                         clopts+=("\[$]1")
3930                                         ;;
3931                                 -l*)
3932                                         libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
3933                                         ;;
3934                                 -L*)
3935                                         ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
3936                                         ;;
3937                                 *.obj | *.o)
3938                                         ldopts+=("\[$]1")
3939                                         ;;
3940                                 -Wl,*)
3941                                         for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
3942                                                 ldopts+=("\[$]{linkarg}")
3943                                         done
3944                                         ;;
3945                                 *.lib)
3946                                         ldopts+=("\[$]1")
3947                                         ;;
3948                                 -o)
3949                                         shift
3950                                         ldopts+=("-out:\[$]1")
3951                                         ;;
3952                                 *)
3953                                         clopts+=("\[$]1")
3954                                         ldopts+=("\[$]1")
3955                                         ;;
3956                         esac
3957                         shift
3958                 done
3959                 if [[ "\$isdll" -ne 0 ]]; then
3960                         for lib in \[$]{libs[[*]]}; do
3961                                 ldopts+=("\[$]lib.dll.lib")
3962                         done
3963                 else
3964                         for lib in \[$]{libs[[*]]}; do
3965                                 ldopts+=("\[$]lib.lib")
3966                         done
3967                 fi
3968                 cat <<-EOF
3969                 Creating program
3970                 ** ld options:   "\[$]{ldopts[[@]]}"
3971 EOF
3972                 exec \[$]LD \[$]{ldopts[[@]]}
3973 CF_EOF
3974                 chmod +x mk_prog.sh
3975                 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
3976                 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
3977                 ;;
3978         (mingw*)
3979                 cf_cv_shlib_version=mingw
3980                 cf_cv_shlib_version_infix=mingw
3981                 shlibdir=$bindir
3982                 MAKE_DLLS=
3983                 if test "$DFT_LWR_MODEL" = "shared" ; then
3984                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
3985                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3986                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
3987                 fi
3988                 CC_SHARED_OPTS=
3989                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3990                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3991                 cat >mk_shared_lib.sh <<-CF_EOF
3992                 #!$SHELL
3993                 SHARED_LIB=\[$]1
3994                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3995                 shift
3996                 cat <<-EOF
3997                 Linking shared library
3998                 ** SHARED_LIB \[$]SHARED_LIB
3999                 ** IMPORT_LIB \[$]IMPORT_LIB
4000 EOF
4001                 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4002 CF_EOF
4003                 chmod +x mk_shared_lib.sh
4004                 ;;
4005         (openbsd[[2-9]].*|mirbsd*)
4006                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4007                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4008                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4009                 fi
4010                 if test "$cf_cv_enable_rpath" = yes ; then
4011                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4012                 fi
4013                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4014                 CF_SHARED_SONAME
4015                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4016                 ;;
4017         (nskJ*)
4018                 CC_SHARED_OPTS=
4019                 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
4020                 ;;
4021         (nskL*)
4022                 CC_SHARED_OPTS=
4023                 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
4024                 ;;
4025         (nto-qnx*|openbsd*|freebsd[[12]].*)
4026                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4027                 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
4028                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4029                 ;;
4030         (dragonfly*|freebsd*)
4031                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4032                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4033                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4034                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
4035                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4036                 fi
4037                 CF_SHARED_SONAME
4038                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4039                 ;;
4040         (netbsd*)
4041                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4042                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4043                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4044                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4045                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4046                         if test "$cf_cv_shlib_version" = auto; then
4047                         if test -f /usr/libexec/ld.elf_so; then
4048                                 cf_cv_shlib_version=abi
4049                         else
4050                                 cf_cv_shlib_version=rel
4051                         fi
4052                         fi
4053                         CF_SHARED_SONAME
4054                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4055                 else
4056                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
4057                 fi
4058                 ;;
4059         (osf*|mls+*)
4060                 # tested with OSF/1 V3.2 and 'cc'
4061                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4062                 # link with shared libs).
4063                 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4064                 case $host_os in
4065                 (osf4*)
4066                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4067                         ;;
4068                 esac
4069                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4070                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4071                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4072                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4073                 fi
4074                 cf_cv_rm_so_locs=yes
4075                 ;;
4076         (sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
4077                 # tested with osr5.0.5
4078                 if test "$GCC" != yes; then
4079                         CC_SHARED_OPTS='-belf -KPIC'
4080                 fi
4081                 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4082                 if test "$cf_cv_enable_rpath" = yes ; then
4083                         # only way is to set LD_RUN_PATH but no switch for it
4084                         RUN_PATH=$libdir
4085                 fi
4086                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4087                 LINK_PROGS='LD_RUN_PATH=${libdir}'
4088                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4089                 ;;
4090         (sunos4*)
4091                 # tested with SunOS 4.1.1 and gcc 2.7.0
4092                 if test "$GCC" != yes; then
4093                         CC_SHARED_OPTS='-KPIC'
4094                 fi
4095                 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
4096                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4097                 ;;
4098         (solaris2*)
4099                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4100                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4101                 if test "$DFT_LWR_MODEL" = "shared" ; then
4102                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4103                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4104                 fi
4105                 if test "$cf_cv_enable_rpath" = yes ; then
4106                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
4107                 fi
4108                 CF_SHARED_SONAME
4109                 if test "$GCC" != yes; then
4110                         cf_save_CFLAGS="$CFLAGS"
4111                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
4112                         do
4113                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4114                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
4115                         done
4116                         CFLAGS="$cf_save_CFLAGS"
4117                         CC_SHARED_OPTS=$cf_shared_opts
4118                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4119                 else
4120                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4121                 fi
4122                 ;;
4123         (sysv5uw7*|unix_sv*)
4124                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4125                 if test "$GCC" != yes; then
4126                         CC_SHARED_OPTS='-KPIC'
4127                 fi
4128                 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
4129                 ;;
4130         (*)
4131                 CC_SHARED_OPTS='unknown'
4132                 MK_SHARED_LIB='echo unknown'
4133                 ;;
4134         esac
4135
4136         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4137         case "$cf_cv_shlib_version" in
4138         (rel|abi)
4139                 case "$MK_SHARED_LIB" in
4140                 (*'-o $[@]')
4141                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4142                         ;;
4143                 (*)
4144                         AC_MSG_WARN(ignored --with-shlib-version)
4145                         ;;
4146                 esac
4147                 ;;
4148         esac
4149
4150         if test -n "$cf_try_cflags"
4151         then
4152 cat > conftest.$ac_ext <<EOF
4153 #line __oline__ "${as_me:-configure}"
4154 #include <stdio.h>
4155 int main(int argc, char *argv[[]])
4156 {
4157         printf("hello\n");
4158         return (argv[[argc-1]] == 0) ;
4159 }
4160 EOF
4161                 cf_save_CFLAGS="$CFLAGS"
4162                 for cf_opt in $cf_try_cflags
4163                 do
4164                         CFLAGS="$cf_save_CFLAGS -$cf_opt"
4165                         AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
4166                         if AC_TRY_EVAL(ac_compile); then
4167                                 AC_MSG_RESULT(yes)
4168                                 cf_save_CFLAGS="$CFLAGS"
4169                         else
4170                                 AC_MSG_RESULT(no)
4171                         fi
4172                 done
4173                 CFLAGS="$cf_save_CFLAGS"
4174         fi
4175
4176
4177         # RPATH_LIST is a colon-separated list of directories
4178         test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
4179         test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
4180
4181         test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
4182
4183         CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
4184         CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
4185
4186         AC_SUBST(CC_SHARED_OPTS)
4187         AC_SUBST(LD_RPATH_OPT)
4188         AC_SUBST(LD_SHARED_OPTS)
4189         AC_SUBST(MK_SHARED_LIB)
4190         AC_SUBST(RM_SHARED_OPTS)
4191
4192         AC_SUBST(LINK_PROGS)
4193         AC_SUBST(LINK_TESTS)
4194
4195         AC_SUBST(EXTRA_LDFLAGS)
4196         AC_SUBST(LOCAL_LDFLAGS)
4197         AC_SUBST(LOCAL_LDFLAGS2)
4198
4199         AC_SUBST(INSTALL_LIB)
4200         AC_SUBST(RPATH_LIST)
4201 ])dnl
4202 dnl ---------------------------------------------------------------------------
4203 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4204 dnl ----------------
4205 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4206 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4207 dnl option.
4208 dnl
4209 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4210 dnl If missing, use "rel".
4211 define([CF_SHARED_SONAME],
4212 [
4213         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4214         if test "$cf_cv_shlib_version" = rel; then
4215                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4216         else
4217                 cf_cv_shared_soname='`basename $[@]`'
4218         fi
4219 ])
4220 dnl ---------------------------------------------------------------------------
4221 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4222 dnl --------------
4223 dnl     Remove "-g" option from the compiler options
4224 AC_DEFUN([CF_STRIP_G_OPT],
4225 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4226 dnl ---------------------------------------------------------------------------
4227 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
4228 dnl --------------
4229 dnl Construct a search-list for a nonstandard header/lib-file
4230 dnl     $1 = the variable to return as result
4231 dnl     $2 = the package name
4232 dnl     $3 = the subdirectory, e.g., bin, include or lib
4233 AC_DEFUN([CF_SUBDIR_PATH],
4234 [
4235 $1=
4236
4237 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4238
4239 for cf_subdir_prefix in \
4240         /usr \
4241         /usr/local \
4242         /usr/pkg \
4243         /opt \
4244         /opt/local \
4245         [$]HOME
4246 do
4247         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
4248 done
4249 ])dnl
4250 dnl ---------------------------------------------------------------------------
4251 dnl CF_TERM_HEADER version: 5 updated: 2020/03/19 20:23:48
4252 dnl --------------
4253 dnl Look for term.h, which is part of X/Open curses.  It defines the interface
4254 dnl to terminfo database.  Usually it is in the same include-path as curses.h,
4255 dnl but some packagers change this, breaking various applications.
4256 AC_DEFUN([CF_TERM_HEADER],[
4257 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
4258 case ${cf_cv_ncurses_header} in
4259 (*/ncurses.h|*/ncursesw.h)
4260         cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
4261         ;;
4262 (*)
4263         cf_term_header=term.h
4264         ;;
4265 esac
4266
4267 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
4268 do
4269 AC_TRY_COMPILE([#include <stdio.h>
4270 #include <${cf_cv_ncurses_header:-curses.h}>
4271 #include <$cf_test>
4272 ],[int x = auto_left_margin; (void)x],[
4273         cf_cv_term_header="$cf_test"],[
4274         cf_cv_term_header=unknown
4275         ])
4276         test "$cf_cv_term_header" != unknown && break
4277 done
4278 ])
4279
4280 # Set definitions to allow ifdef'ing to accommodate subdirectories
4281
4282 case $cf_cv_term_header in
4283 (*term.h)
4284         AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
4285         ;;
4286 esac
4287
4288 case $cf_cv_term_header in
4289 (ncurses/term.h)
4290         AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
4291         ;;
4292 (ncursesw/term.h)
4293         AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
4294         ;;
4295 esac
4296 ])dnl
4297 dnl ---------------------------------------------------------------------------
4298 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
4299 dnl ---------------
4300 dnl Define a top_builddir symbol, for applications that need an absolute path.
4301 AC_DEFUN([CF_TOP_BUILDDIR],
4302 [
4303 top_builddir=ifelse($1,,`pwd`,$1)
4304 AC_SUBST(top_builddir)
4305 ])dnl
4306 dnl ---------------------------------------------------------------------------
4307 dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
4308 dnl -------------------
4309 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
4310 dnl can define it successfully.
4311 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
4312 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
4313         AC_TRY_COMPILE([
4314 #include <stdlib.h>
4315 #include <string.h>
4316 #include <sys/types.h>
4317 ],[
4318 #ifndef _XOPEN_SOURCE
4319 make an error
4320 #endif],
4321         [cf_cv_xopen_source=no],
4322         [cf_save="$CPPFLAGS"
4323          CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
4324          AC_TRY_COMPILE([
4325 #include <stdlib.h>
4326 #include <string.h>
4327 #include <sys/types.h>
4328 ],[
4329 #ifdef _XOPEN_SOURCE
4330 make an error
4331 #endif],
4332         [cf_cv_xopen_source=no],
4333         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
4334         CPPFLAGS="$cf_save"
4335         ])
4336 ])
4337
4338 if test "$cf_cv_xopen_source" != no ; then
4339         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
4340         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
4341         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
4342         CF_ADD_CFLAGS($cf_temp_xopen_source)
4343 fi
4344 ])
4345 dnl ---------------------------------------------------------------------------
4346 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
4347 dnl --------
4348 dnl Make an uppercase version of a variable
4349 dnl $1=uppercase($2)
4350 AC_DEFUN([CF_UPPER],
4351 [
4352 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4353 ])dnl
4354 dnl ---------------------------------------------------------------------------
4355 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
4356 dnl -----------
4357 dnl Check for multibyte support, and if not found, utf8 compatibility library
4358 AC_DEFUN([CF_UTF8_LIB],
4359 [
4360 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
4361         cf_save_LIBS="$LIBS"
4362         AC_TRY_LINK([
4363 #include <stdlib.h>],[putwc(0,0);],
4364         [cf_cv_utf8_lib=yes],
4365         [CF_FIND_LINKAGE([
4366 #include <libutf8.h>],[putwc(0,0);],utf8,
4367                 [cf_cv_utf8_lib=add-on],
4368                 [cf_cv_utf8_lib=no])
4369 ])])
4370
4371 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
4372 # ncurses/ncursesw:
4373 if test "$cf_cv_utf8_lib" = "add-on" ; then
4374         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
4375         CF_ADD_INCDIR($cf_cv_header_path_utf8)
4376         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
4377         CF_ADD_LIBS($cf_cv_library_file_utf8)
4378 fi
4379 ])dnl
4380 dnl ---------------------------------------------------------------------------
4381 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
4382 dnl ----------
4383 dnl Use AC_VERBOSE w/o the warnings
4384 AC_DEFUN([CF_VERBOSE],
4385 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
4386 CF_MSG_LOG([$1])
4387 ])dnl
4388 dnl ---------------------------------------------------------------------------
4389 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
4390 dnl ---------------
4391 dnl Check for compiler-support for weak symbols.
4392 dnl This works with "recent" gcc.
4393 AC_DEFUN([CF_WEAK_SYMBOLS],[
4394 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
4395
4396 AC_TRY_COMPILE([
4397 #include <stdio.h>],
4398 [
4399 #if defined(__GNUC__)
4400 #  if defined __USE_ISOC99
4401 #    define _cat_pragma(exp)    _Pragma(#exp)
4402 #    define _weak_pragma(exp)   _cat_pragma(weak name)
4403 #  else
4404 #    define _weak_pragma(exp)
4405 #  endif
4406 #  define _declare(name)        __extension__ extern __typeof__(name) name
4407 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
4408 #endif
4409
4410 weak_symbol(fopen);
4411 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
4412 ])
4413 ])dnl
4414 dnl ---------------------------------------------------------------------------
4415 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
4416 dnl --------------------
4417 dnl Command-line option to specify the Ada95 compiler.
4418 AC_DEFUN([CF_WITH_ADA_COMPILER],[
4419 AC_MSG_CHECKING(for ada-compiler)
4420 AC_ARG_WITH(ada-compiler,
4421         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
4422         [cf_ada_compiler=$withval],
4423         [cf_ada_compiler=gnatmake])
4424 AC_SUBST(cf_ada_compiler)
4425 AC_MSG_RESULT($cf_ada_compiler)
4426 ])dnl
4427 dnl ---------------------------------------------------------------------------
4428 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
4429 dnl -------------------
4430 dnl Command-line option to specify where Ada includes will install.
4431 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
4432 AC_MSG_CHECKING(for ada-include)
4433 CF_WITH_PATH(ada-include,
4434    [  --with-ada-include=DIR  Ada includes are in DIR],
4435    ADA_INCLUDE,
4436    PREFIX/share/ada/adainclude,
4437    [$]prefix/share/ada/adainclude)
4438 AC_SUBST(ADA_INCLUDE)
4439 AC_MSG_RESULT($ADA_INCLUDE)
4440 ])dnl
4441 dnl ---------------------------------------------------------------------------
4442 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
4443 dnl -------------------
4444 dnl CF_WITH_ADA_LIBNAME
4445 dnl -------------------
4446 dnl Command-line option to specify how to name the resulting Ada library.
4447 dnl $1 = default value
4448 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
4449 AC_MSG_CHECKING(for ada-libname)
4450 AC_ARG_WITH(ada-libname,
4451    [  --with-ada-libname=XXX  override default Ada library-name],
4452    ADA_LIBNAME=[$]withval,
4453    ADA_LIBNAME=$1)
4454 case "x$ADA_LIBNAME" in
4455 (x|xyes|xno)
4456         ADA_LIBNAME=$1
4457         ;;
4458 esac
4459 AC_SUBST(ADA_LIBNAME)
4460 AC_MSG_RESULT($ADA_LIBNAME)
4461 ])dnl
4462 dnl ---------------------------------------------------------------------------
4463 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
4464 dnl -------------------
4465 dnl Command-line option to specify where Ada objects will install.
4466 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
4467 AC_MSG_CHECKING(for ada-objects)
4468 CF_WITH_PATH(ada-objects,
4469    [  --with-ada-objects=DIR  Ada objects are in DIR],
4470    ADA_OBJECTS,
4471    PREFIX/lib/ada/adalib,
4472    [$]prefix/lib/ada/adalib)
4473 AC_SUBST(ADA_OBJECTS)
4474 AC_MSG_RESULT($ADA_OBJECTS)
4475 ])dnl
4476 dnl ---------------------------------------------------------------------------
4477 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
4478 dnl ---------------------
4479 dnl Command-line option to specify if an Ada95 shared-library should be built,
4480 dnl and optionally what its soname should be.
4481 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
4482 AC_REQUIRE([CF_GNAT_PROJECTS])
4483 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
4484 AC_ARG_WITH(ada-sharedlib,
4485         [  --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
4486         [with_ada_sharedlib=$withval],
4487         [with_ada_sharedlib=no])
4488 AC_MSG_RESULT($with_ada_sharedlib)
4489
4490 if test "x$with_ada_sharedlib" != xno
4491 then
4492         if test "x$cf_gnat_projects" != xyes
4493         then
4494                 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
4495                 with_ada_sharedlib=no
4496         fi
4497 fi
4498
4499 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
4500 MAKE_ADA_SHAREDLIB="#"
4501
4502 if test "x$with_ada_sharedlib" != xno
4503 then
4504         MAKE_ADA_SHAREDLIB=
4505         if test "x$with_ada_sharedlib" != xyes
4506         then
4507                 ADA_SHAREDLIB="$with_ada_sharedlib"
4508         fi
4509 fi
4510
4511 AC_SUBST(ADA_SHAREDLIB)
4512 AC_SUBST(MAKE_ADA_SHAREDLIB)
4513 ])dnl
4514 dnl ---------------------------------------------------------------------------
4515 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
4516 dnl ------------------
4517 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
4518 dnl libraries.
4519 AC_DEFUN([CF_WITH_CURSES_DIR],[
4520
4521 AC_MSG_CHECKING(for specific curses-directory)
4522 AC_ARG_WITH(curses-dir,
4523         [  --with-curses-dir=DIR   directory in which (n)curses is installed],
4524         [cf_cv_curses_dir=$withval],
4525         [cf_cv_curses_dir=no])
4526 AC_MSG_RESULT($cf_cv_curses_dir)
4527
4528 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
4529 then
4530         CF_PATH_SYNTAX(withval)
4531         if test -d "$cf_cv_curses_dir"
4532         then
4533                 CF_ADD_INCDIR($cf_cv_curses_dir/include)
4534                 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
4535         fi
4536 fi
4537 ])dnl
4538 dnl ---------------------------------------------------------------------------
4539 dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
4540 dnl ------------------
4541 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
4542 dnl "lib" prefix, e.g., because it used the dll naming convention.
4543 dnl
4544 dnl $1 = variable to set
4545 AC_DEFUN([CF_WITH_LIB_PREFIX],
4546 [
4547 AC_MSG_CHECKING(if you want to have a library-prefix)
4548 AC_ARG_WITH(lib-prefix,
4549         [  --with-lib-prefix       override library-prefix],
4550         [with_lib_prefix=$withval],
4551         [with_lib_prefix=auto])
4552 AC_MSG_RESULT($with_lib_prefix)
4553
4554 if test $with_lib_prefix = auto
4555 then
4556         CF_LIB_PREFIX($1)
4557 elif test $with_lib_prefix = no
4558 then
4559         LIB_PREFIX=
4560 else
4561         LIB_PREFIX=$with_lib_prefix
4562 fi
4563 ])dnl
4564 dnl ---------------------------------------------------------------------------
4565 dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
4566 dnl ------------
4567 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
4568 dnl defaulting to yes/no.
4569 dnl
4570 dnl $1 = option name
4571 dnl $2 = help-text
4572 dnl $3 = environment variable to set
4573 dnl $4 = default value, shown in the help-message, must be a constant
4574 dnl $5 = default value, if it's an expression & cannot be in the help-message
4575 dnl
4576 AC_DEFUN([CF_WITH_PATH],
4577 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
4578 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
4579 if ifelse([$5],,true,[test -n "$5"]) ; then
4580 CF_PATH_SYNTAX(withval)
4581 fi
4582 eval $3="$withval"
4583 AC_SUBST($3)dnl
4584 ])dnl
4585 dnl ---------------------------------------------------------------------------
4586 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 10 updated: 2015/08/22 17:10:56
4587 dnl -------------------------
4588 dnl Allow the choice of the pkg-config library directory to be overridden.
4589 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
4590
4591 case $PKG_CONFIG in
4592 (no|none|yes)
4593         AC_MSG_CHECKING(for pkg-config library directory)
4594         ;;
4595 (*)
4596         AC_MSG_CHECKING(for $PKG_CONFIG library directory)
4597         ;;
4598 esac
4599
4600 PKG_CONFIG_LIBDIR=no
4601 AC_ARG_WITH(pkg-config-libdir,
4602         [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
4603         [PKG_CONFIG_LIBDIR=$withval],
4604         [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
4605
4606 case x$PKG_CONFIG_LIBDIR in
4607 (x/*)
4608         ;;
4609 (xyes)
4610         # Look for the library directory using the same prefix as the executable
4611         if test "x$PKG_CONFIG" = xnone
4612         then
4613                 cf_path=$prefix
4614         else
4615                 cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
4616         fi
4617
4618         # If you don't like using the default architecture, you have to specify the
4619         # intended library directory and corresponding compiler/linker options.
4620         #
4621         # This case allows for Debian's 2014-flavor of multiarch, along with the
4622         # most common variations before that point.  Some other variants spell the
4623         # directory differently, e.g., "pkg-config", and put it in unusual places.
4624         # pkg-config has always been poorly standardized, which is ironic...
4625         case x`(arch) 2>/dev/null` in
4626         (*64)
4627                 cf_search_path="\
4628                         $cf_path/lib/*64-linux-gnu \
4629                         $cf_path/share \
4630                         $cf_path/lib64 \
4631                         $cf_path/lib32 \
4632                         $cf_path/lib"
4633                 ;;
4634         (*)
4635                 cf_search_path="\
4636                         $cf_path/lib/*-linux-gnu \
4637                         $cf_path/share \
4638                         $cf_path/lib32 \
4639                         $cf_path/lib \
4640                         $cf_path/libdata"
4641                 ;;
4642         esac
4643
4644         CF_VERBOSE(list...)
4645         for cf_config in $cf_search_path
4646         do
4647                 CF_VERBOSE(checking $cf_config/pkgconfig)
4648                 if test -d $cf_config/pkgconfig
4649                 then
4650                         PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
4651                         AC_MSG_CHECKING(done)
4652                         break
4653                 fi
4654         done
4655         ;;
4656 (*)
4657         ;;
4658 esac
4659
4660 if test "x$PKG_CONFIG_LIBDIR" != xno ; then
4661         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
4662 fi
4663
4664 AC_SUBST(PKG_CONFIG_LIBDIR)
4665 ])dnl
4666 dnl ---------------------------------------------------------------------------
4667 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
4668 dnl ---------------
4669 dnl Check for POSIX thread library.
4670 AC_DEFUN([CF_WITH_PTHREAD],
4671 [
4672 AC_MSG_CHECKING(if you want to link with the pthread library)
4673 AC_ARG_WITH(pthread,
4674         [  --with-pthread          use POSIX thread library],
4675         [with_pthread=$withval],
4676         [with_pthread=no])
4677 AC_MSG_RESULT($with_pthread)
4678
4679 if test "$with_pthread" != no ; then
4680         AC_CHECK_HEADER(pthread.h,[
4681         AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
4682
4683         for cf_lib_pthread in pthread c_r
4684         do
4685             AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
4686             cf_save_LIBS="$LIBS"
4687             CF_ADD_LIB($cf_lib_pthread)
4688             AC_TRY_LINK([
4689 #include <pthread.h>
4690 ],[
4691                 int rc = pthread_create(0,0,0,0);
4692                 int r2 = pthread_mutexattr_settype(0, 0);
4693 ],[with_pthread=yes],[with_pthread=no])
4694             LIBS="$cf_save_LIBS"
4695             AC_MSG_RESULT($with_pthread)
4696             test "$with_pthread" = yes && break
4697         done
4698
4699         if test "$with_pthread" = yes ; then
4700             CF_ADD_LIB($cf_lib_pthread)
4701             AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
4702         else
4703             AC_MSG_ERROR(Cannot link with pthread library)
4704         fi
4705         ])
4706 fi
4707 ])
4708 dnl ---------------------------------------------------------------------------
4709 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
4710 dnl ---------------
4711 dnl For testing, override the derived host system-type which is used to decide
4712 dnl things such as the linker commands used to build shared libraries.  This is
4713 dnl normally chosen automatically based on the type of system which you are
4714 dnl building on.  We use it for testing the configure script.
4715 dnl
4716 dnl This is different from the --host option: it is used only for testing parts
4717 dnl of the configure script which would not be reachable with --host since that
4718 dnl relies on the build environment being real, rather than mocked up.
4719 AC_DEFUN([CF_WITH_SYSTYPE],[
4720 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
4721 AC_ARG_WITH(system-type,
4722         [  --with-system-type=XXX  test: override derived host system-type],
4723 [AC_MSG_WARN(overriding system type to $withval)
4724         cf_cv_system_name=$withval
4725         host_os=$withval
4726 ])
4727 ])dnl
4728 dnl ---------------------------------------------------------------------------
4729 dnl CF_XOPEN_SOURCE version: 55 updated: 2018/12/31 20:46:17
4730 dnl ---------------
4731 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
4732 dnl or adapt to the vendor's definitions to get equivalent functionality,
4733 dnl without losing the common non-POSIX features.
4734 dnl
4735 dnl Parameters:
4736 dnl     $1 is the nominal value for _XOPEN_SOURCE
4737 dnl     $2 is the nominal value for _POSIX_C_SOURCE
4738 AC_DEFUN([CF_XOPEN_SOURCE],[
4739 AC_REQUIRE([AC_CANONICAL_HOST])
4740 AC_REQUIRE([CF_POSIX_VISIBLE])
4741
4742 if test "$cf_cv_posix_visible" = no; then
4743
4744 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
4745 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
4746 cf_xopen_source=
4747
4748 case $host_os in
4749 (aix[[4-7]]*)
4750         cf_xopen_source="-D_ALL_SOURCE"
4751         ;;
4752 (msys)
4753         cf_XOPEN_SOURCE=600
4754         ;;
4755 (darwin[[0-8]].*)
4756         cf_xopen_source="-D_APPLE_C_SOURCE"
4757         ;;
4758 (darwin*)
4759         cf_xopen_source="-D_DARWIN_C_SOURCE"
4760         cf_XOPEN_SOURCE=
4761         ;;
4762 (freebsd*|dragonfly*|midnightbsd*)
4763         # 5.x headers associate
4764         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
4765         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
4766         cf_POSIX_C_SOURCE=200112L
4767         cf_XOPEN_SOURCE=600
4768         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
4769         ;;
4770 (hpux11*)
4771         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
4772         ;;
4773 (hpux*)
4774         cf_xopen_source="-D_HPUX_SOURCE"
4775         ;;
4776 (irix[[56]].*)
4777         cf_xopen_source="-D_SGI_SOURCE"
4778         cf_XOPEN_SOURCE=
4779         ;;
4780 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
4781         CF_GNU_SOURCE($cf_XOPEN_SOURCE)
4782         ;;
4783 (minix*)
4784         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
4785         ;;
4786 (mirbsd*)
4787         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
4788         cf_XOPEN_SOURCE=
4789         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4790         ;;
4791 (netbsd*)
4792         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
4793         ;;
4794 (openbsd[[4-9]]*)
4795         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
4796         cf_xopen_source="-D_BSD_SOURCE"
4797         cf_XOPEN_SOURCE=600
4798         ;;
4799 (openbsd*)
4800         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
4801         ;;
4802 (osf[[45]]*)
4803         cf_xopen_source="-D_OSF_SOURCE"
4804         ;;
4805 (nto-qnx*)
4806         cf_xopen_source="-D_QNX_SOURCE"
4807         ;;
4808 (sco*)
4809         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
4810         ;;
4811 (solaris2.*)
4812         cf_xopen_source="-D__EXTENSIONS__"
4813         cf_cv_xopen_source=broken
4814         ;;
4815 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
4816         cf_XOPEN_SOURCE=
4817         cf_POSIX_C_SOURCE=
4818         ;;
4819 (*)
4820         CF_TRY_XOPEN_SOURCE
4821         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4822         ;;
4823 esac
4824
4825 if test -n "$cf_xopen_source" ; then
4826         CF_ADD_CFLAGS($cf_xopen_source,true)
4827 fi
4828
4829 dnl In anything but the default case, we may have system-specific setting
4830 dnl which is still not guaranteed to provide all of the entrypoints that
4831 dnl _XOPEN_SOURCE would yield.
4832 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
4833         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
4834         AC_TRY_COMPILE([#include <stdlib.h>],[
4835 #ifndef _XOPEN_SOURCE
4836 make an error
4837 #endif],
4838         [cf_XOPEN_SOURCE_set=yes],
4839         [cf_XOPEN_SOURCE_set=no])
4840         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
4841         if test $cf_XOPEN_SOURCE_set = yes
4842         then
4843                 AC_TRY_COMPILE([#include <stdlib.h>],[
4844 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
4845 make an error
4846 #endif],
4847                 [cf_XOPEN_SOURCE_set_ok=yes],
4848                 [cf_XOPEN_SOURCE_set_ok=no])
4849                 if test $cf_XOPEN_SOURCE_set_ok = no
4850                 then
4851                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
4852                 fi
4853         else
4854                 CF_TRY_XOPEN_SOURCE
4855         fi
4856 fi
4857 fi # cf_cv_posix_visible
4858 ])