]> ncurses.scripts.mit.edu Git - ncurses.git/blob - Ada95/aclocal.m4
ncurses 6.2 - patch 20201219
[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.167 2020/12/05 21:44:26 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: 11 updated: 2020/12/05 16:42:18
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 USE_OLD_MAKERULES=""
1643 USE_GNAT_PROJECTS="#"
1644 USE_GNAT_MAKE_GPR="#"
1645 USE_GNAT_GPRBUILD="#"
1646
1647 if test "$cf_gnat_projects" = yes
1648 then
1649         USE_OLD_MAKERULES="#"
1650         USE_GNAT_PROJECTS=""
1651         if test "$cf_cv_VERSION_GPRBUILD" != no
1652         then
1653                 USE_GNAT_GPRBUILD=""
1654         elif test "$cf_cv_VERSION_GNATMAKE" != no
1655         then
1656                 USE_GNAT_MAKE_GPR=""
1657         else
1658                 AC_MSG_WARN(use old makefile rules since tools are missing)
1659         fi
1660 fi
1661
1662 if test "$cf_gnat_libraries" = yes
1663 then
1664         USE_GNAT_LIBRARIES=""
1665 else
1666         USE_GNAT_LIBRARIES="#"
1667 fi
1668
1669 AC_SUBST(USE_OLD_MAKERULES)
1670 AC_SUBST(USE_GNAT_PROJECTS)
1671 AC_SUBST(USE_GNAT_LIBRARIES)
1672 AC_SUBST(USE_GNAT_MAKE_GPR)
1673 AC_SUBST(USE_GNAT_GPRBUILD)
1674 ])dnl
1675 dnl ---------------------------------------------------------------------------
1676 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
1677 dnl --------------
1678 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
1679 dnl is noted that gnat may compile a tasking unit even for configurations which
1680 dnl fail at runtime.
1681 AC_DEFUN([CF_GNAT_SIGINT],[
1682 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
1683 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
1684
1685 package ConfTest is
1686
1687    pragma Warnings (Off);  --  the next pragma exists since 3.11p
1688    pragma Unreserve_All_Interrupts;
1689    pragma Warnings (On);
1690
1691    protected Process is
1692       procedure Stop;
1693       function Continue return Boolean;
1694       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
1695    private
1696       Done : Boolean := False;
1697    end Process;
1698
1699 end ConfTest;],
1700 [package body ConfTest is
1701    protected body Process is
1702       procedure Stop is
1703       begin
1704          Done := True;
1705       end Stop;
1706       function Continue return Boolean is
1707       begin
1708          return not Done;
1709       end Continue;
1710    end Process;
1711 end ConfTest;],
1712         [cf_cv_gnat_sigint=yes],
1713         [cf_cv_gnat_sigint=no])])
1714
1715 if test $cf_cv_gnat_sigint = yes ; then
1716         USE_GNAT_SIGINT=""
1717 else
1718         USE_GNAT_SIGINT="#"
1719 fi
1720 AC_SUBST(USE_GNAT_SIGINT)
1721 ])dnl
1722 dnl ---------------------------------------------------------------------------
1723 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
1724 dnl ----------------
1725 dnl Verify that a test program compiles/links with GNAT.
1726 dnl $cf_ada_make is set to the program that compiles/links
1727 dnl $ADAFLAGS may be set to the GNAT flags.
1728 dnl
1729 dnl $1 is the text of the spec
1730 dnl $2 is the text of the body
1731 dnl $3 is the shell command to execute if successful
1732 dnl $4 is the shell command to execute if not successful
1733 AC_DEFUN([CF_GNAT_TRY_LINK],
1734 [
1735 rm -rf conftest* *~conftest*
1736 cat >>conftest.ads <<CF_EOF
1737 $1
1738 CF_EOF
1739 cat >>conftest.adb <<CF_EOF
1740 $2
1741 CF_EOF
1742 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1743 ifelse($3,,      :,[      $3])
1744 ifelse($4,,,[else
1745    $4])
1746 fi
1747 rm -rf conftest* *~conftest*
1748 ])dnl
1749 dnl ---------------------------------------------------------------------------
1750 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
1751 dnl ---------------
1752 dnl Verify that a test program compiles and runs with GNAT
1753 dnl $cf_ada_make is set to the program that compiles/links
1754 dnl $ADAFLAGS may be set to the GNAT flags.
1755 dnl
1756 dnl $1 is the text of the spec
1757 dnl $2 is the text of the body
1758 dnl $3 is the shell command to execute if successful
1759 dnl $4 is the shell command to execute if not successful
1760 AC_DEFUN([CF_GNAT_TRY_RUN],
1761 [
1762 rm -rf conftest* *~conftest*
1763 cat >>conftest.ads <<CF_EOF
1764 $1
1765 CF_EOF
1766 cat >>conftest.adb <<CF_EOF
1767 $2
1768 CF_EOF
1769 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1770    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1771 ifelse($3,,      :,[      $3])
1772 ifelse($4,,,[   else
1773       $4])
1774    fi
1775 ifelse($4,,,[else
1776    $4])
1777 fi
1778 rm -rf conftest* *~conftest*
1779 ])dnl
1780 dnl ---------------------------------------------------------------------------
1781 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
1782 dnl ---------------
1783 dnl $1 = cache variable to update
1784 dnl $2 = program name
1785 dnl Verify version of GNAT or related tool
1786 AC_DEFUN([CF_GNAT_VERSION],
1787 [
1788 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
1789 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
1790         grep '[[0-9]].[[0-9]][[0-9]]*' |\
1791         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1792 ])
1793 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
1794 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
1795 ])dnl
1796 dnl ---------------------------------------------------------------------------
1797 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1798 dnl -------------
1799 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1800 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1801 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1802 dnl since it is interwoven with GNU extensions.
1803 dnl
1804 dnl Well, yes we could work around it...
1805 dnl
1806 dnl Parameters:
1807 dnl     $1 is the nominal value for _XOPEN_SOURCE
1808 AC_DEFUN([CF_GNU_SOURCE],
1809 [
1810 cf_gnu_xopen_source=ifelse($1,,500,$1)
1811
1812 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1813 AC_TRY_COMPILE([#include <sys/types.h>],[
1814         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1815                 return 0;
1816         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1817                 return 0;
1818         #else
1819         #       error not GNU C library
1820         #endif],
1821         [cf_cv_gnu_library=yes],
1822         [cf_cv_gnu_library=no])
1823 ])
1824
1825 if test x$cf_cv_gnu_library = xyes; then
1826
1827         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1828         # was changed to help a little.  newlib incorporated the change about 4
1829         # years later.
1830         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1831                 cf_save="$CPPFLAGS"
1832                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1833                 AC_TRY_COMPILE([#include <sys/types.h>],[
1834                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1835                                 return 0;
1836                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1837                                 return 0;
1838                         #else
1839                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1840                         #endif],
1841                         [cf_cv_gnu_library_219=yes],
1842                         [cf_cv_gnu_library_219=no])
1843                 CPPFLAGS="$cf_save"
1844         ])
1845
1846         if test "x$cf_cv_gnu_library_219" = xyes; then
1847                 cf_save="$CPPFLAGS"
1848                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
1849                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
1850                         AC_TRY_COMPILE([
1851                                 #include <limits.h>
1852                                 #include <sys/types.h>
1853                                 ],[
1854                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
1855                                         return 0;
1856                                 #else
1857                                 #       error GNU C library is too old
1858                                 #endif],
1859                                 [cf_cv_gnu_dftsrc_219=yes],
1860                                 [cf_cv_gnu_dftsrc_219=no])
1861                         ])
1862                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
1863         else
1864                 cf_cv_gnu_dftsrc_219=maybe
1865         fi
1866
1867         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
1868
1869                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1870                 AC_TRY_COMPILE([#include <sys/types.h>],[
1871                         #ifndef _XOPEN_SOURCE
1872                         #error  expected _XOPEN_SOURCE to be defined
1873                         #endif],
1874                         [cf_cv_gnu_source=no],
1875                         [cf_save="$CPPFLAGS"
1876                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
1877                          AC_TRY_COMPILE([#include <sys/types.h>],[
1878                                 #ifdef _XOPEN_SOURCE
1879                                 #error  expected _XOPEN_SOURCE to be undefined
1880                                 #endif],
1881                                 [cf_cv_gnu_source=no],
1882                                 [cf_cv_gnu_source=yes])
1883                         CPPFLAGS="$cf_save"
1884                         ])
1885                 ])
1886
1887                 if test "$cf_cv_gnu_source" = yes
1888                 then
1889                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1890                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
1891                         AC_TRY_COMPILE([#include <sys/types.h>],[
1892                                 #ifdef _DEFAULT_SOURCE
1893                                 #error  expected _DEFAULT_SOURCE to be undefined
1894                                 #endif],
1895                                 [cf_cv_default_source=no],
1896                                 [cf_cv_default_source=yes])
1897                         ])
1898                         if test "$cf_cv_default_source" = yes
1899                         then
1900                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1901                         fi
1902                 fi
1903         fi
1904
1905 fi
1906 ])dnl
1907 dnl ---------------------------------------------------------------------------
1908 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1909 dnl --------------
1910 dnl Construct a search-list of directories for a nonstandard header-file
1911 dnl
1912 dnl Parameters
1913 dnl     $1 = the variable to return as result
1914 dnl     $2 = the package name
1915 AC_DEFUN([CF_HEADER_PATH],
1916 [
1917 $1=
1918
1919 # collect the current set of include-directories from compiler flags
1920 cf_header_path_list=""
1921 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1922         for cf_header_path in $CPPFLAGS $CFLAGS
1923         do
1924                 case $cf_header_path in
1925                 (-I*)
1926                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1927                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1928                         cf_header_path_list="$cf_header_path_list [$]$1"
1929                         ;;
1930                 esac
1931         done
1932 fi
1933
1934 # add the variations for the package we are looking for
1935 CF_SUBDIR_PATH($1,$2,include)
1936
1937 test "$includedir" != NONE && \
1938 test "$includedir" != "/usr/include" && \
1939 test -d "$includedir" && {
1940         test -d $includedir &&    $1="[$]$1 $includedir"
1941         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1942 }
1943
1944 test "$oldincludedir" != NONE && \
1945 test "$oldincludedir" != "/usr/include" && \
1946 test -d "$oldincludedir" && {
1947         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
1948         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1949 }
1950
1951 $1="[$]$1 $cf_header_path_list"
1952 ])dnl
1953 dnl ---------------------------------------------------------------------------
1954 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
1955 dnl ---------------
1956 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1957 AC_DEFUN([CF_HELP_MESSAGE],
1958 [CF_ACVERSION_CHECK(2.53,[],[
1959 AC_DIVERT_HELP($1)])dnl
1960 ])dnl
1961 dnl ---------------------------------------------------------------------------
1962 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
1963 dnl ---------------
1964 dnl Construct the list of include-options according to whether we're building
1965 dnl in the source directory or using '--srcdir=DIR' option.
1966 AC_DEFUN([CF_INCLUDE_DIRS],
1967 [
1968 if test "$srcdir" != "."; then
1969         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
1970 fi
1971 CPPFLAGS="-I../include $CPPFLAGS"
1972 if test "$srcdir" != "."; then
1973         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
1974 fi
1975 CPPFLAGS="-I. $CPPFLAGS"
1976 AC_SUBST(CPPFLAGS)
1977 ])dnl
1978 dnl ---------------------------------------------------------------------------
1979 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
1980 dnl ---------------
1981 dnl prompt for/fill-in useful install-program options
1982 AC_DEFUN([CF_INSTALL_OPTS],
1983 [
1984 CF_INSTALL_OPT_S
1985 CF_INSTALL_OPT_P
1986 CF_INSTALL_OPT_O
1987 ])dnl
1988 dnl ---------------------------------------------------------------------------
1989 dnl CF_INSTALL_OPT_O version: 2 updated: 2015/05/15 19:45:35
1990 dnl ----------------
1991 dnl Almost all "install" programs default to the current user's ownership.
1992 dnl Almost - MINIX is an exception.
1993 AC_DEFUN([CF_INSTALL_OPT_O],
1994 [
1995 AC_MSG_CHECKING(if install needs to be told about ownership)
1996 case `$ac_config_guess` in
1997 (*minix)
1998         with_install_o=yes
1999         ;;
2000 (*)
2001         with_install_o=no
2002         ;;
2003 esac
2004
2005 AC_MSG_RESULT($with_install_o)
2006 if test "x$with_install_o" = xyes
2007 then
2008         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'`
2009 else
2010         INSTALL_OPT_O=
2011 fi
2012
2013 AC_SUBST(INSTALL_OPT_O)
2014 ])dnl
2015 dnl ---------------------------------------------------------------------------
2016 dnl CF_INSTALL_OPT_P version: 1 updated: 2018/08/18 12:19:21
2017 dnl ----------------
2018 dnl Some install-programs accept a "-p" option to preserve file modification
2019 dnl timestamps.  That can be useful as an install option, as well as a way to
2020 dnl avoid the need for ranlib after copying a static archive.
2021 AC_DEFUN([CF_INSTALL_OPT_P],
2022 [
2023 : ${INSTALL:=install}
2024 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
2025         rm -rf conftest*
2026         date >conftest.in
2027         mkdir conftest.out
2028         sleep 3
2029         if $INSTALL -p conftest.in conftest.out 2>/dev/null
2030         then
2031                 if test -f conftest.out/conftest.in
2032                 then
2033                         test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
2034                         test conftest.out/conftest.in -nt conftest.in 2>conftest.err
2035                         if test -s conftest.err
2036                         then
2037                                 cf_cv_install_p=no
2038                         else
2039                                 cf_cv_install_p=yes
2040                         fi
2041                 else
2042                         cf_cv_install_p=no
2043                 fi
2044         else
2045                 cf_cv_install_p=no
2046         fi
2047         rm -rf conftest*
2048 ])
2049 ])dnl
2050 dnl ---------------------------------------------------------------------------
2051 dnl CF_INSTALL_OPT_S version: 2 updated: 2018/08/18 12:19:21
2052 dnl ----------------
2053 dnl By default, we should strip executables which are installed, but leave the
2054 dnl ability to suppress that for unit-testing.
2055 AC_DEFUN([CF_INSTALL_OPT_S],
2056 [
2057 AC_MSG_CHECKING(if you want to install stripped executables)
2058 CF_ARG_DISABLE(stripping,
2059         [  --disable-stripping     do not strip (debug info) installed executables],
2060         [with_stripping=no],
2061         [with_stripping=yes])
2062 AC_MSG_RESULT($with_stripping)
2063
2064 if test "$with_stripping" = yes
2065 then
2066         INSTALL_OPT_S="-s"
2067 else
2068         INSTALL_OPT_S=
2069 fi
2070 AC_SUBST(INSTALL_OPT_S)
2071 ])dnl
2072 dnl ---------------------------------------------------------------------------
2073 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
2074 dnl -----------------
2075 dnl Check if the given compiler is really the Intel compiler for Linux.  It
2076 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2077 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2078 dnl
2079 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2080 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2081 dnl the wrappers for gcc and g++ warnings.
2082 dnl
2083 dnl $1 = GCC (default) or GXX
2084 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2085 dnl $3 = CFLAGS (default) or CXXFLAGS
2086 AC_DEFUN([CF_INTEL_COMPILER],[
2087 AC_REQUIRE([AC_CANONICAL_HOST])
2088 ifelse([$2],,INTEL_COMPILER,[$2])=no
2089
2090 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2091         case $host_os in
2092         (linux*|gnu*)
2093                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2094                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2095                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2096                 AC_TRY_COMPILE([],[
2097 #ifdef __INTEL_COMPILER
2098 #else
2099 make an error
2100 #endif
2101 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2102 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2103 ],[])
2104                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2105                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2106                 ;;
2107         esac
2108 fi
2109 ])dnl
2110 dnl ---------------------------------------------------------------------------
2111 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
2112 dnl ------------
2113 dnl Add checks for large file support.
2114 AC_DEFUN([CF_LARGEFILE],[
2115 ifdef([AC_FUNC_FSEEKO],[
2116         AC_SYS_LARGEFILE
2117         if test "$enable_largefile" != no ; then
2118         AC_FUNC_FSEEKO
2119
2120         # Normally we would collect these definitions in the config.h,
2121         # but (like _XOPEN_SOURCE), some environments rely on having these
2122         # defined before any of the system headers are included.  Another
2123         # case comes up with C++, e.g., on AIX the compiler compiles the
2124         # header files by themselves before looking at the body files it is
2125         # told to compile.  For ncurses, those header files do not include
2126         # the config.h
2127         if test "$ac_cv_sys_large_files" != no
2128         then
2129                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
2130         fi
2131         if test "$ac_cv_sys_largefile_source" != no
2132         then
2133                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
2134         fi
2135         if test "$ac_cv_sys_file_offset_bits" != no
2136         then
2137                 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
2138         fi
2139
2140         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2141                 AC_TRY_COMPILE([
2142 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
2143 #include <sys/types.h>
2144 #include <dirent.h>
2145                 ],[
2146                 /* if transitional largefile support is setup, this is true */
2147                 extern struct dirent64 * readdir(DIR *);
2148                 struct dirent64 *x = readdir((DIR *)0);
2149                 struct dirent *y = readdir((DIR *)0);
2150                 int z = x - y;
2151                 (void)z;
2152                 ],
2153                 [cf_cv_struct_dirent64=yes],
2154                 [cf_cv_struct_dirent64=no])
2155         ])
2156         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
2157         fi
2158 ])
2159 ])
2160 dnl ---------------------------------------------------------------------------
2161 dnl CF_LD_RPATH_OPT version: 8 updated: 2018/08/18 16:36:35
2162 dnl ---------------
2163 dnl For the given system and compiler, find the compiler flags to pass to the
2164 dnl loader to use the "rpath" feature.
2165 AC_DEFUN([CF_LD_RPATH_OPT],
2166 [
2167 AC_REQUIRE([CF_CHECK_CACHE])
2168
2169 LD_RPATH_OPT=
2170 if test "x$cf_cv_enable_rpath" != xno
2171 then
2172         AC_MSG_CHECKING(for an rpath option)
2173         case $cf_cv_system_name in
2174         (irix*)
2175                 if test "$GCC" = yes; then
2176                         LD_RPATH_OPT="-Wl,-rpath,"
2177                 else
2178                         LD_RPATH_OPT="-rpath "
2179                 fi
2180                 ;;
2181         (linux*|gnu*|k*bsd*-gnu|freebsd*)
2182                 LD_RPATH_OPT="-Wl,-rpath,"
2183                 ;;
2184         (openbsd[[2-9]].*|mirbsd*)
2185                 LD_RPATH_OPT="-Wl,-rpath,"
2186                 ;;
2187         (dragonfly*)
2188                 LD_RPATH_OPT="-rpath "
2189                 ;;
2190         (netbsd*)
2191                 LD_RPATH_OPT="-Wl,-rpath,"
2192                 ;;
2193         (osf*|mls+*)
2194                 LD_RPATH_OPT="-rpath "
2195                 ;;
2196         (solaris2*)
2197                 LD_RPATH_OPT="-R"
2198                 ;;
2199         (*)
2200                 ;;
2201         esac
2202         AC_MSG_RESULT($LD_RPATH_OPT)
2203
2204         case "x$LD_RPATH_OPT" in
2205         (x-R*)
2206                 AC_MSG_CHECKING(if we need a space after rpath option)
2207                 cf_save_LIBS="$LIBS"
2208                 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2209                 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2210                 LIBS="$cf_save_LIBS"
2211                 AC_MSG_RESULT($cf_rpath_space)
2212                 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2213                 ;;
2214         esac
2215 fi
2216 ])dnl
2217 dnl ---------------------------------------------------------------------------
2218 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
2219 dnl ---------------
2220 dnl Construct a search-list of directories for a nonstandard library-file
2221 dnl
2222 dnl Parameters
2223 dnl     $1 = the variable to return as result
2224 dnl     $2 = the package name
2225 AC_DEFUN([CF_LIBRARY_PATH],
2226 [
2227 $1=
2228 cf_library_path_list=""
2229 if test -n "${LDFLAGS}${LIBS}" ; then
2230         for cf_library_path in $LDFLAGS $LIBS
2231         do
2232                 case $cf_library_path in
2233                 (-L*)
2234                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2235                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2236                         cf_library_path_list="$cf_library_path_list [$]$1"
2237                         ;;
2238                 esac
2239         done
2240 fi
2241
2242 CF_SUBDIR_PATH($1,$2,lib)
2243
2244 $1="$cf_library_path_list [$]$1"
2245 ])dnl
2246 dnl ---------------------------------------------------------------------------
2247 dnl CF_LIB_PREFIX version: 13 updated: 2020/04/04 10:11:47
2248 dnl -------------
2249 dnl Compute the library-prefix for the given host system
2250 dnl $1 = variable to set
2251 define([CF_LIB_PREFIX],
2252 [
2253         case $cf_cv_system_name in
2254         (OS/2*|os2*)
2255                 if test "$DFT_LWR_MODEL" = libtool; then
2256                         LIB_PREFIX='lib'
2257                 else
2258                         LIB_PREFIX=''
2259                 fi
2260                 ;;
2261         (*-msvc*)
2262                 LIB_PREFIX=''
2263                 ;;
2264         (*)     LIB_PREFIX='lib'
2265                 ;;
2266         esac
2267 ifelse($1,,,[$1=$LIB_PREFIX])
2268         AC_SUBST(LIB_PREFIX)
2269 ])dnl
2270 dnl ---------------------------------------------------------------------------
2271 dnl CF_LIB_SUFFIX version: 26 updated: 2020/04/04 10:11:47
2272 dnl -------------
2273 dnl Compute the library file-suffix from the given model name
2274 dnl $1 = model name
2275 dnl $2 = variable to set (the nominal library suffix)
2276 dnl $3 = dependency variable to set (actual filename)
2277 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2278 AC_DEFUN([CF_LIB_SUFFIX],
2279 [
2280         case X$1 in
2281         (Xlibtool)
2282                 $2='.la'
2283                 $3=[$]$2
2284                 ;;
2285         (Xdebug)
2286                 case $cf_cv_system_name in
2287                 (*-msvc*)
2288                         $2='_g.lib'
2289                         ;;
2290                 (*)
2291                         $2='_g.a'
2292                         ;;
2293                 esac
2294                 $3=[$]$2
2295                 ;;
2296         (Xprofile)
2297                 case $cf_cv_system_name in
2298                 (*-msvc*)
2299                         $2='_p.lib'
2300                         ;;
2301                 (*)
2302                         $2='_p.a'
2303                         ;;
2304                 esac
2305                 $3=[$]$2
2306                 ;;
2307         (Xshared)
2308                 case $cf_cv_system_name in
2309                 (aix[[5-7]]*)
2310                         $2='.so'
2311                         $3=[$]$2
2312                         ;;
2313                 (*-msvc*)
2314                         $2='.dll'
2315                         $3='.dll.lib'
2316                         ;;
2317                 (cygwin*|msys*|mingw*)
2318                         $2='.dll'
2319                         $3='.dll.a'
2320                         ;;
2321                 (darwin*)
2322                         $2='.dylib'
2323                         $3=[$]$2
2324                         ;;
2325                 (hpux*)
2326                         case $target in
2327                         (ia64*)
2328                                 $2='.so'
2329                                 $3=[$]$2
2330                                 ;;
2331                         (*)
2332                                 $2='.sl'
2333                                 $3=[$]$2
2334                                 ;;
2335                         esac
2336                         ;;
2337                 (*)
2338                         $2='.so'
2339                         $3=[$]$2
2340                         ;;
2341                 esac
2342                 ;;
2343         (*)
2344                 case $target in
2345                 (*-msvc*)
2346                         $2='.lib'
2347                         ;;
2348                 (*)
2349                         $2='.a'
2350                         ;;
2351                 esac
2352                 $3=[$]$2
2353                 ;;
2354         esac
2355         if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
2356         then
2357                 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
2358                 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
2359         fi
2360 ])dnl
2361 dnl ---------------------------------------------------------------------------
2362 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
2363 dnl -----------
2364 dnl Compute the string to append to -library from the given model name
2365 dnl $1 = model name
2366 dnl $2 = variable to set
2367 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2368 AC_DEFUN([CF_LIB_TYPE],
2369 [
2370         case $1 in
2371         (libtool) $2=''   ;;
2372         (normal)  $2=''   ;;
2373         (debug)   $2='_g' ;;
2374         (profile) $2='_p' ;;
2375         (shared)  $2=''   ;;
2376         esac
2377         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2378 ])dnl
2379 dnl ---------------------------------------------------------------------------
2380 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
2381 dnl ----------------
2382 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2383 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
2384 dnl have to provide wrappers for global tables to ensure they're linked
2385 dnl properly.
2386 AC_DEFUN([CF_LINK_DATAONLY],
2387 [
2388 AC_MSG_CHECKING([if data-only library module links])
2389 AC_CACHE_VAL(cf_cv_link_dataonly,[
2390         rm -f conftest.a
2391         cat >conftest.$ac_ext <<EOF
2392 #line __oline__ "configure"
2393 int     testdata[[3]] = { 123, 456, 789 };
2394 EOF
2395         if AC_TRY_EVAL(ac_compile) ; then
2396                 mv conftest.o data.o && \
2397                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2398         fi
2399         rm -f conftest.$ac_ext data.o
2400         cat >conftest.$ac_ext <<EOF
2401 #line __oline__ "configure"
2402 int     testfunc(void)
2403 {
2404 #if defined(NeXT)
2405         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
2406 #else
2407         extern int testdata[[3]];
2408         return testdata[[0]] == 123
2409            &&  testdata[[1]] == 456
2410            &&  testdata[[2]] == 789;
2411 #endif
2412 }
2413 EOF
2414         if AC_TRY_EVAL(ac_compile); then
2415                 mv conftest.o func.o && \
2416                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2417         fi
2418         rm -f conftest.$ac_ext func.o
2419         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2420         cf_saveLIBS="$LIBS"
2421         LIBS="conftest.a $LIBS"
2422         AC_TRY_RUN([
2423         int main(void)
2424         {
2425                 extern int testfunc();
2426                 ${cf_cv_main_return:-return} (!testfunc());
2427         }
2428         ],
2429         [cf_cv_link_dataonly=yes],
2430         [cf_cv_link_dataonly=no],
2431         [cf_cv_link_dataonly=unknown])
2432         LIBS="$cf_saveLIBS"
2433         ])
2434 AC_MSG_RESULT($cf_cv_link_dataonly)
2435
2436 if test "$cf_cv_link_dataonly" = no ; then
2437         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
2438         BROKEN_LINKER=1
2439 fi
2440 AC_SUBST(BROKEN_LINKER)
2441
2442 ])dnl
2443 dnl ---------------------------------------------------------------------------
2444 dnl CF_MAKEFLAGS version: 18 updated: 2018/02/21 21:26:03
2445 dnl ------------
2446 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2447 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
2448 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2449 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2450 AC_DEFUN([CF_MAKEFLAGS],
2451 [
2452 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2453         cf_cv_makeflags=''
2454         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2455         do
2456                 cat >cf_makeflags.tmp <<CF_EOF
2457 SHELL = $SHELL
2458 all :
2459         @ echo '.$cf_option'
2460 CF_EOF
2461                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[   ]]*$,,'`
2462                 case "$cf_result" in
2463                 (.*k|.*kw)
2464                         cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2465                         case "$cf_result" in
2466                         (.*CC=*)        cf_cv_makeflags=
2467                                 ;;
2468                         (*)     cf_cv_makeflags=$cf_option
2469                                 ;;
2470                         esac
2471                         break
2472                         ;;
2473                 (.-)
2474                         ;;
2475                 (*)
2476                         CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
2477                         ;;
2478                 esac
2479         done
2480         rm -f cf_makeflags.tmp
2481 ])
2482
2483 AC_SUBST(cf_cv_makeflags)
2484 ])dnl
2485 dnl ---------------------------------------------------------------------------
2486 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2487 dnl ------------
2488 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
2489 dnl a monocase filesystem.
2490 AC_DEFUN([CF_MAKE_TAGS],[
2491 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2492
2493 AC_CHECK_PROGS(CTAGS, exctags ctags)
2494 AC_CHECK_PROGS(ETAGS, exetags etags)
2495
2496 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2497
2498 if test "$cf_cv_mixedcase" = yes ; then
2499         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2500 else
2501         MAKE_UPPER_TAGS=no
2502 fi
2503
2504 if test "$MAKE_UPPER_TAGS" = yes ; then
2505         MAKE_UPPER_TAGS=
2506 else
2507         MAKE_UPPER_TAGS="#"
2508 fi
2509
2510 if test "$MAKE_LOWER_TAGS" = yes ; then
2511         MAKE_LOWER_TAGS=
2512 else
2513         MAKE_LOWER_TAGS="#"
2514 fi
2515
2516 AC_SUBST(CTAGS)
2517 AC_SUBST(ETAGS)
2518
2519 AC_SUBST(MAKE_UPPER_TAGS)
2520 AC_SUBST(MAKE_LOWER_TAGS)
2521 ])dnl
2522 dnl ---------------------------------------------------------------------------
2523 dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
2524 dnl ----------------------
2525 dnl Check if the file-system supports mixed-case filenames.  If we're able to
2526 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2527 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2528 [
2529 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2530 if test "$cross_compiling" = yes ; then
2531         case $target_alias in
2532         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
2533                 cf_cv_mixedcase=no
2534                 ;;
2535         (*)
2536                 cf_cv_mixedcase=yes
2537                 ;;
2538         esac
2539 else
2540         rm -f conftest CONFTEST
2541         echo test >conftest
2542         if test -f CONFTEST ; then
2543                 cf_cv_mixedcase=no
2544         else
2545                 cf_cv_mixedcase=yes
2546         fi
2547         rm -f conftest CONFTEST
2548 fi
2549 ])
2550 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2551 ])dnl
2552 dnl ---------------------------------------------------------------------------
2553 dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16
2554 dnl ----------
2555 dnl Check for a working mkstemp.  This creates two files, checks that they are
2556 dnl successfully created and distinct (AmigaOS apparently fails on the last).
2557 AC_DEFUN([CF_MKSTEMP],[
2558 AC_CHECK_HEADERS( \
2559 unistd.h \
2560 )
2561 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
2562 rm -rf conftest*
2563 AC_TRY_RUN([
2564 #include <sys/types.h>
2565 #ifdef HAVE_UNISTD_H
2566 #include <unistd.h>
2567 #endif
2568 #include <stdlib.h>
2569 #include <stdio.h>
2570 #include <string.h>
2571 #include <sys/stat.h>
2572 int main(void)
2573 {
2574         char *tmpl = "conftestXXXXXX";
2575         char name[2][80];
2576         int n;
2577         int result = 0;
2578         int fd;
2579         struct stat sb;
2580
2581         umask(077);
2582         for (n = 0; n < 2; ++n) {
2583                 strcpy(name[n], tmpl);
2584                 if ((fd = mkstemp(name[n])) >= 0) {
2585                         if (!strcmp(name[n], tmpl)
2586                          || stat(name[n], &sb) != 0
2587                          || (sb.st_mode & S_IFMT) != S_IFREG
2588                          || (sb.st_mode & 077) != 0) {
2589                                 result = 1;
2590                         }
2591                         close(fd);
2592                 }
2593         }
2594         if (result == 0
2595          && !strcmp(name[0], name[1]))
2596                 result = 1;
2597         ${cf_cv_main_return:-return}(result);
2598 }
2599 ],[cf_cv_func_mkstemp=yes
2600 ],[cf_cv_func_mkstemp=no
2601 ],[cf_cv_func_mkstemp=maybe])
2602 ])
2603 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
2604         AC_CHECK_FUNC(mkstemp)
2605 fi
2606 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
2607         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
2608 fi
2609 ])dnl
2610 dnl ---------------------------------------------------------------------------
2611 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2612 dnl ----------
2613 dnl Write a debug message to config.log, along with the line number in the
2614 dnl configure script.
2615 AC_DEFUN([CF_MSG_LOG],[
2616 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2617 ])dnl
2618 dnl ---------------------------------------------------------------------------
2619 dnl CF_NCURSES_ADDON version: 5 updated: 2015/04/26 18:06:58
2620 dnl ----------------
2621 dnl Configure an ncurses add-on, built outside the ncurses tree.
2622 AC_DEFUN([CF_NCURSES_ADDON],[
2623 AC_REQUIRE([CF_NCURSES_CONFIG])
2624
2625 AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
2626
2627 AC_MSG_CHECKING(if you want wide-character code)
2628 AC_ARG_ENABLE(widec,
2629         [  --enable-widec          compile with wide-char/UTF-8 code],
2630         [with_widec=$enableval],
2631         [with_widec=no])
2632 AC_MSG_RESULT($with_widec)
2633 if test "$with_widec" = yes ; then
2634         CF_UTF8_LIB
2635         CF_NCURSES_CONFIG(ncursesw)
2636 else
2637         CF_NCURSES_CONFIG(ncurses)
2638 fi
2639
2640 if test "$NCURSES_CONFIG_PKG" != none ; then
2641         cf_version=`$PKG_CONFIG --modversion $NCURSES_CONFIG_PKG 2>/dev/null`
2642
2643         NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2644         NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2645         NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2646
2647         cf_cv_abi_version=`$PKG_CONFIG --variable=abi_version $NCURSES_CONFIG_PKG 2>/dev/null`
2648         if test -z "$cf_cv_abi_version"
2649         then
2650                 cf_cv_abi_version=`$PKG_CONFIG --variable=major_version $NCURSES_CONFIG_PKG 2>/dev/null`
2651         fi
2652
2653 elif test "$NCURSES_CONFIG" != none ; then
2654
2655         cf_version=`$NCURSES_CONFIG --version 2>/dev/null`
2656
2657         NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2658         NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2659         NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2660
2661         # ABI version is not available from headers
2662         cf_cv_abi_version=`$NCURSES_CONFIG --abi-version 2>/dev/null`
2663
2664 else
2665
2666         for cf_name in MAJOR MINOR PATCH
2667         do
2668         cat >conftest.$ac_ext <<CF_EOF
2669         #include <${cf_cv_ncurses_header:-curses.h}>
2670         AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
2671 CF_EOF
2672                 cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
2673                 AC_TRY_EVAL(cf_try)
2674                 if test -f conftest.out ; then
2675                         cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[[  ]][[    ]]*//"`
2676                         eval NCURSES_$cf_name=\"$cf_result\"
2677                         # cat conftest.$ac_ext
2678                         # cat conftest.out
2679                 fi
2680         done
2681
2682         cf_cv_abi_version=${NCURSES_MAJOR}
2683
2684 fi
2685
2686 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
2687
2688 dnl Show the computed version, for logging
2689 cf_cv_timestamp=`date`
2690
2691 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
2692
2693 dnl We need these values in the generated headers
2694 AC_SUBST(NCURSES_MAJOR)
2695 AC_SUBST(NCURSES_MINOR)
2696 AC_SUBST(NCURSES_PATCH)
2697
2698 dnl We need these values in the generated makefiles
2699 AC_SUBST(cf_cv_rel_version)
2700 AC_SUBST(cf_cv_abi_version)
2701
2702 dnl FIXME - not needed for Ada95
2703 AC_SUBST(cf_cv_builtin_bool)
2704 AC_SUBST(cf_cv_header_stdbool_h)
2705 AC_SUBST(cf_cv_type_of_bool)dnl
2706
2707 ])
2708 dnl ---------------------------------------------------------------------------
2709 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2710 dnl -------------------
2711 dnl Check if we can compile with ncurses' header file
2712 dnl $1 is the cache variable to set
2713 dnl $2 is the header-file to include
2714 dnl $3 is the root name (ncurses or ncursesw)
2715 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2716         AC_TRY_COMPILE([
2717 ]ifelse($3,ncursesw,[
2718 #define _XOPEN_SOURCE_EXTENDED
2719 #undef  HAVE_LIBUTF8_H  /* in case we used CF_UTF8_LIB */
2720 #define HAVE_LIBUTF8_H  /* to force ncurses' header file to use cchar_t */
2721 ])[
2722 #include <$2>],[
2723 #ifdef NCURSES_VERSION
2724 ]ifelse($3,ncursesw,[
2725 #ifndef WACS_BSSB
2726         make an error
2727 #endif
2728 ])[
2729 printf("%s\n", NCURSES_VERSION);
2730 #else
2731 #ifdef __NCURSES_H
2732 printf("old\n");
2733 #else
2734         make an error
2735 #endif
2736 #endif
2737         ]
2738         ,[$1=$2]
2739         ,[$1=no])
2740 ])dnl
2741 dnl ---------------------------------------------------------------------------
2742 dnl CF_NCURSES_CONFIG version: 23 updated: 2020/02/27 05:21:59
2743 dnl -----------------
2744 dnl Tie together the configure-script macros for ncurses, preferring these in
2745 dnl order:
2746 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2747 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2748 dnl c) just plain libraries
2749 dnl
2750 dnl $1 is the root library name (default: "ncurses")
2751 AC_DEFUN([CF_NCURSES_CONFIG],[
2752 AC_REQUIRE([CF_PKG_CONFIG])
2753 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2754 cf_have_ncuconfig=no
2755
2756 if test "x${PKG_CONFIG:=none}" != xnone; then
2757         AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2758         if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2759                 AC_MSG_RESULT(yes)
2760
2761                 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2762                 cf_have_ncuconfig=unknown
2763
2764                 cf_save_CFLAGS="$CFLAGS"
2765                 cf_save_CPPFLAGS="$CPPFLAGS"
2766                 cf_save_LIBS="$LIBS"
2767
2768                 cf_pkg_cflags=`$PKG_CONFIG --cflags $cf_ncuconfig_root`
2769                 cf_pkg_libs=`$PKG_CONFIG --libs $cf_ncuconfig_root`
2770
2771                 # while -W for passing linker flags is prevalent, it is not "standard". 
2772                 # At least one wrapper for c89/c99 (in Apple's xcode) has its own
2773                 # incompatible _and_ non-standard -W option which gives an error.  Work
2774                 # around that pitfall.
2775                 case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in
2776                 (x*c[[89]]9@@*-W*)
2777                         CF_ADD_CFLAGS($cf_pkg_cflags)
2778                         CF_ADD_LIBS($cf_pkg_libs)
2779
2780                         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2781                                 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2782                                 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2783                                         int main(void)
2784                                         { char *xx = curses_version(); return (xx == 0); }],
2785                                         [cf_test_ncuconfig=yes],
2786                                         [cf_test_ncuconfig=no],
2787                                         [cf_test_ncuconfig=maybe])],
2788                                 [cf_test_ncuconfig=no])
2789
2790                         CFLAGS="$cf_save_CFLAGS"
2791                         CPPFLAGS="$cf_save_CPPFLAGS"
2792                         LIBS="$cf_save_LIBS"
2793
2794                         if test "x$cf_test_ncuconfig" != xyes; then
2795                                 cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^     ]]*//g'`
2796                                 cf_pkg_cflags="$cf_temp"
2797                                 cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^       ]]*//g'`
2798                                 cf_pkg_libs="$cf_temp"
2799                         fi
2800                         ;;
2801                 esac
2802
2803                 CF_ADD_CFLAGS($cf_pkg_cflags)
2804                 CF_ADD_LIBS($cf_pkg_libs)
2805
2806                 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2807                         [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2808                         [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2809                                 int main(void)
2810                                 { char *xx = curses_version(); return (xx == 0); }],
2811                                 [cf_have_ncuconfig=yes],
2812                                 [cf_have_ncuconfig=no],
2813                                 [cf_have_ncuconfig=maybe])],
2814                         [cf_have_ncuconfig=no])
2815                 AC_MSG_RESULT($cf_have_ncuconfig)
2816                 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2817                 if test "$cf_have_ncuconfig" != "yes"
2818                 then
2819                         CPPFLAGS="$cf_save_CPPFLAGS"
2820                         LIBS="$cf_save_LIBS"
2821                         NCURSES_CONFIG_PKG=none
2822                 else
2823                         AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2824                         NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2825                         CF_TERM_HEADER
2826                 fi
2827
2828         else
2829                 AC_MSG_RESULT(no)
2830                 NCURSES_CONFIG_PKG=none
2831         fi
2832 else
2833         NCURSES_CONFIG_PKG=none
2834 fi
2835
2836 if test "x$cf_have_ncuconfig" = "xno"; then
2837         cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
2838
2839         CF_ACVERSION_CHECK(2.52,
2840                 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2841                 [AC_PATH_PROGS(NCURSES_CONFIG,  ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2842
2843         if test "$NCURSES_CONFIG" != none ; then
2844
2845                 CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
2846                 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2847
2848                 # even with config script, some packages use no-override for curses.h
2849                 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2850
2851                 dnl like CF_NCURSES_CPPFLAGS
2852                 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2853
2854                 dnl like CF_NCURSES_LIBS
2855                 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2856                 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2857
2858                 dnl like CF_NCURSES_VERSION
2859                 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2860
2861         else
2862
2863                 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2864                 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2865
2866         fi
2867 else
2868         NCURSES_CONFIG=none
2869 fi
2870 ])dnl
2871 dnl ---------------------------------------------------------------------------
2872 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2873 dnl -------------------
2874 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2875 dnl the CPPFLAGS variable so we can include its header.
2876 dnl
2877 dnl The header files may be installed as either curses.h, or ncurses.h (would
2878 dnl be obsolete, except that some packagers prefer this name to distinguish it
2879 dnl from a "native" curses implementation).  If not installed for overwrite,
2880 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2881 dnl /usr/include/ncurses), but someone may have installed overwriting the
2882 dnl vendor's curses.  Only very old versions (pre-1.9.2d, the first autoconf'd
2883 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2884 dnl the header.
2885 dnl
2886 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2887 dnl is already in the include-path, don't even bother with this, since we cannot
2888 dnl easily determine which file it is.  In this case, it has to be <curses.h>.
2889 dnl
2890 dnl The optional parameter gives the root name of the library, in case it is
2891 dnl not installed as the default curses library.  That is how the
2892 dnl wide-character version of ncurses is installed.
2893 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2894 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2895
2896 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2897 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2898
2899 test -n "$cf_cv_curses_dir" && \
2900 test "$cf_cv_curses_dir" != "no" && { \
2901   CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2902 }
2903
2904 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2905         cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2906         ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2907         for cf_header in $cf_header_list
2908         do
2909                 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2910                 test "$cf_cv_ncurses_h" != no && break
2911         done
2912 ])
2913
2914 CF_NCURSES_HEADER
2915 CF_TERM_HEADER
2916
2917 # some applications need this, but should check for NCURSES_VERSION
2918 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2919
2920 CF_NCURSES_VERSION
2921 ])dnl
2922 dnl ---------------------------------------------------------------------------
2923 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2924 dnl -----------------
2925 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2926 dnl variations of ncurses' installs.
2927 dnl
2928 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2929 AC_DEFUN([CF_NCURSES_HEADER],[
2930
2931 if test "$cf_cv_ncurses_h" != no ; then
2932         cf_cv_ncurses_header=$cf_cv_ncurses_h
2933 else
2934
2935 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2936         test -n "$verbose" && echo
2937         CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2938         test -n "$verbose" && echo search path $cf_search
2939         cf_save2_CPPFLAGS="$CPPFLAGS"
2940         for cf_incdir in $cf_search
2941         do
2942                 CF_ADD_INCDIR($cf_incdir)
2943                 for cf_header in \
2944                         ncurses.h \
2945                         curses.h
2946                 do
2947                         CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2948                         if test "$cf_cv_ncurses_h2" != no ; then
2949                                 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2950                                 test -n "$verbose" && echo $ac_n "      ... found $ac_c" 1>&AC_FD_MSG
2951                                 break
2952                         fi
2953                         test -n "$verbose" && echo "    ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2954                 done
2955                 CPPFLAGS="$cf_save2_CPPFLAGS"
2956                 test "$cf_cv_ncurses_h2" != no && break
2957         done
2958         test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2959         ])
2960
2961         CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2962         cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2963         if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2964                 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2965         fi
2966         CF_ADD_INCDIR($cf_1st_incdir)
2967
2968 fi
2969
2970 # Set definitions to allow ifdef'ing for ncurses.h
2971
2972 case $cf_cv_ncurses_header in
2973 (*ncurses.h)
2974         AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2975         ;;
2976 esac
2977
2978 case $cf_cv_ncurses_header in
2979 (ncurses/curses.h|ncurses/ncurses.h)
2980         AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2981         ;;
2982 (ncursesw/curses.h|ncursesw/ncurses.h)
2983         AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2984         ;;
2985 esac
2986
2987 ])dnl
2988 dnl ---------------------------------------------------------------------------
2989 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2990 dnl ---------------
2991 dnl Look for the ncurses library.  This is a little complicated on Linux,
2992 dnl because it may be linked with the gpm (general purpose mouse) library.
2993 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2994 dnl unusable with ncurses.  However, we don't want to link with gpm unless
2995 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2996 dnl and the linker will record a dependency.
2997 dnl
2998 dnl The optional parameter gives the root name of the library, in case it is
2999 dnl not installed as the default curses library.  That is how the
3000 dnl wide-character version of ncurses is installed.
3001 AC_DEFUN([CF_NCURSES_LIBS],
3002 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
3003
3004 cf_nculib_root=ifelse($1,,ncurses,$1)
3005         # This works, except for the special case where we find gpm, but
3006         # ncurses is in a nonstandard location via $LIBS, and we really want
3007         # to link gpm.
3008 cf_ncurses_LIBS=""
3009 cf_ncurses_SAVE="$LIBS"
3010 AC_CHECK_LIB(gpm,Gpm_Open,
3011         [AC_CHECK_LIB(gpm,initscr,
3012                 [LIBS="$cf_ncurses_SAVE"],
3013                 [cf_ncurses_LIBS="-lgpm"])])
3014
3015 case $host_os in
3016 (freebsd*)
3017         # This is only necessary if you are linking against an obsolete
3018         # version of ncurses (but it should do no harm, since it's static).
3019         if test "$cf_nculib_root" = ncurses ; then
3020                 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
3021         fi
3022         ;;
3023 esac
3024
3025 CF_ADD_LIBS($cf_ncurses_LIBS)
3026
3027 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3028 then
3029         CF_ADD_LIBS(-l$cf_nculib_root)
3030 else
3031         CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
3032                 [#include <${cf_cv_ncurses_header:-curses.h}>],
3033                 [initscr()],
3034                 initscr)
3035 fi
3036
3037 if test -n "$cf_ncurses_LIBS" ; then
3038         AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
3039         cf_ncurses_SAVE="$LIBS"
3040         for p in $cf_ncurses_LIBS ; do
3041                 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
3042                 if test "$q" != "$LIBS" ; then
3043                         LIBS="$q"
3044                 fi
3045         done
3046         AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3047                 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
3048                 [AC_MSG_RESULT(yes)],
3049                 [AC_MSG_RESULT(no)
3050                  LIBS="$cf_ncurses_SAVE"])
3051 fi
3052
3053 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
3054 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
3055 ])dnl
3056 dnl ---------------------------------------------------------------------------
3057 dnl CF_NCURSES_VERSION version: 15 updated: 2017/05/09 19:26:10
3058 dnl ------------------
3059 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
3060 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
3061 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
3062 AC_DEFUN([CF_NCURSES_VERSION],
3063 [
3064 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3065 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
3066         cf_cv_ncurses_version=no
3067         cf_tempfile=out$$
3068         rm -f $cf_tempfile
3069         AC_TRY_RUN([
3070 #include <${cf_cv_ncurses_header:-curses.h}>
3071 #include <stdio.h>
3072 int main(void)
3073 {
3074         FILE *fp = fopen("$cf_tempfile", "w");
3075 #ifdef NCURSES_VERSION
3076 # ifdef NCURSES_VERSION_PATCH
3077         fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
3078 # else
3079         fprintf(fp, "%s\n", NCURSES_VERSION);
3080 # endif
3081 #else
3082 # ifdef __NCURSES_H
3083         fprintf(fp, "old\n");
3084 # else
3085         make an error
3086 # endif
3087 #endif
3088         ${cf_cv_main_return:-return}(0);
3089 }],[
3090         cf_cv_ncurses_version=`cat $cf_tempfile`],,[
3091
3092         # This will not work if the preprocessor splits the line after the
3093         # Autoconf token.  The 'unproto' program does that.
3094         cat > conftest.$ac_ext <<EOF
3095 #include <${cf_cv_ncurses_header:-curses.h}>
3096 #undef Autoconf
3097 #ifdef NCURSES_VERSION
3098 Autoconf NCURSES_VERSION
3099 #else
3100 #ifdef __NCURSES_H
3101 Autoconf "old"
3102 #endif
3103 ;
3104 #endif
3105 EOF
3106         cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
3107         AC_TRY_EVAL(cf_try)
3108         if test -f conftest.out ; then
3109                 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
3110                 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
3111                 rm -f conftest.out
3112         fi
3113 ])
3114         rm -f $cf_tempfile
3115 ])
3116 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3117 ])dnl
3118 dnl ---------------------------------------------------------------------------
3119 dnl CF_OBJ_SUBDIR version: 7 updated: 2015/04/17 21:13:04
3120 dnl -------------
3121 dnl Compute the object-directory name from the given model name
3122 AC_DEFUN([CF_OBJ_SUBDIR],
3123 [
3124         case $1 in
3125         (libtool) $2='obj_lo'  ;;
3126         (normal)  $2='objects' ;;
3127         (debug)   $2='obj_g' ;;
3128         (profile) $2='obj_p' ;;
3129         (shared)
3130                 case $cf_cv_system_name in
3131                 (cygwin|msys)
3132                         $2='objects' ;;
3133                 (*)
3134                         $2='obj_s' ;;
3135                 esac
3136         esac
3137 ])dnl
3138 dnl ---------------------------------------------------------------------------
3139 dnl CF_PATHSEP version: 7 updated: 2015/04/12 15:39:00
3140 dnl ----------
3141 dnl Provide a value for the $PATH and similar separator (or amend the value
3142 dnl as provided in autoconf 2.5x).
3143 AC_DEFUN([CF_PATHSEP],
3144 [
3145         AC_MSG_CHECKING(for PATH separator)
3146         case $cf_cv_system_name in
3147         (os2*)  PATH_SEPARATOR=';'  ;;
3148         (*)     ${PATH_SEPARATOR:=':'}  ;;
3149         esac
3150 ifelse([$1],,,[$1=$PATH_SEPARATOR])
3151         AC_SUBST(PATH_SEPARATOR)
3152         AC_MSG_RESULT($PATH_SEPARATOR)
3153 ])dnl
3154 dnl ---------------------------------------------------------------------------
3155 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
3156 dnl --------------
3157 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
3158 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3159 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
3160 dnl delayed evaluation of those symbols.
3161 AC_DEFUN([CF_PATH_SYNTAX],[
3162 if test "x$prefix" != xNONE; then
3163         cf_path_syntax="$prefix"
3164 else
3165         cf_path_syntax="$ac_default_prefix"
3166 fi
3167
3168 case ".[$]$1" in
3169 (.\[$]\(*\)*|.\'*\'*)
3170         ;;
3171 (..|./*|.\\*)
3172         ;;
3173 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
3174         ;;
3175 (.\[$]{*prefix}*|.\[$]{*dir}*)
3176         eval $1="[$]$1"
3177         case ".[$]$1" in
3178         (.NONE/*)
3179                 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3180                 ;;
3181         esac
3182         ;;
3183 (.no|.NONE/*)
3184         $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3185         ;;
3186 (*)
3187         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3188         ;;
3189 esac
3190 ])dnl
3191 dnl ---------------------------------------------------------------------------
3192 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
3193 dnl -------------
3194 dnl Check for the package-config program, unless disabled by command-line.
3195 AC_DEFUN([CF_PKG_CONFIG],
3196 [
3197 AC_MSG_CHECKING(if you want to use pkg-config)
3198 AC_ARG_WITH(pkg-config,
3199         [  --with-pkg-config{=path} enable/disable use of pkg-config],
3200         [cf_pkg_config=$withval],
3201         [cf_pkg_config=yes])
3202 AC_MSG_RESULT($cf_pkg_config)
3203
3204 case $cf_pkg_config in
3205 (no)
3206         PKG_CONFIG=none
3207         ;;
3208 (yes)
3209         CF_ACVERSION_CHECK(2.52,
3210                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
3211                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
3212         ;;
3213 (*)
3214         PKG_CONFIG=$withval
3215         ;;
3216 esac
3217
3218 test -z "$PKG_CONFIG" && PKG_CONFIG=none
3219 if test "$PKG_CONFIG" != none ; then
3220         CF_PATH_SYNTAX(PKG_CONFIG)
3221 elif test "x$cf_pkg_config" != xno ; then
3222         AC_MSG_WARN(pkg-config is not installed)
3223 fi
3224
3225 AC_SUBST(PKG_CONFIG)
3226 ])dnl
3227 dnl ---------------------------------------------------------------------------
3228 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
3229 dnl -----------------
3230 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3231 dnl
3232 dnl     POSIX.1-1990                            _POSIX_SOURCE
3233 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
3234 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
3235 dnl             Bindings Option
3236 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
3237 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
3238 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
3239 dnl
3240 dnl Parameters:
3241 dnl     $1 is the nominal value for _POSIX_C_SOURCE
3242 AC_DEFUN([CF_POSIX_C_SOURCE],
3243 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
3244
3245 if test "$cf_cv_posix_visible" = no; then
3246
3247 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
3248
3249 cf_save_CFLAGS="$CFLAGS"
3250 cf_save_CPPFLAGS="$CPPFLAGS"
3251
3252 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3253 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3254
3255 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3256         CF_MSG_LOG(if the symbol is already defined go no further)
3257         AC_TRY_COMPILE([#include <sys/types.h>],[
3258 #ifndef _POSIX_C_SOURCE
3259 make an error
3260 #endif],
3261         [cf_cv_posix_c_source=no],
3262         [cf_want_posix_source=no
3263          case .$cf_POSIX_C_SOURCE in
3264          (.[[12]]??*)
3265                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3266                 ;;
3267          (.2)
3268                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3269                 cf_want_posix_source=yes
3270                 ;;
3271          (.*)
3272                 cf_want_posix_source=yes
3273                 ;;
3274          esac
3275          if test "$cf_want_posix_source" = yes ; then
3276                 AC_TRY_COMPILE([#include <sys/types.h>],[
3277 #ifdef _POSIX_SOURCE
3278 make an error
3279 #endif],[],
3280                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3281          fi
3282          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3283          CFLAGS="$cf_trim_CFLAGS"
3284          CPPFLAGS="$cf_trim_CPPFLAGS"
3285          CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
3286          CF_MSG_LOG(if the second compile does not leave our definition intact error)
3287          AC_TRY_COMPILE([#include <sys/types.h>],[
3288 #ifndef _POSIX_C_SOURCE
3289 make an error
3290 #endif],,
3291          [cf_cv_posix_c_source=no])
3292          CFLAGS="$cf_save_CFLAGS"
3293          CPPFLAGS="$cf_save_CPPFLAGS"
3294         ])
3295 ])
3296
3297 if test "$cf_cv_posix_c_source" != no ; then
3298         CFLAGS="$cf_trim_CFLAGS"
3299         CPPFLAGS="$cf_trim_CPPFLAGS"
3300         CF_ADD_CFLAGS($cf_cv_posix_c_source)
3301 fi
3302
3303 fi # cf_cv_posix_visible
3304
3305 ])dnl
3306 dnl ---------------------------------------------------------------------------
3307 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
3308 dnl ----------------
3309 dnl POSIX documents test-macros which an application may set before any system
3310 dnl headers are included to make features available.
3311 dnl
3312 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
3313 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
3314 dnl recent features visible in the system header files unless the application
3315 dnl overrides the corresponding test-macros.  Doing that introduces portability
3316 dnl problems.
3317 dnl
3318 dnl This macro makes a special check for the symbols used for this, to avoid a
3319 dnl conflicting definition.
3320 AC_DEFUN([CF_POSIX_VISIBLE],
3321 [
3322 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
3323 AC_TRY_COMPILE([#include <stdio.h>],[
3324 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
3325         && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
3326         && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
3327         && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
3328 #error conflicting symbols found
3329 #endif
3330 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
3331 ])
3332 ])dnl
3333 dnl ---------------------------------------------------------------------------
3334 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
3335 dnl ----------
3336 dnl Check for archiver "ar".
3337 AC_DEFUN([CF_PROG_AR],[
3338 AC_CHECK_TOOL(AR, ar, ar)
3339 ])
3340 dnl ---------------------------------------------------------------------------
3341 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3342 dnl -----------
3343 dnl Check for awk, ensure that the check found something.
3344 AC_DEFUN([CF_PROG_AWK],
3345 [
3346 AC_PROG_AWK
3347 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3348 ])dnl
3349 dnl ---------------------------------------------------------------------------
3350 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
3351 dnl ----------
3352 dnl standard check for CC, plus followup sanity checks
3353 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
3354 AC_DEFUN([CF_PROG_CC],[
3355 CF_ACVERSION_CHECK(2.53,
3356         [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
3357          AC_REQUIRE([AC_PROG_CC])],
3358         [])
3359 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
3360 CF_GCC_VERSION
3361 CF_ACVERSION_CHECK(2.52,
3362         [AC_PROG_CC_STDC],
3363         [CF_ANSI_CC_REQD])
3364 CF_CC_ENV_FLAGS
3365 ])dnl
3366 dnl ---------------------------------------------------------------------------
3367 dnl CF_PROG_CC_C_O version: 5 updated: 2017/01/21 11:06:25
3368 dnl --------------
3369 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3370 dnl the output file can be renamed, and allows for a shell variable that can
3371 dnl be used later.  The parameter is either CC or CXX.  The result is the
3372 dnl cache variable:
3373 dnl     $cf_cv_prog_CC_c_o
3374 dnl     $cf_cv_prog_CXX_c_o
3375 dnl
3376 dnl $1 = compiler
3377 dnl $2 = compiler options, if any
3378 AC_DEFUN([CF_PROG_CC_C_O],
3379 [AC_REQUIRE([AC_PROG_CC])dnl
3380 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3381 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3382 [
3383 cat > conftest.$ac_ext <<CF_EOF
3384 int main(void)
3385 {
3386         ${cf_cv_main_return:-return}(0);
3387 }
3388 CF_EOF
3389 # We do the test twice because some compilers refuse to overwrite an
3390 # existing .o file with -o, though they will create one.
3391 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3392 if AC_TRY_EVAL(ac_try) &&
3393   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3394 then
3395   eval cf_cv_prog_$1_c_o=yes
3396 else
3397   eval cf_cv_prog_$1_c_o=no
3398 fi
3399 rm -rf conftest*
3400 ])dnl
3401 if test $cf_cv_prog_$1_c_o = yes; then
3402   AC_MSG_RESULT([yes])
3403 else
3404   AC_MSG_RESULT([no])
3405 fi
3406 ])dnl
3407 dnl ---------------------------------------------------------------------------
3408 dnl CF_PROG_EGREP version: 2 updated: 2015/04/18 08:56:57
3409 dnl -------------
3410 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3411 dnl This macro adds a check to ensure the script found something.
3412 AC_DEFUN([CF_PROG_EGREP],
3413 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3414         [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3415                 then ac_cv_prog_egrep='grep -E'
3416                 else ac_cv_prog_egrep='egrep'
3417         fi])
3418         EGREP=$ac_cv_prog_egrep
3419         AC_SUBST([EGREP])
3420         test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3421 ])dnl
3422 dnl ---------------------------------------------------------------------------
3423 dnl CF_PROG_EXT version: 14 updated: 2018/06/20 20:23:13
3424 dnl -----------
3425 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3426 AC_DEFUN([CF_PROG_EXT],
3427 [
3428 AC_REQUIRE([CF_CHECK_CACHE])
3429 case $cf_cv_system_name in
3430 (os2*)
3431         CFLAGS="$CFLAGS -Zmt"
3432         CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__)
3433         CXXFLAGS="$CXXFLAGS -Zmt"
3434         # autoconf's macro sets -Zexe and suffix both, which conflict:w
3435         LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3436         ac_cv_exeext=.exe
3437         ;;
3438 esac
3439
3440 AC_EXEEXT
3441 AC_OBJEXT
3442
3443 PROG_EXT="$EXEEXT"
3444 AC_SUBST(PROG_EXT)
3445 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
3446 ])dnl
3447 dnl ---------------------------------------------------------------------------
3448 dnl CF_PROG_GNAT version: 10 updated: 2019/12/31 08:53:54
3449 dnl ------------
3450 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
3451 AC_DEFUN([CF_PROG_GNAT],[
3452 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
3453 do
3454         CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
3455
3456         unset ac_cv_path_cf_TEMP_gnat
3457         unset cf_TEMP_gnat
3458         AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
3459         eval cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat
3460
3461         if test "x$cf_TEMP_gnat" != xno; then
3462                 unset cf_cv_gnat_version
3463                 unset cf_TEMP_gnat
3464                 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
3465         fi
3466         eval cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat
3467
3468         unset cf_TEMP_gnat
3469         unset cf_cv_gnat_version
3470         unset ac_cv_path_cf_TEMP_gnat
3471 done
3472
3473 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
3474         cf_ada_make=
3475         cf_cv_prog_gnat_correct=no
3476 else
3477         cf_ada_make=gnatmake
3478         if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
3479                 # gprconfig is newer than gnatmake; we can continue...
3480                 cf_ada_config="##"
3481         else
3482                 rm -rf conftest* *~conftest*
3483                 if mkdir conftest.src
3484                 then
3485                         cf_ada_config=""
3486                         cd conftest.src
3487                         for cf_gprconfig in Ada C
3488                         do
3489                                 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
3490                                 if test $cf_gprconfig = C
3491                                 then
3492                                         for cf_gprconfig_param in \
3493                                                 $cf_gprconfig,,,,GNATGCC \
3494                                                 $cf_gprconfig,,,,GCC \
3495                                                 $cf_gprconfig
3496                                         do
3497                                                 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3498                                                 test -n "$cf_gprconfig_value" && break
3499                                         done
3500                                 else
3501                                         cf_gprconfig_param=$cf_gprconfig
3502                                         cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3503                                 fi
3504                                 if test -n "$cf_gprconfig_value"
3505                                 then
3506                                         eval cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value
3507                                         AC_MSG_RESULT($cf_gprconfig_value)
3508                                 else
3509                                         AC_MSG_RESULT(missing)
3510                                         cf_ada_config="#"
3511                                         break
3512                                 fi
3513                         done
3514                         cd ..
3515                         rm -rf conftest* *~conftest*
3516                 fi
3517         fi
3518         if test "x$cf_ada_config" != "x#"
3519         then
3520                 CF_GNAT_VERSION
3521                 CF_CHECK_GNAT_VERSION
3522                 AC_CHECK_PROG(M4_exists, m4, yes, no)
3523                 if test "$ac_cv_prog_M4_exists" = no; then
3524                         cf_cv_prog_gnat_correct=no
3525                         AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
3526                 fi
3527                 if test "$cf_cv_prog_gnat_correct" = yes; then
3528                         AC_MSG_CHECKING(if GNAT works)
3529                         CF_GNAT_TRY_RUN([procedure conftest;],
3530 [with Text_IO;
3531 with GNAT.OS_Lib;
3532 procedure conftest is
3533 begin
3534    Text_IO.Put ("Hello World");
3535    Text_IO.New_Line;
3536    GNAT.OS_Lib.OS_Exit (0);
3537 end conftest;],
3538 [cf_cv_prog_gnat_correct=yes],
3539 [cf_cv_prog_gnat_correct=no])
3540                         AC_MSG_RESULT($cf_cv_prog_gnat_correct)
3541                 fi
3542         else
3543                 cf_cv_prog_gnat_correct=no
3544         fi
3545 fi
3546
3547 AC_SUBST(cf_ada_make)
3548 AC_SUBST(cf_ada_config)
3549 AC_SUBST(cf_ada_config_Ada)
3550 AC_SUBST(cf_ada_config_C)
3551 ])dnl
3552 dnl ---------------------------------------------------------------------------
3553 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
3554 dnl ---------------
3555 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
3556 dnl misc/tabset install won't work properly.  Usually this happens only when
3557 dnl using the fallback mkinstalldirs script
3558 AC_DEFUN([CF_PROG_INSTALL],
3559 [AC_PROG_INSTALL
3560 case $INSTALL in
3561 (/*)
3562         ;;
3563 (*)
3564         CF_DIRNAME(cf_dir,$INSTALL)
3565         test -z "$cf_dir" && cf_dir=.
3566         INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3567         ;;
3568 esac
3569 ])dnl
3570 dnl ---------------------------------------------------------------------------
3571 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
3572 dnl ------------
3573 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
3574 dnl option if it is supported.
3575 AC_DEFUN([CF_PROG_LN_S],[
3576 AC_PROG_LN_S
3577 AC_MSG_CHECKING(if $LN_S -f options work)
3578
3579 rm -f conf$$.src conf$$dst
3580 echo >conf$$.dst
3581 echo first >conf$$.src
3582 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
3583         cf_prog_ln_sf=yes
3584 else
3585         cf_prog_ln_sf=no
3586 fi
3587 rm -f conf$$.dst conf$$src
3588 AC_MSG_RESULT($cf_prog_ln_sf)
3589
3590 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
3591 ])dnl
3592 dnl ---------------------------------------------------------------------------
3593 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3594 dnl ----------------
3595 dnl Remove all -U and -D options that refer to the given symbol from a list
3596 dnl of C compiler options.  This works around the problem that not all
3597 dnl compilers process -U and -D options from left-to-right, so a -U option
3598 dnl cannot be used to cancel the effect of a preceding -D option.
3599 dnl
3600 dnl $1 = target (which could be the same as the source variable)
3601 dnl $2 = source (including '$')
3602 dnl $3 = symbol to remove
3603 define([CF_REMOVE_DEFINE],
3604 [
3605 $1=`echo "$2" | \
3606         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
3607                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
3608 ])dnl
3609 dnl ---------------------------------------------------------------------------
3610 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3611 dnl -------------
3612 dnl Remove the given library from the symbol
3613 dnl
3614 dnl $1 = target (which could be the same as the source variable)
3615 dnl $2 = source (including '$')
3616 dnl $3 = library to remove
3617 define([CF_REMOVE_LIB],
3618 [
3619 # remove $3 library from $2
3620 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
3621 ])dnl
3622 dnl ---------------------------------------------------------------------------
3623 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
3624 dnl ---------------------
3625 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
3626 dnl $1 = name of current macro
3627 define([CF_RESTORE_XTRA_FLAGS],
3628 [
3629 LIBS="$cf_save_LIBS_$1"
3630 CFLAGS="$cf_save_CFLAGS_$1"
3631 CPPFLAGS="$cf_save_CPPFLAGS_$1"
3632 ])dnl
3633 dnl ---------------------------------------------------------------------------
3634 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
3635 dnl ------------------
3636 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
3637 dnl and libraries which do not update those variables.
3638 dnl
3639 dnl $1 = name of current macro
3640 define([CF_SAVE_XTRA_FLAGS],
3641 [
3642 cf_save_LIBS_$1="$LIBS"
3643 cf_save_CFLAGS_$1="$CFLAGS"
3644 cf_save_CPPFLAGS_$1="$CPPFLAGS"
3645 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
3646 for cf_X_CFLAGS in $X_CFLAGS
3647 do
3648         case "x$cf_X_CFLAGS" in
3649         x-[[IUD]]*)
3650                 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
3651                 ;;
3652         *)
3653                 CFLAGS="$CFLAGS $cf_X_CFLAGS"
3654                 ;;
3655         esac
3656 done
3657 ])dnl
3658 dnl ---------------------------------------------------------------------------
3659 dnl CF_SHARED_OPTS version: 102 updated: 2020/08/22 18:17:19
3660 dnl --------------
3661 dnl --------------
3662 dnl Attempt to determine the appropriate CC/LD options for creating a shared
3663 dnl library.
3664 dnl
3665 dnl Notes:
3666 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
3667 dnl the build-tree, i.e., by making use of the libraries that are compiled in
3668 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
3669 dnl shared library since that can lead to unexpected results at runtime.
3670 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
3671 dnl libraries are compiled in ../../lib
3672 dnl
3673 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
3674 dnl to install symbolic links to the rel/abi versions of shared libraries.
3675 dnl
3676 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
3677 dnl version when making symbolic links.
3678 dnl
3679 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
3680 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
3681 dnl (ex: libncurses.so.<ver>).
3682 dnl
3683 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
3684 AC_DEFUN([CF_SHARED_OPTS],
3685 [
3686         AC_REQUIRE([CF_LD_RPATH_OPT])
3687
3688         RM_SHARED_OPTS=
3689         LOCAL_LDFLAGS=
3690         LOCAL_LDFLAGS2=
3691         LD_SHARED_OPTS=
3692         INSTALL_LIB="-m 644"
3693         : ${rel_builddir:=.}
3694
3695         shlibdir=$libdir
3696         AC_SUBST(shlibdir)
3697
3698         MAKE_DLLS="#"
3699         AC_SUBST(MAKE_DLLS)
3700
3701         cf_cv_do_symlinks=no
3702         cf_ld_rpath_opt=
3703         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
3704
3705         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
3706         AC_ARG_WITH(shlib-version,
3707         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
3708         [test -z "$withval" && withval=auto
3709         case $withval in
3710         (yes)
3711                 cf_cv_shlib_version=auto
3712                 ;;
3713         (rel|abi|auto)
3714                 cf_cv_shlib_version=$withval
3715                 ;;
3716         (*)
3717                 AC_MSG_RESULT($withval)
3718                 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
3719                 ;;
3720         esac
3721         ],[cf_cv_shlib_version=auto])
3722         AC_MSG_RESULT($cf_cv_shlib_version)
3723
3724         cf_cv_rm_so_locs=no
3725         cf_try_cflags=
3726
3727         # Some less-capable ports of gcc support only -fpic
3728         CC_SHARED_OPTS=
3729
3730         cf_try_fPIC=no
3731         if test "$GCC" = yes
3732         then
3733                 cf_try_fPIC=yes
3734         else
3735                 case $cf_cv_system_name in
3736                 (*linux*)       # e.g., PGI compiler
3737                         cf_try_fPIC=yes
3738                         ;;
3739                 esac
3740         fi
3741
3742         if test "$cf_try_fPIC" = yes
3743         then
3744                 AC_MSG_CHECKING(which $CC option to use)
3745                 cf_save_CFLAGS="$CFLAGS"
3746                 for CC_SHARED_OPTS in -fPIC -fpic ''
3747                 do
3748                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
3749                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
3750                 done
3751                 AC_MSG_RESULT($CC_SHARED_OPTS)
3752                 CFLAGS="$cf_save_CFLAGS"
3753         fi
3754
3755         cf_cv_shlib_version_infix=no
3756
3757         case $cf_cv_system_name in
3758         (aix4.[3-9]*|aix[[5-7]]*)
3759                 if test "$GCC" = yes; then
3760                         CC_SHARED_OPTS='-Wl,-brtl'
3761                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3762                 else
3763                         CC_SHARED_OPTS='-brtl'
3764                         # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
3765                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
3766                 fi
3767                 ;;
3768         (beos*)
3769                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
3770                 ;;
3771         (cygwin*)
3772                 CC_SHARED_OPTS=
3773                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3774                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3775                 cf_cv_shlib_version=cygdll
3776                 cf_cv_shlib_version_infix=cygdll
3777                 shlibdir=$bindir
3778                 MAKE_DLLS=
3779                 cat >mk_shared_lib.sh <<-CF_EOF
3780                 #!$SHELL
3781                 SHARED_LIB=\[$]1
3782                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3783                 shift
3784                 cat <<-EOF
3785                 Linking shared library
3786                 ** SHARED_LIB \[$]SHARED_LIB
3787                 ** IMPORT_LIB \[$]IMPORT_LIB
3788 EOF
3789                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3790 CF_EOF
3791                 chmod +x mk_shared_lib.sh
3792                 ;;
3793         (msys*)
3794                 CC_SHARED_OPTS=
3795                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
3796                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
3797                 cf_cv_shlib_version=msysdll
3798                 cf_cv_shlib_version_infix=msysdll
3799                 shlibdir=$bindir
3800                 MAKE_DLLS=
3801                 cat >mk_shared_lib.sh <<-CF_EOF
3802                 #!$SHELL
3803                 SHARED_LIB=\[$]1
3804                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
3805                 shift
3806                 cat <<-EOF
3807                 Linking shared library
3808                 ** SHARED_LIB \[$]SHARED_LIB
3809                 ** IMPORT_LIB \[$]IMPORT_LIB
3810 EOF
3811                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
3812 CF_EOF
3813                 chmod +x mk_shared_lib.sh
3814                 ;;
3815         (darwin*)
3816                 cf_try_cflags="no-cpp-precomp"
3817                 CC_SHARED_OPTS="-dynamic"
3818                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
3819                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
3820                 cf_cv_shlib_version_infix=yes
3821                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
3822                         cf_save_LDFLAGS=$LDFLAGS
3823                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3824                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
3825                                 LDFLAGS=$cf_save_LDFLAGS])
3826                 if test $cf_cv_ldflags_search_paths_first = yes; then
3827                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
3828                 fi
3829                 ;;
3830         (hpux[[7-8]]*)
3831                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
3832                 if test "$GCC" != yes; then
3833                         CC_SHARED_OPTS='+Z'
3834                 fi
3835                 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
3836                 INSTALL_LIB="-m 555"
3837                 ;;
3838         (hpux*)
3839                 # (tested with gcc 2.7.2 -- I don't have c89)
3840                 if test "$GCC" = yes; then
3841                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
3842                 else
3843                         CC_SHARED_OPTS='+Z'
3844                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
3845                 fi
3846                 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
3847                 # HP-UX shared libraries must be executable, and should be
3848                 # readonly to exploit a quirk in the memory manager.
3849                 INSTALL_LIB="-m 555"
3850                 ;;
3851         (interix*)
3852                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
3853                 if test "$cf_cv_shlib_version" = rel; then
3854                         cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
3855                 else
3856                         cf_shared_soname='`basename $[@]`'
3857                 fi
3858                 CC_SHARED_OPTS=
3859                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
3860                 ;;
3861         (irix*)
3862                 if test "$cf_cv_enable_rpath" = yes ; then
3863                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3864                 fi
3865                 # tested with IRIX 5.2 and 'cc'.
3866                 if test "$GCC" != yes; then
3867                         CC_SHARED_OPTS='-KPIC'
3868                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
3869                 else
3870                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
3871                 fi
3872                 cf_cv_rm_so_locs=yes
3873                 ;;
3874         (linux*|gnu*|k*bsd*-gnu)
3875                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
3876                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
3877                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3878                 fi
3879                 if test "$cf_cv_enable_rpath" = yes ; then
3880                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
3881                 fi
3882                 CF_SHARED_SONAME
3883                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
3884                 ;;
3885         (mingw*msvc*)
3886                 cf_cv_shlib_version=msvcdll
3887                 cf_cv_shlib_version_infix=msvcdll
3888                 shlibdir=$bindir
3889                 MAKE_DLLS=
3890                 if test "$DFT_LWR_MODEL" = "shared" ; then
3891                         LOCAL_LDFLAGS="-link -dll"
3892                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3893                         EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
3894                 fi
3895                 CC_SHARED_OPTS=
3896                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
3897                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
3898                 cat >mk_shared_lib.sh <<-CF_EOF
3899                 #!$SHELL
3900                 SHARED_LIB=\[$]1
3901                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
3902                 shift
3903                 my_ld=\[$]1
3904                 shift
3905                 cat <<-EOF
3906                 Linking shared library
3907                 ** SHARED LIB \$SHARED_LIB
3908                 ** IMPORT_LIB \$IMPORT_LIB
3909 EOF
3910                 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
3911                 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
3912                 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
3913 CF_EOF
3914                 chmod +x mk_shared_lib.sh
3915                 cat >mk_prog.sh <<-CF_EOF
3916                 #!$SHELL
3917                 shift
3918                 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
3919                 LD="[$]LD"
3920                 clopts=()
3921                 ldopts=("/subsystem:console")
3922                 libs=()
3923                 isdll=0
3924                 while test \[$]# -gt 0; do
3925                         case "\[$]1" in
3926                                 -link)
3927                                         # ignore -link argument
3928                                         ;;
3929                                 -M[[TD]] | -M[[TD]]d)
3930                                         # ignore runtime-library option
3931                                         ;;
3932                                 -dll)
3933                                         isdll=1
3934                                         ;;
3935                                 -W* | -w*)
3936                                         # ignore warnings
3937                                         ;;
3938                                 -D*)
3939                                         clopts+=("\[$]1")
3940                                         ;;
3941                                 -I*)
3942                                         clopts+=("\[$]1")
3943                                         ;;
3944                                 -l*)
3945                                         libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
3946                                         ;;
3947                                 -L*)
3948                                         ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
3949                                         ;;
3950                                 *.obj | *.o)
3951                                         ldopts+=("\[$]1")
3952                                         ;;
3953                                 -Wl,*)
3954                                         for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
3955                                                 ldopts+=("\[$]{linkarg}")
3956                                         done
3957                                         ;;
3958                                 *.lib)
3959                                         ldopts+=("\[$]1")
3960                                         ;;
3961                                 -o)
3962                                         shift
3963                                         ldopts+=("-out:\[$]1")
3964                                         ;;
3965                                 *)
3966                                         clopts+=("\[$]1")
3967                                         ldopts+=("\[$]1")
3968                                         ;;
3969                         esac
3970                         shift
3971                 done
3972                 if [[ "\$isdll" -ne 0 ]]; then
3973                         for lib in \[$]{libs[[*]]}; do
3974                                 ldopts+=("\[$]lib.dll.lib")
3975                         done
3976                 else
3977                         for lib in \[$]{libs[[*]]}; do
3978                                 ldopts+=("\[$]lib.lib")
3979                         done
3980                 fi
3981                 cat <<-EOF
3982                 Creating program
3983                 ** ld options:   "\[$]{ldopts[[@]]}"
3984 EOF
3985                 exec \[$]LD \[$]{ldopts[[@]]}
3986 CF_EOF
3987                 chmod +x mk_prog.sh
3988                 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
3989                 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
3990                 ;;
3991         (mingw*)
3992                 cf_cv_shlib_version=mingw
3993                 cf_cv_shlib_version_infix=mingw
3994                 shlibdir=$bindir
3995                 MAKE_DLLS=
3996                 if test "$DFT_LWR_MODEL" = "shared" ; then
3997                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
3998                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
3999                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
4000                 fi
4001                 CC_SHARED_OPTS=
4002                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4003                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4004                 cat >mk_shared_lib.sh <<-CF_EOF
4005                 #!$SHELL
4006                 SHARED_LIB=\[$]1
4007                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4008                 shift
4009                 cat <<-EOF
4010                 Linking shared library
4011                 ** SHARED_LIB \[$]SHARED_LIB
4012                 ** IMPORT_LIB \[$]IMPORT_LIB
4013 EOF
4014                 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4015 CF_EOF
4016                 chmod +x mk_shared_lib.sh
4017                 ;;
4018         (openbsd[[2-9]].*|mirbsd*)
4019                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4020                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4021                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4022                 fi
4023                 if test "$cf_cv_enable_rpath" = yes ; then
4024                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4025                 fi
4026                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4027                 CF_SHARED_SONAME
4028                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4029                 ;;
4030         (nskJ*)
4031                 CC_SHARED_OPTS=
4032                 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
4033                 ;;
4034         (nskL*)
4035                 CC_SHARED_OPTS=
4036                 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
4037                 ;;
4038         (nto-qnx*|openbsd*|freebsd[[12]].*)
4039                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4040                 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
4041                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4042                 ;;
4043         (dragonfly*|freebsd*)
4044                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4045                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4046                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4047                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
4048                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4049                 fi
4050                 CF_SHARED_SONAME
4051                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4052                 ;;
4053         (netbsd*)
4054                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4055                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4056                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4057                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4058                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4059                         if test "$cf_cv_shlib_version" = auto; then
4060                         if test -f /usr/libexec/ld.elf_so; then
4061                                 cf_cv_shlib_version=abi
4062                         else
4063                                 cf_cv_shlib_version=rel
4064                         fi
4065                         fi
4066                         CF_SHARED_SONAME
4067                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4068                 else
4069                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
4070                 fi
4071                 ;;
4072         (osf*|mls+*)
4073                 # tested with OSF/1 V3.2 and 'cc'
4074                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4075                 # link with shared libs).
4076                 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4077                 case $host_os in
4078                 (osf4*)
4079                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4080                         ;;
4081                 esac
4082                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4083                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4084                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4085                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4086                 fi
4087                 cf_cv_rm_so_locs=yes
4088                 ;;
4089         (sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
4090                 # tested with osr5.0.5
4091                 if test "$GCC" != yes; then
4092                         CC_SHARED_OPTS='-belf -KPIC'
4093                 fi
4094                 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4095                 if test "$cf_cv_enable_rpath" = yes ; then
4096                         # only way is to set LD_RUN_PATH but no switch for it
4097                         RUN_PATH=$libdir
4098                 fi
4099                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4100                 LINK_PROGS='LD_RUN_PATH=${libdir}'
4101                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4102                 ;;
4103         (sunos4*)
4104                 # tested with SunOS 4.1.1 and gcc 2.7.0
4105                 if test "$GCC" != yes; then
4106                         CC_SHARED_OPTS='-KPIC'
4107                 fi
4108                 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
4109                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4110                 ;;
4111         (solaris2*)
4112                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4113                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4114                 if test "$DFT_LWR_MODEL" = "shared" ; then
4115                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4116                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4117                 fi
4118                 if test "$cf_cv_enable_rpath" = yes ; then
4119                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
4120                 fi
4121                 CF_SHARED_SONAME
4122                 if test "$GCC" != yes; then
4123                         cf_save_CFLAGS="$CFLAGS"
4124                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
4125                         do
4126                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4127                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
4128                         done
4129                         CFLAGS="$cf_save_CFLAGS"
4130                         CC_SHARED_OPTS=$cf_shared_opts
4131                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4132                 else
4133                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4134                 fi
4135                 ;;
4136         (sysv5uw7*|unix_sv*)
4137                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4138                 if test "$GCC" != yes; then
4139                         CC_SHARED_OPTS='-KPIC'
4140                 fi
4141                 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
4142                 ;;
4143         (*)
4144                 CC_SHARED_OPTS='unknown'
4145                 MK_SHARED_LIB='echo unknown'
4146                 ;;
4147         esac
4148
4149         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4150         case "$cf_cv_shlib_version" in
4151         (rel|abi)
4152                 case "$MK_SHARED_LIB" in
4153                 (*'-o $[@]')
4154                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4155                         ;;
4156                 (*)
4157                         AC_MSG_WARN(ignored --with-shlib-version)
4158                         ;;
4159                 esac
4160                 ;;
4161         esac
4162
4163         if test -n "$cf_try_cflags"
4164         then
4165 cat > conftest.$ac_ext <<EOF
4166 #line __oline__ "${as_me:-configure}"
4167 #include <stdio.h>
4168 int main(int argc, char *argv[[]])
4169 {
4170         printf("hello\n");
4171         return (argv[[argc-1]] == 0) ;
4172 }
4173 EOF
4174                 cf_save_CFLAGS="$CFLAGS"
4175                 for cf_opt in $cf_try_cflags
4176                 do
4177                         CFLAGS="$cf_save_CFLAGS -$cf_opt"
4178                         AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
4179                         if AC_TRY_EVAL(ac_compile); then
4180                                 AC_MSG_RESULT(yes)
4181                                 cf_save_CFLAGS="$CFLAGS"
4182                         else
4183                                 AC_MSG_RESULT(no)
4184                         fi
4185                 done
4186                 CFLAGS="$cf_save_CFLAGS"
4187         fi
4188
4189
4190         # RPATH_LIST is a colon-separated list of directories
4191         test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
4192         test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
4193
4194         test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
4195
4196         CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
4197         CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
4198
4199         AC_SUBST(CC_SHARED_OPTS)
4200         AC_SUBST(LD_RPATH_OPT)
4201         AC_SUBST(LD_SHARED_OPTS)
4202         AC_SUBST(MK_SHARED_LIB)
4203         AC_SUBST(RM_SHARED_OPTS)
4204
4205         AC_SUBST(LINK_PROGS)
4206         AC_SUBST(LINK_TESTS)
4207
4208         AC_SUBST(EXTRA_LDFLAGS)
4209         AC_SUBST(LOCAL_LDFLAGS)
4210         AC_SUBST(LOCAL_LDFLAGS2)
4211
4212         AC_SUBST(INSTALL_LIB)
4213         AC_SUBST(RPATH_LIST)
4214 ])dnl
4215 dnl ---------------------------------------------------------------------------
4216 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4217 dnl ----------------
4218 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4219 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4220 dnl option.
4221 dnl
4222 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4223 dnl If missing, use "rel".
4224 define([CF_SHARED_SONAME],
4225 [
4226         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4227         if test "$cf_cv_shlib_version" = rel; then
4228                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4229         else
4230                 cf_cv_shared_soname='`basename $[@]`'
4231         fi
4232 ])
4233 dnl ---------------------------------------------------------------------------
4234 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4235 dnl --------------
4236 dnl     Remove "-g" option from the compiler options
4237 AC_DEFUN([CF_STRIP_G_OPT],
4238 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4239 dnl ---------------------------------------------------------------------------
4240 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
4241 dnl --------------
4242 dnl Construct a search-list for a nonstandard header/lib-file
4243 dnl     $1 = the variable to return as result
4244 dnl     $2 = the package name
4245 dnl     $3 = the subdirectory, e.g., bin, include or lib
4246 AC_DEFUN([CF_SUBDIR_PATH],
4247 [
4248 $1=
4249
4250 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4251
4252 for cf_subdir_prefix in \
4253         /usr \
4254         /usr/local \
4255         /usr/pkg \
4256         /opt \
4257         /opt/local \
4258         [$]HOME
4259 do
4260         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
4261 done
4262 ])dnl
4263 dnl ---------------------------------------------------------------------------
4264 dnl CF_TERM_HEADER version: 5 updated: 2020/03/19 20:23:48
4265 dnl --------------
4266 dnl Look for term.h, which is part of X/Open curses.  It defines the interface
4267 dnl to terminfo database.  Usually it is in the same include-path as curses.h,
4268 dnl but some packagers change this, breaking various applications.
4269 AC_DEFUN([CF_TERM_HEADER],[
4270 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
4271 case ${cf_cv_ncurses_header} in
4272 (*/ncurses.h|*/ncursesw.h)
4273         cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
4274         ;;
4275 (*)
4276         cf_term_header=term.h
4277         ;;
4278 esac
4279
4280 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
4281 do
4282 AC_TRY_COMPILE([#include <stdio.h>
4283 #include <${cf_cv_ncurses_header:-curses.h}>
4284 #include <$cf_test>
4285 ],[int x = auto_left_margin; (void)x],[
4286         cf_cv_term_header="$cf_test"],[
4287         cf_cv_term_header=unknown
4288         ])
4289         test "$cf_cv_term_header" != unknown && break
4290 done
4291 ])
4292
4293 # Set definitions to allow ifdef'ing to accommodate subdirectories
4294
4295 case $cf_cv_term_header in
4296 (*term.h)
4297         AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
4298         ;;
4299 esac
4300
4301 case $cf_cv_term_header in
4302 (ncurses/term.h)
4303         AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
4304         ;;
4305 (ncursesw/term.h)
4306         AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
4307         ;;
4308 esac
4309 ])dnl
4310 dnl ---------------------------------------------------------------------------
4311 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
4312 dnl ---------------
4313 dnl Define a top_builddir symbol, for applications that need an absolute path.
4314 AC_DEFUN([CF_TOP_BUILDDIR],
4315 [
4316 top_builddir=ifelse($1,,`pwd`,$1)
4317 AC_SUBST(top_builddir)
4318 ])dnl
4319 dnl ---------------------------------------------------------------------------
4320 dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
4321 dnl -------------------
4322 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
4323 dnl can define it successfully.
4324 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
4325 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
4326         AC_TRY_COMPILE([
4327 #include <stdlib.h>
4328 #include <string.h>
4329 #include <sys/types.h>
4330 ],[
4331 #ifndef _XOPEN_SOURCE
4332 make an error
4333 #endif],
4334         [cf_cv_xopen_source=no],
4335         [cf_save="$CPPFLAGS"
4336          CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
4337          AC_TRY_COMPILE([
4338 #include <stdlib.h>
4339 #include <string.h>
4340 #include <sys/types.h>
4341 ],[
4342 #ifdef _XOPEN_SOURCE
4343 make an error
4344 #endif],
4345         [cf_cv_xopen_source=no],
4346         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
4347         CPPFLAGS="$cf_save"
4348         ])
4349 ])
4350
4351 if test "$cf_cv_xopen_source" != no ; then
4352         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
4353         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
4354         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
4355         CF_ADD_CFLAGS($cf_temp_xopen_source)
4356 fi
4357 ])
4358 dnl ---------------------------------------------------------------------------
4359 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
4360 dnl --------
4361 dnl Make an uppercase version of a variable
4362 dnl $1=uppercase($2)
4363 AC_DEFUN([CF_UPPER],
4364 [
4365 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4366 ])dnl
4367 dnl ---------------------------------------------------------------------------
4368 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
4369 dnl -----------
4370 dnl Check for multibyte support, and if not found, utf8 compatibility library
4371 AC_DEFUN([CF_UTF8_LIB],
4372 [
4373 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
4374         cf_save_LIBS="$LIBS"
4375         AC_TRY_LINK([
4376 #include <stdlib.h>],[putwc(0,0);],
4377         [cf_cv_utf8_lib=yes],
4378         [CF_FIND_LINKAGE([
4379 #include <libutf8.h>],[putwc(0,0);],utf8,
4380                 [cf_cv_utf8_lib=add-on],
4381                 [cf_cv_utf8_lib=no])
4382 ])])
4383
4384 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
4385 # ncurses/ncursesw:
4386 if test "$cf_cv_utf8_lib" = "add-on" ; then
4387         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
4388         CF_ADD_INCDIR($cf_cv_header_path_utf8)
4389         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
4390         CF_ADD_LIBS($cf_cv_library_file_utf8)
4391 fi
4392 ])dnl
4393 dnl ---------------------------------------------------------------------------
4394 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
4395 dnl ----------
4396 dnl Use AC_VERBOSE w/o the warnings
4397 AC_DEFUN([CF_VERBOSE],
4398 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
4399 CF_MSG_LOG([$1])
4400 ])dnl
4401 dnl ---------------------------------------------------------------------------
4402 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
4403 dnl ---------------
4404 dnl Check for compiler-support for weak symbols.
4405 dnl This works with "recent" gcc.
4406 AC_DEFUN([CF_WEAK_SYMBOLS],[
4407 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
4408
4409 AC_TRY_COMPILE([
4410 #include <stdio.h>],
4411 [
4412 #if defined(__GNUC__)
4413 #  if defined __USE_ISOC99
4414 #    define _cat_pragma(exp)    _Pragma(#exp)
4415 #    define _weak_pragma(exp)   _cat_pragma(weak name)
4416 #  else
4417 #    define _weak_pragma(exp)
4418 #  endif
4419 #  define _declare(name)        __extension__ extern __typeof__(name) name
4420 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
4421 #endif
4422
4423 weak_symbol(fopen);
4424 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
4425 ])
4426 ])dnl
4427 dnl ---------------------------------------------------------------------------
4428 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
4429 dnl --------------------
4430 dnl Command-line option to specify the Ada95 compiler.
4431 AC_DEFUN([CF_WITH_ADA_COMPILER],[
4432 AC_MSG_CHECKING(for ada-compiler)
4433 AC_ARG_WITH(ada-compiler,
4434         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
4435         [cf_ada_compiler=$withval],
4436         [cf_ada_compiler=gnatmake])
4437 AC_SUBST(cf_ada_compiler)
4438 AC_MSG_RESULT($cf_ada_compiler)
4439 ])dnl
4440 dnl ---------------------------------------------------------------------------
4441 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
4442 dnl -------------------
4443 dnl Command-line option to specify where Ada includes will install.
4444 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
4445 AC_MSG_CHECKING(for ada-include)
4446 CF_WITH_PATH(ada-include,
4447    [  --with-ada-include=DIR  Ada includes are in DIR],
4448    ADA_INCLUDE,
4449    PREFIX/share/ada/adainclude,
4450    [$]prefix/share/ada/adainclude)
4451 AC_SUBST(ADA_INCLUDE)
4452 AC_MSG_RESULT($ADA_INCLUDE)
4453 ])dnl
4454 dnl ---------------------------------------------------------------------------
4455 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
4456 dnl -------------------
4457 dnl CF_WITH_ADA_LIBNAME
4458 dnl -------------------
4459 dnl Command-line option to specify how to name the resulting Ada library.
4460 dnl $1 = default value
4461 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
4462 AC_MSG_CHECKING(for ada-libname)
4463 AC_ARG_WITH(ada-libname,
4464    [  --with-ada-libname=XXX  override default Ada library-name],
4465    ADA_LIBNAME=[$]withval,
4466    ADA_LIBNAME=$1)
4467 case "x$ADA_LIBNAME" in
4468 (x|xyes|xno)
4469         ADA_LIBNAME=$1
4470         ;;
4471 esac
4472 AC_SUBST(ADA_LIBNAME)
4473 AC_MSG_RESULT($ADA_LIBNAME)
4474 ])dnl
4475 dnl ---------------------------------------------------------------------------
4476 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
4477 dnl -------------------
4478 dnl Command-line option to specify where Ada objects will install.
4479 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
4480 AC_MSG_CHECKING(for ada-objects)
4481 CF_WITH_PATH(ada-objects,
4482    [  --with-ada-objects=DIR  Ada objects are in DIR],
4483    ADA_OBJECTS,
4484    PREFIX/lib/ada/adalib,
4485    [$]prefix/lib/ada/adalib)
4486 AC_SUBST(ADA_OBJECTS)
4487 AC_MSG_RESULT($ADA_OBJECTS)
4488 ])dnl
4489 dnl ---------------------------------------------------------------------------
4490 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
4491 dnl ---------------------
4492 dnl Command-line option to specify if an Ada95 shared-library should be built,
4493 dnl and optionally what its soname should be.
4494 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
4495 AC_REQUIRE([CF_GNAT_PROJECTS])
4496 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
4497 AC_ARG_WITH(ada-sharedlib,
4498         [  --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
4499         [with_ada_sharedlib=$withval],
4500         [with_ada_sharedlib=no])
4501 AC_MSG_RESULT($with_ada_sharedlib)
4502
4503 if test "x$with_ada_sharedlib" != xno
4504 then
4505         if test "x$cf_gnat_projects" != xyes
4506         then
4507                 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
4508                 with_ada_sharedlib=no
4509         fi
4510 fi
4511
4512 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
4513 MAKE_ADA_SHAREDLIB="#"
4514
4515 if test "x$with_ada_sharedlib" != xno
4516 then
4517         MAKE_ADA_SHAREDLIB=
4518         if test "x$with_ada_sharedlib" != xyes
4519         then
4520                 ADA_SHAREDLIB="$with_ada_sharedlib"
4521         fi
4522 fi
4523
4524 AC_SUBST(ADA_SHAREDLIB)
4525 AC_SUBST(MAKE_ADA_SHAREDLIB)
4526 ])dnl
4527 dnl ---------------------------------------------------------------------------
4528 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
4529 dnl ------------------
4530 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
4531 dnl libraries.
4532 AC_DEFUN([CF_WITH_CURSES_DIR],[
4533
4534 AC_MSG_CHECKING(for specific curses-directory)
4535 AC_ARG_WITH(curses-dir,
4536         [  --with-curses-dir=DIR   directory in which (n)curses is installed],
4537         [cf_cv_curses_dir=$withval],
4538         [cf_cv_curses_dir=no])
4539 AC_MSG_RESULT($cf_cv_curses_dir)
4540
4541 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
4542 then
4543         CF_PATH_SYNTAX(withval)
4544         if test -d "$cf_cv_curses_dir"
4545         then
4546                 CF_ADD_INCDIR($cf_cv_curses_dir/include)
4547                 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
4548         fi
4549 fi
4550 ])dnl
4551 dnl ---------------------------------------------------------------------------
4552 dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
4553 dnl ------------------
4554 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
4555 dnl "lib" prefix, e.g., because it used the dll naming convention.
4556 dnl
4557 dnl $1 = variable to set
4558 AC_DEFUN([CF_WITH_LIB_PREFIX],
4559 [
4560 AC_MSG_CHECKING(if you want to have a library-prefix)
4561 AC_ARG_WITH(lib-prefix,
4562         [  --with-lib-prefix       override library-prefix],
4563         [with_lib_prefix=$withval],
4564         [with_lib_prefix=auto])
4565 AC_MSG_RESULT($with_lib_prefix)
4566
4567 if test $with_lib_prefix = auto
4568 then
4569         CF_LIB_PREFIX($1)
4570 elif test $with_lib_prefix = no
4571 then
4572         LIB_PREFIX=
4573 else
4574         LIB_PREFIX=$with_lib_prefix
4575 fi
4576 ])dnl
4577 dnl ---------------------------------------------------------------------------
4578 dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
4579 dnl ------------
4580 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
4581 dnl defaulting to yes/no.
4582 dnl
4583 dnl $1 = option name
4584 dnl $2 = help-text
4585 dnl $3 = environment variable to set
4586 dnl $4 = default value, shown in the help-message, must be a constant
4587 dnl $5 = default value, if it's an expression & cannot be in the help-message
4588 dnl
4589 AC_DEFUN([CF_WITH_PATH],
4590 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
4591 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
4592 if ifelse([$5],,true,[test -n "$5"]) ; then
4593 CF_PATH_SYNTAX(withval)
4594 fi
4595 eval $3="$withval"
4596 AC_SUBST($3)dnl
4597 ])dnl
4598 dnl ---------------------------------------------------------------------------
4599 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 10 updated: 2015/08/22 17:10:56
4600 dnl -------------------------
4601 dnl Allow the choice of the pkg-config library directory to be overridden.
4602 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
4603
4604 case $PKG_CONFIG in
4605 (no|none|yes)
4606         AC_MSG_CHECKING(for pkg-config library directory)
4607         ;;
4608 (*)
4609         AC_MSG_CHECKING(for $PKG_CONFIG library directory)
4610         ;;
4611 esac
4612
4613 PKG_CONFIG_LIBDIR=no
4614 AC_ARG_WITH(pkg-config-libdir,
4615         [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
4616         [PKG_CONFIG_LIBDIR=$withval],
4617         [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
4618
4619 case x$PKG_CONFIG_LIBDIR in
4620 (x/*)
4621         ;;
4622 (xyes)
4623         # Look for the library directory using the same prefix as the executable
4624         if test "x$PKG_CONFIG" = xnone
4625         then
4626                 cf_path=$prefix
4627         else
4628                 cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
4629         fi
4630
4631         # If you don't like using the default architecture, you have to specify the
4632         # intended library directory and corresponding compiler/linker options.
4633         #
4634         # This case allows for Debian's 2014-flavor of multiarch, along with the
4635         # most common variations before that point.  Some other variants spell the
4636         # directory differently, e.g., "pkg-config", and put it in unusual places.
4637         # pkg-config has always been poorly standardized, which is ironic...
4638         case x`(arch) 2>/dev/null` in
4639         (*64)
4640                 cf_search_path="\
4641                         $cf_path/lib/*64-linux-gnu \
4642                         $cf_path/share \
4643                         $cf_path/lib64 \
4644                         $cf_path/lib32 \
4645                         $cf_path/lib"
4646                 ;;
4647         (*)
4648                 cf_search_path="\
4649                         $cf_path/lib/*-linux-gnu \
4650                         $cf_path/share \
4651                         $cf_path/lib32 \
4652                         $cf_path/lib \
4653                         $cf_path/libdata"
4654                 ;;
4655         esac
4656
4657         CF_VERBOSE(list...)
4658         for cf_config in $cf_search_path
4659         do
4660                 CF_VERBOSE(checking $cf_config/pkgconfig)
4661                 if test -d $cf_config/pkgconfig
4662                 then
4663                         PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
4664                         AC_MSG_CHECKING(done)
4665                         break
4666                 fi
4667         done
4668         ;;
4669 (*)
4670         ;;
4671 esac
4672
4673 if test "x$PKG_CONFIG_LIBDIR" != xno ; then
4674         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
4675 fi
4676
4677 AC_SUBST(PKG_CONFIG_LIBDIR)
4678 ])dnl
4679 dnl ---------------------------------------------------------------------------
4680 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
4681 dnl ---------------
4682 dnl Check for POSIX thread library.
4683 AC_DEFUN([CF_WITH_PTHREAD],
4684 [
4685 AC_MSG_CHECKING(if you want to link with the pthread library)
4686 AC_ARG_WITH(pthread,
4687         [  --with-pthread          use POSIX thread library],
4688         [with_pthread=$withval],
4689         [with_pthread=no])
4690 AC_MSG_RESULT($with_pthread)
4691
4692 if test "$with_pthread" != no ; then
4693         AC_CHECK_HEADER(pthread.h,[
4694         AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
4695
4696         for cf_lib_pthread in pthread c_r
4697         do
4698             AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
4699             cf_save_LIBS="$LIBS"
4700             CF_ADD_LIB($cf_lib_pthread)
4701             AC_TRY_LINK([
4702 #include <pthread.h>
4703 ],[
4704                 int rc = pthread_create(0,0,0,0);
4705                 int r2 = pthread_mutexattr_settype(0, 0);
4706 ],[with_pthread=yes],[with_pthread=no])
4707             LIBS="$cf_save_LIBS"
4708             AC_MSG_RESULT($with_pthread)
4709             test "$with_pthread" = yes && break
4710         done
4711
4712         if test "$with_pthread" = yes ; then
4713             CF_ADD_LIB($cf_lib_pthread)
4714             AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
4715         else
4716             AC_MSG_ERROR(Cannot link with pthread library)
4717         fi
4718         ])
4719 fi
4720 ])
4721 dnl ---------------------------------------------------------------------------
4722 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
4723 dnl ---------------
4724 dnl For testing, override the derived host system-type which is used to decide
4725 dnl things such as the linker commands used to build shared libraries.  This is
4726 dnl normally chosen automatically based on the type of system which you are
4727 dnl building on.  We use it for testing the configure script.
4728 dnl
4729 dnl This is different from the --host option: it is used only for testing parts
4730 dnl of the configure script which would not be reachable with --host since that
4731 dnl relies on the build environment being real, rather than mocked up.
4732 AC_DEFUN([CF_WITH_SYSTYPE],[
4733 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
4734 AC_ARG_WITH(system-type,
4735         [  --with-system-type=XXX  test: override derived host system-type],
4736 [AC_MSG_WARN(overriding system type to $withval)
4737         cf_cv_system_name=$withval
4738         host_os=$withval
4739 ])
4740 ])dnl
4741 dnl ---------------------------------------------------------------------------
4742 dnl CF_XOPEN_SOURCE version: 55 updated: 2018/12/31 20:46:17
4743 dnl ---------------
4744 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
4745 dnl or adapt to the vendor's definitions to get equivalent functionality,
4746 dnl without losing the common non-POSIX features.
4747 dnl
4748 dnl Parameters:
4749 dnl     $1 is the nominal value for _XOPEN_SOURCE
4750 dnl     $2 is the nominal value for _POSIX_C_SOURCE
4751 AC_DEFUN([CF_XOPEN_SOURCE],[
4752 AC_REQUIRE([AC_CANONICAL_HOST])
4753 AC_REQUIRE([CF_POSIX_VISIBLE])
4754
4755 if test "$cf_cv_posix_visible" = no; then
4756
4757 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
4758 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
4759 cf_xopen_source=
4760
4761 case $host_os in
4762 (aix[[4-7]]*)
4763         cf_xopen_source="-D_ALL_SOURCE"
4764         ;;
4765 (msys)
4766         cf_XOPEN_SOURCE=600
4767         ;;
4768 (darwin[[0-8]].*)
4769         cf_xopen_source="-D_APPLE_C_SOURCE"
4770         ;;
4771 (darwin*)
4772         cf_xopen_source="-D_DARWIN_C_SOURCE"
4773         cf_XOPEN_SOURCE=
4774         ;;
4775 (freebsd*|dragonfly*|midnightbsd*)
4776         # 5.x headers associate
4777         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
4778         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
4779         cf_POSIX_C_SOURCE=200112L
4780         cf_XOPEN_SOURCE=600
4781         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
4782         ;;
4783 (hpux11*)
4784         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
4785         ;;
4786 (hpux*)
4787         cf_xopen_source="-D_HPUX_SOURCE"
4788         ;;
4789 (irix[[56]].*)
4790         cf_xopen_source="-D_SGI_SOURCE"
4791         cf_XOPEN_SOURCE=
4792         ;;
4793 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
4794         CF_GNU_SOURCE($cf_XOPEN_SOURCE)
4795         ;;
4796 (minix*)
4797         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
4798         ;;
4799 (mirbsd*)
4800         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
4801         cf_XOPEN_SOURCE=
4802         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4803         ;;
4804 (netbsd*)
4805         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
4806         ;;
4807 (openbsd[[4-9]]*)
4808         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
4809         cf_xopen_source="-D_BSD_SOURCE"
4810         cf_XOPEN_SOURCE=600
4811         ;;
4812 (openbsd*)
4813         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
4814         ;;
4815 (osf[[45]]*)
4816         cf_xopen_source="-D_OSF_SOURCE"
4817         ;;
4818 (nto-qnx*)
4819         cf_xopen_source="-D_QNX_SOURCE"
4820         ;;
4821 (sco*)
4822         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
4823         ;;
4824 (solaris2.*)
4825         cf_xopen_source="-D__EXTENSIONS__"
4826         cf_cv_xopen_source=broken
4827         ;;
4828 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
4829         cf_XOPEN_SOURCE=
4830         cf_POSIX_C_SOURCE=
4831         ;;
4832 (*)
4833         CF_TRY_XOPEN_SOURCE
4834         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4835         ;;
4836 esac
4837
4838 if test -n "$cf_xopen_source" ; then
4839         CF_ADD_CFLAGS($cf_xopen_source,true)
4840 fi
4841
4842 dnl In anything but the default case, we may have system-specific setting
4843 dnl which is still not guaranteed to provide all of the entrypoints that
4844 dnl _XOPEN_SOURCE would yield.
4845 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
4846         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
4847         AC_TRY_COMPILE([#include <stdlib.h>],[
4848 #ifndef _XOPEN_SOURCE
4849 make an error
4850 #endif],
4851         [cf_XOPEN_SOURCE_set=yes],
4852         [cf_XOPEN_SOURCE_set=no])
4853         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
4854         if test $cf_XOPEN_SOURCE_set = yes
4855         then
4856                 AC_TRY_COMPILE([#include <stdlib.h>],[
4857 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
4858 make an error
4859 #endif],
4860                 [cf_XOPEN_SOURCE_set_ok=yes],
4861                 [cf_XOPEN_SOURCE_set_ok=no])
4862                 if test $cf_XOPEN_SOURCE_set_ok = no
4863                 then
4864                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
4865                 fi
4866         else
4867                 CF_TRY_XOPEN_SOURCE
4868         fi
4869 fi
4870 fi # cf_cv_posix_visible
4871 ])