]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 6.2 - patch 20210417
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright 2018-2020,2021 Thomas E. Dickey                                *
3 dnl Copyright 1998-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 1995-on
31 dnl
32 dnl $Id: aclocal.m4,v 1.957 2021/04/03 20:43:02 tom Exp $
33 dnl Macros used in NCURSES 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 AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
46 dnl -------------------
47 dnl Inserted as requested by gettext 0.10.40
48 dnl File from /usr/share/aclocal
49 dnl codeset.m4
50 dnl ====================
51 dnl serial AM1
52 dnl
53 dnl From Bruno Haible.
54 AC_DEFUN([AM_LANGINFO_CODESET],
55 [
56 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
57         [AC_TRY_LINK([#include <langinfo.h>],
58         [char* cs = nl_langinfo(CODESET); (void)cs],
59         am_cv_langinfo_codeset=yes,
60         am_cv_langinfo_codeset=no)
61         ])
62         if test "$am_cv_langinfo_codeset" = yes; then
63                 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
64                 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
65         fi
66 ])dnl
67 dnl ---------------------------------------------------------------------------
68 dnl CF_ABI_DEFAULTS version: 2 updated: 2015/06/06 13:49:58
69 dnl ---------------
70 dnl Provide configure-script defaults for different ncurses ABIs.
71 AC_DEFUN([CF_ABI_DEFAULTS],[
72 AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
73 case x$cf_cv_abi_version in
74 (x[[6789]])
75         cf_dft_ext_colors=yes
76         cf_dft_ext_const=yes
77         cf_dft_ext_mouse=yes
78         cf_dft_ext_putwin=yes
79         cf_dft_ext_spfuncs=yes
80         cf_dft_filter_syms=yes
81         cf_dft_chtype=uint32_t
82         cf_dft_mmask_t=uint32_t
83         cf_dft_interop=yes
84         cf_dft_tparm_arg=intptr_t
85         cf_dft_with_lp64=yes
86         ;;
87 (*)
88         cf_dft_ext_colors=no
89         cf_dft_ext_const=no
90         cf_dft_ext_mouse=no
91         cf_dft_ext_putwin=no
92         cf_dft_ext_spfuncs=no
93         cf_dft_filter_syms=no
94         cf_dft_chtype=auto
95         cf_dft_mmask_t=auto
96         cf_dft_interop=no
97         cf_dft_tparm_arg=long
98         cf_dft_with_lp64=no
99         ;;
100 esac
101 ])dnl
102 dnl ---------------------------------------------------------------------------
103 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
104 dnl ------------------
105 dnl Conditionally generate script according to whether we're using a given autoconf.
106 dnl
107 dnl $1 = version to compare against
108 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
109 dnl $3 = code to use if AC_ACVERSION is older than $1.
110 define([CF_ACVERSION_CHECK],
111 [
112 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
113 ifdef([m4_version_compare],
114 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
115 [CF_ACVERSION_COMPARE(
116 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
117 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
118 dnl ---------------------------------------------------------------------------
119 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
120 dnl --------------------
121 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
122 dnl                      MAJOR2, MINOR2, TERNARY2,
123 dnl                      PRINTABLE2, not FOUND, FOUND)
124 define([CF_ACVERSION_COMPARE],
125 [ifelse(builtin([eval], [$2 < $5]), 1,
126 [ifelse([$8], , ,[$8])],
127 [ifelse([$9], , ,[$9])])])dnl
128 dnl ---------------------------------------------------------------------------
129 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
130 dnl -------------------
131 dnl Construct the list of include-options for the C programs in the Ada95
132 dnl binding.
133 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
134 [
135 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
136 if test "$srcdir" != "."; then
137         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
138 fi
139 if test "$GCC" != yes; then
140         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
141 elif test "$includedir" != "/usr/include"; then
142         if test "$includedir" = '${prefix}/include' ; then
143                 if test x$prefix != x/usr ; then
144                         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
145                 fi
146         else
147                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
148         fi
149 fi
150 AC_SUBST(ACPPFLAGS)
151 ])dnl
152 dnl ---------------------------------------------------------------------------
153 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
154 dnl ---------------
155 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
156 AC_DEFUN([CF_ADD_ADAFLAGS],[
157         ADAFLAGS="$ADAFLAGS $1"
158         AC_SUBST(ADAFLAGS)
159 ])dnl
160 dnl ---------------------------------------------------------------------------
161 dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
162 dnl -------------
163 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
164 dnl $1 = flags to add
165 dnl $2 = if given makes this macro verbose.
166 dnl
167 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
168 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
169 dnl confused by the quotes (which require backslashes to keep them usable).
170 AC_DEFUN([CF_ADD_CFLAGS],
171 [
172 cf_fix_cppflags=no
173 cf_new_cflags=
174 cf_new_cppflags=
175 cf_new_extra_cppflags=
176
177 for cf_add_cflags in $1
178 do
179 case "$cf_fix_cppflags" in
180 (no)
181         case "$cf_add_cflags" in
182         (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
183                 case "$cf_add_cflags" in
184                 (-D*)
185                         cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
186
187                         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
188                                 && test -z "${cf_tst_cflags}" \
189                                 && cf_fix_cppflags=yes
190
191                         if test "$cf_fix_cppflags" = yes ; then
192                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
193                                 continue
194                         elif test "${cf_tst_cflags}" = "\"'" ; then
195                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
196                                 continue
197                         fi
198                         ;;
199                 esac
200                 case "$CPPFLAGS" in
201                 (*$cf_add_cflags)
202                         ;;
203                 (*)
204                         case "$cf_add_cflags" in
205                         (-D*)
206                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
207                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
208                                 ;;
209                         esac
210                         CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
211                         ;;
212                 esac
213                 ;;
214         (*)
215                 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
216                 ;;
217         esac
218         ;;
219 (yes)
220         CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
221
222         cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
223
224         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
225                 && test -z "${cf_tst_cflags}" \
226                 && cf_fix_cppflags=no
227         ;;
228 esac
229 done
230
231 if test -n "$cf_new_cflags" ; then
232         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
233         CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
234 fi
235
236 if test -n "$cf_new_cppflags" ; then
237         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
238         CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
239 fi
240
241 if test -n "$cf_new_extra_cppflags" ; then
242         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
243         CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
244 fi
245
246 AC_SUBST(EXTRA_CPPFLAGS)
247
248 ])dnl
249 dnl ---------------------------------------------------------------------------
250 dnl CF_ADD_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
251 dnl ---------------
252 dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
253 dnl The second parameter if given makes this macro verbose.
254 dnl
255 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
256 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
257 dnl confused by the quotes (which require backslashes to keep them usable).
258 AC_DEFUN([CF_ADD_CXXFLAGS],
259 [
260 cf_save_CXXFLAGS="$CFLAGS"
261 CFLAGS="$CXXFLAGS"
262 CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
263 CXXFLAGS="$CFLAGS"
264 CFLAGS="$cf_save_CXXFLAGS"
265 ])dnl
266 dnl ---------------------------------------------------------------------------
267 dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
268 dnl -------------
269 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
270 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
271 dnl but old versions (and some misinstalled ones) need that.  To make things
272 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
273 dnl the include-path).
274 AC_DEFUN([CF_ADD_INCDIR],
275 [
276 if test -n "$1" ; then
277   for cf_add_incdir in $1
278   do
279         while test "$cf_add_incdir" != /usr/include
280         do
281           if test -d "$cf_add_incdir"
282           then
283                 cf_have_incdir=no
284                 if test -n "$CFLAGS$CPPFLAGS" ; then
285                   # a loop is needed to ensure we can add subdirs of existing dirs
286                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
287                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
288                           cf_have_incdir=yes; break
289                         fi
290                   done
291                 fi
292
293                 if test "$cf_have_incdir" = no ; then
294                   if test "$cf_add_incdir" = /usr/local/include ; then
295                         if test "$GCC" = yes
296                         then
297                           cf_save_CPPFLAGS=$CPPFLAGS
298                           CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
299                           AC_TRY_COMPILE([#include <stdio.h>],
300                                   [printf("Hello")],
301                                   [],
302                                   [cf_have_incdir=yes])
303                           CPPFLAGS=$cf_save_CPPFLAGS
304                         fi
305                   fi
306                 fi
307
308                 if test "$cf_have_incdir" = no ; then
309                   CF_VERBOSE(adding $cf_add_incdir to include-path)
310                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
311
312                   cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
313                   test "$cf_top_incdir" = "$cf_add_incdir" && break
314                   cf_add_incdir="$cf_top_incdir"
315                 else
316                   break
317                 fi
318           else
319                 break
320           fi
321         done
322   done
323 fi
324 ])dnl
325 dnl ---------------------------------------------------------------------------
326 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
327 dnl ----------
328 dnl Add a library, used to enforce consistency.
329 dnl
330 dnl $1 = library to add, without the "-l"
331 dnl $2 = variable to update (default $LIBS)
332 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
333 dnl ---------------------------------------------------------------------------
334 dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
335 dnl -------------
336 dnl     Adds to the library-path
337 dnl
338 dnl     Some machines have trouble with multiple -L options.
339 dnl
340 dnl $1 is the (list of) directory(s) to add
341 dnl $2 is the optional name of the variable to update (default LDFLAGS)
342 dnl
343 AC_DEFUN([CF_ADD_LIBDIR],
344 [
345 if test -n "$1" ; then
346         for cf_add_libdir in $1
347         do
348                 if test "$cf_add_libdir" = /usr/lib ; then
349                         :
350                 elif test -d "$cf_add_libdir"
351                 then
352                         cf_have_libdir=no
353                         if test -n "$LDFLAGS$LIBS" ; then
354                                 # a loop is needed to ensure we can add subdirs of existing dirs
355                                 for cf_test_libdir in $LDFLAGS $LIBS ; do
356                                         if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
357                                                 cf_have_libdir=yes; break
358                                         fi
359                                 done
360                         fi
361                         if test "$cf_have_libdir" = no ; then
362                                 CF_VERBOSE(adding $cf_add_libdir to library-path)
363                                 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
364                         fi
365                 fi
366         done
367 fi
368 ])dnl
369 dnl ---------------------------------------------------------------------------
370 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
371 dnl -----------
372 dnl Add one or more libraries, used to enforce consistency.  Libraries are
373 dnl prepended to an existing list, since their dependencies are assumed to
374 dnl already exist in the list.
375 dnl
376 dnl $1 = libraries to add, with the "-l", etc.
377 dnl $2 = variable to update (default $LIBS)
378 AC_DEFUN([CF_ADD_LIBS],[
379 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
380 # reverse order
381 cf_add_0lib=
382 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
383 # filter duplicates
384 for cf_add_1lib in $cf_add_0lib; do
385         for cf_add_2lib in $cf_add_libs; do
386                 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
387                         cf_add_1lib=
388                         break
389                 fi
390         done
391         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
392 done
393 ifelse($2,,LIBS,[$2])="$cf_add_libs"
394 ])dnl
395 dnl ---------------------------------------------------------------------------
396 dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
397 dnl ------------------
398 dnl Append to a search-list for a nonstandard header/lib-file
399 dnl     $1 = the variable to return as result
400 dnl     $2 = the package name
401 dnl     $3 = the subdirectory, e.g., bin, include or lib
402 dnl $4 = the directory under which we will test for subdirectories
403 dnl $5 = a directory that we do not want $4 to match
404 AC_DEFUN([CF_ADD_SUBDIR_PATH],
405 [
406 test "x$4" != "x$5" && \
407 test -d "$4" && \
408 ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
409         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
410         test -d "$4/$3" &&          $1="[$]$1 $4/$3"
411         test -d "$4/$3/$2" &&       $1="[$]$1 $4/$3/$2"
412         test -d "$4/$3/$2/$3" &&    $1="[$]$1 $4/$3/$2/$3"
413         test -d "$4/$2/$3" &&       $1="[$]$1 $4/$2/$3"
414         test -d "$4/$2/$3/$2" &&    $1="[$]$1 $4/$2/$3/$2"
415 }
416 ])dnl
417 dnl ---------------------------------------------------------------------------
418 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
419 dnl --------------
420 dnl use this macro for appending text without introducing an extra blank at
421 dnl the beginning
422 define([CF_APPEND_TEXT],
423 [
424         test -n "[$]$1" && $1="[$]$1 "
425         $1="[$]{$1}$2"
426 ])dnl
427 dnl ---------------------------------------------------------------------------
428 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
429 dnl --------------
430 dnl Allow user to disable a normally-on option.
431 AC_DEFUN([CF_ARG_DISABLE],
432 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
433 dnl ---------------------------------------------------------------------------
434 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
435 dnl -------------
436 dnl Allow user to enable a normally-off option.
437 AC_DEFUN([CF_ARG_ENABLE],
438 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
439 dnl ---------------------------------------------------------------------------
440 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
441 dnl -------------
442 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
443 dnl values.
444 dnl
445 dnl Parameters:
446 dnl $1 = option name
447 dnl $2 = help-string
448 dnl $3 = action to perform if option is not default
449 dnl $4 = action if perform if option is default
450 dnl $5 = default option value (either 'yes' or 'no')
451 AC_DEFUN([CF_ARG_OPTION],
452 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
453         if test "$enableval" != "$5" ; then
454 ifelse([$3],,[    :]dnl
455 ,[    $3]) ifelse([$4],,,[
456         else
457                 $4])
458         fi],[enableval=$5 ifelse([$4],,,[
459         $4
460 ])dnl
461 ])])dnl
462 dnl ---------------------------------------------------------------------------
463 dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
464 dnl -----------
465 dnl Check for suitable "ar" (archiver) options for updating an archive.
466 dnl
467 dnl In particular, handle some obsolete cases where the "-" might be omitted,
468 dnl as well as a workaround for breakage of make's archive rules by the GNU
469 dnl binutils "ar" program.
470 AC_DEFUN([CF_AR_FLAGS],[
471 AC_REQUIRE([CF_PROG_AR])
472
473 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
474         case "$cf_cv_system_name" in
475         (*-msvc*)
476                 cf_cv_ar_flags=''
477                 cat >mk_static_lib.sh <<-EOF
478                 #!$SHELL
479                 MSVC_BIN="[$]AR"
480                 out="\[$]1"
481                 shift
482                 exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
483                 EOF
484                 chmod +x mk_static_lib.sh
485                 AR=`pwd`/mk_static_lib.sh
486                 ;;
487         (*)
488                 cf_cv_ar_flags=unknown
489                 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
490                 do
491
492                         # check if $ARFLAGS already contains this choice
493                         if test "x$ARFLAGS" != "x" ; then
494                                 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
495                                 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
496                                         cf_cv_ar_flags=
497                                         break
498                                 fi
499                         fi
500
501                         rm -f "conftest.$ac_cv_objext"
502                         rm -f conftest.a
503
504                         cat >"conftest.$ac_ext" <<EOF
505 #line __oline__ "configure"
506 int     testdata[[3]] = { 123, 456, 789 };
507 EOF
508                         if AC_TRY_EVAL(ac_compile) ; then
509                                 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
510                                 $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
511                                 if test -f conftest.a ; then
512                                         cf_cv_ar_flags="$cf_ar_flags"
513                                         break
514                                 fi
515                         else
516                                 CF_VERBOSE(cannot compile test-program)
517                                 break
518                         fi
519                 done
520                 rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
521                 ;;
522         esac
523 ])
524
525 if test -n "$ARFLAGS" ; then
526         if test -n "$cf_cv_ar_flags" ; then
527                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
528         fi
529 else
530         ARFLAGS=$cf_cv_ar_flags
531 fi
532
533 AC_SUBST(ARFLAGS)
534 ])
535 dnl ---------------------------------------------------------------------------
536 dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04
537 dnl -----------------
538 dnl Check if awk can handle big strings using printf.  Some older versions of
539 dnl awk choke on large strings passed via "%s".
540 dnl
541 dnl $1 = desired string size
542 dnl $2 = variable to set with result
543 AC_DEFUN([CF_AWK_BIG_PRINTF],
544 [
545         case x$AWK in
546         (x)
547                 eval $2=no
548                 ;;
549         (*)
550                 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
551                         | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
552                         eval $2=yes
553                 else
554                         eval $2=no
555                 fi
556                 ;;
557         esac
558 ])dnl
559 dnl ---------------------------------------------------------------------------
560 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
561 dnl ------------
562 dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
563 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
564 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
565 dnl
566 dnl Treat the configuration-variable specially here, since we're directly
567 dnl substituting its value (i.e., 1/0).
568 dnl
569 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
570 AC_DEFUN([CF_BOOL_DECL],
571 [
572 AC_MSG_CHECKING(if we should include stdbool.h)
573
574 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
575         AC_TRY_COMPILE([],[bool foo = false],
576                 [cf_cv_header_stdbool_h=0],
577                 [AC_TRY_COMPILE([
578 #ifndef __BEOS__
579 #include <stdbool.h>
580 #endif
581 ],[bool foo = false],
582                         [cf_cv_header_stdbool_h=1],
583                         [cf_cv_header_stdbool_h=0])])])
584
585 if test "$cf_cv_header_stdbool_h" = 1
586 then    AC_MSG_RESULT(yes)
587 else    AC_MSG_RESULT(no)
588 fi
589
590 AC_MSG_CHECKING([for builtin bool type])
591
592 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
593         AC_TRY_COMPILE([
594 #include <stdio.h>
595 #include <sys/types.h>
596 ],[bool x = false],
597                 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
598                 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
599         ])
600
601 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
602 then    AC_MSG_RESULT(yes)
603 else    AC_MSG_RESULT(no)
604 fi
605 ])dnl
606 dnl ---------------------------------------------------------------------------
607 dnl CF_BOOL_SIZE version: 17 updated: 2020/10/24 19:48:55
608 dnl ------------
609 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
610 dnl Don't bother looking for bool.h, since it's been deprecated.
611 dnl
612 dnl If the current compiler is C rather than C++, we get the bool definition
613 dnl from <stdbool.h>.
614 AC_DEFUN([CF_BOOL_SIZE],
615 [
616 AC_CHECK_SIZEOF(bool,,[
617 #include <stdlib.h>
618 #include <stdio.h>
619
620 #if defined(__cplusplus)
621
622 #ifdef HAVE_GXX_BUILTIN_H
623 #include <g++/builtin.h>
624 #elif HAVE_GPP_BUILTIN_H
625 #include <gpp/builtin.h>
626 #elif HAVE_BUILTIN_H
627 #include <builtin.h>
628 #endif
629
630 #else
631
632 #if $cf_cv_header_stdbool_h
633 #include <stdbool.h>
634 #endif
635
636 #endif
637 ])
638
639 AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
640         rm -f cf_test.out
641         AC_TRY_RUN([
642 #include <stdlib.h>
643 #include <stdio.h>
644
645 #if defined(__cplusplus)
646
647 #ifdef HAVE_GXX_BUILTIN_H
648 #include <g++/builtin.h>
649 #elif HAVE_GPP_BUILTIN_H
650 #include <gpp/builtin.h>
651 #elif HAVE_BUILTIN_H
652 #include <builtin.h>
653 #endif
654
655 #else
656
657 #if $cf_cv_header_stdbool_h
658 #include <stdbool.h>
659 #endif
660
661 #endif
662
663 int main(void)
664 {
665         FILE *fp = fopen("cf_test.out", "w");
666         if (fp != 0) {
667                 bool x = true;
668                 if ((bool)(-x) >= 0)
669                         fputs("unsigned ", fp);
670                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
671                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
672                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
673                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
674                 fclose(fp);
675         }
676         ${cf_cv_main_return:-return}(0);
677 }
678                 ],
679                 [cf_cv_type_of_bool=`cat cf_test.out`
680                  if test -z "$cf_cv_type_of_bool"; then
681                    cf_cv_type_of_bool=unknown
682                  fi],
683                 [cf_cv_type_of_bool=unknown],
684                 [
685                 case x$ac_cv_sizeof_bool in
686                 (x1) cf_cv_type_of_bool="unsigned char";;
687                 (x2) cf_cv_type_of_bool="unsigned short";;
688                 (x4) cf_cv_type_of_bool="unsigned int";;
689                 (x8) cf_cv_type_of_bool="unsigned long";;
690                 (*)  cf_cv_type_of_bool=unknown;;
691                 esac
692                 ])
693         rm -f cf_test.out
694 ])
695
696 if test "$cf_cv_type_of_bool" = unknown ; then
697         case .$NCURSES_BOOL in
698         (.auto|.) NCURSES_BOOL=unsigned;;
699         esac
700         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
701         cf_cv_type_of_bool=$NCURSES_BOOL
702 fi
703 ])dnl
704 dnl ---------------------------------------------------------------------------
705 dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
706 dnl -----------
707 dnl If we're cross-compiling, allow the user to override the tools and their
708 dnl options.  The configure script is oriented toward identifying the host
709 dnl compiler, etc., but we need a build compiler to generate parts of the
710 dnl source.
711 dnl
712 dnl $1 = default for $CPPFLAGS
713 dnl $2 = default for $LIBS
714 AC_DEFUN([CF_BUILD_CC],[
715 CF_ACVERSION_CHECK(2.52,,
716         [AC_REQUIRE([CF_PROG_EXT])])
717 if test "$cross_compiling" = yes ; then
718
719         # defaults that we might want to override
720         : ${BUILD_CFLAGS:=''}
721         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
722         : ${BUILD_LDFLAGS:=''}
723         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
724         : ${BUILD_EXEEXT:='$x'}
725         : ${BUILD_OBJEXT:='o'}
726
727         AC_ARG_WITH(build-cc,
728                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
729                 [BUILD_CC="$withval"],
730                 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
731         AC_MSG_CHECKING(for native build C compiler)
732         AC_MSG_RESULT($BUILD_CC)
733
734         AC_MSG_CHECKING(for native build C preprocessor)
735         AC_ARG_WITH(build-cpp,
736                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
737                 [BUILD_CPP="$withval"],
738                 [BUILD_CPP='${BUILD_CC} -E'])
739         AC_MSG_RESULT($BUILD_CPP)
740
741         AC_MSG_CHECKING(for native build C flags)
742         AC_ARG_WITH(build-cflags,
743                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
744                 [BUILD_CFLAGS="$withval"])
745         AC_MSG_RESULT($BUILD_CFLAGS)
746
747         AC_MSG_CHECKING(for native build C preprocessor-flags)
748         AC_ARG_WITH(build-cppflags,
749                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
750                 [BUILD_CPPFLAGS="$withval"])
751         AC_MSG_RESULT($BUILD_CPPFLAGS)
752
753         AC_MSG_CHECKING(for native build linker-flags)
754         AC_ARG_WITH(build-ldflags,
755                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
756                 [BUILD_LDFLAGS="$withval"])
757         AC_MSG_RESULT($BUILD_LDFLAGS)
758
759         AC_MSG_CHECKING(for native build linker-libraries)
760         AC_ARG_WITH(build-libs,
761                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
762                 [BUILD_LIBS="$withval"])
763         AC_MSG_RESULT($BUILD_LIBS)
764
765         # this assumes we're on Unix.
766         BUILD_EXEEXT=
767         BUILD_OBJEXT=o
768
769         : ${BUILD_CC:='${CC}'}
770
771         if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
772                 AC_MSG_ERROR([Cross-build requires two compilers.
773 Use --with-build-cc to specify the native compiler.])
774         fi
775
776 else
777         : ${BUILD_CC:='${CC}'}
778         : ${BUILD_CPP:='${CPP}'}
779         : ${BUILD_CFLAGS:='${CFLAGS}'}
780         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
781         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
782         : ${BUILD_LIBS:='${LIBS}'}
783         : ${BUILD_EXEEXT:='$x'}
784         : ${BUILD_OBJEXT:='o'}
785 fi
786
787 AC_SUBST(BUILD_CC)
788 AC_SUBST(BUILD_CPP)
789 AC_SUBST(BUILD_CFLAGS)
790 AC_SUBST(BUILD_CPPFLAGS)
791 AC_SUBST(BUILD_LDFLAGS)
792 AC_SUBST(BUILD_LIBS)
793 AC_SUBST(BUILD_EXEEXT)
794 AC_SUBST(BUILD_OBJEXT)
795 ])dnl
796 dnl ---------------------------------------------------------------------------
797 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
798 dnl ---------------
799 AC_DEFUN([CF_C11_NORETURN],
800 [
801 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
802 CF_ARG_ENABLE(stdnoreturn,
803         [  --enable-stdnoreturn    enable C11 _Noreturn feature for diagnostics],
804         [enable_stdnoreturn=yes],
805         [enable_stdnoreturn=no])
806 AC_MSG_RESULT($enable_stdnoreturn)
807
808 if test $enable_stdnoreturn = yes; then
809 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
810         [AC_TRY_COMPILE([
811 #include <stdio.h>
812 #include <stdlib.h>
813 #include <stdnoreturn.h>
814 static _Noreturn void giveup(void) { exit(0); }
815         ],
816         [if (feof(stdin)) giveup()],
817         cf_cv_c11_noreturn=yes,
818         cf_cv_c11_noreturn=no)
819         ])
820 else
821         cf_cv_c11_noreturn=no,
822 fi
823
824 if test "$cf_cv_c11_noreturn" = yes; then
825         AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
826         AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
827         HAVE_STDNORETURN_H=1
828 else
829         HAVE_STDNORETURN_H=0
830 fi
831
832 AC_SUBST(HAVE_STDNORETURN_H)
833 AC_SUBST(STDC_NORETURN)
834 ])dnl
835 dnl ---------------------------------------------------------------------------
836 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
837 dnl ---------------
838 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
839 dnl into CC.  This will not help with broken scripts that wrap the compiler
840 dnl with options, but eliminates a more common category of user confusion.
841 dnl
842 dnl In particular, it addresses the problem of being able to run the C
843 dnl preprocessor in a consistent manner.
844 dnl
845 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
846 dnl the nuisance of having inconsistent settings for compiler and preprocessor
847 dnl outweighs that limitation.
848 AC_DEFUN([CF_CC_ENV_FLAGS],
849 [
850 # This should have been defined by AC_PROG_CC
851 : "${CC:=cc}"
852
853 AC_MSG_CHECKING(\$CFLAGS variable)
854 case "x$CFLAGS" in
855 (*-[[IUD]]*)
856         AC_MSG_RESULT(broken)
857         AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
858         cf_flags="$CFLAGS"
859         CFLAGS=
860         for cf_arg in $cf_flags
861         do
862                 CF_ADD_CFLAGS($cf_arg)
863         done
864         ;;
865 (*)
866         AC_MSG_RESULT(ok)
867         ;;
868 esac
869
870 AC_MSG_CHECKING(\$CC variable)
871 case "$CC" in
872 (*[[\ \ ]]-*)
873         AC_MSG_RESULT(broken)
874         AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
875         # humor him...
876         cf_prog=`echo "$CC" | sed -e 's/        / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
877         cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
878         CC="$cf_prog"
879         for cf_arg in $cf_flags
880         do
881                 case "x$cf_arg" in
882                 (x-[[IUDfgOW]]*)
883                         CF_ADD_CFLAGS($cf_arg)
884                         ;;
885                 (*)
886                         CC="$CC $cf_arg"
887                         ;;
888                 esac
889         done
890         CF_VERBOSE(resulting CC: '$CC')
891         CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
892         CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
893         ;;
894 (*)
895         AC_MSG_RESULT(ok)
896         ;;
897 esac
898 ])dnl
899 dnl ---------------------------------------------------------------------------
900 dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
901 dnl ---------------
902 dnl Determine the default configuration into which we'll install ncurses.  This
903 dnl can be overridden by the user's command-line options.  There's two items to
904 dnl look for:
905 dnl     1. the prefix (e.g., /usr)
906 dnl     2. the header files (e.g., /usr/include/ncurses)
907 dnl We'll look for a previous installation of ncurses and use the same defaults.
908 dnl
909 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
910 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
911 dnl programs from a vendor's.
912 AC_DEFUN([CF_CFG_DEFAULTS],
913 [AC_REQUIRE([AC_PROG_FGREP])dnl
914
915 AC_MSG_CHECKING(for prefix)
916 if test "x$prefix" = "xNONE" ; then
917         case "$cf_cv_system_name" in
918                 # non-vendor systems don't have a conflict
919         (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
920                 prefix=/usr
921                 ;;
922         (*)     prefix=$ac_default_prefix
923                 ;;
924         esac
925 fi
926 AC_MSG_RESULT($prefix)
927
928 if test "x$prefix" = "xNONE" ; then
929 AC_MSG_CHECKING(for default include-directory)
930 test -n "$verbose" && echo 1>&AC_FD_MSG
931 for cf_symbol in \
932         "$includedir" \
933         "$includedir/ncurses" \
934         "$prefix/include" \
935         "$prefix/include/ncurses" \
936         /usr/local/include \
937         /usr/local/include/ncurses \
938         /usr/include \
939         /usr/include/ncurses
940 do
941         cf_dir=`eval echo "$cf_symbol"`
942         if test -f "$cf_dir/curses.h" ; then
943         if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
944                 includedir="$cf_symbol"
945                 test -n "$verbose"  && echo $ECHO_N "   found " 1>&AC_FD_MSG
946                 break
947         fi
948         fi
949         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
950 done
951 AC_MSG_RESULT($includedir)
952 fi
953 ])dnl
954 dnl ---------------------------------------------------------------------------
955 dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
956 dnl ----------
957 dnl Check if the terminal-capability database functions are available.  If not,
958 dnl ncurses has a much-reduced version.
959 AC_DEFUN([CF_CGETENT],[
960 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
961 AC_TRY_LINK([
962 #include <stdlib.h>],[
963         char temp[128];
964         char *buf = temp;
965         char *db_array = temp;
966         cgetent(&buf, &db_array, "vt100");
967         cgetcap(buf, "tc", '=');
968         cgetmatch(buf, "tc");
969         ],
970         [cf_cv_cgetent=yes],
971         [cf_cv_cgetent=no])
972 ])
973
974 if test "$cf_cv_cgetent" = yes
975 then
976         AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
977 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
978 AC_TRY_LINK([
979 #pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
980 #include <stdlib.h>],[
981         char temp[128];
982         char *buf = temp;
983 #ifndef _NETBSD_SOURCE                  /* given, since April 2004 in stdlib.h */
984         const char *db_array = temp;
985         cgetent(&buf, &db_array, "vt100");
986 #endif
987         cgetcap(buf, "tc", '=');
988         cgetmatch(buf, "tc");
989         ],
990         [cf_cv_cgetent_const=yes],
991         [cf_cv_cgetent_const=no])
992 ])
993         if test "$cf_cv_cgetent_const" = yes
994         then
995                 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
996         fi
997 fi
998 ])dnl
999 dnl ---------------------------------------------------------------------------
1000 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1001 dnl --------------
1002 dnl Check if we're accidentally using a cache from a different machine.
1003 dnl Derive the system name, as a check for reusing the autoconf cache.
1004 dnl
1005 dnl If we've packaged config.guess and config.sub, run that (since it does a
1006 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
1007 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1008 dnl which is useful in cross-compiles.
1009 dnl
1010 dnl Note: we would use $ac_config_sub, but that is one of the places where
1011 dnl autoconf 2.5x broke compatibility with autoconf 2.13
1012 AC_DEFUN([CF_CHECK_CACHE],
1013 [
1014 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1015         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1016         system_name="$host_os"
1017 else
1018         system_name="`(uname -s -r) 2>/dev/null`"
1019         if test -z "$system_name" ; then
1020                 system_name="`(hostname) 2>/dev/null`"
1021         fi
1022 fi
1023 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1024 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1025
1026 test -z "$system_name" && system_name="$cf_cv_system_name"
1027 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1028
1029 if test ".$system_name" != ".$cf_cv_system_name" ; then
1030         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1031         AC_MSG_ERROR("Please remove config.cache and try again.")
1032 fi
1033 ])dnl
1034 dnl ---------------------------------------------------------------------------
1035 dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
1036 dnl ----------------
1037 dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
1038 dnl variable.  Define a DECL_xxx symbol if we must declare it ourselves.
1039 dnl
1040 dnl $1 = the name to check
1041 dnl $2 = the assumed type
1042 AC_DEFUN([CF_CHECK_ENVIRON],
1043 [
1044 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1045     AC_TRY_COMPILE([
1046 #ifdef HAVE_STDLIB_H
1047 #include <stdlib.h>
1048 #endif
1049 #include <unistd.h> ],
1050     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
1051     [cf_cv_dcl_$1=yes],
1052     [cf_cv_dcl_$1=no])
1053 ])
1054
1055 if test "$cf_cv_dcl_$1" = no ; then
1056     CF_UPPER(cf_result,decl_$1)
1057     AC_DEFINE_UNQUOTED($cf_result)
1058 fi
1059
1060 # It's possible (for near-UNIX clones) that the data doesn't exist
1061 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1062 ])dnl
1063 dnl ---------------------------------------------------------------------------
1064 dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
1065 dnl --------------
1066 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
1067 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
1068 dnl ourselves.
1069 dnl
1070 dnl $1 = the name to check
1071 dnl $2 = the assumed type
1072 AC_DEFUN([CF_CHECK_ERRNO],
1073 [
1074 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1075         AC_TRY_COMPILE([
1076 #ifdef HAVE_STDLIB_H
1077 #include <stdlib.h>
1078 #endif
1079 #include <stdio.h>
1080 #include <sys/types.h>
1081 #include <errno.h> ],
1082         ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
1083         [cf_cv_dcl_$1=yes],
1084         [cf_cv_dcl_$1=no])
1085 ])
1086
1087 if test "$cf_cv_dcl_$1" = no ; then
1088         CF_UPPER(cf_result,decl_$1)
1089         AC_DEFINE_UNQUOTED($cf_result)
1090 fi
1091
1092 # It's possible (for near-UNIX clones) that the data doesn't exist
1093 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1094 ])dnl
1095 dnl ---------------------------------------------------------------------------
1096 dnl CF_CHECK_EXTERN_DATA version: 4 updated: 2015/04/18 08:56:57
1097 dnl --------------------
1098 dnl Check for existence of external data in the current set of libraries.  If
1099 dnl we can modify it, it's real enough.
1100 dnl $1 = the name to check
1101 dnl $2 = its type
1102 AC_DEFUN([CF_CHECK_EXTERN_DATA],
1103 [
1104 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
1105         AC_TRY_LINK([
1106 #undef $1
1107 extern $2 $1;
1108 ],
1109         [$1 = 2],
1110         [cf_cv_have_$1=yes],
1111         [cf_cv_have_$1=no])
1112 ])
1113
1114 if test "$cf_cv_have_$1" = yes ; then
1115         CF_UPPER(cf_result,have_$1)
1116         AC_DEFINE_UNQUOTED($cf_result)
1117 fi
1118
1119 ])dnl
1120 dnl ---------------------------------------------------------------------------
1121 dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
1122 dnl --------------------
1123 dnl Check whether the compiler understands -fvisibility=hidden
1124 dnl
1125 dnl $1 = compiler
1126 dnl $2 = compiler-flags variable name
1127 dnl $3 = cache variable to set
1128 AC_DEFUN([CF_CHECK_FVISIBILITY],[
1129 AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
1130     cf_save_cflags="[$]$2"
1131     $2="[$]$2 -fvisibility=hidden"
1132     AC_TRY_LINK([
1133 __attribute__ ((visibility("default"))) int somefunc() {return 42;}
1134         ],[
1135         if (somefunc()) return 1;
1136 ],
1137     [$3=yes],
1138     [$3=no])
1139     $2=$cf_save_cflags
1140 ])
1141 ])dnl
1142 dnl ---------------------------------------------------------------------------
1143 dnl CF_CHECK_GETENV version: 2 updated: 2021/01/02 17:09:14
1144 dnl ---------------
1145 dnl Check if repeated getenv calls return the same pointer, e.g., it does not
1146 dnl discard the previous pointer when returning a new one.
1147 AC_DEFUN([CF_CHECK_GETENV],
1148 [
1149 AC_REQUIRE([CF_CHECK_ENVIRON])
1150 AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
1151 AC_CHECK_FUNCS( putenv setenv strdup )
1152 AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
1153 AC_TRY_RUN([
1154 #include <stdlib.h>
1155 #include <unistd.h>
1156 #include <stdio.h>
1157 #include <string.h>
1158 #include <sys/types.h>
1159
1160 #if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
1161 extern char **environ;  /* POSIX, but some systems are not... */
1162 #endif
1163
1164 #if defined(HAVE_STRDUP)
1165 #define str_alloc(s) strdup(s)
1166 #else
1167 #define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
1168 #endif
1169
1170 static void set_value(const char *name, const char *value)
1171 {
1172 #if defined(HAVE_SETENV)
1173         setenv(name, value, 1);
1174 #elif defined(HAVE_PUTENV)
1175         char buffer[1024];
1176         sprintf(buffer, "%s=%s", name, value);
1177         putenv(str_alloc(buffer));
1178 #else
1179 #error neither putenv/setenv found
1180 #endif
1181 }
1182 int main(void)
1183 {
1184         int pass;
1185         size_t numenv, limit, j;
1186         char **mynames;
1187         char **myvalues;
1188         char **mypointer;
1189         char *equals;
1190         for (numenv = 0; environ[numenv]; ++numenv) ;
1191         limit = numenv + 10;
1192         mynames = (char **) calloc(limit + 1, sizeof(char *));
1193         myvalues = (char **) calloc(limit + 1, sizeof(char *));
1194         mypointer = (char **) calloc(limit + 1, sizeof(char *));
1195 #if defined(HAVE_ENVIRON)
1196         for (j = 0; environ[j]; ++j) {
1197                 mynames[j] = str_alloc(environ[j]);
1198                 equals = strchr(mynames[j], '=');
1199                 if (equals != 0) {
1200                         *equals++ = '\\0';
1201                         myvalues[j] = str_alloc(equals);
1202                 } else {
1203                         myvalues[j] = str_alloc("");
1204                 }
1205         }
1206 #endif
1207         for (j = numenv; j < limit; ++j) {
1208                 char name[80];
1209                 char value[80];
1210                 size_t found;
1211                 size_t k = 0;
1212                 do {
1213                         size_t jk;
1214                         found = 0;
1215                         sprintf(name, "TERM%lu", (unsigned long) k);
1216                         for (jk = 0; jk < j; ++jk) {
1217                                 if (!strcmp(name, mynames[jk])) {
1218                                         found = 1;
1219                                         ++k;
1220                                         break;
1221                                 }
1222                         }
1223                 } while (found);
1224                 sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
1225                 set_value(name, value);
1226                 mynames[j] = str_alloc(name);
1227                 myvalues[j] = str_alloc(value);
1228         }
1229         for (pass = 0; pass < 3; ++pass) {
1230                 for (j = 0; j < limit; ++j) {
1231                         char *value = getenv(mynames[j]);
1232                         if (pass) {
1233                                 if (value == 0) {
1234                                         fprintf(stderr, "getenv returned null for %s\\n", mynames[j]);
1235                                         ${cf_cv_main_return:-return}(1);
1236                                 } else if (value != mypointer[j]) {
1237                                         fprintf(stderr, "getenv returned different pointer for %s\\n", mynames[j]);
1238                                         ${cf_cv_main_return:-return}(1);
1239                                 } else if (strcmp(value, myvalues[j])) {
1240                                         fprintf(stderr, "getenv returned different value for %s\\n", mynames[j]);
1241                                         ${cf_cv_main_return:-return}(1);
1242                                 }
1243                         } else {
1244                                 size_t k;
1245                                 mypointer[j] = value;
1246                                 for (k = 0; k < j; ++k) {
1247                                         if (mypointer[j] == mypointer[k]) {
1248                                                 fprintf(stderr, "getenv returned same pointer for %s and %s\\n", mynames[j], mynames[k]);
1249                                                 ${cf_cv_main_return:-return}(1);
1250                                         }
1251                                 }
1252                         }
1253                 }
1254         }
1255         ${cf_cv_main_return:-return}(0);
1256 }
1257 ],
1258 [cf_cv_consistent_getenv=yes],
1259 [cf_cv_consistent_getenv=no],
1260 [cf_cv_consistent_getenv=unknown])
1261 ])
1262
1263 if test "x$cf_cv_consistent_getenv" = xno
1264 then
1265         AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
1266 fi
1267 ])dnl
1268 dnl ---------------------------------------------------------------------------
1269 dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
1270 dnl ---------------------
1271 AC_DEFUN([CF_CHECK_GNAT_VERSION],
1272 [
1273 AC_REQUIRE([CF_GNAT_VERSION])
1274 case "$cf_cv_gnat_version" in
1275 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1276         cf_cv_prog_gnat_correct=yes
1277         ;;
1278 (*)
1279         AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1280         cf_cv_prog_gnat_correct=no
1281         ;;
1282 esac
1283 ])
1284 dnl ---------------------------------------------------------------------------
1285 dnl CF_CHECK_GPM_WGETCH version: 6 updated: 2021/01/04 18:48:01
1286 dnl -------------------
1287 dnl Check if GPM is already linked with curses.  If so - and if the linkage
1288 dnl is not "weak" - warn about this because it can create problems linking
1289 dnl applications with ncurses.
1290 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
1291 AC_REQUIRE([AC_PROG_EGREP])dnl
1292
1293 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
1294
1295 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
1296 cf_cv_check_gpm_wgetch=unknown
1297 if test "$cross_compiling" != yes ; then
1298
1299 cat >conftest.$ac_ext <<CF_EOF
1300 #include <gpm.h>
1301 int main(void)
1302 {
1303         Gpm_Wgetch();
1304         ${cf_cv_main_return:-return}(0);
1305 }
1306 CF_EOF
1307
1308         cf_save_LIBS="$LIBS"
1309         # This only works if we can look at the symbol table.  If a shared
1310         # library is stripped for install, we cannot use that.  So we're forced
1311         # to rely on the static library, noting that some packagers may not
1312         # include it.
1313         LIBS="-static -lgpm -dynamic $LIBS"
1314         if AC_TRY_EVAL(ac_compile) ; then
1315                 if AC_TRY_EVAL(ac_link) ; then
1316                         cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[[vVwW]]\>'`"
1317                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
1318                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
1319                 fi
1320         fi
1321         rm -rf ./conftest*
1322         LIBS="$cf_save_LIBS"
1323 fi
1324 ])
1325
1326 if test "$cf_cv_check_gpm_wgetch" != yes ; then
1327         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
1328 fi
1329 ])])dnl
1330 dnl ---------------------------------------------------------------------------
1331 dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
1332 dnl ------------------------
1333 dnl Show the version of libtool
1334 dnl
1335 dnl Save the version in a cache variable - this is not entirely a good thing,
1336 dnl but the version string from libtool is very ugly, and for bug reports it
1337 dnl might be useful to have the original string.
1338 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1339 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1340 then
1341         AC_MSG_CHECKING(version of $LIBTOOL)
1342         CF_LIBTOOL_VERSION
1343         AC_MSG_RESULT($cf_cv_libtool_version)
1344         if test -z "$cf_cv_libtool_version" ; then
1345                 AC_MSG_ERROR(This is not GNU libtool)
1346         fi
1347 else
1348         AC_MSG_ERROR(GNU libtool has not been found)
1349 fi
1350 ])dnl
1351 dnl ---------------------------------------------------------------------------
1352 dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
1353 dnl ----------------
1354 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
1355 AC_DEFUN([CF_CHECK_WCHAR_H],[
1356 AC_CHECK_HEADERS( \
1357 wchar.h \
1358 wctype.h \
1359 )
1360 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
1361 AC_TRY_COMPILE(
1362 [
1363 #include <stdlib.h>
1364 #ifdef HAVE_WCHAR_H
1365 #include <wchar.h>
1366 #endif
1367 #ifdef HAVE_WCTYPE_H
1368 #include <wctype.h>
1369 #endif
1370 ],[
1371         wint_t foo = 0;
1372         int bar = iswpunct(foo)],
1373         [cf_cv_wchar_h_okay=yes],
1374         [cf_cv_wchar_h_okay=no])])
1375
1376 if test "$cf_cv_wchar_h_okay" = no
1377 then
1378         CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1379 fi
1380 ])dnl
1381 dnl ---------------------------------------------------------------------------
1382 dnl CF_CHECK_WCWIDTH_GRAPHICS version: 2 updated: 2021/01/02 17:09:14
1383 dnl -------------------------
1384 dnl Most "modern" terminal emulators are based to some degree on VT100, and
1385 dnl should support line-drawing.  Even with Unicode.  There is a problem.
1386 dnl
1387 dnl While most of the VT100 graphics characters were incorporated into Unicode,
1388 dnl all of those were combined into a page of useful graphics characters.
1389 dnl
1390 dnl So far, so good.
1391 dnl
1392 dnl However, while they are useful, there are other considerations.  CJK
1393 dnl is (because of poor device resolution) often rendered as double-width
1394 dnl characters.  So... for these generally-useful characters, what should
1395 dnl be the width (to make them consistent with adjacent characters)?
1396 dnl
1397 dnl The obvious choice would have been to make this locale-dependent, and use
1398 dnl wcwidth() to tell applications what the actual width is.  That was too
1399 dnl obvious.  Instead, we have a slew of "ambiguous-width" characters.
1400 dnl See for example
1401 dnl             http://www.unicode.org/reports/tr11/tr11-29.html
1402 dnl             http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
1403 dnl
1404 dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
1405 dnl more than 22,000 characters, with 1281 of those as ambiguous-width.  For
1406 dnl instance, it lists half (44/96) of the Latin-1 characters as
1407 dnl ambiguous-width.  Also, all of the box-characters at 0x2500 are ambiguous.
1408 dnl
1409 dnl What this means for the implementor is that on some systems wcwidth() can
1410 dnl give bad advice.  On Solaris, some of the ambiguous widths are returned as
1411 dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
1412 dnl characters).  These do not necessarily match the behavior of the terminal
1413 dnl emulator.  xterm, for instance, does an optional startup check to find if
1414 dnl this problem (or similar) exists with the system's locale tables, rejecting
1415 dnl them if they are too unreliable.
1416 AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
1417 AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
1418 cat >conftest.in <<CF_EOF
1419 -       VT100 symbols
1420 0x250c  upper left corner
1421 0x2514  lower left corner
1422 0x2510  upper right corner
1423 0x2518  lower right corner
1424 0x251c  tee pointing left
1425 0x2524  tee pointing right
1426 0x2534  tee pointing up
1427 0x252c  tee pointing down
1428 0x2500  horizontal line
1429 0x2502  vertical line
1430 0x253c  large plus or crossover
1431 0x23ba  scan line 1
1432 0x23bd  scan line 9
1433 0x25c6  diamond
1434 0x2592  checker board (stipple)
1435 0x00b0  degree symbol
1436 0x00b1  plus/minus
1437 0x00b7  bullet
1438 -       Teletype 5410v1 symbols
1439 0x2190  arrow pointing left
1440 0x2192  arrow pointing right
1441 0x2193  arrow pointing down
1442 0x2191  arrow pointing up
1443 0x2592  board of squares
1444 0x2603  lantern symbol
1445 0x25ae  solid square block
1446 -       these defaults were invented for ncurses
1447 0x23bb  scan line 3
1448 0x23bc  scan line 7
1449 0x2264  less-than-or-equal-to
1450 0x2265  greater-than-or-equal-to
1451 0x03c0  greek pi
1452 0x2260  not-equal
1453 0x00a3  pound-sterling symbol
1454 -       thick-line-drawing
1455 0x250f  upper left corner
1456 0x2517  lower left corner
1457 0x2513  upper right corner
1458 0x251b  lower right corner
1459 0x2523  tee pointing left
1460 0x252b  tee pointing right
1461 0x253b  tee pointing up
1462 0x2533  tee pointing down
1463 0x2501  horizontal line
1464 0x2503  vertical line
1465 0x254b  large plus or crossover
1466 -       double-line-drawing
1467 0x2554  upper left corner
1468 0x255a  lower left corner
1469 0x2557  upper right corner
1470 0x255d  lower right corner
1471 0x2563  tee pointing left
1472 0x2560  tee pointing right
1473 0x2569  tee pointing up
1474 0x2566  tee pointing down
1475 0x2550  horizontal line
1476 0x2551  vertical line
1477 0x256c  large plus or crossover
1478 CF_EOF
1479 AC_TRY_RUN([
1480 #include <locale.h>
1481 #include <stdio.h>
1482 #include <wchar.h>
1483
1484 #define MY_LEN 80
1485
1486 int
1487 main(void)
1488 {
1489         FILE *fp;
1490         int value;
1491         char buffer[MY_LEN + 1];
1492         char notes[MY_LEN + 1];
1493         int totals = 0;
1494         int passed = 0;
1495
1496         if (setlocale(LC_ALL, "en_US.UTF8") ||
1497                 setlocale(LC_ALL, "en_US.UTF-8") ||
1498                 setlocale(LC_ALL, "en_US.utf8") ||
1499                 setlocale(LC_ALL, "en_US.utf-8")) {
1500                 if ((fp = fopen("conftest.in", "r")) != 0) {
1501                         while (fgets(buffer, MY_LEN, fp) != 0) {
1502                                 if (*buffer == '-') {
1503                                         fprintf(stderr, "\\t%s", buffer);
1504                                 } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
1505                                         ++totals;
1506                                         if (wcwidth(value) == 1)
1507                                                 ++passed;
1508                                         fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
1509                                 } else {
1510                                         fprintf(stderr, "?\\t%s", buffer);
1511                                 }
1512                         }
1513                 }
1514         }
1515         fprintf(stderr, "%d/%d passed wcwidth/graphics check\\n", passed, totals);
1516         return (totals == passed) ? 0 : 1;
1517 }
1518 ],
1519 [cf_cv_wcwidth_graphics=yes],
1520 [cf_cv_wcwidth_graphics=no],
1521 [cf_cv_wcwidth_graphics=unknown])
1522 ])
1523 ])dnl
1524 dnl ---------------------------------------------------------------------------
1525 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1526 dnl -----------------
1527 dnl Check if the given compiler is really clang.  clang's C driver defines
1528 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1529 dnl not ignore some gcc options.
1530 dnl
1531 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1532 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1533 dnl the wrappers for gcc and g++ warnings.
1534 dnl
1535 dnl $1 = GCC (default) or GXX
1536 dnl $2 = CLANG_COMPILER (default)
1537 dnl $3 = CFLAGS (default) or CXXFLAGS
1538 AC_DEFUN([CF_CLANG_COMPILER],[
1539 ifelse([$2],,CLANG_COMPILER,[$2])=no
1540
1541 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1542         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1543         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1544         AC_TRY_COMPILE([],[
1545 #ifdef __clang__
1546 #else
1547 make an error
1548 #endif
1549 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1550 ],[])
1551         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1552         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1553 fi
1554
1555 CLANG_VERSION=none
1556
1557 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1558         case "$CC" in
1559         (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1560                 AC_MSG_WARN(replacing broken compiler alias $CC)
1561                 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1562                 CC=clang
1563                 ;;
1564         esac
1565
1566         AC_MSG_CHECKING(version of $CC)
1567         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.]].*//'`"
1568         test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1569         AC_MSG_RESULT($CLANG_VERSION)
1570
1571         for cf_clang_opt in \
1572                 -Qunused-arguments \
1573                 -Wno-error=implicit-function-declaration
1574         do
1575                 AC_MSG_CHECKING(if option $cf_clang_opt works)
1576                 cf_save_CFLAGS="$CFLAGS"
1577                 CFLAGS="$CFLAGS $cf_clang_opt"
1578                 AC_TRY_LINK([
1579                         #include <stdio.h>],[
1580                         printf("hello!\\n");],[
1581                         cf_clang_optok=yes],[
1582                         cf_clang_optok=no])
1583                 AC_MSG_RESULT($cf_clang_optok)
1584                 CFLAGS="$cf_save_CFLAGS"
1585                 if test "$cf_clang_optok" = yes; then
1586                         CF_VERBOSE(adding option $cf_clang_opt)
1587                         CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1588                 fi
1589         done
1590 fi
1591 ])
1592 dnl ---------------------------------------------------------------------------
1593 dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
1594 dnl -----------------
1595 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1596 dnl character-strings.
1597 dnl
1598 dnl It is ambiguous because the specification accommodated the pre-ANSI
1599 dnl compilers bundled by more than one vendor in lieu of providing a standard C
1600 dnl compiler other than by costly add-ons.  Because of this, the specification
1601 dnl did not take into account the use of const for telling the compiler that
1602 dnl string literals would be in readonly memory.
1603 dnl
1604 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1605 dnl let the compiler decide how to represent Xt's strings which were #define'd.
1606 dnl That does not solve the problem of using the block of Xt's strings which
1607 dnl are compiled into the library (and is less efficient than one might want).
1608 dnl
1609 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1610 dnl when compiling the library and compiling using the library, to tell the
1611 dnl compiler that String is const.
1612 AC_DEFUN([CF_CONST_X_STRING],
1613 [
1614 AC_REQUIRE([AC_PATH_XTRA])
1615
1616 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1617
1618 AC_TRY_COMPILE(
1619 [
1620 #include <stdlib.h>
1621 #include <X11/Intrinsic.h>
1622 ],
1623 [String foo = malloc(1); (void)foo],[
1624
1625 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1626         AC_TRY_COMPILE(
1627                 [
1628 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
1629 #undef  XTSTRINGDEFINES /* X11R5 and later */
1630 #include <stdlib.h>
1631 #include <X11/Intrinsic.h>
1632                 ],[String foo = malloc(1); *foo = 0],[
1633                         cf_cv_const_x_string=no
1634                 ],[
1635                         cf_cv_const_x_string=yes
1636                 ])
1637 ])
1638
1639 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1640
1641 case "$cf_cv_const_x_string" in
1642 (no)
1643         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1644         ;;
1645 (*)
1646         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1647         ;;
1648 esac
1649
1650 ])
1651 ])dnl
1652 dnl ---------------------------------------------------------------------------
1653 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1654 dnl -----------------
1655 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
1656 dnl is a late feature for the standard and is not in some recent compilers
1657 dnl (1999/9/11).
1658 AC_DEFUN([CF_CPP_PARAM_INIT],
1659 [
1660 if test -n "$CXX"; then
1661 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1662         AC_LANG_SAVE
1663         AC_LANG_CPLUSPLUS
1664         AC_TRY_RUN([
1665 class TEST {
1666 private:
1667         int value;
1668 public:
1669         TEST(int x = 1);
1670         ~TEST();
1671 };
1672
1673 TEST::TEST(int x = 1)   // some compilers do not like second initializer
1674 {
1675         value = x;
1676 }
1677 int main(void) { }
1678 ],
1679         [cf_cv_cpp_param_init=yes],
1680         [cf_cv_cpp_param_init=no],
1681         [cf_cv_cpp_param_init=unknown])
1682         AC_LANG_RESTORE
1683 ])
1684 fi
1685 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1686 ])dnl
1687 dnl ---------------------------------------------------------------------------
1688 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1689 dnl ------------------
1690 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
1691 dnl not be supported in g++ before 3.0
1692 AC_DEFUN([CF_CPP_STATIC_CAST],
1693 [
1694 if test -n "$CXX"; then
1695
1696 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1697         AC_LANG_SAVE
1698         AC_LANG_CPLUSPLUS
1699
1700         AC_TRY_COMPILE([
1701 class NCursesPanel
1702 {
1703 public:
1704   NCursesPanel(int nlines,
1705                int ncols,
1706                int begin_y = 0,
1707                int begin_x = 0)
1708   {
1709   }
1710   NCursesPanel();
1711   ~NCursesPanel();
1712 };
1713
1714 template<class T> class NCursesUserPanel : public NCursesPanel
1715 {
1716 public:
1717   NCursesUserPanel (int nlines,
1718                     int ncols,
1719                     int begin_y = 0,
1720                     int begin_x = 0,
1721                     const T* p_UserData = static_cast<T*>(0))
1722     : NCursesPanel (nlines, ncols, begin_y, begin_x)
1723   {
1724   };
1725   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1726   {
1727   };
1728
1729   virtual ~NCursesUserPanel() {};
1730 };
1731 ],[
1732         const char* p_UserData = static_cast<char*>(0)],
1733         [cf_cv_cpp_static_cast=yes],
1734         [cf_cv_cpp_static_cast=no])
1735
1736         AC_LANG_RESTORE
1737 ])
1738
1739 fi
1740
1741 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1742 ])dnl
1743 dnl ---------------------------------------------------------------------------
1744 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1745 dnl ---------------
1746 dnl Setup special archiver flags for given compilers.
1747 AC_DEFUN([CF_CXX_AR_FLAGS],[
1748         CXX_AR='$(AR)'
1749         CXX_ARFLAGS='$(ARFLAGS)'
1750         case "$cf_cv_system_name" in
1751         (irix*)
1752             if test "$GXX" != yes ; then
1753                 CXX_AR='$(CXX)'
1754                 CXX_ARFLAGS='-ar -o'
1755             fi
1756             ;;
1757         (sco3.2v5*)
1758             CXXLDFLAGS="-u main"
1759             ;;
1760         (solaris2*)
1761             if test "$GXX" != yes ; then
1762                 CXX_AR='$(CXX)'
1763                 CXX_ARFLAGS='-xar -o'
1764             fi
1765             ;;
1766         esac
1767         AC_SUBST(CXXLDFLAGS)
1768         AC_SUBST(CXX_AR)
1769         AC_SUBST(CXX_ARFLAGS)
1770 ])dnl
1771 dnl ---------------------------------------------------------------------------
1772 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1773 dnl -------------------------
1774 dnl For c++, check if iostream uses "std::" namespace.
1775 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1776 AC_CHECK_HEADERS(iostream)
1777 if test x"$ac_cv_header_iostream" = xyes ; then
1778         AC_MSG_CHECKING(if iostream uses std-namespace)
1779         AC_TRY_COMPILE([
1780 #include <iostream>
1781 using std::endl;
1782 using std::cerr;],[
1783 cerr << "testing" << endl;
1784 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1785         AC_MSG_RESULT($cf_iostream_namespace)
1786         if test "$cf_iostream_namespace" = yes ; then
1787                 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1788         fi
1789 fi
1790 ])dnl
1791 dnl ---------------------------------------------------------------------------
1792 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1793 dnl -----------
1794 dnl Check if the C compiler supports "inline".
1795 dnl $1 is the name of a shell variable to set if inline is supported
1796 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1797 AC_DEFUN([CF_C_INLINE],[
1798 AC_REQUIRE([CF_GCC_VERSION])
1799 AC_C_INLINE
1800 $1=
1801 if test "$ac_cv_c_inline" != no ; then
1802         $1=inline
1803         if test "$INTEL_COMPILER" = yes
1804         then
1805                 :
1806         elif test "$CLANG_COMPILER" = yes
1807         then
1808                 :
1809         elif test "$GCC" = yes
1810         then
1811                 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1812                 cf_save_CFLAGS=$CFLAGS
1813                 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1814                 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1815                 [${cf_cv_main_return:-return} foo()],
1816                 [cf_cv_gcc_inline=yes],
1817                 [cf_cv_gcc_inline=no])
1818                 CFLAGS=$cf_save_CFLAGS
1819                 ])
1820                 if test "$cf_cv_gcc_inline" = yes ; then
1821                         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1822                 fi
1823         fi
1824 fi
1825 AC_SUBST($1)
1826 ])dnl
1827 dnl ---------------------------------------------------------------------------
1828 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1829 dnl ----------
1830 dnl "dirname" is not portable, so we fake it with a shell script.
1831 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1832 dnl ---------------------------------------------------------------------------
1833 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1834 dnl ---------------
1835 AC_DEFUN([CF_DIRS_TO_MAKE],
1836 [
1837 DIRS_TO_MAKE="lib"
1838 for cf_item in $cf_list_models
1839 do
1840         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1841         for cf_item2 in $DIRS_TO_MAKE
1842         do
1843                 test "$cf_item2" = "$cf_subdir" && break
1844         done
1845         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1846 done
1847 for cf_dir in $DIRS_TO_MAKE
1848 do
1849         test ! -d "$cf_dir" && mkdir "$cf_dir"
1850 done
1851 AC_SUBST(DIRS_TO_MAKE)
1852 ])dnl
1853 dnl ---------------------------------------------------------------------------
1854 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1855 dnl ---------------
1856 dnl You can always use "make -n" to see the actual options, but it's hard to
1857 dnl pick out/analyze warning messages when the compile-line is long.
1858 dnl
1859 dnl Sets:
1860 dnl     ECHO_LT - symbol to control if libtool is verbose
1861 dnl     ECHO_LD - symbol to prefix "cc -o" lines
1862 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1863 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
1864 dnl     ECHO_CC - symbol to put before any "cc" line
1865 dnl
1866 AC_DEFUN([CF_DISABLE_ECHO],[
1867 AC_MSG_CHECKING(if you want to see long compiling messages)
1868 CF_ARG_DISABLE(echo,
1869         [  --disable-echo          do not display "compiling" commands],
1870         [
1871         ECHO_LT='--silent'
1872         ECHO_LD='@echo linking [$]@;'
1873         RULE_CC='@echo compiling [$]<'
1874         SHOW_CC='@echo compiling [$]@'
1875         ECHO_CC='@'
1876 ],[
1877         ECHO_LT=''
1878         ECHO_LD=''
1879         RULE_CC=''
1880         SHOW_CC=''
1881         ECHO_CC=''
1882 ])
1883 AC_MSG_RESULT($enableval)
1884 AC_SUBST(ECHO_LT)
1885 AC_SUBST(ECHO_LD)
1886 AC_SUBST(RULE_CC)
1887 AC_SUBST(SHOW_CC)
1888 AC_SUBST(ECHO_CC)
1889 ])dnl
1890 dnl ---------------------------------------------------------------------------
1891 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1892 dnl ------------------------
1893 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1894 AC_MSG_CHECKING(if we want to use GNAT projects)
1895 CF_ARG_DISABLE(gnat-projects,
1896         [  --disable-gnat-projects test: disable GNAT projects even if usable],
1897         [enable_gnat_projects=no],
1898         [enable_gnat_projects=yes])
1899 AC_MSG_RESULT($enable_gnat_projects)
1900 ])dnl
1901 dnl ---------------------------------------------------------------------------
1902 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
1903 dnl ----------------
1904 dnl Combine no-leak checks with the libraries or tools that are used for the
1905 dnl checks.
1906 AC_DEFUN([CF_DISABLE_LEAKS],[
1907
1908 AC_REQUIRE([CF_WITH_DMALLOC])
1909 AC_REQUIRE([CF_WITH_DBMALLOC])
1910 AC_REQUIRE([CF_WITH_VALGRIND])
1911
1912 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1913 AC_ARG_ENABLE(leaks,
1914         [  --disable-leaks         test: free permanent memory, analyze leaks],
1915         [enable_leaks=$enableval],
1916         [enable_leaks=yes])
1917 dnl with_no_leaks is more readable...
1918 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
1919 AC_MSG_RESULT($with_no_leaks)
1920
1921 if test "$enable_leaks" = no ; then
1922         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1923         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1924 fi
1925 ])dnl
1926 dnl ---------------------------------------------------------------------------
1927 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
1928 dnl --------------------------
1929 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1930 dnl the older "-version-info" feature.  The newer feature allows us to use
1931 dnl version numbering on shared libraries which make them compatible with
1932 dnl various systems.
1933 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1934 [
1935 AC_MSG_CHECKING(if libtool -version-number should be used)
1936 CF_ARG_DISABLE(libtool-version,
1937         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
1938         [cf_libtool_version=no],
1939         [cf_libtool_version=yes])
1940 AC_MSG_RESULT($cf_libtool_version)
1941
1942 if test "$cf_libtool_version" = yes ; then
1943         LIBTOOL_VERSION="-version-number"
1944 else
1945         LIBTOOL_VERSION="-version-info"
1946         case "x$VERSION" in
1947         (x)
1948                 AC_MSG_WARN(VERSION was not set)
1949                 ;;
1950         (x*.*.*)
1951                 ABI_VERSION="$VERSION"
1952                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1953                 ;;
1954         (x*:*:*)
1955                 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
1956                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1957                 ;;
1958         (*)
1959                 AC_MSG_WARN(unexpected VERSION value: $VERSION)
1960                 ;;
1961         esac
1962 fi
1963
1964 AC_SUBST(ABI_VERSION)
1965 AC_SUBST(LIBTOOL_VERSION)
1966 ])dnl
1967 dnl ---------------------------------------------------------------------------
1968 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
1969 dnl ---------------------
1970 dnl The rpath-hack makes it simpler to build programs, particularly with the
1971 dnl *BSD ports which may have essential libraries in unusual places.  But it
1972 dnl can interfere with building an executable for the base system.  Use this
1973 dnl option in that case.
1974 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1975 [
1976 AC_MSG_CHECKING(if rpath-hack should be disabled)
1977 CF_ARG_DISABLE(rpath-hack,
1978         [  --disable-rpath-hack    don't add rpath options for additional libraries],
1979         [enable_rpath_hack=no],
1980         [enable_rpath_hack=yes])
1981 dnl TODO - drop cf_disable_rpath_hack
1982 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
1983 AC_MSG_RESULT($cf_disable_rpath_hack)
1984
1985 if test "$enable_rpath_hack" = yes ; then
1986         CF_RPATH_HACK
1987 fi
1988 ])
1989 dnl ---------------------------------------------------------------------------
1990 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
1991 dnl -----------------------
1992 dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
1993 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
1994 dnl an unconditional feature.
1995 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
1996
1997 AC_MSG_CHECKING(if you want broken-linker support code)
1998 AC_ARG_ENABLE(broken_linker,
1999         [  --enable-broken_linker  compile with broken-linker support code],
2000         [with_broken_linker=$enableval],
2001         [with_broken_linker=no])
2002 AC_MSG_RESULT($with_broken_linker)
2003
2004 : "${BROKEN_LINKER:=0}"
2005 if test "x$with_broken_linker" = xyes ; then
2006         AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2007         BROKEN_LINKER=1
2008 fi
2009 AC_SUBST(BROKEN_LINKER)
2010 ])dnl
2011 dnl ---------------------------------------------------------------------------
2012 dnl CF_ENABLE_PC_FILES version: 13 updated: 2015/11/01 05:27:39
2013 dnl ------------------
2014 dnl This is the "--enable-pc-files" option, which is available if there is a
2015 dnl pkg-config configuration on the local machine.
2016 AC_DEFUN([CF_ENABLE_PC_FILES],[
2017 AC_REQUIRE([CF_PKG_CONFIG])
2018 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2019
2020 if test "x$PKG_CONFIG" != xnone
2021 then
2022         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2023 else
2024         AC_MSG_CHECKING(if we should install .pc files)
2025 fi
2026
2027 AC_ARG_ENABLE(pc-files,
2028         [  --enable-pc-files       generate and install .pc files for pkg-config],
2029         [enable_pc_files=$enableval],
2030         [enable_pc_files=no])
2031 AC_MSG_RESULT($enable_pc_files)
2032
2033 if test "x$enable_pc_files" != xno
2034 then
2035         MAKE_PC_FILES=
2036         case "x$PKG_CONFIG_LIBDIR" in
2037         (xno|xyes)
2038                 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2039                 ;;
2040         (*)
2041                 CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
2042                 ;;
2043         esac
2044 else
2045         MAKE_PC_FILES="#"
2046 fi
2047 AC_SUBST(MAKE_PC_FILES)
2048 ])dnl
2049 dnl ---------------------------------------------------------------------------
2050 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2051 dnl ---------------
2052 dnl Check if the rpath option should be used, setting cache variable
2053 dnl cf_cv_enable_rpath if so.
2054 AC_DEFUN([CF_ENABLE_RPATH],
2055 [
2056 AC_MSG_CHECKING(if rpath option should be used)
2057 AC_ARG_ENABLE(rpath,
2058 [  --enable-rpath          use rpath option when generating shared libraries],
2059 [cf_cv_enable_rpath=$enableval],
2060 [cf_cv_enable_rpath=no])
2061 AC_MSG_RESULT($cf_cv_enable_rpath)
2062 ])dnl
2063 dnl ---------------------------------------------------------------------------
2064 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2065 dnl ----------------------
2066 dnl On a few platforms, the compiler and/or loader nags with untruthful
2067 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2068 dnl and implying that most uses of the recommended alternatives are correct.
2069 dnl
2070 dnl Factually speaking, no one has actually counted the number of uses of these
2071 dnl functions versus the total of incorrect uses.  Samples of a few thousand
2072 dnl instances are meaningless compared to the hundreds of millions of lines of
2073 dnl existing C code.
2074 dnl
2075 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2076 dnl platforms, in implementations of varying quality.  Likewise, snprintf is
2077 dnl standard - but evolved through phases, and older implementations are likely
2078 dnl to yield surprising results, as documented in manpages on various systems.
2079 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2080 [
2081 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2082 AC_ARG_ENABLE(string-hacks,
2083         [  --enable-string-hacks   work around bogus compiler/loader warnings],
2084         [enable_string_hacks=$enableval],
2085         [enable_string_hacks=no])
2086 AC_MSG_RESULT($enable_string_hacks)
2087
2088 if test "x$enable_string_hacks" = "xyes"; then
2089         AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2090         AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2091         AC_CHECK_FUNC(strlcat,[
2092                 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2093                 ],[
2094                 AC_CHECK_LIB(bsd,strlcat,[
2095                         CF_ADD_LIB(bsd)
2096                         AC_CHECK_HEADERS(bsd/string.h)
2097                         AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2098                         ])
2099                 ])
2100         AC_CHECK_FUNCS( strlcpy snprintf )
2101 fi
2102 ])dnl
2103 dnl ---------------------------------------------------------------------------
2104 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2105 dnl ------------------
2106 dnl Configure-option to enable gcc warnings
2107 dnl
2108 dnl $1 = extra options to add, if supported
2109 dnl $2 = option for checking attributes.  By default, this is done when
2110 dnl      warnings are enabled.  For other values:
2111 dnl      yes: always do this, e.g., to use in generated library-headers
2112 dnl      no: never do this
2113 AC_DEFUN([CF_ENABLE_WARNINGS],[
2114 if test "$GCC" = yes || test "$GXX" = yes
2115 then
2116 CF_FIX_WARNINGS(CFLAGS)
2117 CF_FIX_WARNINGS(CPPFLAGS)
2118 CF_FIX_WARNINGS(LDFLAGS)
2119 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2120 CF_ARG_ENABLE(warnings,
2121         [  --enable-warnings       test: turn on gcc compiler warnings],
2122         [enable_warnings=yes],
2123         [enable_warnings=no])
2124 AC_MSG_RESULT($enable_warnings)
2125 if test "$enable_warnings" = "yes"
2126 then
2127         ifelse($2,,[CF_GCC_ATTRIBUTES])
2128         CF_GCC_WARNINGS($1)
2129 fi
2130 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2131 fi
2132 ])dnl
2133 dnl ---------------------------------------------------------------------------
2134 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2135 dnl --------
2136 dnl Check if 'errno' is declared in <errno.h>
2137 AC_DEFUN([CF_ERRNO],
2138 [
2139 CF_CHECK_ERRNO(errno)
2140 ])dnl
2141 dnl ---------------------------------------------------------------------------
2142 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2143 dnl ---------------
2144 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2145 dnl math.h and builtin.h, only for ncurses
2146 AC_DEFUN([CF_ETIP_DEFINES],
2147 [
2148 AC_MSG_CHECKING(for special defines needed for etip.h)
2149 cf_save_CXXFLAGS="$CXXFLAGS"
2150 cf_result="none"
2151
2152 # etip.h includes ncurses.h which includes ncurses_dll.h
2153 # But ncurses_dll.h is generated - fix here.
2154 test -d include || mkdir include
2155 test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' "${srcdir}/include/ncurses_dll.h.in" >include/ncurses_dll.h
2156
2157 for cf_math in "" MATH_H
2158 do
2159 for cf_excp in "" MATH_EXCEPTION
2160 do
2161         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2162         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2163         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2164 AC_TRY_COMPILE([
2165 #include <etip.h.in>
2166 ],[],[
2167         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2168         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2169         cf_result="$cf_math $cf_excp"
2170         break 2
2171 ],[])
2172 done
2173 done
2174 AC_MSG_RESULT($cf_result)
2175 CXXFLAGS="$cf_save_CXXFLAGS"
2176 ])
2177 dnl ---------------------------------------------------------------------------
2178 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2179 dnl ---------------
2180 dnl Find a library (specifically the linkage used in the code fragment),
2181 dnl searching for it if it is not already in the library path.
2182 dnl See also CF_ADD_SEARCHPATH.
2183 dnl
2184 dnl Parameters (4-on are optional):
2185 dnl     $1 = headers for library entrypoint
2186 dnl     $2 = code fragment for library entrypoint
2187 dnl     $3 = the library name without the "-l" option or ".so" suffix.
2188 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
2189 dnl     $5 = action to perform if not successful
2190 dnl     $6 = module name, if not the same as the library name
2191 dnl     $7 = extra libraries
2192 dnl
2193 dnl Sets these variables:
2194 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2195 dnl     $cf_cv_header_path_$3 - include-directory if needed
2196 dnl     $cf_cv_library_path_$3 - library-directory if needed
2197 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2198 AC_DEFUN([CF_FIND_LINKAGE],[
2199
2200 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2201 # will be set on completion of the AC_TRY_LINK below.
2202 cf_cv_header_path_$3=
2203 cf_cv_library_path_$3=
2204
2205 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2206
2207 cf_save_LIBS="$LIBS"
2208
2209 AC_TRY_LINK([$1],[$2],[
2210         cf_cv_find_linkage_$3=yes
2211         cf_cv_header_path_$3=/usr/include
2212         cf_cv_library_path_$3=/usr/lib
2213 ],[
2214
2215 LIBS="-l$3 $7 $cf_save_LIBS"
2216
2217 AC_TRY_LINK([$1],[$2],[
2218         cf_cv_find_linkage_$3=yes
2219         cf_cv_header_path_$3=/usr/include
2220         cf_cv_library_path_$3=/usr/lib
2221         cf_cv_library_file_$3="-l$3"
2222 ],[
2223         cf_cv_find_linkage_$3=no
2224         LIBS="$cf_save_LIBS"
2225
2226         CF_VERBOSE(find linkage for $3 library)
2227         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2228
2229         cf_save_CPPFLAGS="$CPPFLAGS"
2230         cf_test_CPPFLAGS="$CPPFLAGS"
2231
2232         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2233         for cf_cv_header_path_$3 in $cf_search
2234         do
2235                 if test -d "$cf_cv_header_path_$3" ; then
2236                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
2237                         CPPFLAGS="$cf_save_CPPFLAGS"
2238                         CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2239                         AC_TRY_COMPILE([$1],[$2],[
2240                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2241                                 cf_cv_find_linkage_$3=maybe
2242                                 cf_test_CPPFLAGS="$CPPFLAGS"
2243                                 break],[
2244                                 CPPFLAGS="$cf_save_CPPFLAGS"
2245                                 ])
2246                 fi
2247         done
2248
2249         if test "$cf_cv_find_linkage_$3" = maybe ; then
2250
2251                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2252
2253                 cf_save_LIBS="$LIBS"
2254                 cf_save_LDFLAGS="$LDFLAGS"
2255
2256                 ifelse([$6],,,[
2257                 CPPFLAGS="$cf_test_CPPFLAGS"
2258                 LIBS="-l$3 $7 $cf_save_LIBS"
2259                 AC_TRY_LINK([$1],[$2],[
2260                         CF_VERBOSE(... found $3 library in system)
2261                         cf_cv_find_linkage_$3=yes])
2262                         CPPFLAGS="$cf_save_CPPFLAGS"
2263                         LIBS="$cf_save_LIBS"
2264                         ])
2265
2266                 if test "$cf_cv_find_linkage_$3" != yes ; then
2267                         CF_LIBRARY_PATH(cf_search,$3)
2268                         for cf_cv_library_path_$3 in $cf_search
2269                         do
2270                                 if test -d "$cf_cv_library_path_$3" ; then
2271                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
2272                                         CPPFLAGS="$cf_test_CPPFLAGS"
2273                                         LIBS="-l$3 $7 $cf_save_LIBS"
2274                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2275                                         AC_TRY_LINK([$1],[$2],[
2276                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2277                                         cf_cv_find_linkage_$3=yes
2278                                         cf_cv_library_file_$3="-l$3"
2279                                         break],[
2280                                         CPPFLAGS="$cf_save_CPPFLAGS"
2281                                         LIBS="$cf_save_LIBS"
2282                                         LDFLAGS="$cf_save_LDFLAGS"
2283                                         ])
2284                                 fi
2285                         done
2286                         CPPFLAGS="$cf_save_CPPFLAGS"
2287                         LDFLAGS="$cf_save_LDFLAGS"
2288                 fi
2289
2290         else
2291                 cf_cv_find_linkage_$3=no
2292         fi
2293         ],$7)
2294 ])
2295
2296 LIBS="$cf_save_LIBS"
2297
2298 if test "$cf_cv_find_linkage_$3" = yes ; then
2299 ifelse([$4],,[
2300         CF_ADD_INCDIR($cf_cv_header_path_$3)
2301         CF_ADD_LIBDIR($cf_cv_library_path_$3)
2302         CF_ADD_LIB($3)
2303 ],[$4])
2304 else
2305 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2306 fi
2307 ])dnl
2308 dnl ---------------------------------------------------------------------------
2309 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2310 dnl ------------------
2311 dnl Find an include-directory with the given leaf-name.  This is useful for
2312 dnl example with FreeBSD ports, which use this convention to distinguish
2313 dnl different versions of the same port.
2314 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2315         CF_SUBDIR_PATH(cf_search,$1,include)
2316         for cf_item in $cf_search
2317         do
2318                 case "$cf_item" in
2319                 (*/$1)
2320                         CF_ADD_INCDIR($cf_item)
2321                         ;;
2322                 esac
2323         done
2324 ])dnl
2325 dnl ---------------------------------------------------------------------------
2326 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2327 dnl ------------------
2328 dnl Find a library-directory with the given leaf-name.  This is useful for
2329 dnl example with FreeBSD ports, which use this convention to distinguish
2330 dnl different versions of the same port.
2331 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2332         CF_SUBDIR_PATH(cf_search,$1,lib)
2333         for cf_item in $cf_search
2334         do
2335                 case "$cf_item" in
2336                 (*/$1)
2337                         CF_ADD_LIBDIR($cf_item)
2338                         ;;
2339                 esac
2340         done
2341 ])dnl
2342 dnl ---------------------------------------------------------------------------
2343 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2344 dnl -----------------
2345 dnl make ADAFLAGS consistent with CFLAGS
2346 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2347         AC_MSG_CHECKING(optimization options for ADAFLAGS)
2348         case "$CFLAGS" in
2349         (*-g*)
2350                 CF_ADD_ADAFLAGS(-g)
2351                 ;;
2352         esac
2353         case "$CFLAGS" in
2354         (*-O*)
2355                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
2356                 CF_ADD_ADAFLAGS($cf_O_flag)
2357                 ;;
2358         esac
2359         AC_MSG_RESULT($ADAFLAGS)
2360 ])dnl
2361 dnl ---------------------------------------------------------------------------
2362 dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
2363 dnl ---------------
2364 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
2365 dnl "-Werror" flags can interfere with configure-checks.  Those go into
2366 dnl EXTRA_CFLAGS.
2367 dnl
2368 dnl $1 = variable name to repair
2369 define([CF_FIX_WARNINGS],[
2370 if test "$GCC" = yes || test "$GXX" = yes
2371 then
2372         case [$]$1 in
2373         (*-Werror=*)
2374                 CF_VERBOSE(repairing $1: [$]$1)
2375                 cf_temp_flags=
2376                 for cf_temp_scan in [$]$1
2377                 do
2378                         case "x$cf_temp_scan" in
2379                         (x-Werror=*)
2380                                 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2381                                 ;;
2382                         (*)
2383                                 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2384                                 ;;
2385                         esac
2386                 done
2387                 $1="$cf_temp_flags"
2388                 CF_VERBOSE(... fixed [$]$1)
2389                 CF_VERBOSE(... extra $EXTRA_CFLAGS)
2390                 ;;
2391         esac
2392 fi
2393 AC_SUBST(EXTRA_CFLAGS)
2394 ])dnl
2395 dnl ---------------------------------------------------------------------------
2396 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
2397 dnl --------------
2398 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2399 dnl parameter.  POSIX ignores the "b", which c89 specified.  Some very old
2400 dnl systems do not accept it.
2401 AC_DEFUN([CF_FOPEN_BIN_R],[
2402 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2403         AC_TRY_RUN([
2404 #include <stdio.h>
2405 int main(void) {
2406         FILE *fp = fopen("conftest.tmp", "wb");
2407         int rc = 0;
2408         if (fp != 0) {
2409                 int p, q;
2410                 for (p = 0; p < 256; ++p) {
2411                         fputc(p, fp);
2412                 }
2413                 fclose(fp);
2414                 fp = fopen("conftest.tmp", "rb");
2415                 if (fp != 0) {
2416                         for (p = 0; p < 256; ++p) {
2417                                 q = fgetc(fp);
2418                                 if (q != p) {
2419                                         rc = 1;
2420                                         break;
2421                                 }
2422                         }
2423                 } else {
2424                         rc = 1;
2425                 }
2426         } else {
2427                 rc = 1;
2428         }
2429         ${cf_cv_main_return:-return} (rc);
2430 }
2431 ],
2432                 [cf_cv_fopen_bin_r=yes],
2433                 [cf_cv_fopen_bin_r=no],
2434                 [cf_cv_fopen_bin_r=unknown])
2435 ])
2436 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2437 ])dnl
2438 dnl ---------------------------------------------------------------------------
2439 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2440 dnl --------------
2441 dnl Forget that we saw the given tool.
2442 AC_DEFUN([CF_FORGET_TOOL],[
2443 unset ac_cv_prog_ac_ct_$1
2444 unset ac_ct_$1
2445 unset $1
2446 ])dnl
2447 dnl ---------------------------------------------------------------------------
2448 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2449 dnl -------------
2450 dnl Test for dlsym() and related functions, as well as libdl.
2451 dnl
2452 dnl Sets
2453 dnl     $cf_have_dlsym
2454 dnl     $cf_have_libdl
2455 AC_DEFUN([CF_FUNC_DLSYM],[
2456 cf_have_dlsym=no
2457 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2458
2459 cf_have_libdl=no
2460 AC_CHECK_LIB(dl,dlsym,[
2461         cf_have_dlsym=yes
2462         cf_have_libdl=yes])])
2463
2464 if test "$cf_have_dlsym" = yes ; then
2465         test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2466
2467         AC_MSG_CHECKING(whether able to link to dl*() functions)
2468         AC_TRY_LINK([#include <dlfcn.h>],[
2469                 void *obj;
2470                 if ((obj = dlopen("filename", 0)) != 0) {
2471                         if (dlsym(obj, "symbolname") == 0) {
2472                         dlclose(obj);
2473                         }
2474                 }],[
2475                 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2476                 AC_MSG_ERROR(Cannot link test program for libdl)])
2477         AC_MSG_RESULT(ok)
2478 else
2479         AC_MSG_ERROR(Cannot find dlsym function)
2480 fi
2481 ])
2482 dnl ---------------------------------------------------------------------------
2483 dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
2484 dnl ---------------
2485 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
2486 dnl is found, add our own version of memmove to the list of objects.
2487 AC_DEFUN([CF_FUNC_MEMMOVE],
2488 [
2489 AC_CHECK_FUNC(memmove,,[
2490 AC_CHECK_FUNC(bcopy,[
2491         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2492                 AC_TRY_RUN([
2493 int main(void) {
2494         static char data[] = "abcdefghijklmnopqrstuwwxyz";
2495         char temp[40];
2496         bcopy(data, temp, sizeof(data));
2497         bcopy(temp+10, temp, 15);
2498         bcopy(temp+5, temp+15, 10);
2499         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2500 }
2501                 ],
2502                 [cf_cv_good_bcopy=yes],
2503                 [cf_cv_good_bcopy=no],
2504                 [cf_cv_good_bcopy=unknown])
2505                 ])
2506         ],[cf_cv_good_bcopy=no])
2507         if test "$cf_cv_good_bcopy" = yes ; then
2508                 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2509         else
2510                 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2511         fi
2512 ])])dnl
2513 dnl ---------------------------------------------------------------------------
2514 dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
2515 dnl -----------------
2516 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
2517 dnl AIX 4.x, provide a non-working version.
2518 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2519 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2520 AC_TRY_RUN([
2521 #include <stdio.h>
2522 #include <errno.h>
2523 #include <time.h>
2524
2525 #ifdef HAVE_SYS_TIME_H
2526 #include <sys/time.h>
2527 #endif
2528
2529 int main(void) {
2530         struct timespec ts1, ts2;
2531         int code;
2532         ts1.tv_sec  = 0;
2533         ts1.tv_nsec = 750000000;
2534         ts2.tv_sec  = 0;
2535         ts2.tv_nsec = 0;
2536         errno = 0;
2537         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2538         ${cf_cv_main_return:-return}(code != 0);
2539 }
2540 ],
2541         [cf_cv_func_nanosleep=yes],
2542         [cf_cv_func_nanosleep=no],
2543         [cf_cv_func_nanosleep=unknown])])
2544
2545 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2546 ])
2547 dnl ---------------------------------------------------------------------------
2548 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2549 dnl ---------------
2550 dnl Check for openpty() function, along with <pty.h> header.  It may need the
2551 dnl "util" library as well.
2552 AC_DEFUN([CF_FUNC_OPENPTY],
2553 [
2554 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2555 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2556         cf_save_LIBS="$LIBS"
2557         test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2558         for cf_header in pty.h libutil.h util.h
2559         do
2560         AC_TRY_LINK([
2561 #include <$cf_header>
2562 ],[
2563         int x = openpty((int *)0, (int *)0, (char *)0,
2564                                    (struct termios *)0, (struct winsize *)0);
2565 ],[
2566                 cf_cv_func_openpty=$cf_header
2567                 break
2568 ],[
2569                 cf_cv_func_openpty=no
2570 ])
2571         done
2572         LIBS="$cf_save_LIBS"
2573 ])
2574 ])dnl
2575 dnl ---------------------------------------------------------------------------
2576 dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
2577 dnl ------------
2578 dnl See if the poll function really works.  Some platforms have poll(), but
2579 dnl it does not work for terminals or files.
2580 AC_DEFUN([CF_FUNC_POLL],[
2581 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2582 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2583 AC_TRY_RUN([
2584 #include <stdlib.h>
2585 #include <stdio.h>
2586 #include <unistd.h>
2587 #include <fcntl.h>
2588 #ifdef HAVE_POLL_H
2589 #include <poll.h>
2590 #else
2591 #include <sys/poll.h>
2592 #endif
2593 int main(void) {
2594         struct pollfd myfds;
2595         int ret;
2596
2597         /* check for Darwin bug with respect to "devices" */
2598         myfds.fd = open("/dev/null", 1);        /* O_WRONLY */
2599         if (myfds.fd < 0)
2600                 myfds.fd = 0;
2601         myfds.events = POLLIN;
2602         myfds.revents = 0;
2603
2604         ret = poll(&myfds, 1, 100);
2605
2606         if (ret < 0 || (myfds.revents & POLLNVAL)) {
2607                 ret = -1;
2608         } else {
2609                 int fd = 0;
2610                 if (!isatty(fd)) {
2611                         fd = open("/dev/tty", 2);       /* O_RDWR */
2612                 }
2613 #ifdef HAVE_POSIX_OPENPT
2614                 if (fd < 0) {
2615                         fd = posix_openpt(O_RDWR);
2616                 }
2617 #endif
2618
2619                 if (fd >= 0) {
2620                         /* also check with standard input */
2621                         myfds.fd = fd;
2622                         myfds.events = POLLIN;
2623                         myfds.revents = 0;
2624                         ret = poll(&myfds, 1, 100);
2625                 } else {
2626                         ret = -1;
2627                 }
2628         }
2629         ${cf_cv_main_return:-return}(ret < 0);
2630 }],
2631         [cf_cv_working_poll=yes],
2632         [cf_cv_working_poll=no],
2633         [cf_cv_working_poll=unknown])])
2634 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2635 ])dnl
2636 dnl ---------------------------------------------------------------------------
2637 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2638 dnl ---------------
2639 dnl Some old/broken variations define tcgetattr() only as a macro in
2640 dnl termio(s).h
2641 AC_DEFUN([CF_FUNC_TERMIOS],[
2642 AC_REQUIRE([CF_STRUCT_TERMIOS])
2643 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2644 AC_TRY_LINK([
2645 #include <sys/types.h>
2646 #ifdef HAVE_UNISTD_H
2647 #include <unistd.h>
2648 #endif
2649 #ifdef HAVE_TERMIOS_H
2650 #include <termios.h>
2651 #define TTY struct termios
2652 #else
2653 #ifdef HAVE_TERMIO_H
2654 #include <termio.h>
2655 #define TTY struct termio
2656 #endif
2657 #endif
2658 ],[
2659 TTY foo;
2660 tcgetattr(1, &foo);],
2661 [cf_cv_have_tcgetattr=yes],
2662 [cf_cv_have_tcgetattr=no])])
2663 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2664 ])dnl
2665 dnl ---------------------------------------------------------------------------
2666 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2667 dnl ---------------
2668 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2669 dnl versions of C.  It is in the GNU C library, and can often be simulated by
2670 dnl other functions.
2671 AC_DEFUN([CF_FUNC_VSSCANF],
2672 [
2673 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2674 AC_TRY_LINK([
2675 #include <stdarg.h>
2676 #include <stdio.h>],[
2677         va_list ap;
2678         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2679 AC_TRY_LINK([
2680 #include <stdarg.h>
2681 #include <stdio.h>],[
2682         FILE strbuf;
2683         char *str = "from";
2684
2685         strbuf._flag = _IOREAD;
2686         strbuf._ptr = strbuf._base = (unsigned char *) str;
2687         strbuf._cnt = strlen(str);
2688         strbuf._file = _NFILE;
2689         return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2690 AC_TRY_LINK([
2691 #include <stdarg.h>
2692 #include <stdio.h>],[
2693         FILE strbuf;
2694         char *str = "from";
2695
2696         strbuf._flag = _IOREAD;
2697         strbuf._ptr = strbuf._base = (unsigned char *) str;
2698         strbuf._cnt = strlen(str);
2699         strbuf._file = _NFILE;
2700         return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2701 cf_cv_func_vsscanf=no])])])])
2702
2703 case "$cf_cv_func_vsscanf" in
2704 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2705 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2706 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2707 esac
2708
2709 ])dnl
2710 dnl ---------------------------------------------------------------------------
2711 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2712 dnl -----------------
2713 dnl Test for availability of useful gcc __attribute__ directives to quiet
2714 dnl compiler warnings.  Though useful, not all are supported -- and contrary
2715 dnl to documentation, unrecognized directives cause older compilers to barf.
2716 AC_DEFUN([CF_GCC_ATTRIBUTES],
2717 [AC_REQUIRE([AC_PROG_FGREP])dnl
2718 AC_REQUIRE([CF_C11_NORETURN])dnl
2719
2720 if test "$GCC" = yes || test "$GXX" = yes
2721 then
2722 cat > conftest.i <<EOF
2723 #ifndef GCC_PRINTF
2724 #define GCC_PRINTF 0
2725 #endif
2726 #ifndef GCC_SCANF
2727 #define GCC_SCANF 0
2728 #endif
2729 #ifndef GCC_NORETURN
2730 #define GCC_NORETURN /* nothing */
2731 #endif
2732 #ifndef GCC_UNUSED
2733 #define GCC_UNUSED /* nothing */
2734 #endif
2735 EOF
2736 if test "$GCC" = yes
2737 then
2738         AC_CHECKING([for $CC __attribute__ directives])
2739 cat > "conftest.$ac_ext" <<EOF
2740 #line __oline__ "${as_me:-configure}"
2741 #include "confdefs.h"
2742 #include "conftest.h"
2743 #include "conftest.i"
2744 #if     GCC_PRINTF
2745 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2746 #else
2747 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2748 #endif
2749 #if     GCC_SCANF
2750 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
2751 #else
2752 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
2753 #endif
2754 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2755 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2756 extern GCC_NORETURN void foo(void);
2757 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2758 EOF
2759         cf_printf_attribute=no
2760         cf_scanf_attribute=no
2761         for cf_attribute in scanf printf unused noreturn
2762         do
2763                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2764                 cf_directive="__attribute__(($cf_attribute))"
2765                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2766
2767                 case "$cf_attribute" in
2768                 (printf)
2769                         cf_printf_attribute=yes
2770                         cat >conftest.h <<EOF
2771 #define GCC_$cf_ATTRIBUTE 1
2772 EOF
2773                         ;;
2774                 (scanf)
2775                         cf_scanf_attribute=yes
2776                         cat >conftest.h <<EOF
2777 #define GCC_$cf_ATTRIBUTE 1
2778 EOF
2779                         ;;
2780                 (*)
2781                         cat >conftest.h <<EOF
2782 #define GCC_$cf_ATTRIBUTE $cf_directive
2783 EOF
2784                         ;;
2785                 esac
2786
2787                 if AC_TRY_EVAL(ac_compile); then
2788                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2789                         cat conftest.h >>confdefs.h
2790                         case "$cf_attribute" in
2791                         (noreturn)
2792                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2793                                 ;;
2794                         (printf)
2795                                 cf_value='/* nothing */'
2796                                 if test "$cf_printf_attribute" != no ; then
2797                                         cf_value='__attribute__((format(printf,fmt,var)))'
2798                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2799                                 fi
2800                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2801                                 ;;
2802                         (scanf)
2803                                 cf_value='/* nothing */'
2804                                 if test "$cf_scanf_attribute" != no ; then
2805                                         cf_value='__attribute__((format(scanf,fmt,var)))'
2806                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2807                                 fi
2808                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2809                                 ;;
2810                         (unused)
2811                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2812                                 ;;
2813                         esac
2814                 fi
2815         done
2816 else
2817         ${FGREP-fgrep} define conftest.i >>confdefs.h
2818 fi
2819 rm -rf ./conftest*
2820 fi
2821 ])dnl
2822 dnl ---------------------------------------------------------------------------
2823 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
2824 dnl --------------
2825 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
2826 dnl compatible), attempt to determine if icc/clang is actually used.
2827 AC_DEFUN([CF_GCC_VERSION],[
2828 AC_REQUIRE([AC_PROG_CC])
2829 GCC_VERSION=none
2830 if test "$GCC" = yes ; then
2831         AC_MSG_CHECKING(version of $CC)
2832         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.]].*//'`"
2833         test -z "$GCC_VERSION" && GCC_VERSION=unknown
2834         AC_MSG_RESULT($GCC_VERSION)
2835 fi
2836 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2837 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2838 ])dnl
2839 dnl ---------------------------------------------------------------------------
2840 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
2841 dnl ---------------
2842 dnl Check if the compiler supports useful warning options.  There's a few that
2843 dnl we don't use, simply because they're too noisy:
2844 dnl
2845 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2846 dnl     -Winline (usually not worthwhile)
2847 dnl     -Wredundant-decls (system headers make this too noisy)
2848 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
2849 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
2850 dnl             is enabled for ncurses using "--enable-const".
2851 dnl     -pedantic
2852 dnl
2853 dnl Parameter:
2854 dnl     $1 is an optional list of gcc warning flags that a particular
2855 dnl             application might want to use, e.g., "no-unused" for
2856 dnl             -Wno-unused
2857 dnl Special:
2858 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
2859 dnl
2860 AC_DEFUN([CF_GCC_WARNINGS],
2861 [
2862 AC_REQUIRE([CF_GCC_VERSION])
2863 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
2864 cat > "conftest.$ac_ext" <<EOF
2865 #line __oline__ "${as_me:-configure}"
2866 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2867 EOF
2868 if test "$INTEL_COMPILER" = yes
2869 then
2870 # The "-wdXXX" options suppress warnings:
2871 # remark #1419: external declaration in primary source file
2872 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2873 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2874 # remark #193: zero used for undefined preprocessing identifier
2875 # remark #593: variable "curs_sb_left_arrow" was set but never used
2876 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2877 # remark #869: parameter "tw" was never referenced
2878 # remark #981: operands are evaluated in unspecified order
2879 # warning #279: controlling expression is constant
2880
2881         AC_CHECKING([for $CC warning options])
2882         cf_save_CFLAGS="$CFLAGS"
2883         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
2884         for cf_opt in \
2885                 wd1419 \
2886                 wd1683 \
2887                 wd1684 \
2888                 wd193 \
2889                 wd593 \
2890                 wd279 \
2891                 wd810 \
2892                 wd869 \
2893                 wd981
2894         do
2895                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2896                 if AC_TRY_EVAL(ac_compile); then
2897                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2898                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2899                 fi
2900         done
2901         CFLAGS="$cf_save_CFLAGS"
2902 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
2903 then
2904         AC_CHECKING([for $CC warning options])
2905         cf_save_CFLAGS="$CFLAGS"
2906         cf_warn_CONST=""
2907         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
2908         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
2909         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
2910         for cf_opt in W Wall \
2911                 Wbad-function-cast \
2912                 Wcast-align \
2913                 Wcast-qual \
2914                 Wdeclaration-after-statement \
2915                 Wextra \
2916                 Winline \
2917                 Wmissing-declarations \
2918                 Wmissing-prototypes \
2919                 Wnested-externs \
2920                 Wpointer-arith \
2921                 Wshadow \
2922                 Wstrict-prototypes \
2923                 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
2924         do
2925                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2926                 if AC_TRY_EVAL(ac_compile); then
2927                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2928                         case "$cf_opt" in
2929                         (Winline)
2930                                 case "$GCC_VERSION" in
2931                                 ([[34]].*)
2932                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2933                                         continue;;
2934                                 esac
2935                                 ;;
2936                         (Wpointer-arith)
2937                                 case "$GCC_VERSION" in
2938                                 ([[12]].*)
2939                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2940                                         continue;;
2941                                 esac
2942                                 ;;
2943                         esac
2944                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2945                 fi
2946         done
2947         CFLAGS="$cf_save_CFLAGS"
2948 fi
2949 rm -rf ./conftest*
2950
2951 AC_SUBST(EXTRA_CFLAGS)
2952 ])dnl
2953 dnl ---------------------------------------------------------------------------
2954 dnl CF_GETOPT_HEADER version: 7 updated: 2021/01/01 13:31:04
2955 dnl ----------------
2956 dnl Check for getopt's variables which are commonly defined in stdlib.h,
2957 dnl unistd.h or (nonstandard) in getopt.h
2958 AC_DEFUN([CF_GETOPT_HEADER],
2959 [
2960 AC_HAVE_HEADERS(unistd.h getopt.h)
2961 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
2962 cf_cv_getopt_header=none
2963 for cf_header in stdio.h stdlib.h unistd.h getopt.h
2964 do
2965 AC_TRY_COMPILE([
2966 #include <$cf_header>],
2967 [int x = optind; char *y = optarg],
2968 [cf_cv_getopt_header=$cf_header
2969  break])
2970 done
2971 ])
2972 if test "$cf_cv_getopt_header" != none ; then
2973         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
2974 fi
2975 if test "$cf_cv_getopt_header" = getopt.h ; then
2976         AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
2977 fi
2978 ])dnl
2979 dnl ---------------------------------------------------------------------------
2980 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
2981 dnl -----------------
2982 AC_DEFUN([CF_GNATPREP_OPT_T],[
2983 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
2984 cf_cv_gnatprep_opt_t=no
2985 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
2986 ])
2987 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
2988 AC_SUBST(GNATPREP_OPTS)
2989 ])dnl
2990 dnl ---------------------------------------------------------------------------
2991 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
2992 dnl ----------------
2993 AC_DEFUN([CF_GNAT_GENERICS],
2994 [
2995 AC_REQUIRE([CF_GNAT_VERSION])
2996
2997 AC_MSG_CHECKING(if GNAT supports generics)
2998 case "$cf_cv_gnat_version" in
2999 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3000         cf_gnat_generics=yes
3001         ;;
3002 (*)
3003         cf_gnat_generics=no
3004         ;;
3005 esac
3006 AC_MSG_RESULT($cf_gnat_generics)
3007
3008 if test "$cf_gnat_generics" = yes
3009 then
3010         cf_compile_generics=generics
3011         cf_generic_objects="\${GENOBJS}"
3012 else
3013         cf_compile_generics=
3014         cf_generic_objects=
3015 fi
3016
3017 AC_SUBST(cf_compile_generics)
3018 AC_SUBST(cf_generic_objects)
3019 ])dnl
3020 dnl ---------------------------------------------------------------------------
3021 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3022 dnl ----------------
3023 dnl GNAT projects are configured with ".gpr" project files.
3024 dnl GNAT libraries are a further development, using the project feature.
3025 AC_DEFUN([CF_GNAT_PROJECTS],
3026 [
3027 AC_REQUIRE([CF_GNAT_VERSION])
3028 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3029
3030 cf_gnat_libraries=no
3031 cf_gnat_projects=no
3032
3033 if test "$enable_gnat_projects" != no ; then
3034 AC_MSG_CHECKING(if GNAT supports project files)
3035 case "$cf_cv_gnat_version" in
3036 (3.[[0-9]]*)
3037         ;;
3038 (*)
3039         case "$cf_cv_system_name" in
3040         (cygwin*|msys*)
3041                 ;;
3042         (*)
3043                 rm -rf ./conftest* ./*~conftest*
3044                 if mkdir conftest.src conftest.bin conftest.lib
3045                 then
3046                         cd conftest.src
3047                         rm -rf ./conftest* ./*~conftest*
3048                         cat >>library.gpr <<CF_EOF
3049 project Library is
3050   Kind := External ("LIB_KIND");
3051   for Library_Name use "ConfTest";
3052   for Object_Dir use ".";
3053   for Library_ALI_Dir use External("LIBRARY_DIR");
3054   for Library_Version use External ("SONAME");
3055   for Library_Kind use Kind;
3056   for Library_Dir use External("BUILD_DIR");
3057   Source_Dir := External ("SOURCE_DIR");
3058   for Source_Dirs use (Source_Dir);
3059 end Library;
3060 CF_EOF
3061                         cat >>confpackage.ads <<CF_EOF
3062 package ConfPackage is
3063    procedure conftest;
3064 end ConfPackage;
3065 CF_EOF
3066                         cat >>confpackage.adb <<CF_EOF
3067 with Text_IO;
3068 package body ConfPackage is
3069    procedure conftest is
3070    begin
3071       Text_IO.Put ("Hello World");
3072       Text_IO.New_Line;
3073    end conftest;
3074 end ConfPackage;
3075 CF_EOF
3076                         if ( "$cf_ada_make" $ADAFLAGS \
3077                                         -Plibrary.gpr \
3078                                         -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3079                                         -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3080                                         -XSOURCE_DIR="`pwd`" \
3081                                         -XSONAME=libConfTest.so.1 \
3082                                         -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3083                                 cf_gnat_projects=yes
3084                         fi
3085                         cd ..
3086                 fi
3087                 if test -f conftest.lib/confpackage.ali
3088                 then
3089                         cf_gnat_libraries=yes
3090                 fi
3091                 rm -rf ./conftest* ./*~conftest*
3092                 ;;
3093         esac
3094         ;;
3095 esac
3096 AC_MSG_RESULT($cf_gnat_projects)
3097 fi # enable_gnat_projects
3098
3099 if test "$cf_gnat_projects" = yes
3100 then
3101         AC_MSG_CHECKING(if GNAT supports libraries)
3102         AC_MSG_RESULT($cf_gnat_libraries)
3103 fi
3104
3105 USE_OLD_MAKERULES=""
3106 USE_GNAT_PROJECTS="#"
3107 USE_GNAT_MAKE_GPR="#"
3108 USE_GNAT_GPRBUILD="#"
3109
3110 if test "$cf_gnat_projects" = yes
3111 then
3112         USE_OLD_MAKERULES="#"
3113         USE_GNAT_PROJECTS=""
3114         if test "$cf_cv_VERSION_GPRBUILD" != no
3115         then
3116                 USE_GNAT_GPRBUILD=""
3117         elif test "$cf_cv_VERSION_GNATMAKE" != no
3118         then
3119                 USE_GNAT_MAKE_GPR=""
3120         else
3121                 AC_MSG_WARN(use old makefile rules since tools are missing)
3122         fi
3123 fi
3124
3125 if test "$cf_gnat_libraries" = yes
3126 then
3127         USE_GNAT_LIBRARIES=""
3128 else
3129         USE_GNAT_LIBRARIES="#"
3130 fi
3131
3132 AC_SUBST(USE_OLD_MAKERULES)
3133 AC_SUBST(USE_GNAT_PROJECTS)
3134 AC_SUBST(USE_GNAT_LIBRARIES)
3135 AC_SUBST(USE_GNAT_MAKE_GPR)
3136 AC_SUBST(USE_GNAT_GPRBUILD)
3137 ])dnl
3138 dnl ---------------------------------------------------------------------------
3139 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3140 dnl --------------
3141 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
3142 dnl is noted that gnat may compile a tasking unit even for configurations which
3143 dnl fail at runtime.
3144 AC_DEFUN([CF_GNAT_SIGINT],[
3145 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3146 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3147
3148 package ConfTest is
3149
3150    pragma Warnings (Off);  --  the next pragma exists since 3.11p
3151    pragma Unreserve_All_Interrupts;
3152    pragma Warnings (On);
3153
3154    protected Process is
3155       procedure Stop;
3156       function Continue return Boolean;
3157       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3158    private
3159       Done : Boolean := False;
3160    end Process;
3161
3162 end ConfTest;],
3163 [package body ConfTest is
3164    protected body Process is
3165       procedure Stop is
3166       begin
3167          Done := True;
3168       end Stop;
3169       function Continue return Boolean is
3170       begin
3171          return not Done;
3172       end Continue;
3173    end Process;
3174 end ConfTest;],
3175         [cf_cv_gnat_sigint=yes],
3176         [cf_cv_gnat_sigint=no])])
3177
3178 if test "$cf_cv_gnat_sigint" = yes ; then
3179         USE_GNAT_SIGINT=""
3180 else
3181         USE_GNAT_SIGINT="#"
3182 fi
3183 AC_SUBST(USE_GNAT_SIGINT)
3184 ])dnl
3185 dnl ---------------------------------------------------------------------------
3186 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3187 dnl ----------------
3188 dnl Verify that a test program compiles/links with GNAT.
3189 dnl $cf_ada_make is set to the program that compiles/links
3190 dnl $ADAFLAGS may be set to the GNAT flags.
3191 dnl
3192 dnl $1 is the text of the spec
3193 dnl $2 is the text of the body
3194 dnl $3 is the shell command to execute if successful
3195 dnl $4 is the shell command to execute if not successful
3196 AC_DEFUN([CF_GNAT_TRY_LINK],
3197 [
3198 rm -rf ./conftest* ./*~conftest*
3199 cat >>conftest.ads <<CF_EOF
3200 $1
3201 CF_EOF
3202 cat >>conftest.adb <<CF_EOF
3203 $2
3204 CF_EOF
3205 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3206 ifelse($3,,      :,[      $3])
3207 ifelse($4,,,[else
3208    $4])
3209 fi
3210 rm -rf ./conftest* ./*~conftest*
3211 ])dnl
3212 dnl ---------------------------------------------------------------------------
3213 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3214 dnl ---------------
3215 dnl Verify that a test program compiles and runs with GNAT
3216 dnl $cf_ada_make is set to the program that compiles/links
3217 dnl $ADAFLAGS may be set to the GNAT flags.
3218 dnl
3219 dnl $1 is the text of the spec
3220 dnl $2 is the text of the body
3221 dnl $3 is the shell command to execute if successful
3222 dnl $4 is the shell command to execute if not successful
3223 AC_DEFUN([CF_GNAT_TRY_RUN],
3224 [
3225 rm -rf ./conftest* ./*~conftest*
3226 cat >>conftest.ads <<CF_EOF
3227 $1
3228 CF_EOF
3229 cat >>conftest.adb <<CF_EOF
3230 $2
3231 CF_EOF
3232 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3233    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3234 ifelse($3,,      :,[      $3])
3235 ifelse($4,,,[   else
3236       $4])
3237    fi
3238 ifelse($4,,,[else
3239    $4])
3240 fi
3241 rm -rf ./conftest* ./*~conftest*
3242 ])dnl
3243 dnl ---------------------------------------------------------------------------
3244 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3245 dnl ---------------
3246 dnl $1 = cache variable to update
3247 dnl $2 = program name
3248 dnl Verify version of GNAT or related tool
3249 AC_DEFUN([CF_GNAT_VERSION],
3250 [
3251 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3252 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3253         grep '[[0-9]].[[0-9]][[0-9]]*' |\
3254         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3255 ])
3256 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3257 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3258 ])dnl
3259 dnl ---------------------------------------------------------------------------
3260 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3261 dnl -------------
3262 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3263 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
3264 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3265 dnl since it is interwoven with GNU extensions.
3266 dnl
3267 dnl Well, yes we could work around it...
3268 dnl
3269 dnl Parameters:
3270 dnl     $1 is the nominal value for _XOPEN_SOURCE
3271 AC_DEFUN([CF_GNU_SOURCE],
3272 [
3273 cf_gnu_xopen_source=ifelse($1,,500,$1)
3274
3275 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3276 AC_TRY_COMPILE([#include <sys/types.h>],[
3277         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3278                 return 0;
3279         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3280                 return 0;
3281         #else
3282         #       error not GNU C library
3283         #endif],
3284         [cf_cv_gnu_library=yes],
3285         [cf_cv_gnu_library=no])
3286 ])
3287
3288 if test x$cf_cv_gnu_library = xyes; then
3289
3290         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3291         # was changed to help a little.  newlib incorporated the change about 4
3292         # years later.
3293         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3294                 cf_save="$CPPFLAGS"
3295                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3296                 AC_TRY_COMPILE([#include <sys/types.h>],[
3297                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3298                                 return 0;
3299                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3300                                 return 0;
3301                         #else
3302                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3303                         #endif],
3304                         [cf_cv_gnu_library_219=yes],
3305                         [cf_cv_gnu_library_219=no])
3306                 CPPFLAGS="$cf_save"
3307         ])
3308
3309         if test "x$cf_cv_gnu_library_219" = xyes; then
3310                 cf_save="$CPPFLAGS"
3311                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3312                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3313                         AC_TRY_COMPILE([
3314                                 #include <limits.h>
3315                                 #include <sys/types.h>
3316                                 ],[
3317                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3318                                         return 0;
3319                                 #else
3320                                 #       error GNU C library is too old
3321                                 #endif],
3322                                 [cf_cv_gnu_dftsrc_219=yes],
3323                                 [cf_cv_gnu_dftsrc_219=no])
3324                         ])
3325                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3326         else
3327                 cf_cv_gnu_dftsrc_219=maybe
3328         fi
3329
3330         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3331
3332                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3333                 AC_TRY_COMPILE([#include <sys/types.h>],[
3334                         #ifndef _XOPEN_SOURCE
3335                         #error  expected _XOPEN_SOURCE to be defined
3336                         #endif],
3337                         [cf_cv_gnu_source=no],
3338                         [cf_save="$CPPFLAGS"
3339                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
3340                          AC_TRY_COMPILE([#include <sys/types.h>],[
3341                                 #ifdef _XOPEN_SOURCE
3342                                 #error  expected _XOPEN_SOURCE to be undefined
3343                                 #endif],
3344                                 [cf_cv_gnu_source=no],
3345                                 [cf_cv_gnu_source=yes])
3346                         CPPFLAGS="$cf_save"
3347                         ])
3348                 ])
3349
3350                 if test "$cf_cv_gnu_source" = yes
3351                 then
3352                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3353                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3354                         AC_TRY_COMPILE([#include <sys/types.h>],[
3355                                 #ifdef _DEFAULT_SOURCE
3356                                 #error  expected _DEFAULT_SOURCE to be undefined
3357                                 #endif],
3358                                 [cf_cv_default_source=no],
3359                                 [cf_cv_default_source=yes])
3360                         ])
3361                         if test "$cf_cv_default_source" = yes
3362                         then
3363                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3364                         fi
3365                 fi
3366         fi
3367
3368 fi
3369 ])dnl
3370 dnl ---------------------------------------------------------------------------
3371 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3372 dnl --------------
3373 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3374 dnl problem :-).  If we have the compiler but no library, we'll be able to
3375 dnl configure, but won't be able to build the c++ demo program.
3376 AC_DEFUN([CF_GPP_LIBRARY],
3377 [
3378 cf_cxx_library=unknown
3379 case "$cf_cv_system_name" in
3380 (os2*)
3381         cf_gpp_libname=gpp
3382         ;;
3383 (*)
3384         cf_gpp_libname=g++
3385         ;;
3386 esac
3387 if test "$GXX" = yes; then
3388         AC_MSG_CHECKING([for lib$cf_gpp_libname])
3389         cf_save="$LIBS"
3390         CF_ADD_LIB($cf_gpp_libname)
3391         AC_TRY_LINK([
3392 #include <$cf_gpp_libname/builtin.h>
3393         ],
3394         [two_arg_error_handler_t foo2 = lib_error_handler],
3395         [cf_cxx_library=yes
3396          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3397          if test "$cf_gpp_libname" = cpp ; then
3398             AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3399          else
3400             AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3401          fi],
3402         [AC_TRY_LINK([
3403 #include <builtin.h>
3404         ],
3405         [two_arg_error_handler_t foo2 = lib_error_handler],
3406         [cf_cxx_library=yes
3407          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3408          AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3409         [cf_cxx_library=no])])
3410         LIBS="$cf_save"
3411         AC_MSG_RESULT($cf_cxx_library)
3412 fi
3413 ])dnl
3414 dnl ---------------------------------------------------------------------------
3415 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3416 dnl --------------
3417 dnl Check for version of g++
3418 AC_DEFUN([CF_GXX_VERSION],[
3419 AC_REQUIRE([AC_PROG_CPP])
3420 GXX_VERSION=none
3421 if test "$GXX" = yes; then
3422         AC_MSG_CHECKING(version of ${CXX:-g++})
3423         GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3424         if test -z "$GXX_VERSION"
3425         then
3426                 GXX_VERSION=unknown
3427                 GXX=no
3428         fi
3429         AC_MSG_RESULT($GXX_VERSION)
3430 fi
3431 ])dnl
3432 dnl ---------------------------------------------------------------------------
3433 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3434 dnl ---------------
3435 dnl Check if the compiler supports useful warning options.
3436 dnl
3437 dnl Most of gcc's options apply to g++, except:
3438 dnl     -Wbad-function-cast
3439 dnl     -Wmissing-declarations
3440 dnl     -Wnested-externs
3441 dnl
3442 dnl Omit a few (for now):
3443 dnl     -Winline
3444 dnl
3445 dnl Parameter:
3446 dnl     $1 is an optional list of g++ warning flags that a particular
3447 dnl             application might want to use, e.g., "no-unused" for
3448 dnl             -Wno-unused
3449 dnl Special:
3450 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
3451 dnl
3452 AC_DEFUN([CF_GXX_WARNINGS],
3453 [
3454
3455 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3456 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3457
3458 AC_REQUIRE([CF_GXX_VERSION])
3459
3460 AC_LANG_SAVE
3461 AC_LANG_CPLUSPLUS
3462
3463 cat > conftest.$ac_ext <<EOF
3464 #line __oline__ "configure"
3465 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3466 EOF
3467
3468 if test "$INTEL_CPLUSPLUS" = yes
3469 then
3470 # The "-wdXXX" options suppress warnings:
3471 # remark #1419: external declaration in primary source file
3472 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3473 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3474 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3475 # remark #193: zero used for undefined preprocessing identifier
3476 # remark #593: variable "curs_sb_left_arrow" was set but never used
3477 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3478 # remark #869: parameter "tw" was never referenced
3479 # remark #981: operands are evaluated in unspecified order
3480 # warning #269: invalid format string conversion
3481
3482         AC_CHECKING([for $CC warning options])
3483         cf_save_CXXFLAGS="$CXXFLAGS"
3484         EXTRA_CXXFLAGS="-Wall"
3485         for cf_opt in \
3486                 wd1419 \
3487                 wd1682 \
3488                 wd1683 \
3489                 wd1684 \
3490                 wd193 \
3491                 wd279 \
3492                 wd593 \
3493                 wd810 \
3494                 wd869 \
3495                 wd981
3496         do
3497                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3498                 if AC_TRY_EVAL(ac_compile); then
3499                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3500                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3501                 fi
3502         done
3503         CXXFLAGS="$cf_save_CXXFLAGS"
3504
3505 elif test "$GXX" = yes
3506 then
3507         AC_CHECKING([for $CXX warning options])
3508         cf_save_CXXFLAGS="$CXXFLAGS"
3509         EXTRA_CXXFLAGS="-W -Wall"
3510         cf_gxx_extra_warnings=""
3511         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3512         case "$GXX_VERSION" in
3513         ([[1-2]].*)
3514                 ;;
3515         (*)
3516                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3517                 ;;
3518         esac
3519         for cf_opt in \
3520                 Wabi \
3521                 fabi-version=0 \
3522                 Wextra \
3523                 Wignored-qualifiers \
3524                 Wlogical-op \
3525                 Woverloaded-virtual \
3526                 Wsign-promo \
3527                 Wsynth \
3528                 Wold-style-cast \
3529                 Wcast-align \
3530                 Wcast-qual \
3531                 Wpointer-arith \
3532                 Wshadow \
3533                 Wundef $cf_gxx_extra_warnings $1
3534         do
3535                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3536                 if AC_TRY_EVAL(ac_compile); then
3537                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3538                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3539                 else
3540                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3541                 fi
3542         done
3543         CXXFLAGS="$cf_save_CXXFLAGS"
3544 fi
3545
3546 rm -rf ./conftest*
3547 AC_LANG_RESTORE
3548 AC_SUBST(EXTRA_CXXFLAGS)
3549 ])dnl
3550 dnl ---------------------------------------------------------------------------
3551 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3552 dnl ------------
3553 dnl Look for an instance of the Berkeley hashed database.
3554 dnl
3555 dnl $1 = optional parameter, to specify install-prefix for the database.
3556 AC_DEFUN([CF_HASHED_DB],
3557 [
3558 ifelse([$1],,,[
3559 case $1 in
3560 (yes|*able*)
3561         ;;
3562 (*)
3563         if test -d "$1" ; then
3564                 CF_ADD_INCDIR($1/include)
3565                 CF_ADD_LIBDIR($1/lib)
3566         else
3567                 case "$1" in
3568                 (./*|../*|/*)
3569                         AC_MSG_WARN(no such directory $1)
3570                         ;;
3571                 (*)
3572                         CF_FIND_SUB_INCDIR($1)
3573                         CF_FIND_SUB_LIBDIR($1)
3574                         ;;
3575                 esac
3576         fi
3577 esac
3578 ])
3579 AC_CHECK_HEADER(db.h,[
3580 CF_HASHED_DB_VERSION
3581 if test "$cf_cv_hashed_db_version" = unknown ; then
3582         AC_MSG_ERROR(Cannot determine version of db)
3583 else
3584         CF_HASHED_DB_LIBS
3585         if test "$cf_cv_hashed_db_libs" = unknown ; then
3586                 AC_MSG_ERROR(Cannot determine library for db)
3587         elif test "$cf_cv_hashed_db_libs" != default ; then
3588                 CF_ADD_LIB($cf_cv_hashed_db_libs)
3589         fi
3590 fi
3591 ],[
3592         AC_MSG_ERROR(Cannot find db.h)
3593 ])
3594 ])dnl
3595 dnl ---------------------------------------------------------------------------
3596 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3597 dnl -----------------
3598 dnl Given that we have the header and version for hashed database, find the
3599 dnl library information.
3600 AC_DEFUN([CF_HASHED_DB_LIBS],
3601 [
3602 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3603 cf_cv_hashed_db_libs=unknown
3604 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3605 do
3606         cf_save_libs="$LIBS"
3607         if test -n "$cf_db_libs"; then
3608                 CF_ADD_LIB($cf_db_libs)
3609         fi
3610         CF_MSG_LOG(checking for library $cf_db_libs)
3611         AC_TRY_LINK([
3612 $ac_includes_default
3613 #include <db.h>
3614 ],[
3615         char *path = "/tmp/foo";
3616 #ifdef DB_VERSION_MAJOR
3617 #if DB_VERSION_MAJOR >= 4
3618         DB *result = 0;
3619         db_create(&result, NULL, 0);
3620         result->open(result,
3621                 NULL,
3622                 path,
3623                 path,
3624                 DB_HASH,
3625                 DB_CREATE,
3626                 0644);
3627 #elif DB_VERSION_MAJOR >= 3
3628         DB *result = 0;
3629         db_create(&result, NULL, 0);
3630         result->open(result,
3631                 path,
3632                 path,
3633                 DB_HASH,
3634                 DB_CREATE,
3635                 0644);
3636 #elif DB_VERSION_MAJOR >= 2
3637         DB *result = 0;
3638         db_open(path,
3639                 DB_HASH,
3640                 DB_CREATE,
3641                 0644,
3642                 (DB_ENV *) 0,
3643                 (DB_INFO *) 0,
3644                 &result);
3645 #endif /* DB_VERSION_MAJOR */
3646 #else
3647         DB *result = dbopen(path,
3648                      2,
3649                      0644,
3650                      DB_HASH,
3651                      0);
3652 #endif
3653         ${cf_cv_main_return:-return}(result != 0)
3654 ],[
3655         if test -n "$cf_db_libs" ; then
3656                 cf_cv_hashed_db_libs=$cf_db_libs
3657         else
3658                 cf_cv_hashed_db_libs=default
3659         fi
3660         LIBS="$cf_save_libs"
3661         break
3662 ])
3663         LIBS="$cf_save_libs"
3664 done
3665 ])
3666 ])dnl
3667 dnl ---------------------------------------------------------------------------
3668 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3669 dnl --------------------
3670 dnl Given that we have the header file for hashed database, find the version
3671 dnl information.
3672 AC_DEFUN([CF_HASHED_DB_VERSION],
3673 [
3674 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3675 cf_cv_hashed_db_version=unknown
3676
3677 for cf_db_version in 1 2 3 4 5 6
3678 do
3679         CF_MSG_LOG(checking for db version $cf_db_version)
3680         AC_TRY_COMPILE([
3681 $ac_includes_default
3682 #include <db.h>
3683
3684 #ifdef DB_VERSION_MAJOR
3685         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3686 #if $cf_db_version == DB_VERSION_MAJOR
3687         /* ok */
3688 #else
3689         make an error
3690 #endif
3691 #else
3692 #if $cf_db_version == 1
3693         /* ok: assuming this is DB 1.8.5 */
3694 #else
3695         make an error
3696 #endif
3697 #endif
3698 ],[DBT *foo = 0],[
3699         cf_cv_hashed_db_version=$cf_db_version
3700         break
3701         ])
3702 done
3703 ])
3704 ])dnl
3705 dnl ---------------------------------------------------------------------------
3706 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3707 dnl --------------
3708 dnl Construct a search-list of directories for a nonstandard header-file
3709 dnl
3710 dnl Parameters
3711 dnl     $1 = the variable to return as result
3712 dnl     $2 = the package name
3713 AC_DEFUN([CF_HEADER_PATH],
3714 [
3715 $1=
3716
3717 # collect the current set of include-directories from compiler flags
3718 cf_header_path_list=""
3719 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3720         for cf_header_path in $CPPFLAGS $CFLAGS
3721         do
3722                 case "$cf_header_path" in
3723                 (-I*)
3724                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
3725                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
3726                         cf_header_path_list="$cf_header_path_list [$]$1"
3727                         ;;
3728                 esac
3729         done
3730 fi
3731
3732 # add the variations for the package we are looking for
3733 CF_SUBDIR_PATH($1,$2,include)
3734
3735 test "$includedir" != NONE && \
3736 test "$includedir" != "/usr/include" && \
3737 test -d "$includedir" && {
3738         test -d "$includedir" &&    $1="[$]$1 $includedir"
3739         test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
3740 }
3741
3742 test "$oldincludedir" != NONE && \
3743 test "$oldincludedir" != "/usr/include" && \
3744 test -d "$oldincludedir" && {
3745         test -d "$oldincludedir"    && $1="[$]$1 $oldincludedir"
3746         test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
3747 }
3748
3749 $1="[$]$1 $cf_header_path_list"
3750 ])dnl
3751 dnl ---------------------------------------------------------------------------
3752 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
3753 dnl ---------------
3754 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
3755 AC_DEFUN([CF_HELP_MESSAGE],
3756 [CF_ACVERSION_CHECK(2.53,[],[
3757 AC_DIVERT_HELP($1)])dnl
3758 ])dnl
3759 dnl ---------------------------------------------------------------------------
3760 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
3761 dnl ---------------
3762 dnl Construct the list of include-options according to whether we're building
3763 dnl in the source directory or using '--srcdir=DIR' option.
3764 AC_DEFUN([CF_INCLUDE_DIRS],
3765 [
3766 if test "$srcdir" != "."; then
3767         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
3768 fi
3769 CPPFLAGS="-I../include $CPPFLAGS"
3770 if test "$srcdir" != "."; then
3771         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
3772 fi
3773 CPPFLAGS="-I. $CPPFLAGS"
3774 AC_SUBST(CPPFLAGS)
3775 ])dnl
3776 dnl ---------------------------------------------------------------------------
3777 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
3778 dnl ---------------
3779 dnl prompt for/fill-in useful install-program options
3780 AC_DEFUN([CF_INSTALL_OPTS],
3781 [
3782 CF_INSTALL_OPT_S
3783 CF_INSTALL_OPT_P
3784 CF_INSTALL_OPT_O
3785 ])dnl
3786 dnl ---------------------------------------------------------------------------
3787 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
3788 dnl ----------------
3789 dnl Almost all "install" programs default to the current user's ownership.
3790 dnl Almost - MINIX is an exception.
3791 AC_DEFUN([CF_INSTALL_OPT_O],
3792 [
3793 AC_MSG_CHECKING(if install needs to be told about ownership)
3794 case `$ac_config_guess` in
3795 (*minix)
3796         with_install_o=yes
3797         ;;
3798 (*)
3799         with_install_o=no
3800         ;;
3801 esac
3802
3803 AC_MSG_RESULT($with_install_o)
3804 if test "x$with_install_o" = xyes
3805 then
3806         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'`"
3807 else
3808         INSTALL_OPT_O=
3809 fi
3810
3811 AC_SUBST(INSTALL_OPT_O)
3812 ])dnl
3813 dnl ---------------------------------------------------------------------------
3814 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
3815 dnl ----------------
3816 dnl Some install-programs accept a "-p" option to preserve file modification
3817 dnl timestamps.  That can be useful as an install option, as well as a way to
3818 dnl avoid the need for ranlib after copying a static archive.
3819 AC_DEFUN([CF_INSTALL_OPT_P],
3820 [
3821 : "${INSTALL:=install}"
3822 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
3823         rm -rf ./conftest*
3824         date >conftest.in
3825         mkdir conftest.out
3826         sleep 3
3827         if $INSTALL -p conftest.in conftest.out 2>/dev/null
3828         then
3829                 if test -f conftest.out/conftest.in
3830                 then
3831                         test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
3832                         test conftest.out/conftest.in -nt conftest.in 2>conftest.err
3833                         if test -s conftest.err
3834                         then
3835                                 cf_cv_install_p=no
3836                         else
3837                                 cf_cv_install_p=yes
3838                         fi
3839                 else
3840                         cf_cv_install_p=no
3841                 fi
3842         else
3843                 cf_cv_install_p=no
3844         fi
3845         rm -rf ./conftest*
3846 ])
3847 ])dnl
3848 dnl ---------------------------------------------------------------------------
3849 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
3850 dnl ----------------
3851 dnl By default, we should strip executables which are installed, but leave the
3852 dnl ability to suppress that for unit-testing.
3853 AC_DEFUN([CF_INSTALL_OPT_S],
3854 [
3855 AC_MSG_CHECKING(if you want to install stripped executables)
3856 CF_ARG_DISABLE(stripping,
3857         [  --disable-stripping     do not strip (debug info) installed executables],
3858         [enable_stripping=no],
3859         [enable_stripping=yes])
3860 AC_MSG_RESULT($enable_stripping)
3861
3862 if test "$enable_stripping" = yes
3863 then
3864         INSTALL_OPT_S="-s"
3865 else
3866         INSTALL_OPT_S=
3867 fi
3868 AC_SUBST(INSTALL_OPT_S)
3869 ])dnl
3870 dnl ---------------------------------------------------------------------------
3871 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
3872 dnl -----------------
3873 dnl Check if the given compiler is really the Intel compiler for Linux.  It
3874 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
3875 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
3876 dnl
3877 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
3878 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
3879 dnl the wrappers for gcc and g++ warnings.
3880 dnl
3881 dnl $1 = GCC (default) or GXX
3882 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
3883 dnl $3 = CFLAGS (default) or CXXFLAGS
3884 AC_DEFUN([CF_INTEL_COMPILER],[
3885 AC_REQUIRE([AC_CANONICAL_HOST])
3886 ifelse([$2],,INTEL_COMPILER,[$2])=no
3887
3888 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
3889         case "$host_os" in
3890         (linux*|gnu*)
3891                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
3892                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
3893                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
3894                 AC_TRY_COMPILE([],[
3895 #ifdef __INTEL_COMPILER
3896 #else
3897 make an error
3898 #endif
3899 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
3900 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
3901 ],[])
3902                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
3903                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
3904                 ;;
3905         esac
3906 fi
3907 ])dnl
3908 dnl ---------------------------------------------------------------------------
3909 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
3910 dnl ----------
3911 dnl Check if we have either a function or macro for 'isascii()'.
3912 AC_DEFUN([CF_ISASCII],
3913 [
3914 AC_MSG_CHECKING(for isascii)
3915 AC_CACHE_VAL(cf_cv_have_isascii,[
3916         AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
3917         [cf_cv_have_isascii=yes],
3918         [cf_cv_have_isascii=no])
3919 ])dnl
3920 AC_MSG_RESULT($cf_cv_have_isascii)
3921 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
3922 ])dnl
3923 dnl ---------------------------------------------------------------------------
3924 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
3925 dnl ------------
3926 dnl Add checks for large file support.
3927 AC_DEFUN([CF_LARGEFILE],[
3928 ifdef([AC_FUNC_FSEEKO],[
3929         AC_SYS_LARGEFILE
3930         if test "$enable_largefile" != no ; then
3931         AC_FUNC_FSEEKO
3932
3933         # Normally we would collect these definitions in the config.h,
3934         # but (like _XOPEN_SOURCE), some environments rely on having these
3935         # defined before any of the system headers are included.  Another
3936         # case comes up with C++, e.g., on AIX the compiler compiles the
3937         # header files by themselves before looking at the body files it is
3938         # told to compile.  For ncurses, those header files do not include
3939         # the config.h
3940         if test "$ac_cv_sys_large_files" != no
3941         then
3942                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
3943         fi
3944         if test "$ac_cv_sys_largefile_source" != no
3945         then
3946                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
3947         fi
3948         if test "$ac_cv_sys_file_offset_bits" != no
3949         then
3950                 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
3951         fi
3952
3953         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
3954                 AC_TRY_COMPILE([
3955 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
3956 #include <sys/types.h>
3957 #include <dirent.h>
3958                 ],[
3959                 /* if transitional largefile support is setup, this is true */
3960                 extern struct dirent64 * readdir(DIR *);
3961                 struct dirent64 *x = readdir((DIR *)0);
3962                 struct dirent *y = readdir((DIR *)0);
3963                 int z = x - y;
3964                 (void)z;
3965                 ],
3966                 [cf_cv_struct_dirent64=yes],
3967                 [cf_cv_struct_dirent64=no])
3968         ])
3969         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
3970         fi
3971 ])
3972 ])
3973 dnl ---------------------------------------------------------------------------
3974 dnl CF_LDFLAGS_STATIC version: 14 updated: 2021/01/02 17:09:14
3975 dnl -----------------
3976 dnl Check for compiler/linker flags used to temporarily force usage of static
3977 dnl libraries.  This depends on the compiler and platform.  Use this to help
3978 dnl ensure that the linker picks up a given library based on its position in
3979 dnl the list of linker options and libraries.
3980 AC_DEFUN([CF_LDFLAGS_STATIC],[
3981
3982 if test "$GCC" = yes ; then
3983         case "$cf_cv_system_name" in
3984         (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
3985                 LDFLAGS_STATIC=
3986                 LDFLAGS_SHARED=
3987                 ;;
3988         (*)     # normally, except when broken
3989                 LDFLAGS_STATIC=-static
3990                 LDFLAGS_SHARED=-dynamic
3991                 ;;
3992         esac
3993 else
3994         case "$cf_cv_system_name" in
3995         (aix[[4-7]]*)   # from ld manpage
3996                 LDFLAGS_STATIC=-bstatic
3997                 LDFLAGS_SHARED=-bdynamic
3998                 ;;
3999         (hpux*)         # from ld manpage for hpux10.20, hpux11.11
4000                 # We could also use just "archive" and "shared".
4001                 LDFLAGS_STATIC=-Wl,-a,archive_shared
4002                 LDFLAGS_SHARED=-Wl,-a,shared_archive
4003                 ;;
4004         (irix*)         # from ld manpage IRIX64
4005                 LDFLAGS_STATIC=-Bstatic
4006                 LDFLAGS_SHARED=-Bdynamic
4007                 ;;
4008         (osf[[45]]*)    # from ld manpage osf4.0d, osf5.1
4009                 # alternative "-oldstyle_liblookup" (not in cc manpage)
4010                 LDFLAGS_STATIC=-noso
4011                 LDFLAGS_SHARED=-so_archive
4012                 ;;
4013         (solaris2*)
4014                 LDFLAGS_STATIC=-Bstatic
4015                 LDFLAGS_SHARED=-Bdynamic
4016                 ;;
4017         esac
4018 fi
4019
4020 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
4021 then
4022         AC_MSG_CHECKING(if linker supports switching between static/dynamic)
4023
4024         rm -f libconftest.a
4025         cat >conftest.$ac_ext <<EOF
4026 #line __oline__ "configure"
4027 #include <stdio.h>
4028 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
4029 EOF
4030         if AC_TRY_EVAL(ac_compile) ; then
4031                 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
4032                 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
4033         fi
4034         rm -f conftest.*
4035
4036         cf_save_LIBS="$LIBS"
4037
4038         LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
4039         AC_TRY_LINK([
4040 #line __oline__ "configure"
4041 #include <stdio.h>
4042 int cf_ldflags_static(FILE *fp);
4043 ],[
4044         return cf_ldflags_static(stdin);
4045 ],[
4046         # some linkers simply ignore the -dynamic
4047         case x`file "conftest$ac_exeext" 2>/dev/null` in
4048         (*static*)
4049                 cf_ldflags_static=no
4050                 ;;
4051         (*)
4052                 cf_ldflags_static=yes
4053                 ;;
4054         esac
4055 ],[cf_ldflags_static=no])
4056
4057         rm -f libconftest.*
4058         LIBS="$cf_save_LIBS"
4059
4060         AC_MSG_RESULT($cf_ldflags_static)
4061
4062         if test "$cf_ldflags_static" != yes
4063         then
4064                 LDFLAGS_STATIC=
4065                 LDFLAGS_SHARED=
4066         fi
4067 else
4068         LDFLAGS_STATIC=
4069         LDFLAGS_SHARED=
4070 fi
4071
4072 AC_SUBST(LDFLAGS_STATIC)
4073 AC_SUBST(LDFLAGS_SHARED)
4074 ])
4075 dnl ---------------------------------------------------------------------------
4076 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
4077 dnl ---------------
4078 dnl For the given system and compiler, find the compiler flags to pass to the
4079 dnl loader to use the "rpath" feature.
4080 AC_DEFUN([CF_LD_RPATH_OPT],
4081 [
4082 AC_REQUIRE([CF_CHECK_CACHE])
4083
4084 LD_RPATH_OPT=
4085 if test "x$cf_cv_enable_rpath" != xno
4086 then
4087         AC_MSG_CHECKING(for an rpath option)
4088         case "$cf_cv_system_name" in
4089         (irix*)
4090                 if test "$GCC" = yes; then
4091                         LD_RPATH_OPT="-Wl,-rpath,"
4092                 else
4093                         LD_RPATH_OPT="-rpath "
4094                 fi
4095                 ;;
4096         (linux*|gnu*|k*bsd*-gnu|freebsd*)
4097                 LD_RPATH_OPT="-Wl,-rpath,"
4098                 ;;
4099         (openbsd[[2-9]].*|mirbsd*)
4100                 LD_RPATH_OPT="-Wl,-rpath,"
4101                 ;;
4102         (dragonfly*)
4103                 LD_RPATH_OPT="-rpath "
4104                 ;;
4105         (netbsd*)
4106                 LD_RPATH_OPT="-Wl,-rpath,"
4107                 ;;
4108         (osf*|mls+*)
4109                 LD_RPATH_OPT="-rpath "
4110                 ;;
4111         (solaris2*)
4112                 LD_RPATH_OPT="-R"
4113                 ;;
4114         (*)
4115                 ;;
4116         esac
4117         AC_MSG_RESULT($LD_RPATH_OPT)
4118
4119         case "x$LD_RPATH_OPT" in
4120         (x-R*)
4121                 AC_MSG_CHECKING(if we need a space after rpath option)
4122                 cf_save_LIBS="$LIBS"
4123                 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
4124                 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4125                 LIBS="$cf_save_LIBS"
4126                 AC_MSG_RESULT($cf_rpath_space)
4127                 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
4128                 ;;
4129         esac
4130 fi
4131 ])dnl
4132 dnl ---------------------------------------------------------------------------
4133 dnl CF_LD_SEARCHPATH version: 3 updated: 2021/03/05 19:13:35
4134 dnl ----------------
4135 dnl Try to obtain the linker's search-path, for use in scripts.
4136 dnl
4137 dnl Ignore LD_LIBRARY_PATH, etc.
4138 AC_DEFUN([CF_LD_SEARCHPATH],[
4139 AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
4140
4141 if test "$cross_compiling" != yes ; then
4142
4143 # GNU binutils' ld does not involve permissions which may stop ldconfig.
4144 cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
4145
4146 # The -NX options tell newer versions of Linux ldconfig to not attempt to
4147 # update the cache, which makes it run faster.
4148 test -z "$cf_pathlist" && \
4149         cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[       ]]/d' -e 's/:$//' | sort -u`
4150
4151 test -z "$cf_pathlist" &&
4152         cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[        ]]/d' -e 's/:$//p' | sort -u`
4153
4154 # This works with OpenBSD 6.5, which lists only filenames
4155 test -z "$cf_pathlist" &&
4156         cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
4157
4158 if test -z "$cf_pathlist"
4159 then
4160         # dyld default path with MacOS
4161         if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
4162         then
4163                 # do this to bypass check
4164                 cf_cv_ld_searchpath='$HOME/lib'
4165                 cf_pathlist="/usr/local/lib /lib /usr/lib"
4166         fi
4167 fi
4168
4169 if test -z "$cf_pathlist"
4170 then
4171         # Solaris is "SunOS"
4172         if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
4173         then
4174                 case x`(isainfo -b)` in
4175                 (x64)
4176                         cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
4177                         ;;
4178                 (x32)
4179                         test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
4180                         cf_pathlist="$cf_pathlist /lib /usr/lib"
4181                         ;;
4182                 (*)
4183                         AC_MSG_WARN(problem with Solaris architecture)
4184                         ;;
4185                 esac
4186         fi
4187 fi
4188
4189 if test -z "$cf_pathlist"
4190 then
4191         # HP-UX
4192         if test x"`uname -s`" = xHP-UX
4193         then
4194                 case x`getconf LONG_BIT` in
4195                 (x64)
4196                         cf_pathlist="/usr/lib/hpux64"
4197                         ;;
4198                 (x*)
4199                         cf_pathlist="/usr/lib/hpux32"
4200                         ;;
4201                 esac
4202         fi
4203 fi
4204
4205 fi
4206
4207 # If nothing else, assume it is conventional
4208 test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
4209
4210 # Finally, check that this is only directories
4211 for cf_path in [$]0 $cf_pathlist
4212 do
4213         if test -d "$cf_path"; then
4214                 test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
4215                 cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
4216         fi
4217 done
4218
4219 # Ensure that it is nonempty
4220 test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
4221 ])
4222
4223 LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
4224 AC_SUBST(LD_SEARCHPATH)
4225 ])dnl
4226 dnl ---------------------------------------------------------------------------
4227 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
4228 dnl ---------------
4229 dnl Construct a search-list of directories for a nonstandard library-file
4230 dnl
4231 dnl Parameters
4232 dnl     $1 = the variable to return as result
4233 dnl     $2 = the package name
4234 AC_DEFUN([CF_LIBRARY_PATH],
4235 [
4236 $1=
4237 cf_library_path_list=""
4238 if test -n "${LDFLAGS}${LIBS}" ; then
4239         for cf_library_path in $LDFLAGS $LIBS
4240         do
4241                 case "$cf_library_path" in
4242                 (-L*)
4243                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
4244                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
4245                         cf_library_path_list="$cf_library_path_list [$]$1"
4246                         ;;
4247                 esac
4248         done
4249 fi
4250
4251 CF_SUBDIR_PATH($1,$2,lib)
4252
4253 $1="$cf_library_path_list [$]$1"
4254 ])dnl
4255 dnl ---------------------------------------------------------------------------
4256 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
4257 dnl ------------------
4258 AC_DEFUN([CF_LIBTOOL_VERSION],[
4259 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
4260 then
4261         cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
4262 else
4263         cf_cv_libtool_version=
4264 fi
4265 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
4266 ])dnl
4267 dnl ---------------------------------------------------------------------------
4268 dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
4269 dnl -------------
4270 dnl Compute the library-prefix for the given host system
4271 dnl $1 = variable to set
4272 define([CF_LIB_PREFIX],
4273 [
4274         case "$cf_cv_system_name" in
4275         (OS/2*|os2*)
4276                 if test "$DFT_LWR_MODEL" = libtool; then
4277                         LIB_PREFIX='lib'
4278                 else
4279                         LIB_PREFIX=''
4280                 fi
4281                 ;;
4282         (*-msvc*)
4283                 LIB_PREFIX=''
4284                 ;;
4285         (*)     LIB_PREFIX='lib'
4286                 ;;
4287         esac
4288 ifelse($1,,,[$1=$LIB_PREFIX])
4289         AC_SUBST(LIB_PREFIX)
4290 ])dnl
4291 dnl ---------------------------------------------------------------------------
4292 dnl CF_LIB_RULES version: 95 updated: 2021/03/20 12:00:25
4293 dnl ------------
4294 dnl Append definitions and rules for the given models to the subdirectory
4295 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
4296 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
4297 dnl the corresponding makefile to list the models that we'll generate.
4298 dnl
4299 dnl For shared libraries, make a list of symbolic links to construct when
4300 dnl generating each library.  The convention used for Linux is the simplest
4301 dnl one:
4302 dnl     lib<name>.so    ->
4303 dnl     lib<name>.so.<major>    ->
4304 dnl     lib<name>.so.<maj>.<minor>
4305 dnl
4306 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
4307 AC_DEFUN([CF_LIB_RULES],
4308 [AC_REQUIRE([AC_PROG_FGREP])dnl
4309
4310 cf_prefix=$LIB_PREFIX
4311 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4312
4313 case "$cf_cv_shlib_version" in
4314 (cygdll|msysdll|mingw|msvcdll)
4315         TINFO_NAME=$TINFO_ARG_SUFFIX
4316         TINFO_SUFFIX=.dll
4317         ;;
4318 esac
4319
4320 if test -n "$TINFO_SUFFIX" ; then
4321         case "$TINFO_SUFFIX" in
4322         (tw*)
4323                 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
4324                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4325                 ;;
4326         (t*)
4327                 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
4328                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^t'$EXTRA_SUFFIX'//'`
4329                 ;;
4330         (w*)
4331                 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
4332                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^w'$EXTRA_SUFFIX'//'`
4333                 ;;
4334         esac
4335 fi
4336
4337 for cf_dir in $SRC_SUBDIRS
4338 do
4339         if test ! -d "$srcdir/$cf_dir" ; then
4340                 continue
4341         elif test -f "$srcdir/$cf_dir/modules" ; then
4342
4343                 SHARED_LIB=
4344                 Libs_To_Make=
4345                 cf_awk_program=
4346                 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
4347                 then
4348                         cf_awk_program="$cf_awk_program\
4349 /deprecated in ABI${cf_cv_abi_version}/ { next; }\
4350 { sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
4351 "
4352                 fi
4353
4354                 if test "x$WILDCARD_SYMS" = xno
4355                 then
4356                         cf_awk_program="$cf_awk_program\
4357 /[[     ]]_\\*;/ { skip=1; next; }\
4358 "
4359                 fi
4360
4361                 if test "x$cf_awk_program" != "x"
4362                 then
4363                         cat >>$cf_dir/Makefile <<CF_EOF
4364
4365 # Generated by CF_LIB_RULES
4366 resulting.map: $UNALTERED_SYMS
4367         $AWK 'BEGIN { skip = 1; last=""; } \
4368 $cf_awk_program \
4369 { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
4370  skip = 0; last = \[$]\[$]0; } \
4371 END { print last; }' < "$UNALTERED_SYMS" >\[$]@
4372
4373 distclean::
4374         rm -f resulting.map
4375 CF_EOF
4376                 fi
4377
4378                 for cf_item in $cf_LIST_MODELS
4379                 do
4380                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4381                         if test "$cf_dir" = "c++"
4382                         then
4383                                 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4384                         else
4385                                 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4386                         fi
4387                         test -z "$cf_libname" && cf_libname="$cf_dir"
4388                         if test "$cf_item" = shared ; then
4389                                 if test -n "${LIB_SUFFIX}"
4390                                 then
4391                                         cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4392                                 else
4393                                         cf_shared_suffix="$cf_suffix"
4394                                 fi
4395                                 if test "$cf_cv_do_symlinks" = yes ; then
4396                                         cf_version_name=
4397
4398                                         case "$cf_cv_shlib_version" in
4399                                         (rel)
4400                                                 cf_version_name=REL_VERSION
4401                                                 ;;
4402                                         (abi)
4403                                                 cf_version_name=ABI_VERSION
4404                                                 ;;
4405                                         esac
4406
4407                                         if test -n "$cf_version_name"
4408                                         then
4409                                                 case "$cf_cv_system_name" in
4410                                                 (darwin*)
4411                                                         # "w", etc?
4412                                                         cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
4413                                                         ;;
4414                                                 (*)
4415                                                         cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
4416                                                         ;;
4417                                                 esac
4418                                         fi
4419                                         if test -n "${USE_LIB_SUFFIX}"
4420                                         then
4421                                                 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4422                                         else
4423                                                 cf_shared_suffix="$cf_suffix"
4424                                         fi
4425                                 fi
4426                                 # cygwin needs import library, and has unique naming convention
4427                                 # use autodetected ${cf_prefix} for import lib and static lib, but
4428                                 # use 'cyg' prefix for shared lib.
4429                                 case "$cf_cv_shlib_version" in
4430                                 (cygdll)
4431                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4432                                         cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
4433                                         ;;
4434                                 (msysdll)
4435                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4436                                         cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
4437                                         ;;
4438                                 (mingw)
4439                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4440                                         cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
4441                                         ;;
4442                                 (msvcdll)
4443                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4444                                         cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
4445                                         ;;
4446                                 (*)
4447                                         cf_add_lib=
4448                                         ;;
4449                                 esac
4450                                 if test -n "$cf_add_lib"
4451                                 then
4452                                         Libs_To_Make="$Libs_To_Make $cf_add_lib"
4453                                         continue
4454                                 fi
4455                         fi
4456                         cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
4457                         Libs_To_Make="$Libs_To_Make $cf_add_lib"
4458                 done
4459
4460                 if test "$cf_dir" = ncurses ; then
4461                         cf_subsets="$LIB_SUBSETS"
4462                         cf_r_parts="$cf_subsets"
4463                         cf_liblist="$Libs_To_Make"
4464
4465                         while test -n "$cf_r_parts"
4466                         do
4467                                 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
4468                                 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
4469                                 if test "$cf_l_parts" != "$cf_r_parts" ; then
4470                                         cf_add_lib=
4471                                         case "$cf_l_parts" in
4472                                         (*termlib*)
4473                                                 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
4474                                                 ;;
4475                                         (*ticlib*)
4476                                                 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
4477                                                 ;;
4478                                         (*)
4479                                                 break
4480                                                 ;;
4481                                         esac
4482                                         if test -n "$cf_add_lib"; then
4483                                                 Libs_To_Make="$cf_add_lib $Libs_To_Make"
4484                                         fi
4485                                 else
4486                                         break
4487                                 fi
4488                         done
4489                 else
4490                         cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
4491                 fi
4492
4493                 if test "$cf_dir" = c++; then
4494                         if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
4495                                 cf_list=
4496                                 for cf_item in $Libs_To_Make
4497                                 do
4498                                         case "$cf_item" in
4499                                         (*.a)
4500                                                 ;;
4501                                         (*)
4502                                                 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
4503                                                 ;;
4504                                         esac
4505                                         for cf_test in $cf_list
4506                                         do
4507                                                 if test "$cf_test" = "$cf_item"
4508                                                 then
4509                                                         cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
4510                                                         cf_item=
4511                                                         break
4512                                                 fi
4513                                         done
4514                                         test -n "$cf_item" && cf_list="$cf_list $cf_item"
4515                                 done
4516                                 Libs_To_Make="$cf_list"
4517                         fi
4518                 fi
4519
4520                 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
4521                     -e "s%@SHARED_LIB@%$SHARED_LIB%" \
4522                         "$cf_dir/Makefile" >$cf_dir/Makefile.out
4523                 mv "$cf_dir/Makefile.out" "$cf_dir/Makefile"
4524
4525                 $AWK -f "$srcdir/mk-0th.awk" \
4526                         libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
4527                         "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4528
4529                 for cf_subset in $cf_subsets
4530                 do
4531                         cf_subdirs=
4532                         for cf_item in $cf_LIST_MODELS
4533                         do
4534
4535                         echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
4536                         CF_UPPER(cf_ITEM,$cf_item)
4537
4538                         CXX_MODEL=$cf_ITEM
4539                         if test "$CXX_MODEL" = SHARED; then
4540                                 case "$cf_cv_shlib_version" in
4541                                 (cygdll|msysdll|mingw|msvcdll)
4542                                         test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
4543                                         with_shared_cxx=yes
4544                                         ;;
4545                                 (*)
4546                                         test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
4547                                         ;;
4548                                 esac
4549                         fi
4550
4551                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4552                         CF_OBJ_SUBDIR($cf_item,cf_subdir)
4553
4554                         # Test for case where we build libtinfo with a different name.
4555                         cf_libname=$cf_dir
4556                         if test "$cf_dir" = ncurses ; then
4557                                 case "$cf_subset" in
4558                                 (*base*)
4559                                         cf_libname=${cf_libname}$USE_LIB_SUFFIX
4560                                         ;;
4561                                 (*termlib*)
4562                                         cf_libname=$TINFO_LIB_SUFFIX
4563                                         ;;
4564                                 (ticlib*)
4565                                         cf_libname=$TICS_LIB_SUFFIX
4566                                         ;;
4567                                 esac
4568                         elif test "$cf_dir" = c++ ; then
4569                                 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4570                                 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4571                         else
4572                                 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4573                                 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4574                         fi
4575                         if test -n "${USE_ARG_SUFFIX}" ; then
4576                                 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
4577                                 cf_suffix=`echo "$cf_suffix" |sed -e "s%^${USE_LIB_SUFFIX}%%"`
4578                         fi
4579
4580                         # These dependencies really are for development, not
4581                         # builds, but they are useful in porting, too.
4582                         cf_depend="../include/ncurses_cfg.h"
4583                         if test "$srcdir" = "."; then
4584                                 cf_reldir="."
4585                         else
4586                                 cf_reldir="\${srcdir}"
4587                         fi
4588
4589                         if test -f "$srcdir/$cf_dir/$cf_dir.priv.h" ; then
4590                                 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
4591                         elif test -f "$srcdir/$cf_dir/curses.priv.h" ; then
4592                                 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
4593                         fi
4594
4595                         cf_dir_suffix=
4596                         old_cf_suffix="$cf_suffix"
4597                         if test "$cf_cv_shlib_version_infix" = yes ; then
4598                         if test -n "$USE_LIB_SUFFIX" ; then
4599                                 case "$USE_LIB_SUFFIX" in
4600                                 (tw*)
4601                                         cf_libname=`echo "$cf_libname" | sed 's/tw'$EXTRA_SUFFIX'$//'`
4602                                         cf_suffix=`echo "$cf_suffix" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4603                                         cf_dir_suffix=tw$EXTRA_SUFFIX
4604                                         ;;
4605                                 (t*)
4606                                         cf_libname=`echo "$cf_libname" | sed 's/t'$EXTRA_SUFFIX'$//'`
4607                                         cf_suffix=`echo "$cf_suffix" | sed 's/^t'$EXTRA_SUFFIX'//'`
4608                                         cf_dir_suffix=t$EXTRA_SUFFIX
4609                                         ;;
4610                                 (w*)
4611                                         cf_libname=`echo "$cf_libname" | sed 's/w'$EXTRA_SUFFIX'$//'`
4612                                         cf_suffix=`echo "$cf_suffix" | sed 's/^w'$EXTRA_SUFFIX'//'`
4613                                         cf_dir_suffix=w$EXTRA_SUFFIX
4614                                         ;;
4615                                 (*)
4616                                         cf_libname=`echo "$cf_libname" | sed 's/'$EXTRA_SUFFIX'$//'`
4617                                         cf_suffix=`echo "$cf_suffix" | sed 's/^'$EXTRA_SUFFIX'//'`
4618                                         cf_dir_suffix=$EXTRA_SUFFIX
4619                                         ;;
4620                                 esac
4621                         fi
4622                         fi
4623
4624                         $AWK -f "$srcdir/mk-1st.awk" \
4625                                 name=${cf_libname}${cf_dir_suffix} \
4626                                 traces=$LIB_TRACING \
4627                                 MODEL=$cf_ITEM \
4628                                 CXX_MODEL=$CXX_MODEL \
4629                                 model=$cf_subdir \
4630                                 prefix=$cf_prefix \
4631                                 suffix=$cf_suffix \
4632                                 subset=$cf_subset \
4633                                 driver=$cf_cv_term_driver \
4634                                 SymLink="$LN_S" \
4635                                 TermlibRoot=$TINFO_NAME \
4636                                 TermlibSuffix=$TINFO_SUFFIX \
4637                                 ShlibVer=$cf_cv_shlib_version \
4638                                 ShlibVerInfix=$cf_cv_shlib_version_infix \
4639                                 ReLink=${cf_cv_do_relink:-no} \
4640                                 ReRanlib=${cf_cv_do_reranlib:-yes} \
4641                                 DoLinks=$cf_cv_do_symlinks \
4642                                 rmSoLocs=$cf_cv_rm_so_locs \
4643                                 ldconfig="$LDCONFIG" \
4644                                 overwrite=$WITH_OVERWRITE \
4645                                 depend="$cf_depend" \
4646                                 host="$host" \
4647                                 libtool_version="$LIBTOOL_VERSION" \
4648                                 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4649
4650                         cf_suffix="$old_cf_suffix"
4651
4652                         for cf_subdir2 in $cf_subdirs lib
4653                         do
4654                                 test "$cf_subdir" = "$cf_subdir2" && break
4655                         done
4656                         test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
4657                         $AWK -f "$srcdir/mk-2nd.awk" \
4658                                 name=$cf_dir \
4659                                 traces=$LIB_TRACING \
4660                                 MODEL=$cf_ITEM \
4661                                 model=$cf_subdir \
4662                                 subset=$cf_subset \
4663                                 srcdir=$srcdir \
4664                                 echo=$WITH_ECHO \
4665                                 crenames=$cf_cv_prog_CC_c_o \
4666                                 cxxrenames=$cf_cv_prog_CXX_c_o \
4667                                 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4668                         cf_subdirs="$cf_subdirs $cf_subdir"
4669                         done
4670                 done
4671         fi
4672
4673         echo '  ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
4674 done
4675
4676 for cf_dir in $SRC_SUBDIRS
4677 do
4678         if test ! -d "$srcdir/$cf_dir" ; then
4679                 continue
4680         fi
4681
4682         if test -f "$cf_dir/Makefile" ; then
4683                 case "$cf_dir" in
4684                 (Ada95)
4685                         echo 'libs \' >> Makefile
4686                         echo 'install.libs \' >> Makefile
4687                         echo 'uninstall.libs ::' >> Makefile
4688                         echo '  ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >> Makefile
4689                         ;;
4690                 esac
4691         fi
4692
4693         if test -f "$srcdir/$cf_dir/modules" ; then
4694                 echo >> Makefile
4695                 if test -f "$srcdir/$cf_dir/headers" ; then
4696 cat >> Makefile <<CF_EOF
4697 install.includes \\
4698 uninstall.includes \\
4699 CF_EOF
4700                 fi
4701
4702 echo 'lint \' >> Makefile
4703
4704 cat >> Makefile <<CF_EOF
4705 libs \\
4706 lintlib \\
4707 install.libs \\
4708 uninstall.libs \\
4709 install.$cf_dir \\
4710 uninstall.$cf_dir ::
4711         ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4712 CF_EOF
4713         elif test -f "$srcdir/$cf_dir/headers" ; then
4714 cat >> Makefile <<CF_EOF
4715
4716 libs \\
4717 install.libs \\
4718 uninstall.libs \\
4719 install.includes \\
4720 uninstall.includes ::
4721         ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4722 CF_EOF
4723 fi
4724 done
4725
4726 if test "x$cf_with_db_install" = xyes; then
4727 cat >> Makefile <<CF_EOF
4728
4729 install.libs uninstall.libs \\
4730 install.data uninstall.data ::
4731 $MAKE_TERMINFO  ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4732 CF_EOF
4733 else
4734 cat >> Makefile <<CF_EOF
4735
4736 install.libs uninstall.libs ::
4737         ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4738 CF_EOF
4739 fi
4740
4741 if test "x$cf_with_manpages" = xyes; then
4742 cat >> Makefile <<CF_EOF
4743
4744 install.man \\
4745 uninstall.man ::
4746         ( cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4747 CF_EOF
4748 fi
4749
4750 cat >> Makefile <<CF_EOF
4751
4752 distclean ::
4753         rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
4754         rm -f headers.sh headers.sed mk_shared_lib.sh
4755         rm -f edit_man.* man_alias.*
4756         rm -rf \${DIRS_TO_MAKE}
4757 CF_EOF
4758
4759 # Special case: tack's manpage lives in its own directory.
4760 if test "x$cf_with_manpages" = xyes; then
4761 if test "x$cf_with_tack" = "xyes"; then
4762 cat >> Makefile <<CF_EOF
4763
4764 install.man \\
4765 uninstall.man ::
4766         ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4767 CF_EOF
4768 fi
4769 fi
4770
4771 dnl If we're installing into a subdirectory of /usr/include, etc., we should
4772 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
4773 dnl anything, and will make it more standardized.  It's awkward to decide this
4774 dnl at configuration because of quoting, so we'll simply make all headers
4775 dnl installed via a script that can do the right thing.
4776
4777 rm -f headers.sed headers.sh
4778
4779 dnl ( generating this script makes the makefiles a little tidier :-)
4780 echo creating headers.sh
4781 cat >headers.sh <<CF_EOF
4782 #! $SHELL
4783 # This shell script is generated by the 'configure' script.  It is invoked in a
4784 # subdirectory of the build tree.  It generates a sed-script in the parent
4785 # directory that is used to adjust includes for header files that reside in a
4786 # subdirectory of /usr/include, etc.
4787 PRG=""
4788 while test \[$]# != 3
4789 do
4790 PRG="\$PRG \[$]1"; shift
4791 done
4792 DST=\[$]1
4793 REF=\[$]2
4794 SRC=\[$]3
4795 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
4796 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
4797 echo installing \$SRC in \$DST
4798 CF_EOF
4799
4800 if test "$WITH_CURSES_H" = yes; then
4801         cat >>headers.sh <<CF_EOF
4802 case \$DST in
4803 (/*/include/*)
4804         END=\`basename \$DST\`
4805         for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
4806         do
4807                 NAME=\`basename \$i\`
4808                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
4809         done
4810         ;;
4811 (*)
4812         echo "" >> \$TMPSED
4813         ;;
4814 esac
4815 CF_EOF
4816
4817 else
4818         cat >>headers.sh <<CF_EOF
4819 case \$DST in
4820 (/*/include/*)
4821         END=\`basename \$DST\`
4822         for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
4823         do
4824                 NAME=\`basename \$i\`
4825                 if test "\$NAME" = "curses.h"
4826                 then
4827                         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
4828                         NAME=ncurses.h
4829                 fi
4830                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
4831         done
4832         ;;
4833 (*)
4834         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
4835         ;;
4836 esac
4837 CF_EOF
4838 fi
4839 cat >>headers.sh <<CF_EOF
4840 rm -f \$TMPSRC
4841 sed -f \$TMPSED \$SRC > \$TMPSRC
4842 NAME=\`basename \$SRC\`
4843 CF_EOF
4844 if test "$WITH_CURSES_H" != yes; then
4845         cat >>headers.sh <<CF_EOF
4846 test "\$NAME" = "curses.h" && NAME=ncurses.h
4847 CF_EOF
4848 fi
4849 cat >>headers.sh <<CF_EOF
4850 # Just in case someone gzip'd manpages, remove the conflicting copy.
4851 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
4852
4853 eval \$PRG \$TMPSRC \$DST/\$NAME
4854 rm -f \$TMPSRC \$TMPSED
4855 CF_EOF
4856
4857 chmod 0755 headers.sh
4858
4859 for cf_dir in $SRC_SUBDIRS
4860 do
4861         if test ! -d "$srcdir/$cf_dir" ; then
4862                 continue
4863         fi
4864
4865         if test -f "$srcdir/$cf_dir/headers" ; then
4866                 $AWK -f "$srcdir/mk-hdr.awk" \
4867                         subset="$LIB_SUBSETS" \
4868                         compat="$WITH_CURSES_H" \
4869                         "$srcdir/$cf_dir/headers" >>$cf_dir/Makefile
4870         fi
4871
4872         if test -f "$srcdir/$cf_dir/modules" ; then
4873                 if test "$cf_dir" != "c++" ; then
4874                         cat >>$cf_dir/Makefile <<"CF_EOF"
4875 depend : ${AUTO_SRC}
4876         makedepend -- ${CPPFLAGS} -- ${C_SRC}
4877
4878 # DO NOT DELETE THIS LINE -- make depend depends on it.
4879 CF_EOF
4880                 fi
4881         fi
4882 done
4883 AC_SUBST(Libs_To_Make)
4884 ])dnl
4885 dnl ---------------------------------------------------------------------------
4886 dnl CF_LIB_SONAME version: 9 updated: 2021/01/04 18:48:01
4887 dnl -------------
4888 dnl Find the and soname for the given shared library.  Set the cache variable
4889 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
4890 dnl variable to "unknown".
4891 dnl
4892 dnl $1 = headers
4893 dnl $2 = code
4894 dnl $3 = library name
4895 AC_DEFUN([CF_LIB_SONAME],
4896 [AC_REQUIRE([AC_PROG_FGREP])dnl
4897
4898 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
4899
4900 cf_cv_$3_soname=unknown
4901 if test "$cross_compiling" != yes ; then
4902 cat >conftest.$ac_ext <<CF_EOF
4903 $1
4904 int main(void)
4905 {
4906 $2
4907         ${cf_cv_main_return:-return}(0);
4908 }
4909 CF_EOF
4910 cf_save_LIBS="$LIBS"
4911         CF_ADD_LIB($3)
4912         if AC_TRY_EVAL(ac_compile) ; then
4913                 if AC_TRY_EVAL(ac_link) ; then
4914                         cf_cv_$3_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} lib$3.`"
4915                         test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
4916                 fi
4917         fi
4918 rm -rf ./conftest*
4919 LIBS="$cf_save_LIBS"
4920 fi
4921 ])
4922 ])
4923 dnl ---------------------------------------------------------------------------
4924 dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
4925 dnl -------------
4926 dnl Compute the library file-suffix from the given model name
4927 dnl $1 = model name
4928 dnl $2 = variable to set (the nominal library suffix)
4929 dnl $3 = dependency variable to set (actual filename)
4930 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
4931 AC_DEFUN([CF_LIB_SUFFIX],
4932 [
4933         case X$1 in
4934         (Xlibtool)
4935                 $2='.la'
4936                 $3=[$]$2
4937                 ;;
4938         (Xdebug)
4939                 case "$cf_cv_system_name" in
4940                 (*-msvc*)
4941                         $2='_g.lib'
4942                         ;;
4943                 (*)
4944                         $2='_g.a'
4945                         ;;
4946                 esac
4947                 $3=[$]$2
4948                 ;;
4949         (Xprofile)
4950                 case "$cf_cv_system_name" in
4951                 (*-msvc*)
4952                         $2='_p.lib'
4953                         ;;
4954                 (*)
4955                         $2='_p.a'
4956                         ;;
4957                 esac
4958                 $3=[$]$2
4959                 ;;
4960         (Xshared)
4961                 case "$cf_cv_system_name" in
4962                 (aix[[5-7]]*)
4963                         $2='.so'
4964                         $3=[$]$2
4965                         ;;
4966                 (*-msvc*)
4967                         $2='.dll'
4968                         $3='.dll.lib'
4969                         ;;
4970                 (cygwin*|msys*|mingw*)
4971                         $2='.dll'
4972                         $3='.dll.a'
4973                         ;;
4974                 (darwin*)
4975                         $2='.dylib'
4976                         $3=[$]$2
4977                         ;;
4978                 (hpux*)
4979                         case "$target" in
4980                         (ia64*)
4981                                 $2='.so'
4982                                 $3=[$]$2
4983                                 ;;
4984                         (*)
4985                                 $2='.sl'
4986                                 $3=[$]$2
4987                                 ;;
4988                         esac
4989                         ;;
4990                 (*)
4991                         $2='.so'
4992                         $3=[$]$2
4993                         ;;
4994                 esac
4995                 ;;
4996         (*)
4997                 case "$target" in
4998                 (*-msvc*)
4999                         $2='.lib'
5000                         ;;
5001                 (*)
5002                         $2='.a'
5003                         ;;
5004                 esac
5005                 $3=[$]$2
5006                 ;;
5007         esac
5008         if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
5009         then
5010                 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
5011                 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
5012         fi
5013 ])dnl
5014 dnl ---------------------------------------------------------------------------
5015 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
5016 dnl -----------
5017 dnl Compute the string to append to -library from the given model name
5018 dnl $1 = model name
5019 dnl $2 = variable to set
5020 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5021 AC_DEFUN([CF_LIB_TYPE],
5022 [
5023         case $1 in
5024         (libtool) $2=''   ;;
5025         (normal)  $2=''   ;;
5026         (debug)   $2='_g' ;;
5027         (profile) $2='_p' ;;
5028         (shared)  $2=''   ;;
5029         esac
5030         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
5031 ])dnl
5032 dnl ---------------------------------------------------------------------------
5033 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
5034 dnl ----------------
5035 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
5036 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
5037 dnl have to provide wrappers for global tables to ensure they're linked
5038 dnl properly.
5039 AC_DEFUN([CF_LINK_DATAONLY],
5040 [
5041 AC_MSG_CHECKING([if data-only library module links])
5042 AC_CACHE_VAL(cf_cv_link_dataonly,[
5043         rm -f conftest.a
5044         cat >conftest.$ac_ext <<EOF
5045 #line __oline__ "configure"
5046 int     testdata[[3]] = { 123, 456, 789 };
5047 EOF
5048         if AC_TRY_EVAL(ac_compile) ; then
5049                 mv conftest.o data.o && \
5050                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
5051         fi
5052         rm -f conftest.$ac_ext data.o
5053         cat >conftest.$ac_ext <<EOF
5054 #line __oline__ "configure"
5055 int     testfunc(void)
5056 {
5057 #if defined(NeXT)
5058         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
5059 #else
5060         extern int testdata[[3]];
5061         return testdata[[0]] == 123
5062            &&  testdata[[1]] == 456
5063            &&  testdata[[2]] == 789;
5064 #endif
5065 }
5066 EOF
5067         if AC_TRY_EVAL(ac_compile); then
5068                 mv conftest.o func.o && \
5069                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
5070         fi
5071         rm -f conftest.$ac_ext func.o
5072         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
5073         cf_saveLIBS="$LIBS"
5074         LIBS="conftest.a $LIBS"
5075         AC_TRY_RUN([
5076         int main(void)
5077         {
5078                 extern int testfunc();
5079                 ${cf_cv_main_return:-return} (!testfunc());
5080         }
5081         ],
5082         [cf_cv_link_dataonly=yes],
5083         [cf_cv_link_dataonly=no],
5084         [cf_cv_link_dataonly=unknown])
5085         LIBS="$cf_saveLIBS"
5086         ])
5087 AC_MSG_RESULT($cf_cv_link_dataonly)
5088
5089 if test "$cf_cv_link_dataonly" = no ; then
5090         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
5091         BROKEN_LINKER=1
5092 fi
5093 AC_SUBST(BROKEN_LINKER)
5094
5095 ])dnl
5096 dnl ---------------------------------------------------------------------------
5097 dnl CF_LINK_FUNCS version: 10 updated: 2021/04/03 15:45:02
5098 dnl -------------
5099 dnl Most Unix systems have both link and symlink, a few don't have symlink.
5100 dnl A few non-Unix systems implement symlink, but not link.
5101 dnl A few non-systems implement neither (or have nonfunctional versions).
5102 dnl
5103 dnl This allows for a 2-second difference in modification times to allow for
5104 dnl some marginal NFS implementations.
5105 AC_DEFUN([CF_LINK_FUNCS],
5106 [
5107 AC_CHECK_HEADERS( \
5108 unistd.h \
5109 )
5110 AC_CHECK_FUNCS( \
5111         remove \
5112         unlink )
5113
5114 if test "$cross_compiling" = yes ; then
5115         AC_CHECK_FUNCS( \
5116                 link \
5117                 symlink )
5118 else
5119         AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
5120                 cf_cv_link_funcs=
5121                 for cf_func in link symlink ; do
5122                         AC_TRY_RUN([
5123 #include <sys/types.h>
5124 #include <sys/stat.h>
5125 #ifdef HAVE_UNISTD_H
5126 #include <unistd.h>
5127 #endif
5128 int main(void)
5129 {
5130         int fail = 0;
5131         char *src = "config.log";
5132         char *dst = "conftest.chk";
5133         struct stat src_sb;
5134         struct stat dst_sb;
5135
5136         stat(src, &src_sb);
5137         if ($cf_func("config.log", "conftest.chk") < 0) {
5138                 fail = 1;
5139         } else if (stat(dst, &dst_sb) < 0) {
5140                 fail = 2;
5141         } else {
5142                 long diff = (dst_sb.st_mtime - src_sb.st_mtime);
5143                 if (diff < 0)
5144                         diff = -diff;
5145                 if (diff > 2)
5146                         fail = 3;
5147         }
5148 #ifdef HAVE_UNLINK
5149         unlink(dst);
5150 #else
5151         remove(dst);
5152 #endif
5153         ${cf_cv_main_return:-return} (fail);
5154 }
5155                         ],[
5156                         cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
5157                         eval 'ac_cv_func_'$cf_func'=yes'],[
5158                         eval 'ac_cv_func_'$cf_func'=no'],[
5159                         eval 'ac_cv_func_'$cf_func'=error'])
5160                 done
5161                 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
5162         ])
5163         test "$ac_cv_func_link"    = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
5164         test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
5165 fi
5166 ])dnl
5167 dnl ---------------------------------------------------------------------------
5168 dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49
5169 dnl ------------
5170 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
5171 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
5172 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
5173 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
5174 AC_DEFUN([CF_MAKEFLAGS],
5175 [AC_REQUIRE([AC_PROG_FGREP])dnl
5176
5177 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
5178         cf_cv_makeflags=''
5179         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
5180         do
5181                 cat >cf_makeflags.tmp <<CF_EOF
5182 SHELL = $SHELL
5183 all :
5184         @ echo '.$cf_option'
5185 CF_EOF
5186                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[  ]]*$,,'`
5187                 case "$cf_result" in
5188                 (.*k|.*kw)
5189                         cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
5190                         case "$cf_result" in
5191                         (.*CC=*)        cf_cv_makeflags=
5192                                 ;;
5193                         (*)     cf_cv_makeflags=$cf_option
5194                                 ;;
5195                         esac
5196                         break
5197                         ;;
5198                 (.-)
5199                         ;;
5200                 (*)
5201                         CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
5202                         ;;
5203                 esac
5204         done
5205         rm -f cf_makeflags.tmp
5206 ])
5207
5208 AC_SUBST(cf_cv_makeflags)
5209 ])dnl
5210 dnl ---------------------------------------------------------------------------
5211 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
5212 dnl ------------
5213 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
5214 dnl a monocase filesystem.
5215 AC_DEFUN([CF_MAKE_TAGS],[
5216 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
5217
5218 AC_CHECK_PROGS(CTAGS, exctags ctags)
5219 AC_CHECK_PROGS(ETAGS, exetags etags)
5220
5221 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
5222
5223 if test "$cf_cv_mixedcase" = yes ; then
5224         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
5225 else
5226         MAKE_UPPER_TAGS=no
5227 fi
5228
5229 if test "$MAKE_UPPER_TAGS" = yes ; then
5230         MAKE_UPPER_TAGS=
5231 else
5232         MAKE_UPPER_TAGS="#"
5233 fi
5234
5235 if test "$MAKE_LOWER_TAGS" = yes ; then
5236         MAKE_LOWER_TAGS=
5237 else
5238         MAKE_LOWER_TAGS="#"
5239 fi
5240
5241 AC_SUBST(CTAGS)
5242 AC_SUBST(ETAGS)
5243
5244 AC_SUBST(MAKE_UPPER_TAGS)
5245 AC_SUBST(MAKE_LOWER_TAGS)
5246 ])dnl
5247 dnl ---------------------------------------------------------------------------
5248 dnl CF_MANPAGE_FORMAT version: 14 updated: 2021/01/02 17:09:14
5249 dnl -----------------
5250 dnl Option to allow user to override automatic configuration of manpage format.
5251 dnl There are several special cases:
5252 dnl
5253 dnl     gzip - man checks for, can display gzip'd files
5254 dnl     compress - man checks for, can display compressed files
5255 dnl     BSDI - files in the cat-directories are suffixed ".0"
5256 dnl     formatted - installer should format (put files in cat-directory)
5257 dnl     catonly - installer should only format, e.g., for a turnkey system.
5258 dnl
5259 dnl There are other configurations which this macro does not test, e.g., HPUX's
5260 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
5261 dnl convention would not match our use).
5262 AC_DEFUN([CF_MANPAGE_FORMAT],
5263 [
5264 AC_REQUIRE([CF_PATHSEP])
5265 AC_MSG_CHECKING(format of man-pages)
5266
5267 AC_ARG_WITH(manpage-format,
5268         [  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
5269                           optionally formatted/catonly, e.g., gzip,formatted],
5270         [MANPAGE_FORMAT=$withval],
5271         [MANPAGE_FORMAT=unknown])
5272
5273 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
5274 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
5275
5276 cf_unknown=
5277
5278 case "$MANPAGE_FORMAT" in
5279 (unknown)
5280         if test -z "$MANPATH" ; then
5281                 MANPATH="/usr/man:/usr/share/man"
5282         fi
5283
5284         # look for the 'date' man-page (it's most likely to be installed!)
5285         MANPAGE_FORMAT=
5286         cf_preform="no"
5287         cf_catonly="yes"
5288         cf_example="date"
5289
5290         IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
5291         for cf_dir in $MANPATH; do
5292                 test -z "$cf_dir" && cf_dir=/usr/man
5293                 for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
5294                 do
5295                         cf_test=`echo "$cf_name" | sed -e 's/*//'`
5296                         if test "x$cf_test" = "x$cf_name" ; then
5297
5298                                 case "$cf_name" in
5299                                 (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
5300                                 (*.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
5301                                 (*.0)  MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
5302                                 (*)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
5303                                 esac
5304
5305                                 case "$cf_name" in
5306                                 ($cf_dir/man*)
5307                                         cf_catonly=no
5308                                         ;;
5309                                 ($cf_dir/cat*)
5310                                         cf_preform=yes
5311                                         ;;
5312                                 esac
5313                                 break
5314                         fi
5315
5316                         # if we found a match in either man* or cat*, stop looking
5317                         if test -n "$MANPAGE_FORMAT" ; then
5318                                 cf_found=no
5319                                 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
5320                                 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
5321                                 case "$cf_name" in
5322                                 ($cf_dir/cat*)
5323                                         cf_found=yes
5324                                         ;;
5325                                 esac
5326                                 test "$cf_found" = yes && break
5327                         fi
5328                 done
5329                 # only check the first directory in $MANPATH where we find manpages
5330                 if test -n "$MANPAGE_FORMAT" ; then
5331                         break
5332                 fi
5333         done
5334         # if we did not find the example, just assume it is normal
5335         test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
5336         IFS="$ac_save_ifs"
5337         ;;
5338 (*)
5339         for cf_option in $MANPAGE_FORMAT; do
5340         case "$cf_option" in
5341         (gzip|compress|BSDI|normal|formatted|catonly)
5342                 ;;
5343         (*)
5344                 cf_unknown="$cf_unknown $cf_option"
5345                 ;;
5346         esac
5347         done
5348         ;;
5349 esac
5350
5351 AC_MSG_RESULT($MANPAGE_FORMAT)
5352 if test -n "$cf_unknown" ; then
5353         AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
5354 fi
5355 ])dnl
5356 dnl ---------------------------------------------------------------------------
5357 dnl CF_MANPAGE_RENAMES version: 12 updated: 2021/01/01 16:53:59
5358 dnl ------------------
5359 dnl The Debian people have their own naming convention for manpages.  This
5360 dnl option lets us override the name of the file containing renaming, or
5361 dnl disable it altogether.
5362 AC_DEFUN([CF_MANPAGE_RENAMES],
5363 [
5364 AC_MSG_CHECKING(for manpage renaming)
5365
5366 AC_ARG_WITH(manpage-renames,
5367         [  --with-manpage-renames  specify manpage-renaming],
5368         [MANPAGE_RENAMES=$withval],
5369         [MANPAGE_RENAMES=yes])
5370
5371 case ".$MANPAGE_RENAMES" in
5372 (.no)
5373         ;;
5374 (.|.yes)
5375         # Debian 'man' program?
5376         if test -f /etc/debian_version ; then
5377                 MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
5378         else
5379                 MANPAGE_RENAMES=no
5380         fi
5381         ;;
5382 esac
5383
5384 if test "$MANPAGE_RENAMES" != no ; then
5385         if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
5386                 MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
5387         elif test ! -f "$MANPAGE_RENAMES" ; then
5388                 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
5389         fi
5390
5391         test ! -d man && mkdir man
5392
5393         # Construct a sed-script to perform renaming within man-pages
5394         if test -n "$MANPAGE_RENAMES" ; then
5395                 test ! -d man && mkdir man
5396                 $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
5397         fi
5398 fi
5399
5400 AC_MSG_RESULT($MANPAGE_RENAMES)
5401 AC_SUBST(MANPAGE_RENAMES)
5402 ])dnl
5403 dnl ---------------------------------------------------------------------------
5404 dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
5405 dnl -------------------
5406 dnl Some people expect each tool to make all aliases for manpages in the
5407 dnl man-directory.  This accommodates the older, less-capable implementations
5408 dnl of 'man', and is optional.
5409 AC_DEFUN([CF_MANPAGE_SYMLINKS],
5410 [
5411 AC_MSG_CHECKING(if manpage aliases will be installed)
5412
5413 AC_ARG_WITH(manpage-aliases,
5414         [  --with-manpage-aliases  specify manpage-aliases using .so],
5415         [MANPAGE_ALIASES=$withval],
5416         [MANPAGE_ALIASES=yes])
5417
5418 AC_MSG_RESULT($MANPAGE_ALIASES)
5419
5420 case "x$LN_S" in
5421 (xln*)
5422         cf_use_symlinks=yes
5423         ;;
5424 (*)
5425         cf_use_symlinks=no
5426         ;;
5427 esac
5428
5429 MANPAGE_SYMLINKS=no
5430 if test "$MANPAGE_ALIASES" = yes ; then
5431 AC_MSG_CHECKING(if manpage symlinks should be used)
5432
5433 AC_ARG_WITH(manpage-symlinks,
5434         [  --with-manpage-symlinks specify manpage-aliases using symlinks],
5435         [MANPAGE_SYMLINKS=$withval],
5436         [MANPAGE_SYMLINKS=$cf_use_symlinks])
5437
5438 if test "$$cf_use_symlinks" = no; then
5439 if test "$MANPAGE_SYMLINKS" = yes ; then
5440         AC_MSG_WARN(cannot make symlinks, will use .so files)
5441         MANPAGE_SYMLINKS=no
5442 fi
5443 fi
5444
5445 AC_MSG_RESULT($MANPAGE_SYMLINKS)
5446 fi
5447
5448 ])dnl
5449 dnl ---------------------------------------------------------------------------
5450 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
5451 dnl --------------
5452 dnl This option causes manpages to be run through tbl(1) to generate tables
5453 dnl correctly.
5454 AC_DEFUN([CF_MANPAGE_TBL],
5455 [
5456 AC_MSG_CHECKING(for manpage tbl)
5457
5458 AC_ARG_WITH(manpage-tbl,
5459         [  --with-manpage-tbl      specify manpage processing with tbl],
5460         [MANPAGE_TBL=$withval],
5461         [MANPAGE_TBL=no])
5462
5463 AC_MSG_RESULT($MANPAGE_TBL)
5464 ])dnl
5465 dnl ---------------------------------------------------------------------------
5466 dnl CF_MAN_PAGES version: 51 updated: 2021/01/05 16:29:19
5467 dnl ------------
5468 dnl Try to determine if the man-pages on the system are compressed, and if
5469 dnl so, what format is used.  Use this information to construct a script that
5470 dnl will install man-pages.
5471 AC_DEFUN([CF_MAN_PAGES],
5472 [
5473 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
5474 CF_MANPAGE_FORMAT
5475 CF_MANPAGE_RENAMES
5476 CF_MANPAGE_SYMLINKS
5477 CF_MANPAGE_TBL
5478
5479 if test "$prefix" = "NONE" ; then
5480         cf_prefix="$ac_default_prefix"
5481 else
5482         cf_prefix="$prefix"
5483 fi
5484
5485 case "$MANPAGE_FORMAT" in
5486 (*catonly*)
5487         cf_format=yes
5488         cf_inboth=no
5489         ;;
5490 (*formatted*)
5491         cf_format=yes
5492         cf_inboth=yes
5493         ;;
5494 (*)
5495         cf_format=no
5496         cf_inboth=no
5497         ;;
5498 esac
5499
5500 test ! -d man && mkdir man
5501
5502 cf_so_strip=
5503 cf_compress=
5504 case "$MANPAGE_FORMAT" in
5505 (*compress*)
5506         cf_so_strip="Z"
5507         cf_compress=compress
5508         ;;
5509 (*gzip*)
5510         cf_so_strip="gz"
5511         cf_compress=gzip
5512         ;;
5513 esac
5514
5515 cf_edit_man=./edit_man.sh
5516 cf_man_alias=`pwd`/man_alias.sed
5517
5518 cat >$cf_edit_man <<CF_EOF
5519 #! $SHELL
5520 # this script is generated by the configure-script CF_MAN_PAGES macro.
5521
5522 prefix="$cf_prefix"
5523 datarootdir="$datarootdir"
5524 datadir="$datadir"
5525
5526 NCURSES_MAJOR="$NCURSES_MAJOR"
5527 NCURSES_MINOR="$NCURSES_MINOR"
5528 NCURSES_PATCH="$NCURSES_PATCH"
5529
5530 NCURSES_OSPEED="$NCURSES_OSPEED"
5531 TERMINFO="$TERMINFO"
5532
5533 INSTALL="$INSTALL"
5534 INSTALL_DATA="$INSTALL_DATA"
5535
5536 transform="$program_transform_name"
5537
5538 TMP=\${TMPDIR:=/tmp}/man\$\$
5539 trap "rm -f \$TMP" 0 1 2 3 15
5540
5541 form=\[$]1
5542 shift || exit 1
5543
5544 verb=\[$]1
5545 shift || exit 1
5546
5547 mandir=\[$]1
5548 shift || exit 1
5549
5550 srcdir=\[$]1
5551 top_srcdir=\[$]srcdir/..
5552 shift || exit 1
5553
5554 if test "\$form" = normal ; then
5555         if test "$cf_format" = yes ; then
5556         if test "$cf_inboth" = no ; then
5557                 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5558                 exit $?
5559         fi
5560         fi
5561         cf_subdir=\$mandir/man
5562         cf_tables=$MANPAGE_TBL
5563 else
5564         cf_subdir=\$mandir/cat
5565         cf_tables=yes
5566 fi
5567
5568 # process the list of source-files
5569 for i in "\[$]@" ; do
5570 case \$i in
5571 (*.orig|*.rej) ;;
5572 (*.[[0-9]]*)
5573         section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
5574         if test "\$verb" = installing ; then
5575         if test ! -d "\$cf_subdir\${section}" ; then
5576                 mkdir -p "\$cf_subdir\$section"
5577         fi
5578         fi
5579
5580         # replace variables in man page
5581         if test ! -f "$cf_man_alias" ; then
5582 cat >>$cf_man_alias <<-CF_EOF2
5583                 s,@DATADIR@,\$datadir,g
5584                 s,@TERMINFO@,\${TERMINFO:="no default value"},g
5585                 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
5586                 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
5587                 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
5588                 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
5589                 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
5590 CF_EOF
5591         ifelse($1,,,[
5592         for cf_name in $1
5593         do
5594                 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5595                 cf_name=`echo "$cf_name" | sed "$program_transform_name"`
5596 cat >>$cf_edit_man <<-CF_EOF
5597                 s,@$cf_NAME@,$cf_name,g
5598 CF_EOF
5599         done
5600         ])
5601 cat >>$cf_edit_man <<CF_EOF
5602 CF_EOF2
5603                 echo "...made $cf_man_alias"
5604         fi
5605
5606         aliases=
5607         cf_source=\`basename "\$i"\`
5608         inalias=\$cf_source
5609         test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
5610         if test ! -f "\$inalias" ; then
5611                 echo ".. skipped \$cf_source"
5612                 continue
5613         fi
5614 CF_EOF
5615
5616 if test "$MANPAGE_ALIASES" != no ; then
5617 cat >>$cf_edit_man <<CF_EOF
5618         nCurses=ignore.3x
5619         test "$with_curses_h" = yes && nCurses=ncurses.3x
5620         aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
5621 CF_EOF
5622 fi
5623
5624 if test "$MANPAGE_RENAMES" = no ; then
5625 cat >>$cf_edit_man <<CF_EOF
5626         # perform program transformations for section 1 man pages
5627         if test \$section = 1 ; then
5628                 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
5629         else
5630                 cf_target=\$cf_subdir\${section}/\$cf_source
5631         fi
5632 CF_EOF
5633 else
5634 cat >>$cf_edit_man <<CF_EOF
5635         cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
5636         if test -z "\$cf_target" ; then
5637                 echo "? missing rename for \$cf_source"
5638                 cf_target="\$cf_source"
5639         fi
5640         cf_target="\$cf_subdir\${section}/\${cf_target}"
5641
5642 CF_EOF
5643 fi
5644
5645 cat >>$cf_edit_man <<CF_EOF
5646         sed     -f "$cf_man_alias" \\
5647 CF_EOF
5648
5649 if test -f "$MANPAGE_RENAMES" ; then
5650 cat >>$cf_edit_man <<CF_EOF
5651                 < "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
5652 CF_EOF
5653 else
5654 cat >>$cf_edit_man <<CF_EOF
5655                 < "\$i" >\$TMP
5656 CF_EOF
5657 fi
5658
5659 cat >>$cf_edit_man <<CF_EOF
5660 if test \$cf_tables = yes ; then
5661         tbl \$TMP >\$TMP.out
5662         mv \$TMP.out \$TMP
5663 fi
5664 CF_EOF
5665
5666 if test "$with_overwrite" != yes ; then
5667 cat >>$cf_edit_man <<CF_EOF
5668         sed -e "/\\#[    ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
5669         mv \$TMP.out \$TMP
5670 CF_EOF
5671 fi
5672
5673 if test "$with_curses_h" != yes ; then
5674 cat >>$cf_edit_man <<CF_EOF
5675         sed -e "/\\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
5676         mv \$TMP.out \$TMP
5677 CF_EOF
5678 fi
5679
5680 cat >>$cf_edit_man <<CF_EOF
5681         if test "\$form" = format ; then
5682                 nroff -man \$TMP >\$TMP.out
5683                 mv \$TMP.out \$TMP
5684         fi
5685 CF_EOF
5686
5687 if test -n "$cf_compress" ; then
5688 cat >>$cf_edit_man <<CF_EOF
5689         if test "\$verb" = installing ; then
5690         if ( "$cf_compress" -f \$TMP )
5691         then
5692                 mv \$TMP.$cf_so_strip \$TMP
5693         fi
5694         fi
5695         cf_target="\$cf_target.$cf_so_strip"
5696 CF_EOF
5697 fi
5698
5699 case "$MANPAGE_FORMAT" in
5700 (*BSDI*)
5701 cat >>$cf_edit_man <<CF_EOF
5702         if test "\$form" = format ; then
5703                 # BSDI installs only .0 suffixes in the cat directories
5704                 cf_target="\`echo \$cf_target|sed -e 's/\\.[[1-9]]\\+[[a-z]]*/.0/'\`"
5705         fi
5706 CF_EOF
5707   ;;
5708 esac
5709
5710 cat >>$cf_edit_man <<CF_EOF
5711         suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
5712         if test "\$verb" = installing ; then
5713                 echo "\$verb \$cf_target"
5714                 \$INSTALL_DATA \$TMP "\$cf_target"
5715                 test -d "\$cf_subdir\${section}" &&
5716                 test -n "\$aliases" && (
5717                         cd "\$cf_subdir\${section}" && (
5718                                 cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
5719                                 test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
5720                                 cf_target=\`basename "\$cf_target"\`
5721                                 for cf_alias in \$aliases
5722                                 do
5723                                         if test "\$section" = 1 ; then
5724                                                 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
5725                                         fi
5726
5727                                         if test "$MANPAGE_SYMLINKS" = yes ; then
5728                                                 if test -f "\$cf_alias\${suffix}" ; then
5729                                                         if ( cmp -s "\$cf_target" "\$cf_alias\${suffix}" )
5730                                                         then
5731                                                                 continue
5732                                                         fi
5733                                                 fi
5734                                                 echo ".. \$verb alias \$cf_alias\${suffix}"
5735 CF_EOF
5736 case "x$LN_S" in
5737 (*-f)
5738 cat >>$cf_edit_man <<CF_EOF
5739                                                 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
5740 CF_EOF
5741         ;;
5742 (*)
5743 cat >>$cf_edit_man <<CF_EOF
5744                                                 rm -f "\$cf_alias\${suffix}"
5745                                                 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
5746 CF_EOF
5747         ;;
5748 esac
5749 cat >>$cf_edit_man <<CF_EOF
5750                                         elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
5751                                                 echo ".so \$cf_source" >\$TMP
5752 CF_EOF
5753 if test -n "$cf_compress" ; then
5754 cat >>$cf_edit_man <<CF_EOF
5755                                                 if test -n "$cf_so_strip" ; then
5756                                                         "$cf_compress" -f \$TMP
5757                                                         mv \$TMP.$cf_so_strip \$TMP
5758                                                 fi
5759 CF_EOF
5760 fi
5761 cat >>$cf_edit_man <<CF_EOF
5762                                                 echo ".. \$verb alias \$cf_alias\${suffix}"
5763                                                 rm -f "\$cf_alias\${suffix}"
5764                                                 \$INSTALL_DATA \$TMP "\$cf_alias\${suffix}"
5765                                         fi
5766                                 done
5767                         )
5768                 )
5769         elif test "\$verb" = removing ; then
5770                 test -f "\$cf_target" && (
5771                         echo "\$verb \$cf_target"
5772                         rm -f "\$cf_target"
5773                 )
5774                 test -d "\$cf_subdir\${section}" &&
5775                 test -n "\$aliases" && (
5776                         cd "\$cf_subdir\${section}" && (
5777                                 for cf_alias in \$aliases
5778                                 do
5779                                         if test "\$section" = 1 ; then
5780                                                 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
5781                                         fi
5782
5783                                         echo ".. \$verb alias \$cf_alias\${suffix}"
5784                                         rm -f "\$cf_alias\${suffix}"
5785                                 done
5786                         )
5787                 )
5788         else
5789 #               echo ".hy 0"
5790                 cat \$TMP
5791         fi
5792         ;;
5793 esac
5794 done
5795
5796 if test "$cf_inboth" = yes ; then
5797 if test "\$form" != format ; then
5798         $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5799 fi
5800 fi
5801
5802 exit 0
5803 CF_EOF
5804 chmod 755 "$cf_edit_man"
5805
5806 ])dnl
5807 dnl ---------------------------------------------------------------------------
5808 dnl CF_MAP_LIB_BASENAME version: 2 updated: 2021/01/02 17:09:14
5809 dnl -------------------
5810 dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
5811 dnl
5812 dnl $1 = variable to set
5813 dnl $2 = default-libname
5814 AC_DEFUN([CF_MAP_LIB_BASENAME],[
5815 CF_UPPER(cf_map_lib_basename,$2)
5816 eval $1="\$${cf_map_lib_basename}_NAME"
5817 ])dnl
5818 dnl ---------------------------------------------------------------------------
5819 dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20
5820 dnl -----------
5821 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
5822 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
5823 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
5824 AC_DEFUN([CF_MATH_LIB],
5825 [
5826 AC_CACHE_CHECK(if -lm needed for math functions,
5827         cf_cv_need_libm,[
5828         AC_TRY_LINK([
5829         #include <stdio.h>
5830         #include <stdlib.h>
5831         #include <math.h>
5832         ],
5833         [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
5834         [cf_cv_need_libm=no],
5835         [cf_cv_need_libm=yes])])
5836 if test "$cf_cv_need_libm" = yes
5837 then
5838 ifelse($1,,[
5839         CF_ADD_LIB(m)
5840 ],[$1=-lm])
5841 fi
5842 ])
5843 dnl ---------------------------------------------------------------------------
5844 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
5845 dnl ----------------------
5846 dnl Check if the file-system supports mixed-case filenames.  If we're able to
5847 dnl create a lowercase name and see it as uppercase, it doesn't support that.
5848 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
5849 [
5850 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
5851 if test "$cross_compiling" = yes ; then
5852         case "$target_alias" in
5853         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
5854                 cf_cv_mixedcase=no
5855                 ;;
5856         (*)
5857                 cf_cv_mixedcase=yes
5858                 ;;
5859         esac
5860 else
5861         rm -f conftest CONFTEST
5862         echo test >conftest
5863         if test -f CONFTEST ; then
5864                 cf_cv_mixedcase=no
5865         else
5866                 cf_cv_mixedcase=yes
5867         fi
5868         rm -f conftest CONFTEST
5869 fi
5870 ])
5871 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
5872 ])dnl
5873 dnl ---------------------------------------------------------------------------
5874 dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
5875 dnl ----------
5876 dnl Check for a working mkstemp.  This creates two files, checks that they are
5877 dnl successfully created and distinct (AmigaOS apparently fails on the last).
5878 AC_DEFUN([CF_MKSTEMP],[
5879 AC_CHECK_HEADERS( \
5880 unistd.h \
5881 )
5882 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
5883 rm -rf ./conftest*
5884 AC_TRY_RUN([
5885 #include <sys/types.h>
5886 #ifdef HAVE_UNISTD_H
5887 #include <unistd.h>
5888 #endif
5889 #include <stdlib.h>
5890 #include <stdio.h>
5891 #include <string.h>
5892 #include <sys/stat.h>
5893 int main(void)
5894 {
5895         char *tmpl = "conftestXXXXXX";
5896         char name[2][80];
5897         int n;
5898         int result = 0;
5899         int fd;
5900         struct stat sb;
5901
5902         umask(077);
5903         for (n = 0; n < 2; ++n) {
5904                 strcpy(name[n], tmpl);
5905                 if ((fd = mkstemp(name[n])) >= 0) {
5906                         if (!strcmp(name[n], tmpl)
5907                          || stat(name[n], &sb) != 0
5908                          || (sb.st_mode & S_IFMT) != S_IFREG
5909                          || (sb.st_mode & 077) != 0) {
5910                                 result = 1;
5911                         }
5912                         close(fd);
5913                 }
5914         }
5915         if (result == 0
5916          && !strcmp(name[0], name[1]))
5917                 result = 1;
5918         ${cf_cv_main_return:-return}(result);
5919 }
5920 ],[cf_cv_func_mkstemp=yes
5921 ],[cf_cv_func_mkstemp=no
5922 ],[cf_cv_func_mkstemp=maybe])
5923 ])
5924 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
5925         AC_CHECK_FUNC(mkstemp)
5926 fi
5927 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
5928         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
5929 fi
5930 ])dnl
5931 dnl ---------------------------------------------------------------------------
5932 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
5933 dnl ----------
5934 dnl Write a debug message to config.log, along with the line number in the
5935 dnl configure script.
5936 AC_DEFUN([CF_MSG_LOG],[
5937 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
5938 ])dnl
5939 dnl ---------------------------------------------------------------------------
5940 dnl CF_NCURSES_ABI_6 version: 4 updated: 2021/01/01 13:31:04
5941 dnl ----------------
5942 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
5943 dnl warn about this.
5944 AC_DEFUN([CF_NCURSES_ABI_6],[
5945 if test "${with_abi_version+set}" != set; then
5946         case "$cf_cv_rel_version" in
5947         (5.*)
5948                 cf_cv_rel_version=6.0
5949                 cf_cv_abi_version=6
5950                 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
5951                 ;;
5952         esac
5953 fi
5954 ])dnl
5955 dnl ---------------------------------------------------------------------------
5956 dnl CF_NCURSES_WITH_ABI_VERSION version: 3 updated: 2021/01/01 13:31:04
5957 dnl ---------------------------
5958 dnl Allow ncurses's ABI to be overridden.  Generally this happens when a
5959 dnl packager has incremented the ABI past that used in the original package,
5960 dnl and wishes to keep doing this.
5961 dnl
5962 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5963 dnl symbol.
5964 AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
5965 CF_WITH_ABI_VERSION($1)
5966 if test "x$cf_cv_abi_version" != "x$with_abi_version"
5967 then
5968         case "$cf_cv_rel_version" in
5969         (5.*)
5970                 cf_cv_rel_version=$with_abi_version.0
5971                 ;;
5972         esac
5973 fi
5974 ])dnl
5975 dnl ---------------------------------------------------------------------------
5976 dnl CF_NO_LEAKS_OPTION version: 8 updated: 2021/01/05 20:05:09
5977 dnl ------------------
5978 dnl see CF_WITH_NO_LEAKS
5979 AC_DEFUN([CF_NO_LEAKS_OPTION],[
5980 AC_MSG_CHECKING(if you want to use $1 for testing)
5981 AC_ARG_WITH($1,
5982         [$2],
5983         [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
5984          $4
5985 ])
5986         : "${with_cflags:=-g}"
5987         : "${enable_leaks:=no}"
5988          with_$1=yes],
5989         [with_$1=])
5990 AC_MSG_RESULT(${with_$1:-no})
5991
5992 case ".$with_cflags" in
5993 (.*-g*)
5994         case .$CFLAGS in
5995         (.*-g*)
5996                 ;;
5997         (*)
5998                 CF_ADD_CFLAGS([-g])
5999                 ;;
6000         esac
6001         ;;
6002 esac
6003 ])dnl
6004 dnl ---------------------------------------------------------------------------
6005 dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
6006 dnl ----------------
6007 dnl Check if the given variable is a number.  If not, report an error.
6008 dnl $1 is the variable
6009 dnl $2 is the message
6010 AC_DEFUN([CF_NUMBER_SYNTAX],[
6011 if test -n "$1" ; then
6012   case $1 in
6013   ([[0-9]]*)
6014         ;;
6015   (*)
6016         AC_MSG_ERROR($2 is not a number: $1)
6017         ;;
6018   esac
6019 else
6020   AC_MSG_ERROR($2 value is empty)
6021 fi
6022 ])dnl
6023 dnl ---------------------------------------------------------------------------
6024 dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
6025 dnl -------------
6026 dnl Compute the object-directory name from the given model name
6027 AC_DEFUN([CF_OBJ_SUBDIR],
6028 [
6029         case $1 in
6030         (libtool) $2='obj_lo'  ;;
6031         (normal)  $2='objects' ;;
6032         (debug)   $2='obj_g' ;;
6033         (profile) $2='obj_p' ;;
6034         (shared)
6035                 case "$cf_cv_system_name" in
6036                 (cygwin|msys)
6037                         $2='objects' ;;
6038                 (*)
6039                         $2='obj_s' ;;
6040                 esac
6041         esac
6042 ])dnl
6043 dnl ---------------------------------------------------------------------------
6044 dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
6045 dnl ----------
6046 dnl Provide a value for the $PATH and similar separator (or amend the value
6047 dnl as provided in autoconf 2.5x).
6048 AC_DEFUN([CF_PATHSEP],
6049 [
6050         AC_MSG_CHECKING(for PATH separator)
6051         case "$cf_cv_system_name" in
6052         (os2*)  PATH_SEPARATOR=';'  ;;
6053         (*)     ${PATH_SEPARATOR:=':'}  ;;
6054         esac
6055 ifelse([$1],,,[$1=$PATH_SEPARATOR])
6056         AC_SUBST(PATH_SEPARATOR)
6057         AC_MSG_RESULT($PATH_SEPARATOR)
6058 ])dnl
6059 dnl ---------------------------------------------------------------------------
6060 dnl CF_PATH_PROG version: 12 updated: 2021/01/02 09:31:20
6061 dnl ------------
6062 dnl Check for a given program, defining corresponding symbol.
6063 dnl     $1 = environment variable, which is suffixed by "_PATH" in the #define.
6064 dnl     $2 = program name to find.
6065 dnl     $3 = optional list of additional program names to test.
6066 dnl $4 = $PATH
6067 dnl
6068 dnl If there is more than one token in the result, #define the remaining tokens
6069 dnl to $1_ARGS.  We need this for 'install' in particular.
6070 dnl
6071 dnl FIXME: we should allow this to be overridden by environment variables
6072 dnl
6073 AC_DEFUN([CF_PATH_PROG],[
6074 AC_REQUIRE([CF_PATHSEP])
6075 test -z "[$]$1" && $1="$2"
6076 AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
6077
6078 cf_path_prog=""
6079 cf_path_args=""
6080 IFS="${IFS:-    }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
6081 for cf_temp in $ac_cv_path_$1
6082 do
6083         if test -z "$cf_path_prog" ; then
6084                 if test "$with_full_paths" = yes ; then
6085                         CF_PATH_SYNTAX(cf_temp,break)
6086                         cf_path_prog="$cf_temp"
6087                 else
6088                         cf_path_prog="`basename "$cf_temp"`"
6089                 fi
6090         elif test -z "$cf_path_args" ; then
6091                 cf_path_args="$cf_temp"
6092         else
6093                 cf_path_args="$cf_path_args $cf_temp"
6094         fi
6095 done
6096 IFS="$cf_save_ifs"
6097
6098 if test -n "$cf_path_prog" ; then
6099         CF_MSG_LOG(defining path for ${cf_path_prog})
6100         AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
6101         test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
6102 fi
6103 ])dnl
6104 dnl ---------------------------------------------------------------------------
6105 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
6106 dnl --------------
6107 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
6108 dnl begins with one of the prefix/exec_prefix variables, and then again if the
6109 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
6110 dnl delayed evaluation of those symbols.
6111 AC_DEFUN([CF_PATH_SYNTAX],[
6112 if test "x$prefix" != xNONE; then
6113         cf_path_syntax="$prefix"
6114 else
6115         cf_path_syntax="$ac_default_prefix"
6116 fi
6117
6118 case ".[$]$1" in
6119 (.\[$]\(*\)*|.\'*\'*)
6120         ;;
6121 (..|./*|.\\*)
6122         ;;
6123 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
6124         ;;
6125 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
6126         eval $1="[$]$1"
6127         case ".[$]$1" in
6128         (.NONE/*)
6129                 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6130                 ;;
6131         esac
6132         ;;
6133 (.no|.NONE/*)
6134         $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6135         ;;
6136 (*)
6137         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
6138         ;;
6139 esac
6140 ])dnl
6141 dnl ---------------------------------------------------------------------------
6142 dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04
6143 dnl -------------
6144 dnl Check for the package-config program, unless disabled by command-line.
6145 AC_DEFUN([CF_PKG_CONFIG],
6146 [
6147 AC_MSG_CHECKING(if you want to use pkg-config)
6148 AC_ARG_WITH(pkg-config,
6149         [  --with-pkg-config{=path} enable/disable use of pkg-config],
6150         [cf_pkg_config=$withval],
6151         [cf_pkg_config=yes])
6152 AC_MSG_RESULT($cf_pkg_config)
6153
6154 case "$cf_pkg_config" in
6155 (no)
6156         PKG_CONFIG=none
6157         ;;
6158 (yes)
6159         CF_ACVERSION_CHECK(2.52,
6160                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
6161                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
6162         ;;
6163 (*)
6164         PKG_CONFIG=$withval
6165         ;;
6166 esac
6167
6168 test -z "$PKG_CONFIG" && PKG_CONFIG=none
6169 if test "$PKG_CONFIG" != none ; then
6170         CF_PATH_SYNTAX(PKG_CONFIG)
6171 elif test "x$cf_pkg_config" != xno ; then
6172         AC_MSG_WARN(pkg-config is not installed)
6173 fi
6174
6175 AC_SUBST(PKG_CONFIG)
6176 ])dnl
6177 dnl ---------------------------------------------------------------------------
6178 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
6179 dnl -----------------
6180 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
6181 dnl
6182 dnl     POSIX.1-1990                            _POSIX_SOURCE
6183 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
6184 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
6185 dnl             Bindings Option
6186 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
6187 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
6188 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
6189 dnl
6190 dnl Parameters:
6191 dnl     $1 is the nominal value for _POSIX_C_SOURCE
6192 AC_DEFUN([CF_POSIX_C_SOURCE],
6193 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
6194
6195 if test "$cf_cv_posix_visible" = no; then
6196
6197 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
6198
6199 cf_save_CFLAGS="$CFLAGS"
6200 cf_save_CPPFLAGS="$CPPFLAGS"
6201
6202 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
6203 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
6204
6205 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
6206         CF_MSG_LOG(if the symbol is already defined go no further)
6207         AC_TRY_COMPILE([#include <sys/types.h>],[
6208 #ifndef _POSIX_C_SOURCE
6209 make an error
6210 #endif],
6211         [cf_cv_posix_c_source=no],
6212         [cf_want_posix_source=no
6213          case .$cf_POSIX_C_SOURCE in
6214          (.[[12]]??*)
6215                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6216                 ;;
6217          (.2)
6218                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6219                 cf_want_posix_source=yes
6220                 ;;
6221          (.*)
6222                 cf_want_posix_source=yes
6223                 ;;
6224          esac
6225          if test "$cf_want_posix_source" = yes ; then
6226                 AC_TRY_COMPILE([#include <sys/types.h>],[
6227 #ifdef _POSIX_SOURCE
6228 make an error
6229 #endif],[],
6230                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
6231          fi
6232          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
6233          CFLAGS="$cf_trim_CFLAGS"
6234          CPPFLAGS="$cf_trim_CPPFLAGS"
6235          CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
6236          CF_MSG_LOG(if the second compile does not leave our definition intact error)
6237          AC_TRY_COMPILE([#include <sys/types.h>],[
6238 #ifndef _POSIX_C_SOURCE
6239 make an error
6240 #endif],,
6241          [cf_cv_posix_c_source=no])
6242          CFLAGS="$cf_save_CFLAGS"
6243          CPPFLAGS="$cf_save_CPPFLAGS"
6244         ])
6245 ])
6246
6247 if test "$cf_cv_posix_c_source" != no ; then
6248         CFLAGS="$cf_trim_CFLAGS"
6249         CPPFLAGS="$cf_trim_CPPFLAGS"
6250         CF_ADD_CFLAGS($cf_cv_posix_c_source)
6251 fi
6252
6253 fi # cf_cv_posix_visible
6254
6255 ])dnl
6256 dnl ---------------------------------------------------------------------------
6257 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
6258 dnl ----------------
6259 dnl POSIX documents test-macros which an application may set before any system
6260 dnl headers are included to make features available.
6261 dnl
6262 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
6263 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
6264 dnl recent features visible in the system header files unless the application
6265 dnl overrides the corresponding test-macros.  Doing that introduces portability
6266 dnl problems.
6267 dnl
6268 dnl This macro makes a special check for the symbols used for this, to avoid a
6269 dnl conflicting definition.
6270 AC_DEFUN([CF_POSIX_VISIBLE],
6271 [
6272 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
6273 AC_TRY_COMPILE([#include <stdio.h>],[
6274 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
6275         && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
6276         && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
6277         && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
6278 #error conflicting symbols found
6279 #endif
6280 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
6281 ])
6282 ])dnl
6283 dnl ---------------------------------------------------------------------------
6284 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
6285 dnl ------------
6286 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
6287 dnl
6288 dnl $1 = symbol to test
6289 dnl $2 = value (if any) to use for a predefinition
6290 AC_DEFUN([CF_PREDEFINE],
6291 [
6292 AC_MSG_CHECKING(if we must define $1)
6293 AC_TRY_COMPILE([#include <sys/types.h>
6294 ],[
6295 #ifndef $1
6296 make an error
6297 #endif],[cf_result=no],[cf_result=yes])
6298 AC_MSG_RESULT($cf_result)
6299
6300 if test "$cf_result" = yes ; then
6301         CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
6302 elif test "x$2" != "x" ; then
6303         AC_MSG_CHECKING(checking for compatible value versus $2)
6304         AC_TRY_COMPILE([#include <sys/types.h>
6305 ],[
6306 #if $1-$2 < 0
6307 make an error
6308 #endif],[cf_result=yes],[cf_result=no])
6309         AC_MSG_RESULT($cf_result)
6310         if test "$cf_result" = no ; then
6311                 # perhaps we can override it - try...
6312                 CPPFLAGS="$CPPFLAGS -D$1=$2"
6313         fi
6314 fi
6315 ])dnl
6316 dnl ---------------------------------------------------------------------------
6317 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
6318 dnl ------------
6319 dnl Append definitions and rules for the given programs to the subdirectory
6320 dnl Makefiles, and the recursion rule for the top-level Makefile.
6321 dnl
6322 dnl parameters
6323 dnl     $1 = script to run
6324 dnl     $2 = list of subdirectories
6325 dnl
6326 dnl variables
6327 dnl     $AWK
6328 AC_DEFUN([CF_PRG_RULES],
6329 [
6330 for cf_dir in $2
6331 do
6332         if test ! -d "$srcdir/$cf_dir" ; then
6333                 continue
6334         elif test -f "$srcdir/$cf_dir/programs" ; then
6335                 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
6336         fi
6337 done
6338
6339 ])dnl
6340 dnl ---------------------------------------------------------------------------
6341 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
6342 dnl ----------
6343 dnl Check for archiver "ar".
6344 AC_DEFUN([CF_PROG_AR],[
6345 AC_CHECK_TOOL(AR, ar, ar)
6346 ])
6347 dnl ---------------------------------------------------------------------------
6348 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
6349 dnl -----------
6350 dnl Check for awk, ensure that the check found something.
6351 AC_DEFUN([CF_PROG_AWK],
6352 [
6353 AC_PROG_AWK
6354 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
6355 ])dnl
6356 dnl ---------------------------------------------------------------------------
6357 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
6358 dnl ----------
6359 dnl standard check for CC, plus followup sanity checks
6360 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
6361 AC_DEFUN([CF_PROG_CC],[
6362 CF_ACVERSION_CHECK(2.53,
6363         [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
6364          AC_REQUIRE([AC_PROG_CC])],
6365         [])
6366 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
6367 CF_GCC_VERSION
6368 CF_ACVERSION_CHECK(2.52,
6369         [AC_PROG_CC_STDC],
6370         [CF_ANSI_CC_REQD])
6371 CF_CC_ENV_FLAGS
6372 ])dnl
6373 dnl ---------------------------------------------------------------------------
6374 dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
6375 dnl --------------
6376 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
6377 dnl the output file can be renamed, and allows for a shell variable that can
6378 dnl be used later.  The parameter is either CC or CXX.  The result is the
6379 dnl cache variable:
6380 dnl     $cf_cv_prog_CC_c_o
6381 dnl     $cf_cv_prog_CXX_c_o
6382 dnl
6383 dnl $1 = compiler
6384 dnl $2 = compiler options, if any
6385 AC_DEFUN([CF_PROG_CC_C_O],
6386 [AC_REQUIRE([AC_PROG_CC])dnl
6387 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
6388 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
6389 [
6390 cat > conftest.$ac_ext <<CF_EOF
6391 int main(void)
6392 {
6393         ${cf_cv_main_return:-return}(0);
6394 }
6395 CF_EOF
6396 # We do the test twice because some compilers refuse to overwrite an
6397 # existing .o file with -o, though they will create one.
6398 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
6399 if AC_TRY_EVAL(ac_try) &&
6400   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
6401 then
6402   eval cf_cv_prog_$1_c_o=yes
6403 else
6404   eval cf_cv_prog_$1_c_o=no
6405 fi
6406 rm -rf ./conftest*
6407 ])dnl
6408 if test "$cf_cv_prog_$1_c_o" = yes; then
6409   AC_MSG_RESULT([yes])
6410 else
6411   AC_MSG_RESULT([no])
6412 fi
6413 ])dnl
6414 dnl ---------------------------------------------------------------------------
6415 dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
6416 dnl ------------
6417 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
6418 AC_DEFUN([CF_PROG_GNAT],[
6419 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
6420 do
6421         CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
6422
6423         unset ac_cv_path_cf_TEMP_gnat
6424         unset cf_TEMP_gnat
6425         AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
6426         eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
6427
6428         if test "x$cf_TEMP_gnat" != xno; then
6429                 unset cf_cv_gnat_version
6430                 unset cf_TEMP_gnat
6431                 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
6432         fi
6433         eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
6434
6435         unset cf_TEMP_gnat
6436         unset cf_cv_gnat_version
6437         unset ac_cv_path_cf_TEMP_gnat
6438 done
6439
6440 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
6441         cf_ada_make=
6442         cf_cv_prog_gnat_correct=no
6443 else
6444         cf_ada_make=gnatmake
6445         if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
6446                 # gprconfig is newer than gnatmake; we can continue...
6447                 cf_ada_config="##"
6448         else
6449                 rm -rf ./conftest* ./*~conftest*
6450                 if mkdir conftest.src
6451                 then
6452                         cf_ada_config=""
6453                         cd conftest.src
6454                         for cf_gprconfig in Ada C
6455                         do
6456                                 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
6457                                 if test "$cf_gprconfig" = C
6458                                 then
6459                                         for cf_gprconfig_param in \
6460                                                 "$cf_gprconfig,,,,GNATGCC" \
6461                                                 "$cf_gprconfig,,,,GCC" \
6462                                                 "$cf_gprconfig"
6463                                         do
6464                                                 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6465                                                 test -n "$cf_gprconfig_value" && break
6466                                         done
6467                                 else
6468                                         cf_gprconfig_param=$cf_gprconfig
6469                                         cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6470                                 fi
6471                                 if test -n "$cf_gprconfig_value"
6472                                 then
6473                                         eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
6474                                         AC_MSG_RESULT($cf_gprconfig_value)
6475                                 else
6476                                         AC_MSG_RESULT(missing)
6477                                         cf_ada_config="#"
6478                                         break
6479                                 fi
6480                         done
6481                         cd ..
6482                         rm -rf ./conftest* ./*~conftest*
6483                 fi
6484         fi
6485         if test "x$cf_ada_config" != "x#"
6486         then
6487                 CF_GNAT_VERSION
6488                 CF_CHECK_GNAT_VERSION
6489                 AC_CHECK_PROG(M4_exists, m4, yes, no)
6490                 if test "$ac_cv_prog_M4_exists" = no; then
6491                         cf_cv_prog_gnat_correct=no
6492                         AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
6493                 fi
6494                 if test "$cf_cv_prog_gnat_correct" = yes; then
6495                         AC_MSG_CHECKING(if GNAT works)
6496                         CF_GNAT_TRY_RUN([procedure conftest;],
6497 [with Text_IO;
6498 with GNAT.OS_Lib;
6499 procedure conftest is
6500 begin
6501    Text_IO.Put ("Hello World");
6502    Text_IO.New_Line;
6503    GNAT.OS_Lib.OS_Exit (0);
6504 end conftest;],
6505 [cf_cv_prog_gnat_correct=yes],
6506 [cf_cv_prog_gnat_correct=no])
6507                         AC_MSG_RESULT($cf_cv_prog_gnat_correct)
6508                 fi
6509         else
6510                 cf_cv_prog_gnat_correct=no
6511         fi
6512 fi
6513
6514 AC_SUBST(cf_ada_make)
6515 AC_SUBST(cf_ada_config)
6516 AC_SUBST(cf_ada_config_Ada)
6517 AC_SUBST(cf_ada_config_C)
6518 ])dnl
6519 dnl ---------------------------------------------------------------------------
6520 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
6521 dnl ---------------
6522 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
6523 dnl misc/tabset install won't work properly.  Usually this happens only when
6524 dnl using the fallback mkinstalldirs script
6525 AC_DEFUN([CF_PROG_INSTALL],
6526 [AC_PROG_INSTALL
6527 case $INSTALL in
6528 (/*)
6529         ;;
6530 (*)
6531         CF_DIRNAME(cf_dir,$INSTALL)
6532         test -z "$cf_dir" && cf_dir=.
6533         INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
6534         ;;
6535 esac
6536 ])dnl
6537 dnl ---------------------------------------------------------------------------
6538 dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
6539 dnl ----------------
6540 dnl Check for ldconfig, needed to fixup shared libraries that would be built
6541 dnl and then used in the install.
6542 AC_DEFUN([CF_PROG_LDCONFIG],[
6543 if test "$cross_compiling" = yes ; then
6544         LDCONFIG=:
6545 else
6546         case "$cf_cv_system_name" in
6547         (dragonfly*|mirbsd*|freebsd*)
6548                 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
6549                 ;;
6550         (*) LDPATH=$PATH:/sbin:/usr/sbin
6551                 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
6552                 ;;
6553         esac
6554 fi
6555 AC_SUBST(LDCONFIG)
6556 ])dnl
6557 dnl ---------------------------------------------------------------------------
6558 dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
6559 dnl ------------
6560 AC_DEFUN([CF_PROG_LINT],
6561 [
6562 AC_CHECK_PROGS(LINT, lint cppcheck splint)
6563 case "x$LINT" in
6564 (xcppcheck|x*/cppcheck)
6565         test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
6566         ;;
6567 esac
6568 AC_SUBST(LINT_OPTS)
6569 ])dnl
6570 dnl ---------------------------------------------------------------------------
6571 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
6572 dnl ------------
6573 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
6574 dnl option if it is supported.
6575 AC_DEFUN([CF_PROG_LN_S],[
6576 AC_PROG_LN_S
6577 AC_MSG_CHECKING(if $LN_S -f options work)
6578
6579 rm -f conf$$.src conf$$dst
6580 echo >conf$$.dst
6581 echo first >conf$$.src
6582 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
6583         cf_prog_ln_sf=yes
6584 else
6585         cf_prog_ln_sf=no
6586 fi
6587 rm -f conf$$.dst conf$$src
6588 AC_MSG_RESULT($cf_prog_ln_sf)
6589
6590 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
6591 ])dnl
6592 dnl ---------------------------------------------------------------------------
6593 dnl CF_REGEX version: 18 updated: 2021/01/01 16:53:59
6594 dnl --------
6595 dnl Attempt to determine if we've got one of the flavors of regular-expression
6596 dnl code that we can support.
6597 AC_DEFUN([CF_REGEX],
6598 [
6599
6600 cf_regex_func=no
6601 cf_regex_libs=
6602 case "$host_os" in
6603 (mingw*)
6604         # -lsystre -ltre -lintl -liconv
6605         AC_CHECK_LIB(systre,regcomp,[
6606                 AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
6607                 AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
6608                 AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
6609                 CF_ADD_LIB(systre)
6610                 cf_regex_func=regcomp
6611         ],[
6612                 AC_CHECK_LIB(gnurx,regcomp,[
6613                         CF_ADD_LIB(gnurx)
6614                         cf_regex_func=regcomp])
6615         ])
6616         ;;
6617 (*)
6618         cf_regex_libs="regex re"
6619         AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
6620                 for cf_regex_lib in $cf_regex_libs
6621                 do
6622                         AC_CHECK_LIB($cf_regex_lib,regcomp,[
6623                                         CF_ADD_LIB($cf_regex_lib)
6624                                         cf_regex_func=regcomp
6625                                         break])
6626                 done
6627         ])
6628         ;;
6629 esac
6630
6631 if test "$cf_regex_func" = no ; then
6632         AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
6633                 AC_CHECK_LIB(gen,compile,[
6634                                 CF_ADD_LIB(gen)
6635                                 cf_regex_func=compile])])
6636 fi
6637
6638 if test "$cf_regex_func" = no ; then
6639         AC_MSG_WARN(cannot find regular expression library)
6640 fi
6641
6642 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
6643
6644 cf_cv_regex_hdrs=no
6645 case "$cf_regex_func" in
6646 (compile)
6647         for cf_regex_hdr in regexp.h regexpr.h
6648         do
6649                 AC_TRY_LINK([#include <$cf_regex_hdr>],[
6650                         char *p = compile("", "", "", 0);
6651                         int x = step("", "");
6652                         (void)p;
6653                         (void)x;
6654                 ],[
6655                         cf_cv_regex_hdrs=$cf_regex_hdr
6656                         break
6657                 ])
6658         done
6659         ;;
6660 (*)
6661         for cf_regex_hdr in regex.h
6662         do
6663                 AC_TRY_LINK([#include <sys/types.h>
6664 #include <$cf_regex_hdr>],[
6665                         regex_t *p = 0;
6666                         int x = regcomp(p, "", 0);
6667                         int y = regexec(p, "", 0, 0, 0);
6668                         (void)x;
6669                         (void)y;
6670                         regfree(p);
6671                 ],[
6672                         cf_cv_regex_hdrs=$cf_regex_hdr
6673                         break
6674                 ])
6675         done
6676         ;;
6677 esac
6678
6679 ])
6680
6681 case "$cf_cv_regex_hdrs" in
6682         (no)            AC_MSG_WARN(no regular expression header found) ;;
6683         (regex.h)       AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
6684         (regexp.h)      AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
6685         (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
6686 esac
6687 ])dnl
6688 dnl ---------------------------------------------------------------------------
6689 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
6690 dnl ----------------
6691 dnl Remove all -U and -D options that refer to the given symbol from a list
6692 dnl of C compiler options.  This works around the problem that not all
6693 dnl compilers process -U and -D options from left-to-right, so a -U option
6694 dnl cannot be used to cancel the effect of a preceding -D option.
6695 dnl
6696 dnl $1 = target (which could be the same as the source variable)
6697 dnl $2 = source (including '$')
6698 dnl $3 = symbol to remove
6699 define([CF_REMOVE_DEFINE],
6700 [
6701 $1=`echo "$2" | \
6702         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
6703                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
6704 ])dnl
6705 dnl ---------------------------------------------------------------------------
6706 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
6707 dnl -------------
6708 dnl Remove the given library from the symbol
6709 dnl
6710 dnl $1 = target (which could be the same as the source variable)
6711 dnl $2 = source (including '$')
6712 dnl $3 = library to remove
6713 define([CF_REMOVE_LIB],
6714 [
6715 # remove $3 library from $2
6716 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
6717 ])dnl
6718 dnl ---------------------------------------------------------------------------
6719 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
6720 dnl ---------------------
6721 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
6722 dnl $1 = name of current macro
6723 define([CF_RESTORE_XTRA_FLAGS],
6724 [
6725 LIBS="$cf_save_LIBS_$1"
6726 CFLAGS="$cf_save_CFLAGS_$1"
6727 CPPFLAGS="$cf_save_CPPFLAGS_$1"
6728 ])dnl
6729 dnl ---------------------------------------------------------------------------
6730 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
6731 dnl -------------
6732 AC_DEFUN([CF_RPATH_HACK],
6733 [AC_REQUIRE([AC_PROG_FGREP])dnl
6734 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
6735
6736 AC_MSG_CHECKING(for updated LDFLAGS)
6737 if test -n "$LD_RPATH_OPT" ; then
6738         AC_MSG_RESULT(maybe)
6739
6740         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
6741         cf_rpath_list="/usr/lib /lib"
6742         if test "$cf_ldd_prog" != no
6743         then
6744                 cf_rpath_oops=
6745
6746 AC_TRY_LINK([#include <stdio.h>],
6747                 [printf("Hello");],
6748                 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
6749                  cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[        ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
6750
6751                 # If we passed the link-test, but get a "not found" on a given library,
6752                 # this could be due to inept reconfiguration of gcc to make it only
6753                 # partly honor /usr/local/lib (or whatever).  Sometimes this behavior
6754                 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
6755                 # /usr/local libraries.
6756                 if test -n "$cf_rpath_oops"
6757                 then
6758                         for cf_rpath_src in $cf_rpath_oops
6759                         do
6760                                 for cf_rpath_dir in \
6761                                         /usr/local \
6762                                         /usr/pkg \
6763                                         /opt/sfw
6764                                 do
6765                                         if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
6766                                         then
6767                                                 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
6768                                                 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
6769                                                 break
6770                                         fi
6771                                 done
6772                         done
6773                 fi
6774         fi
6775
6776         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
6777
6778         CF_RPATH_HACK_2(LDFLAGS)
6779         CF_RPATH_HACK_2(LIBS)
6780
6781         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
6782 else
6783         AC_MSG_RESULT(no)
6784 fi
6785 AC_SUBST(EXTRA_LDFLAGS)
6786 ])dnl
6787 dnl ---------------------------------------------------------------------------
6788 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
6789 dnl ---------------
6790 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
6791 dnl EXTRA_LDFLAGS for each -L option found.
6792 dnl
6793 dnl $cf_rpath_list contains a list of directories to ignore.
6794 dnl
6795 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
6796 dnl      but LIBS often has misplaced -L options.
6797 AC_DEFUN([CF_RPATH_HACK_2],
6798 [
6799 CF_VERBOSE(...checking $1 [$]$1)
6800
6801 cf_rpath_dst=
6802 for cf_rpath_src in [$]$1
6803 do
6804         case "$cf_rpath_src" in
6805         (-L*)
6806
6807                 # check if this refers to a directory which we will ignore
6808                 cf_rpath_skip=no
6809                 if test -n "$cf_rpath_list"
6810                 then
6811                         for cf_rpath_item in $cf_rpath_list
6812                         do
6813                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
6814                                 then
6815                                         cf_rpath_skip=yes
6816                                         break
6817                                 fi
6818                         done
6819                 fi
6820
6821                 if test "$cf_rpath_skip" = no
6822                 then
6823                         # transform the option
6824                         if test "$LD_RPATH_OPT" = "-R " ; then
6825                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
6826                         else
6827                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
6828                         fi
6829
6830                         # if we have not already added this, add it now
6831                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
6832                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
6833                         then
6834                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
6835                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
6836                         fi
6837                 fi
6838                 ;;
6839         esac
6840         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
6841 done
6842 $1=$cf_rpath_dst
6843
6844 CF_VERBOSE(...checked $1 [$]$1)
6845 AC_SUBST(EXTRA_LDFLAGS)
6846 ])dnl
6847 dnl ---------------------------------------------------------------------------
6848 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
6849 dnl ------------------
6850 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
6851 dnl and libraries which do not update those variables.
6852 dnl
6853 dnl $1 = name of current macro
6854 define([CF_SAVE_XTRA_FLAGS],
6855 [
6856 cf_save_LIBS_$1="$LIBS"
6857 cf_save_CFLAGS_$1="$CFLAGS"
6858 cf_save_CPPFLAGS_$1="$CPPFLAGS"
6859 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
6860 for cf_X_CFLAGS in $X_CFLAGS
6861 do
6862         case "x$cf_X_CFLAGS" in
6863         x-[[IUD]]*)
6864                 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
6865                 ;;
6866         *)
6867                 CFLAGS="$CFLAGS $cf_X_CFLAGS"
6868                 ;;
6869         esac
6870 done
6871 ])dnl
6872 dnl ---------------------------------------------------------------------------
6873 dnl CF_SHARED_OPTS version: 105 updated: 2021/01/02 17:09:14
6874 dnl --------------
6875 dnl --------------
6876 dnl Attempt to determine the appropriate CC/LD options for creating a shared
6877 dnl library.
6878 dnl
6879 dnl Notes:
6880 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
6881 dnl the build-tree, i.e., by making use of the libraries that are compiled in
6882 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
6883 dnl shared library since that can lead to unexpected results at runtime.
6884 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
6885 dnl libraries are compiled in ../../lib
6886 dnl
6887 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
6888 dnl to install symbolic links to the rel/abi versions of shared libraries.
6889 dnl
6890 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
6891 dnl version when making symbolic links.
6892 dnl
6893 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
6894 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
6895 dnl (ex: libncurses.so.<ver>).
6896 dnl
6897 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
6898 AC_DEFUN([CF_SHARED_OPTS],
6899 [
6900         AC_REQUIRE([CF_LD_RPATH_OPT])
6901
6902         RM_SHARED_OPTS=
6903         LOCAL_LDFLAGS=
6904         LOCAL_LDFLAGS2=
6905         LD_SHARED_OPTS=
6906         INSTALL_LIB="-m 644"
6907         : ${rel_builddir:=.}
6908
6909         shlibdir=$libdir
6910         AC_SUBST(shlibdir)
6911
6912         MAKE_DLLS="#"
6913         AC_SUBST(MAKE_DLLS)
6914
6915         cf_cv_do_symlinks=no
6916         cf_ld_rpath_opt=
6917         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
6918
6919         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
6920         AC_ARG_WITH(shlib-version,
6921         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
6922         [test -z "$withval" && withval=auto
6923         case "$withval" in
6924         (yes)
6925                 cf_cv_shlib_version=auto
6926                 ;;
6927         (rel|abi|auto)
6928                 cf_cv_shlib_version=$withval
6929                 ;;
6930         (*)
6931                 AC_MSG_RESULT($withval)
6932                 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
6933                 ;;
6934         esac
6935         ],[cf_cv_shlib_version=auto])
6936         AC_MSG_RESULT($cf_cv_shlib_version)
6937
6938         cf_cv_rm_so_locs=no
6939         cf_try_cflags=
6940
6941         # Some less-capable ports of gcc support only -fpic
6942         CC_SHARED_OPTS=
6943
6944         cf_try_fPIC=no
6945         if test "$GCC" = yes
6946         then
6947                 cf_try_fPIC=yes
6948         else
6949                 case "$cf_cv_system_name" in
6950                 (*linux*)       # e.g., PGI compiler
6951                         cf_try_fPIC=yes
6952                         ;;
6953                 esac
6954         fi
6955
6956         if test "$cf_try_fPIC" = yes
6957         then
6958                 AC_MSG_CHECKING(which $CC option to use)
6959                 cf_save_CFLAGS="$CFLAGS"
6960                 for CC_SHARED_OPTS in -fPIC -fpic ''
6961                 do
6962                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
6963                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
6964                 done
6965                 AC_MSG_RESULT($CC_SHARED_OPTS)
6966                 CFLAGS="$cf_save_CFLAGS"
6967         fi
6968
6969         cf_cv_shlib_version_infix=no
6970
6971         case "$cf_cv_system_name" in
6972         (aix4.[3-9]*|aix[[5-7]]*)
6973                 if test "$GCC" = yes; then
6974                         CC_SHARED_OPTS='-Wl,-brtl'
6975                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
6976                 else
6977                         CC_SHARED_OPTS='-brtl'
6978                         # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
6979                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
6980                 fi
6981                 ;;
6982         (beos*)
6983                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
6984                 ;;
6985         (cygwin*)
6986                 CC_SHARED_OPTS=
6987                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
6988                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
6989                 cf_cv_shlib_version=cygdll
6990                 cf_cv_shlib_version_infix=cygdll
6991                 shlibdir=$bindir
6992                 MAKE_DLLS=
6993                 cat >mk_shared_lib.sh <<-CF_EOF
6994                 #!$SHELL
6995                 SHARED_LIB=\[$]1
6996                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
6997                 shift
6998                 cat <<-EOF
6999                 Linking shared library
7000                 ** SHARED_LIB \[$]SHARED_LIB
7001                 ** IMPORT_LIB \[$]IMPORT_LIB
7002 EOF
7003                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7004 CF_EOF
7005                 chmod +x mk_shared_lib.sh
7006                 ;;
7007         (msys*)
7008                 CC_SHARED_OPTS=
7009                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7010                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7011                 cf_cv_shlib_version=msysdll
7012                 cf_cv_shlib_version_infix=msysdll
7013                 shlibdir=$bindir
7014                 MAKE_DLLS=
7015                 cat >mk_shared_lib.sh <<-CF_EOF
7016                 #!$SHELL
7017                 SHARED_LIB=\[$]1
7018                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7019                 shift
7020                 cat <<-EOF
7021                 Linking shared library
7022                 ** SHARED_LIB \[$]SHARED_LIB
7023                 ** IMPORT_LIB \[$]IMPORT_LIB
7024 EOF
7025                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7026 CF_EOF
7027                 chmod +x mk_shared_lib.sh
7028                 ;;
7029         (darwin*)
7030                 cf_try_cflags="no-cpp-precomp"
7031                 CC_SHARED_OPTS="-dynamic"
7032                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
7033                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
7034                 cf_cv_shlib_version_infix=yes
7035                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
7036                         cf_save_LDFLAGS=$LDFLAGS
7037                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7038                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
7039                                 LDFLAGS=$cf_save_LDFLAGS])
7040                 if test "$cf_cv_ldflags_search_paths_first" = yes; then
7041                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7042                 fi
7043                 ;;
7044         (hpux[[7-8]]*)
7045                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
7046                 if test "$GCC" != yes; then
7047                         CC_SHARED_OPTS='+Z'
7048                 fi
7049                 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
7050                 INSTALL_LIB="-m 555"
7051                 ;;
7052         (hpux*)
7053                 # (tested with gcc 2.7.2 -- I don't have c89)
7054                 if test "$GCC" = yes; then
7055                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
7056                 else
7057                         CC_SHARED_OPTS='+Z'
7058                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
7059                 fi
7060                 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
7061                 # HP-UX shared libraries must be executable, and should be
7062                 # readonly to exploit a quirk in the memory manager.
7063                 INSTALL_LIB="-m 555"
7064                 ;;
7065         (interix*)
7066                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7067                 if test "$cf_cv_shlib_version" = rel; then
7068                         cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7069                 else
7070                         cf_shared_soname='`basename $[@]`'
7071                 fi
7072                 CC_SHARED_OPTS=
7073                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
7074                 ;;
7075         (irix*)
7076                 if test "$cf_cv_enable_rpath" = yes ; then
7077                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7078                 fi
7079                 # tested with IRIX 5.2 and 'cc'.
7080                 if test "$GCC" != yes; then
7081                         CC_SHARED_OPTS='-KPIC'
7082                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
7083                 else
7084                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
7085                 fi
7086                 cf_cv_rm_so_locs=yes
7087                 ;;
7088         (linux*|gnu*|k*bsd*-gnu)
7089                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7090                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7091                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7092                 fi
7093                 if test "$cf_cv_enable_rpath" = yes ; then
7094                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7095                 fi
7096                 CF_SHARED_SONAME
7097                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7098                 ;;
7099         (mingw*msvc*)
7100                 cf_cv_shlib_version=msvcdll
7101                 cf_cv_shlib_version_infix=msvcdll
7102                 shlibdir=$bindir
7103                 MAKE_DLLS=
7104                 if test "$DFT_LWR_MODEL" = "shared" ; then
7105                         LOCAL_LDFLAGS="-link -dll"
7106                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7107                         EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
7108                 fi
7109                 CC_SHARED_OPTS=
7110                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
7111                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
7112                 cat >mk_shared_lib.sh <<-CF_EOF
7113                 #!$SHELL
7114                 SHARED_LIB=\[$]1
7115                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
7116                 shift
7117                 my_ld=\[$]1
7118                 shift
7119                 cat <<-EOF
7120                 Linking shared library
7121                 ** SHARED LIB \$SHARED_LIB
7122                 ** IMPORT_LIB \$IMPORT_LIB
7123 EOF
7124                 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
7125                 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
7126                 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
7127 CF_EOF
7128                 chmod +x mk_shared_lib.sh
7129                 cat >mk_prog.sh <<-CF_EOF
7130                 #!$SHELL
7131                 shift
7132                 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
7133                 LD="[$]LD"
7134                 clopts=()
7135                 ldopts=("/subsystem:console")
7136                 libs=()
7137                 isdll=0
7138                 while test \[$]# -gt 0; do
7139                         case "\[$]1" in
7140                                 -link)
7141                                         # ignore -link argument
7142                                         ;;
7143                                 -M[[TD]] | -M[[TD]]d)
7144                                         # ignore runtime-library option
7145                                         ;;
7146                                 -dll)
7147                                         isdll=1
7148                                         ;;
7149                                 -W* | -w*)
7150                                         # ignore warnings
7151                                         ;;
7152                                 -D*)
7153                                         clopts+=("\[$]1")
7154                                         ;;
7155                                 -I*)
7156                                         clopts+=("\[$]1")
7157                                         ;;
7158                                 -l*)
7159                                         libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
7160                                         ;;
7161                                 -L*)
7162                                         ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
7163                                         ;;
7164                                 *.obj | *.o)
7165                                         ldopts+=("\[$]1")
7166                                         ;;
7167                                 -Wl,*)
7168                                         for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
7169                                                 ldopts+=("\[$]{linkarg}")
7170                                         done
7171                                         ;;
7172                                 *.lib)
7173                                         ldopts+=("\[$]1")
7174                                         ;;
7175                                 -o)
7176                                         shift
7177                                         ldopts+=("-out:\[$]1")
7178                                         ;;
7179                                 *)
7180                                         clopts+=("\[$]1")
7181                                         ldopts+=("\[$]1")
7182                                         ;;
7183                         esac
7184                         shift
7185                 done
7186                 if [[ "\$isdll" -ne 0 ]]; then
7187                         for lib in \[$]{libs[[*]]}; do
7188                                 ldopts+=("\[$]lib.dll.lib")
7189                         done
7190                 else
7191                         for lib in \[$]{libs[[*]]}; do
7192                                 ldopts+=("\[$]lib.lib")
7193                         done
7194                 fi
7195                 cat <<-EOF
7196                 Creating program
7197                 ** ld options:   "\[$]{ldopts[[@]]}"
7198 EOF
7199                 exec \[$]LD \[$]{ldopts[[@]]}
7200 CF_EOF
7201                 chmod +x mk_prog.sh
7202                 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
7203                 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
7204                 ;;
7205         (mingw*)
7206                 cf_cv_shlib_version=mingw
7207                 cf_cv_shlib_version_infix=mingw
7208                 shlibdir=$bindir
7209                 MAKE_DLLS=
7210                 if test "$DFT_LWR_MODEL" = "shared" ; then
7211                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
7212                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7213                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
7214                 fi
7215                 CC_SHARED_OPTS=
7216                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7217                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7218                 cat >mk_shared_lib.sh <<-CF_EOF
7219                 #!$SHELL
7220                 SHARED_LIB=\[$]1
7221                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7222                 shift
7223                 cat <<-EOF
7224                 Linking shared library
7225                 ** SHARED_LIB \[$]SHARED_LIB
7226                 ** IMPORT_LIB \[$]IMPORT_LIB
7227 EOF
7228                 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7229 CF_EOF
7230                 chmod +x mk_shared_lib.sh
7231                 ;;
7232         (openbsd[[2-9]].*|mirbsd*)
7233                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7234                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7235                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7236                 fi
7237                 if test "$cf_cv_enable_rpath" = yes ; then
7238                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7239                 fi
7240                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7241                 CF_SHARED_SONAME
7242                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7243                 ;;
7244         (nskJ*)
7245                 CC_SHARED_OPTS=
7246                 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
7247                 ;;
7248         (nskL*)
7249                 CC_SHARED_OPTS=
7250                 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
7251                 ;;
7252         (nto-qnx*|openbsd*|freebsd[[12]].*)
7253                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7254                 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
7255                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7256                 ;;
7257         (dragonfly*|freebsd*)
7258                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7259                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7260                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7261                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
7262                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7263                 fi
7264                 CF_SHARED_SONAME
7265                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7266                 ;;
7267         (netbsd*)
7268                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7269                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7270                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7271                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7272                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7273                         if test "$cf_cv_shlib_version" = auto; then
7274                         if test -f /usr/libexec/ld.elf_so; then
7275                                 cf_cv_shlib_version=abi
7276                         else
7277                                 cf_cv_shlib_version=rel
7278                         fi
7279                         fi
7280                         CF_SHARED_SONAME
7281                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
7282                 else
7283                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
7284                 fi
7285                 ;;
7286         (osf*|mls+*)
7287                 # tested with OSF/1 V3.2 and 'cc'
7288                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
7289                 # link with shared libs).
7290                 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
7291                 case "$host_os" in
7292                 (osf4*)
7293                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
7294                         ;;
7295                 esac
7296                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
7297                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7298                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7299                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7300                 fi
7301                 cf_cv_rm_so_locs=yes
7302                 ;;
7303         (sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
7304                 # tested with osr5.0.5
7305                 if test "$GCC" != yes; then
7306                         CC_SHARED_OPTS='-belf -KPIC'
7307                 fi
7308                 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
7309                 if test "$cf_cv_enable_rpath" = yes ; then
7310                         # only way is to set LD_RUN_PATH but no switch for it
7311                         RUN_PATH=$libdir
7312                 fi
7313                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7314                 LINK_PROGS='LD_RUN_PATH=${libdir}'
7315                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
7316                 ;;
7317         (sunos4*)
7318                 # tested with SunOS 4.1.1 and gcc 2.7.0
7319                 if test "$GCC" != yes; then
7320                         CC_SHARED_OPTS='-KPIC'
7321                 fi
7322                 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
7323                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7324                 ;;
7325         (solaris2*)
7326                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
7327                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
7328                 if test "$DFT_LWR_MODEL" = "shared" ; then
7329                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
7330                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7331                 fi
7332                 if test "$cf_cv_enable_rpath" = yes ; then
7333                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
7334                 fi
7335                 CF_SHARED_SONAME
7336                 if test "$GCC" != yes; then
7337                         cf_save_CFLAGS="$CFLAGS"
7338                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
7339                         do
7340                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
7341                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
7342                         done
7343                         CFLAGS="$cf_save_CFLAGS"
7344                         CC_SHARED_OPTS=$cf_shared_opts
7345                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7346                 else
7347                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7348                 fi
7349                 ;;
7350         (sysv5uw7*|unix_sv*)
7351                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
7352                 if test "$GCC" != yes; then
7353                         CC_SHARED_OPTS='-KPIC'
7354                 fi
7355                 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
7356                 ;;
7357         (*)
7358                 CC_SHARED_OPTS='unknown'
7359                 MK_SHARED_LIB='echo unknown'
7360                 ;;
7361         esac
7362
7363         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
7364         case "$cf_cv_shlib_version" in
7365         (rel|abi)
7366                 case "$MK_SHARED_LIB" in
7367                 (*'-o $[@]')
7368                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
7369                         ;;
7370                 (*)
7371                         AC_MSG_WARN(ignored --with-shlib-version)
7372                         ;;
7373                 esac
7374                 ;;
7375         esac
7376
7377         if test -n "$cf_try_cflags"
7378         then
7379 cat > conftest.$ac_ext <<EOF
7380 #line __oline__ "${as_me:-configure}"
7381 #include <stdio.h>
7382 int main(int argc, char *argv[[]])
7383 {
7384         printf("hello\\n");
7385         return (argv[[argc-1]] == 0) ;
7386 }
7387 EOF
7388                 cf_save_CFLAGS="$CFLAGS"
7389                 for cf_opt in $cf_try_cflags
7390                 do
7391                         CFLAGS="$cf_save_CFLAGS -$cf_opt"
7392                         AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
7393                         if AC_TRY_EVAL(ac_compile); then
7394                                 AC_MSG_RESULT(yes)
7395                                 cf_save_CFLAGS="$CFLAGS"
7396                         else
7397                                 AC_MSG_RESULT(no)
7398                         fi
7399                 done
7400                 CFLAGS="$cf_save_CFLAGS"
7401         fi
7402
7403
7404         # RPATH_LIST is a colon-separated list of directories
7405         test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
7406         test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
7407
7408         test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
7409
7410         CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
7411         CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
7412
7413         AC_SUBST(CC_SHARED_OPTS)
7414         AC_SUBST(LD_RPATH_OPT)
7415         AC_SUBST(LD_SHARED_OPTS)
7416         AC_SUBST(MK_SHARED_LIB)
7417         AC_SUBST(RM_SHARED_OPTS)
7418
7419         AC_SUBST(LINK_PROGS)
7420         AC_SUBST(LINK_TESTS)
7421
7422         AC_SUBST(EXTRA_LDFLAGS)
7423         AC_SUBST(LOCAL_LDFLAGS)
7424         AC_SUBST(LOCAL_LDFLAGS2)
7425
7426         AC_SUBST(INSTALL_LIB)
7427         AC_SUBST(RPATH_LIST)
7428 ])dnl
7429 dnl ---------------------------------------------------------------------------
7430 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
7431 dnl ----------------
7432 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
7433 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
7434 dnl option.
7435 dnl
7436 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
7437 dnl If missing, use "rel".
7438 define([CF_SHARED_SONAME],
7439 [
7440         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
7441         if test "$cf_cv_shlib_version" = rel; then
7442                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7443         else
7444                 cf_cv_shared_soname='`basename $[@]`'
7445         fi
7446 ])
7447 dnl ---------------------------------------------------------------------------
7448 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
7449 dnl -----------
7450 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
7451 dnl programs need this test).
7452 dnl
7453 dnl This is really a Mac OS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
7454 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
7455 dnl winsize declaration is left alone - we may revisit this if Apple choose to
7456 dnl break that part of the interface as well.
7457 AC_DEFUN([CF_SIGWINCH],
7458 [
7459 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
7460         AC_TRY_COMPILE([
7461 #include <sys/types.h>
7462 #include <sys/signal.h>
7463 ],[int x = SIGWINCH; (void)x],
7464         [cf_cv_define_sigwinch=yes],
7465         [AC_TRY_COMPILE([
7466 #undef _XOPEN_SOURCE
7467 #undef _POSIX_SOURCE
7468 #undef _POSIX_C_SOURCE
7469 #include <sys/types.h>
7470 #include <sys/signal.h>
7471 ],[int x = SIGWINCH; (void)x],
7472         [cf_cv_define_sigwinch=maybe],
7473         [cf_cv_define_sigwinch=no])
7474 ])
7475 ])
7476
7477 if test "$cf_cv_define_sigwinch" = maybe ; then
7478 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
7479 cf_cv_fixup_sigwinch=unknown
7480 cf_sigwinch=32
7481 while test "$cf_sigwinch" != 1
7482 do
7483         AC_TRY_COMPILE([
7484 #undef _XOPEN_SOURCE
7485 #undef _POSIX_SOURCE
7486 #undef _POSIX_C_SOURCE
7487 #include <sys/types.h>
7488 #include <sys/signal.h>
7489 ],[
7490 #if SIGWINCH != $cf_sigwinch
7491 make an error
7492 #endif
7493 int x = SIGWINCH; (void)x],
7494         [cf_cv_fixup_sigwinch=$cf_sigwinch
7495          break])
7496
7497 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
7498 done
7499 ])
7500
7501         if test "$cf_cv_fixup_sigwinch" != unknown ; then
7502                 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
7503         fi
7504 fi
7505 ])dnl
7506 dnl ---------------------------------------------------------------------------
7507 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
7508 dnl ---------------
7509 dnl signal handler, but there are some gcc dependencies in that recommendation.
7510 dnl Try anyway.
7511 AC_DEFUN([CF_SIG_ATOMIC_T],
7512 [
7513 AC_MSG_CHECKING(for signal global datatype)
7514 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
7515         for cf_type in \
7516                 "volatile sig_atomic_t" \
7517                 "sig_atomic_t" \
7518                 "int"
7519         do
7520         AC_TRY_COMPILE([
7521 #include <sys/types.h>
7522 #include <signal.h>
7523 #include <stdio.h>
7524
7525 extern $cf_type x;
7526 $cf_type x;
7527 static void handler(int sig)
7528 {
7529         (void)sig;
7530         x = 5;
7531 }],
7532                 [signal(SIGINT, handler);
7533                  x = 1],
7534                 [cf_cv_sig_atomic_t=$cf_type],
7535                 [cf_cv_sig_atomic_t=no])
7536                 test "$cf_cv_sig_atomic_t" != no && break
7537         done
7538         ])
7539 AC_MSG_RESULT($cf_cv_sig_atomic_t)
7540 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
7541 ])dnl
7542 dnl ---------------------------------------------------------------------------
7543 dnl CF_SIZECHANGE version: 17 updated: 2021/01/01 13:31:04
7544 dnl -------------
7545 dnl Check for definitions & structures needed for window size-changing
7546 dnl
7547 dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
7548 AC_DEFUN([CF_SIZECHANGE],
7549 [
7550 AC_REQUIRE([CF_STRUCT_TERMIOS])
7551 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
7552         cf_cv_sizechange=unknown
7553         cf_save_CPPFLAGS="$CPPFLAGS"
7554
7555 for cf_opts in "" "NEED_PTEM_H"
7556 do
7557
7558         CPPFLAGS="$cf_save_CPPFLAGS"
7559         if test -n "$cf_opts"
7560         then
7561                 CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
7562         fi
7563         AC_TRY_COMPILE([#include <sys/types.h>
7564 #ifdef HAVE_TERMIOS_H
7565 #include <termios.h>
7566 #else
7567 #ifdef HAVE_TERMIO_H
7568 #include <termio.h>
7569 #endif
7570 #endif
7571
7572 #ifdef NEED_PTEM_H
7573 /* This is a workaround for SCO:  they neglected to define struct winsize in
7574  * termios.h -- it's only in termio.h and ptem.h
7575  */
7576 #include <sys/stream.h>
7577 #include <sys/ptem.h>
7578 #endif
7579
7580 #ifdef HAVE_SYS_IOCTL_H
7581 #include <sys/ioctl.h>
7582 #endif
7583 ],[
7584 #ifdef TIOCGSIZE
7585         struct ttysize win;     /* SunOS 3.0... */
7586         int y = win.ts_lines = 2;
7587         int x = win.ts_cols = 1;
7588         (void)y;
7589         (void)x;
7590 #else
7591 #ifdef TIOCGWINSZ
7592         struct winsize win;     /* everything else */
7593         int y = win.ws_row = 2;
7594         int x = win.ws_col = 1;
7595         (void)y;
7596         (void)x;
7597 #else
7598         no TIOCGSIZE or TIOCGWINSZ
7599 #endif /* TIOCGWINSZ */
7600 #endif /* TIOCGSIZE */
7601         ],
7602         [cf_cv_sizechange=yes],
7603         [cf_cv_sizechange=no])
7604
7605         CPPFLAGS="$cf_save_CPPFLAGS"
7606         if test "$cf_cv_sizechange" = yes ; then
7607                 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
7608                 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
7609                 break
7610         fi
7611 done
7612 ])
7613 if test "$cf_cv_sizechange" != no ; then
7614         AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
7615         case "$cf_cv_sizechange" in
7616         (NEED*)
7617                 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
7618                 ;;
7619         esac
7620 fi
7621 ])dnl
7622 dnl ---------------------------------------------------------------------------
7623 dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
7624 dnl --------------
7625 dnl For each parameter, test if the source-directory exists, and if it contains
7626 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
7627 dnl use in CF_LIB_RULES.
7628 dnl
7629 dnl This uses the configured value to make the lists SRC_SUBDIRS and
7630 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
7631 AC_DEFUN([CF_SRC_MODULES],
7632 [
7633 AC_REQUIRE([CF_CHECK_GNAT_VERSION])
7634 AC_MSG_CHECKING(for src modules)
7635
7636 # dependencies and linker-arguments for test-programs
7637 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
7638 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
7639 if test "$DFT_LWR_MODEL" = "libtool"; then
7640         TEST_ARGS="${TEST_DEPS}"
7641         TEST_ARG2="${TEST_DEP2}"
7642 else
7643         TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
7644         TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
7645 fi
7646
7647 PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
7648 cf_cv_src_modules=
7649 for cf_dir in $1
7650 do
7651         if test -f "$srcdir/$cf_dir/modules" ; then
7652
7653                 # We may/may not have tack in the distribution, though the
7654                 # makefile is.
7655                 if test "$cf_dir" = tack ; then
7656                         if test "x$cf_with_tack" != "xyes"; then
7657                                 continue
7658                         fi
7659                 fi
7660
7661                 if test -z "$cf_cv_src_modules"; then
7662                         cf_cv_src_modules=$cf_dir
7663                 else
7664                         cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
7665                 fi
7666
7667                 # Make the ncurses_cfg.h file record the library interface files as
7668                 # well.  These are header files that are the same name as their
7669                 # directory.  Ncurses is the only library that does not follow
7670                 # that pattern.
7671                 if test "$cf_dir" = tack ; then
7672                         continue
7673                 elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
7674                         CF_UPPER(cf_have_include,$cf_dir)
7675                         AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
7676                         AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
7677                         CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
7678                         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
7679                         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
7680                         if test "$DFT_LWR_MODEL" = "libtool"; then
7681                                 TEST_ARGS="${TEST_DEPS}"
7682                                 TEST_ARG2="${TEST_DEP2}"
7683                         else
7684                                 TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
7685                                 TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
7686                         fi
7687                         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
7688                 fi
7689         fi
7690 done
7691 AC_MSG_RESULT($cf_cv_src_modules)
7692
7693 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
7694 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
7695
7696 AC_SUBST(TEST_ARGS)
7697 AC_SUBST(TEST_DEPS)
7698
7699 AC_SUBST(TEST_ARG2)
7700 AC_SUBST(TEST_DEP2)
7701
7702 SRC_SUBDIRS=
7703 if test "x$cf_with_manpages" != xno ; then
7704         SRC_SUBDIRS="$SRC_SUBDIRS man"
7705 fi
7706 SRC_SUBDIRS="$SRC_SUBDIRS include"
7707 for cf_dir in $cf_cv_src_modules
7708 do
7709         SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
7710 done
7711 if test "x$cf_with_tests" != "xno" ; then
7712         SRC_SUBDIRS="$SRC_SUBDIRS test"
7713 fi
7714 # always make this, to install the ncurses-config script
7715 SRC_SUBDIRS="$SRC_SUBDIRS misc"
7716 if test "$cf_with_cxx_binding" != no; then
7717         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
7718         SRC_SUBDIRS="$SRC_SUBDIRS c++"
7719 fi
7720
7721 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
7722 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
7723
7724 AC_SUBST(PC_MODULES_TO_MAKE)
7725
7726 ADA_SUBDIRS=
7727 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f "$srcdir/Ada95/Makefile.in" ; then
7728         SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
7729         ADA_SUBDIRS="gen src"
7730         if test "x$cf_with_tests" != "xno" ; then
7731                 ADA_SUBDIRS="$ADA_SUBDIRS samples"
7732         fi
7733 fi
7734
7735 SUB_MAKEFILES=
7736 for cf_dir in $SRC_SUBDIRS
7737 do
7738         SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
7739 done
7740
7741 if test -n "$ADA_SUBDIRS"; then
7742         for cf_dir in $ADA_SUBDIRS
7743         do
7744                 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
7745         done
7746         AC_SUBST(ADA_SUBDIRS)
7747 fi
7748 ])dnl
7749 dnl ---------------------------------------------------------------------------
7750 dnl CF_STDCPP_LIBRARY version: 12 updated: 2021/01/01 13:31:04
7751 dnl -----------------
7752 dnl Check for -lstdc++, which is GNU's standard C++ library.
7753 dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
7754 dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
7755 dnl add it to $CXXLIBS.
7756 AC_DEFUN([CF_STDCPP_LIBRARY],
7757 [
7758 if test -n "$GXX" ; then
7759
7760         cf_save="$LIBS"
7761         LIBS="$LIBS $CXXLIBS"
7762         AC_MSG_CHECKING(if we already have C++ library)
7763         AC_TRY_LINK([
7764                         #include <iostream>],[
7765                         std::cout << "Hello World!" << std::endl;],
7766                 [cf_have_libstdcpp=yes],
7767                 [cf_have_libstdcpp=no])
7768         AC_MSG_RESULT($cf_have_libstdcpp)
7769         LIBS="$cf_save"
7770
7771         if test "$cf_have_libstdcpp" != yes
7772         then
7773                 case "$cf_cv_system_name" in
7774                 (os2*)
7775                         if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
7776                                 cf_stdcpp_libname=stdcpp
7777                         else
7778                                 cf_stdcpp_libname=stdc++
7779                         fi
7780                         ;;
7781                 (*)
7782                         cf_stdcpp_libname=stdc++
7783                         ;;
7784                 esac
7785
7786                 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
7787                         cf_save="$LIBS"
7788                         LIBS="$LIBS $CXXLIBS"
7789                         CF_ADD_LIB($cf_stdcpp_libname)
7790                 AC_TRY_LINK([
7791                                 #include <iostream>],[
7792                                 std::cout << "Hello World!" << std::endl;],
7793                         [cf_cv_libstdcpp=yes],
7794                         [cf_cv_libstdcpp=no])
7795                         LIBS="$cf_save"
7796                 ])
7797                 test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
7798         fi
7799 fi
7800 ])dnl
7801 dnl ---------------------------------------------------------------------------
7802 dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
7803 dnl --------------
7804 dnl     Remove "-g" option from the compiler options
7805 AC_DEFUN([CF_STRIP_G_OPT],
7806 [$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
7807 dnl ---------------------------------------------------------------------------
7808 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
7809 dnl -------------------
7810 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
7811 dnl do this if we've found the sigaction function.
7812 AC_DEFUN([CF_STRUCT_SIGACTION],[
7813 AC_REQUIRE([CF_XOPEN_SOURCE])
7814
7815 if test "$ac_cv_func_sigaction" = yes; then
7816 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
7817 AC_TRY_COMPILE([
7818 #include <sys/types.h>
7819 #include <signal.h>],
7820         [struct sigaction act],
7821         [sigact_bad=no],
7822         [
7823 AC_TRY_COMPILE([
7824 #define _POSIX_SOURCE
7825 #include <sys/types.h>
7826 #include <signal.h>],
7827         [struct sigaction act],
7828         [sigact_bad=yes
7829          AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
7830          [sigact_bad=unknown])])
7831 AC_MSG_RESULT($sigact_bad)
7832 fi
7833 ])dnl
7834 dnl ---------------------------------------------------------------------------
7835 dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
7836 dnl -----------------
7837 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
7838 AC_DEFUN([CF_STRUCT_TERMIOS],[
7839 AC_REQUIRE([CF_XOPEN_SOURCE])
7840
7841 AC_CHECK_HEADERS( \
7842 termio.h \
7843 termios.h \
7844 unistd.h \
7845 sys/ioctl.h \
7846 sys/termio.h \
7847 )
7848
7849 if test "$ac_cv_header_termios_h" = yes ; then
7850         case "$CFLAGS $CPPFLAGS" in
7851         (*-D_POSIX_SOURCE*)
7852                 termios_bad=dunno ;;
7853         (*)     termios_bad=maybe ;;
7854         esac
7855         if test "$termios_bad" = maybe ; then
7856         AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
7857         AC_TRY_COMPILE([#include <termios.h>],
7858                 [struct termios foo; int x = foo.c_iflag = 1; (void)x],
7859                 termios_bad=no, [
7860                 AC_TRY_COMPILE([
7861 #define _POSIX_SOURCE
7862 #include <termios.h>],
7863                         [struct termios foo; int x = foo.c_iflag = 2; (void)x],
7864                         termios_bad=unknown,
7865                         termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
7866                         ])
7867         AC_MSG_RESULT($termios_bad)
7868         fi
7869 fi
7870 ])dnl
7871 dnl ---------------------------------------------------------------------------
7872 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
7873 dnl --------------
7874 dnl Construct a search-list for a nonstandard header/lib-file
7875 dnl     $1 = the variable to return as result
7876 dnl     $2 = the package name
7877 dnl     $3 = the subdirectory, e.g., bin, include or lib
7878 AC_DEFUN([CF_SUBDIR_PATH],
7879 [
7880 $1=
7881
7882 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
7883
7884 for cf_subdir_prefix in \
7885         /usr \
7886         /usr/local \
7887         /usr/pkg \
7888         /opt \
7889         /opt/local \
7890         [$]HOME
7891 do
7892         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
7893 done
7894 ])dnl
7895 dnl ---------------------------------------------------------------------------
7896 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
7897 dnl -----------
7898 dnl     Shorthand macro for substituting things that the user may override
7899 dnl     with an environment variable.
7900 dnl
7901 dnl     $1 = condition to pass to "test"
7902 dnl     $2 = environment variable
7903 dnl     $3 = value if the test succeeds
7904 dnl     $4 = value if the test fails
7905 AC_DEFUN([CF_SUBST_IF],
7906 [
7907 if test $1 ; then
7908         $2=$3
7909 ifelse($4,,,[else
7910         $2=$4])
7911 fi
7912 AC_SUBST($2)
7913 ])dnl
7914 dnl ---------------------------------------------------------------------------
7915 dnl CF_SUBST_NCURSES_VERSION version: 10 updated: 2021/01/04 18:48:01
7916 dnl ------------------------
7917 dnl Get the version-number for use in shared-library naming, etc.
7918 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
7919 [AC_REQUIRE([AC_PROG_EGREP])dnl
7920
7921 NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
7922 NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
7923 NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
7924 cf_cv_abi_version=${NCURSES_MAJOR}
7925 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
7926 dnl Show the computed version, for logging
7927 cf_cv_timestamp=`date`
7928 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
7929 dnl We need these values in the generated headers
7930 AC_SUBST(NCURSES_MAJOR)
7931 AC_SUBST(NCURSES_MINOR)
7932 AC_SUBST(NCURSES_PATCH)
7933 dnl We need these values in the generated makefiles
7934 AC_SUBST(cf_cv_rel_version)
7935 AC_SUBST(cf_cv_abi_version)
7936 AC_SUBST(cf_cv_builtin_bool)
7937 AC_SUBST(cf_cv_header_stdbool_h)
7938 AC_SUBST(cf_cv_type_of_bool)dnl
7939 ])dnl
7940 dnl ---------------------------------------------------------------------------
7941 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
7942 dnl ------------------
7943 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
7944 dnl older SCO configurations.
7945 AC_DEFUN([CF_SYS_TIME_SELECT],
7946 [
7947 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
7948 AC_CACHE_VAL(cf_cv_sys_time_select,[
7949 AC_TRY_COMPILE([
7950 #include <sys/types.h>
7951 #ifdef HAVE_SYS_TIME_H
7952 #include <sys/time.h>
7953 #endif
7954 #ifdef HAVE_SYS_SELECT_H
7955 #include <sys/select.h>
7956 #endif
7957 ],[],[cf_cv_sys_time_select=yes],
7958          [cf_cv_sys_time_select=no])
7959          ])
7960 AC_MSG_RESULT($cf_cv_sys_time_select)
7961 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
7962 ])dnl
7963 dnl ---------------------------------------------------------------------------
7964 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
7965 dnl ---------------
7966 dnl Define a top_builddir symbol, for applications that need an absolute path.
7967 AC_DEFUN([CF_TOP_BUILDDIR],
7968 [
7969 top_builddir=ifelse($1,,`pwd`,$1)
7970 AC_SUBST(top_builddir)
7971 ])dnl
7972 dnl ---------------------------------------------------------------------------
7973 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
7974 dnl -----------------
7975 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
7976 dnl available in that form.
7977 dnl
7978 dnl $1 = package name, which may be a shell variable
7979 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
7980 dnl $3 = logic to use if pkg-config does not have the package
7981 AC_DEFUN([CF_TRY_PKG_CONFIG],[
7982 AC_REQUIRE([CF_PKG_CONFIG])
7983
7984 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
7985         CF_VERBOSE(found package $1)
7986         cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
7987         cf_pkgconfig_libs="`$PKG_CONFIG --libs   "$1" 2>/dev/null`"
7988         CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
7989         CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
7990         CF_ADD_CFLAGS($cf_pkgconfig_incs)
7991         CF_ADD_LIBS($cf_pkgconfig_libs)
7992         ifelse([$2],,:,[$2])
7993 else
7994         cf_pkgconfig_incs=
7995         cf_pkgconfig_libs=
7996         ifelse([$3],,:,[$3])
7997 fi
7998 ])
7999 dnl ---------------------------------------------------------------------------
8000 dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
8001 dnl -------------------
8002 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
8003 dnl can define it successfully.
8004 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
8005 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
8006         AC_TRY_COMPILE([
8007 #include <stdlib.h>
8008 #include <string.h>
8009 #include <sys/types.h>
8010 ],[
8011 #ifndef _XOPEN_SOURCE
8012 make an error
8013 #endif],
8014         [cf_cv_xopen_source=no],
8015         [cf_save="$CPPFLAGS"
8016          CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
8017          AC_TRY_COMPILE([
8018 #include <stdlib.h>
8019 #include <string.h>
8020 #include <sys/types.h>
8021 ],[
8022 #ifdef _XOPEN_SOURCE
8023 make an error
8024 #endif],
8025         [cf_cv_xopen_source=no],
8026         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
8027         CPPFLAGS="$cf_save"
8028         ])
8029 ])
8030
8031 if test "$cf_cv_xopen_source" != no ; then
8032         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
8033         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
8034         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
8035         CF_ADD_CFLAGS($cf_temp_xopen_source)
8036 fi
8037 ])
8038 dnl ---------------------------------------------------------------------------
8039 dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
8040 dnl ----------------
8041 dnl Determine the type we should use for chtype (and attr_t, which is treated
8042 dnl as the same thing).  We want around 32 bits, so on most machines want a
8043 dnl long, but on newer 64-bit machines, probably want an int.  If we're using
8044 dnl wide characters, we have to have a type compatible with that, as well.
8045 AC_DEFUN([CF_TYPEOF_CHTYPE],
8046 [
8047 AC_MSG_CHECKING([for type of chtype])
8048 AC_CACHE_VAL(cf_cv_typeof_chtype,[
8049                 AC_TRY_RUN([
8050 #define WANT_BITS 31
8051 #include <stdio.h>
8052 int main(void)
8053 {
8054         FILE *fp = fopen("cf_test.out", "w");
8055         if (fp != 0) {
8056                 char *result = "long";
8057                 if (sizeof(unsigned long) > sizeof(unsigned int)) {
8058                         int n;
8059                         unsigned int x, y;
8060                         for (n = 0; n < WANT_BITS; n++) {
8061                                 x = (1 << n);
8062                                 y = (x >> n);
8063                                 if (y != 1 || x == 0) {
8064                                         x = 0;
8065                                         break;
8066                                 }
8067                         }
8068                         /*
8069                          * If x is nonzero, an int is big enough for the bits
8070                          * that we want.
8071                          */
8072                         result = (x != 0) ? "int" : "long";
8073                 }
8074                 fputs(result, fp);
8075                 fclose(fp);
8076         }
8077         ${cf_cv_main_return:-return}(0);
8078 }
8079                 ],
8080                 [cf_cv_typeof_chtype=`cat cf_test.out`],
8081                 [cf_cv_typeof_chtype=long],
8082                 [cf_cv_typeof_chtype=long])
8083                 rm -f cf_test.out
8084         ])
8085 AC_MSG_RESULT($cf_cv_typeof_chtype)
8086
8087 AC_SUBST(cf_cv_typeof_chtype)
8088 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
8089 ])dnl
8090 dnl ---------------------------------------------------------------------------
8091 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
8092 dnl -----------------
8093 dnl
8094 AC_DEFUN([CF_TYPE_SIGACTION],
8095 [
8096 AC_MSG_CHECKING([for type sigaction_t])
8097 AC_CACHE_VAL(cf_cv_type_sigaction,[
8098         AC_TRY_COMPILE([
8099 #include <signal.h>],
8100                 [sigaction_t x],
8101                 [cf_cv_type_sigaction=yes],
8102                 [cf_cv_type_sigaction=no])])
8103 AC_MSG_RESULT($cf_cv_type_sigaction)
8104 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
8105 ])dnl
8106 dnl ---------------------------------------------------------------------------
8107 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
8108 dnl --------------------
8109 dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
8110 dnl won't, but they're still there.
8111 AC_DEFUN([CF_UNSIGNED_LITERALS],
8112 [
8113 AC_MSG_CHECKING([if unsigned literals are legal])
8114 AC_CACHE_VAL(cf_cv_unsigned_literals,[
8115         AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
8116                 [cf_cv_unsigned_literals=yes],
8117                 [cf_cv_unsigned_literals=no])
8118         ])
8119 AC_MSG_RESULT($cf_cv_unsigned_literals)
8120 ])dnl
8121 dnl ---------------------------------------------------------------------------
8122 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
8123 dnl --------
8124 dnl Make an uppercase version of a variable
8125 dnl $1=uppercase($2)
8126 AC_DEFUN([CF_UPPER],
8127 [
8128 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
8129 ])dnl
8130 dnl ---------------------------------------------------------------------------
8131 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
8132 dnl -----------
8133 dnl Check for multibyte support, and if not found, utf8 compatibility library
8134 AC_DEFUN([CF_UTF8_LIB],
8135 [
8136 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
8137         cf_save_LIBS="$LIBS"
8138         AC_TRY_LINK([
8139 #include <stdlib.h>],[putwc(0,0);],
8140         [cf_cv_utf8_lib=yes],
8141         [CF_FIND_LINKAGE([
8142 #include <libutf8.h>],[putwc(0,0);],utf8,
8143                 [cf_cv_utf8_lib=add-on],
8144                 [cf_cv_utf8_lib=no])
8145 ])])
8146
8147 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
8148 # ncurses/ncursesw:
8149 if test "$cf_cv_utf8_lib" = "add-on" ; then
8150         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
8151         CF_ADD_INCDIR($cf_cv_header_path_utf8)
8152         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
8153         CF_ADD_LIBS($cf_cv_library_file_utf8)
8154 fi
8155 ])dnl
8156 dnl ---------------------------------------------------------------------------
8157 dnl CF_VA_COPY version: 6 updated: 2018/12/04 18:14:25
8158 dnl ----------
8159 dnl check for va_copy, part of stdarg.h starting with ISO C 1999.
8160 dnl Also, workaround for glibc's __va_copy, by checking for both.
8161 dnl Finally, try to accommodate pre-ISO C 1999 headers.
8162 AC_DEFUN([CF_VA_COPY],[
8163 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
8164 AC_TRY_LINK([
8165 #include <stdarg.h>
8166 ],[
8167         static va_list dst;
8168         static va_list src;
8169         va_copy(dst, src)],
8170         cf_cv_have_va_copy=yes,
8171         cf_cv_have_va_copy=no)])
8172
8173 if test "$cf_cv_have_va_copy" = yes;
8174 then
8175         AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
8176 else # !cf_cv_have_va_copy
8177
8178 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
8179 AC_TRY_LINK([
8180 #include <stdarg.h>
8181 ],[
8182         static va_list dst;
8183         static va_list src;
8184         __va_copy(dst, src)],
8185         cf_cv_have___va_copy=yes,
8186         cf_cv_have___va_copy=no)])
8187
8188 if test "$cf_cv_have___va_copy" = yes
8189 then
8190         AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
8191 else # !cf_cv_have___va_copy
8192
8193 AC_CACHE_CHECK(for __builtin_va_copy, cf_cv_have___builtin_va_copy,[
8194 AC_TRY_LINK([
8195 #include <stdarg.h>
8196 ],[
8197         static va_list dst;
8198         static va_list src;
8199         __builtin_va_copy(dst, src)],
8200         cf_cv_have___builtin_va_copy=yes,
8201         cf_cv_have___builtin_va_copy=no)])
8202
8203 test "$cf_cv_have___builtin_va_copy" = yes &&
8204         AC_DEFINE(HAVE___BUILTIN_VA_COPY,1,[Define to 1 if we have __builtin_va_copy])
8205
8206 fi # cf_cv_have___va_copy
8207
8208 fi # cf_cv_have_va_copy
8209
8210 case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy}" in
8211 (*yes*)
8212         ;;
8213
8214 (*)
8215         AC_CACHE_CHECK(if we can simply copy va_list, cf_cv_pointer_va_list,[
8216 AC_TRY_LINK([
8217 #include <stdarg.h>
8218 ],[
8219         va_list dst;
8220         va_list src;
8221         dst = src],
8222         cf_cv_pointer_va_list=yes,
8223         cf_cv_pointer_va_list=no)])
8224
8225         if test "$cf_cv_pointer_va_list" = no
8226         then
8227                 AC_CACHE_CHECK(if we can copy va_list indirectly, cf_cv_array_va_list,[
8228 AC_TRY_LINK([
8229 #include <stdarg.h>
8230 ],[
8231         va_list dst;
8232         va_list src;
8233         *dst = *src],
8234                         cf_cv_array_va_list=yes,
8235                         cf_cv_array_va_list=no)])
8236                 test "$cf_cv_array_va_list" = yes && AC_DEFINE(ARRAY_VA_LIST,1,[Define to 1 if we can copy va_list indirectly])
8237         fi
8238         ;;
8239 esac
8240 ])
8241 dnl ---------------------------------------------------------------------------
8242 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
8243 dnl ----------
8244 dnl Use AC_VERBOSE w/o the warnings
8245 AC_DEFUN([CF_VERBOSE],
8246 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
8247 CF_MSG_LOG([$1])
8248 ])dnl
8249 dnl ---------------------------------------------------------------------------
8250 dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
8251 dnl ---------------
8252 dnl Define several useful symbols derived from the VERSION file.  A separate
8253 dnl file is preferred to embedding the version numbers in various scripts.
8254 dnl (automake is a textbook-example of why the latter is a bad idea, but there
8255 dnl are others).
8256 dnl
8257 dnl The file contents are:
8258 dnl     libtool-version release-version patch-version
8259 dnl or
8260 dnl     release-version
8261 dnl where
8262 dnl     libtool-version (see ?) consists of 3 integers separated by '.'
8263 dnl     release-version consists of a major version and minor version
8264 dnl             separated by '.', optionally followed by a patch-version
8265 dnl             separated by '-'.  The minor version need not be an
8266 dnl             integer (but it is preferred).
8267 dnl     patch-version is an integer in the form yyyymmdd, so ifdef's and
8268 dnl             scripts can easily compare versions.
8269 dnl
8270 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
8271 dnl simply extracts the first field using 'cut -f1'.
8272 dnl
8273 dnl Optional parameters:
8274 dnl $1 = internal name for package
8275 dnl $2 = external name for package
8276 AC_DEFUN([CF_VERSION_INFO],
8277 [
8278 if test -f "$srcdir/VERSION" ; then
8279         AC_MSG_CHECKING(for package version)
8280
8281         # if there are not enough fields, cut returns the last one...
8282         cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
8283         cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
8284         cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
8285
8286         # this is how CF_BUNDLED_INTL uses $VERSION:
8287         VERSION="$cf_field1"
8288
8289         VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
8290         test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
8291
8292         VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
8293         test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
8294
8295         AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
8296
8297         AC_MSG_CHECKING(for package patch date)
8298         VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
8299         case .$VERSION_PATCH in
8300         (.)
8301                 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
8302                 ;;
8303         (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
8304                 ;;
8305         (*)
8306                 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
8307                 ;;
8308         esac
8309         AC_MSG_RESULT($VERSION_PATCH)
8310 else
8311         AC_MSG_ERROR(did not find $srcdir/VERSION)
8312 fi
8313
8314 # show the actual data that we have for versions:
8315 CF_VERBOSE(ABI VERSION $VERSION)
8316 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
8317 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
8318 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
8319
8320 AC_SUBST(VERSION)
8321 AC_SUBST(VERSION_MAJOR)
8322 AC_SUBST(VERSION_MINOR)
8323 AC_SUBST(VERSION_PATCH)
8324
8325 dnl if a package name is given, define its corresponding version info.  We
8326 dnl need the package name to ensure that the defined symbols are unique.
8327 ifelse($1,,,[
8328         cf_PACKAGE=$1
8329         PACKAGE=ifelse($2,,$1,$2)
8330         AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
8331         AC_SUBST(PACKAGE)
8332         CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
8333         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
8334         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
8335 ])
8336 ])dnl
8337 dnl ---------------------------------------------------------------------------
8338 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
8339 dnl -------------
8340 dnl Check if type wide-character type $1 is declared, and if so, which header
8341 dnl file is needed.  The second parameter is used to set a shell variable when
8342 dnl the type is not found.  The first parameter sets a shell variable for the
8343 dnl opposite sense.
8344 AC_DEFUN([CF_WCHAR_TYPE],
8345 [
8346 # This is needed on Tru64 5.0 to declare $1
8347 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
8348 AC_TRY_COMPILE([
8349 #include <stdlib.h>
8350 #include <stdarg.h>
8351 #include <stdio.h>
8352 #ifdef HAVE_LIBUTF8_H
8353 #include <libutf8.h>
8354 #endif],
8355         [$1 state],
8356         [cf_cv_$1=no],
8357         [AC_TRY_COMPILE([
8358 #include <stdlib.h>
8359 #include <stdarg.h>
8360 #include <stdio.h>
8361 #include <wchar.h>
8362 #ifdef HAVE_LIBUTF8_H
8363 #include <libutf8.h>
8364 #endif],
8365         [$1 value],
8366         [cf_cv_$1=yes],
8367         [cf_cv_$1=unknown])])])
8368
8369 if test "$cf_cv_$1" = yes ; then
8370         AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
8371         NEED_WCHAR_H=1
8372 fi
8373
8374 ifelse([$2],,,[
8375 # if we do not find $1 in either place, use substitution to provide a fallback.
8376 if test "$cf_cv_$1" = unknown ; then
8377         $2=1
8378 fi
8379 ])
8380 ifelse($3,,,[
8381 # if we find $1 in either place, use substitution to provide a fallback.
8382 if test "$cf_cv_$1" != unknown ; then
8383         $3=1
8384 fi
8385 ])
8386 ])dnl
8387 dnl ---------------------------------------------------------------------------
8388 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
8389 dnl ---------------
8390 dnl Check for compiler-support for weak symbols.
8391 dnl This works with "recent" gcc.
8392 AC_DEFUN([CF_WEAK_SYMBOLS],[
8393 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
8394
8395 AC_TRY_COMPILE([
8396 #include <stdio.h>],
8397 [
8398 #if defined(__GNUC__)
8399 #  if defined __USE_ISOC99
8400 #    define _cat_pragma(exp)    _Pragma(#exp)
8401 #    define _weak_pragma(exp)   _cat_pragma(weak name)
8402 #  else
8403 #    define _weak_pragma(exp)
8404 #  endif
8405 #  define _declare(name)        __extension__ extern __typeof__(name) name
8406 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
8407 #endif
8408
8409 weak_symbol(fopen);
8410 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
8411 ])
8412 ])dnl
8413 dnl ---------------------------------------------------------------------------
8414 dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
8415 dnl -------------------
8416 dnl Allow library's ABI to be overridden.  Generally this happens when a
8417 dnl packager has incremented the ABI past that used in the original package,
8418 dnl and wishes to keep doing this.
8419 dnl
8420 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
8421 dnl symbol.
8422 AC_DEFUN([CF_WITH_ABI_VERSION],[
8423 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
8424 AC_ARG_WITH(abi-version,
8425 [  --with-abi-version=XXX  override derived ABI version],[
8426         if test "x$cf_cv_abi_version" != "x$withval"
8427         then
8428                 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
8429                 case "$cf_cv_rel_version" in
8430                 (5.*)
8431                         cf_cv_rel_version=$withval.0
8432                         ;;
8433                 (6.*)
8434                         cf_cv_rel_version=$withval.9    # FIXME: should be 10 as of 6.0 release
8435                         ;;
8436                 esac
8437         fi
8438         cf_cv_abi_version=$withval])
8439         CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
8440 ifelse($1,,,[
8441 $1_ABI=$cf_cv_abi_version
8442 ])
8443 ])dnl
8444 dnl ---------------------------------------------------------------------------
8445 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
8446 dnl --------------------
8447 dnl Command-line option to specify the Ada95 compiler.
8448 AC_DEFUN([CF_WITH_ADA_COMPILER],[
8449 AC_MSG_CHECKING(for ada-compiler)
8450 AC_ARG_WITH(ada-compiler,
8451         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
8452         [cf_ada_compiler=$withval],
8453         [cf_ada_compiler=gnatmake])
8454 AC_SUBST(cf_ada_compiler)
8455 AC_MSG_RESULT($cf_ada_compiler)
8456 ])dnl
8457 dnl ---------------------------------------------------------------------------
8458 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
8459 dnl -------------------
8460 dnl Command-line option to specify where Ada includes will install.
8461 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
8462 AC_MSG_CHECKING(for ada-include)
8463 CF_WITH_PATH(ada-include,
8464    [  --with-ada-include=DIR  Ada includes are in DIR],
8465    ADA_INCLUDE,
8466    PREFIX/share/ada/adainclude,
8467    [$]prefix/share/ada/adainclude)
8468 AC_SUBST(ADA_INCLUDE)
8469 AC_MSG_RESULT($ADA_INCLUDE)
8470 ])dnl
8471 dnl ---------------------------------------------------------------------------
8472 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
8473 dnl -------------------
8474 dnl CF_WITH_ADA_LIBNAME
8475 dnl -------------------
8476 dnl Command-line option to specify how to name the resulting Ada library.
8477 dnl $1 = default value
8478 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
8479 AC_MSG_CHECKING(for ada-libname)
8480 AC_ARG_WITH(ada-libname,
8481    [  --with-ada-libname=XXX  override default Ada library-name],
8482    ADA_LIBNAME=[$]withval,
8483    ADA_LIBNAME=$1)
8484 case "x$ADA_LIBNAME" in
8485 (x|xyes|xno)
8486         ADA_LIBNAME=$1
8487         ;;
8488 esac
8489 AC_SUBST(ADA_LIBNAME)
8490 AC_MSG_RESULT($ADA_LIBNAME)
8491 ])dnl
8492 dnl ---------------------------------------------------------------------------
8493 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
8494 dnl -------------------
8495 dnl Command-line option to specify where Ada objects will install.
8496 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
8497 AC_MSG_CHECKING(for ada-objects)
8498 CF_WITH_PATH(ada-objects,
8499    [  --with-ada-objects=DIR  Ada objects are in DIR],
8500    ADA_OBJECTS,
8501    PREFIX/lib/ada/adalib,
8502    [$]prefix/lib/ada/adalib)
8503 AC_SUBST(ADA_OBJECTS)
8504 AC_MSG_RESULT($ADA_OBJECTS)
8505 ])dnl
8506 dnl ---------------------------------------------------------------------------
8507 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
8508 dnl ---------------------
8509 dnl Command-line option to specify if an Ada95 shared-library should be built,
8510 dnl and optionally what its soname should be.
8511 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
8512 AC_REQUIRE([CF_GNAT_PROJECTS])
8513 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
8514 AC_ARG_WITH(ada-sharedlib,
8515         [  --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
8516         [with_ada_sharedlib=$withval],
8517         [with_ada_sharedlib=no])
8518 AC_MSG_RESULT($with_ada_sharedlib)
8519
8520 if test "x$with_ada_sharedlib" != xno
8521 then
8522         if test "x$cf_gnat_projects" != xyes
8523         then
8524                 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
8525                 with_ada_sharedlib=no
8526         fi
8527 fi
8528
8529 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
8530 MAKE_ADA_SHAREDLIB="#"
8531
8532 if test "x$with_ada_sharedlib" != xno
8533 then
8534         MAKE_ADA_SHAREDLIB=
8535         if test "x$with_ada_sharedlib" != xyes
8536         then
8537                 ADA_SHAREDLIB="$with_ada_sharedlib"
8538         fi
8539 fi
8540
8541 AC_SUBST(ADA_SHAREDLIB)
8542 AC_SUBST(MAKE_ADA_SHAREDLIB)
8543 ])dnl
8544 dnl ---------------------------------------------------------------------------
8545 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
8546 dnl ----------------
8547 dnl Configure-option for dbmalloc.  The optional parameter is used to override
8548 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8549 AC_DEFUN([CF_WITH_DBMALLOC],[
8550 CF_NO_LEAKS_OPTION(dbmalloc,
8551         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
8552         [USE_DBMALLOC])
8553
8554 if test "$with_dbmalloc" = yes ; then
8555         AC_CHECK_HEADER(dbmalloc.h,
8556                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
8557 fi
8558 ])dnl
8559 dnl ---------------------------------------------------------------------------
8560 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
8561 dnl ---------------
8562 dnl Configure-option for dmalloc.  The optional parameter is used to override
8563 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8564 AC_DEFUN([CF_WITH_DMALLOC],[
8565 CF_NO_LEAKS_OPTION(dmalloc,
8566         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
8567         [USE_DMALLOC])
8568
8569 if test "$with_dmalloc" = yes ; then
8570         AC_CHECK_HEADER(dmalloc.h,
8571                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
8572 fi
8573 ])dnl
8574 dnl ---------------------------------------------------------------------------
8575 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
8576 dnl -------------------
8577 dnl Use this with libtool to specify the list of symbols that may be exported.
8578 dnl The input file contains one symbol per line; comments work with "#".
8579 dnl
8580 dnl $1 = basename of the ".sym" file (default $PACKAGE)
8581 AC_DEFUN([CF_WITH_EXPORT_SYMS],
8582 [
8583 AC_MSG_CHECKING(if exported-symbols file should be used)
8584 AC_ARG_WITH(export-syms,
8585         [  --with-export-syms=XXX  limit exported symbols using libtool],
8586         [with_export_syms=$withval],
8587         [with_export_syms=no])
8588 if test "x$with_export_syms" = xyes
8589 then
8590         with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
8591         AC_SUBST(PACKAGE)
8592 fi
8593 AC_MSG_RESULT($with_export_syms)
8594 if test "x$with_export_syms" != xno
8595 then
8596         EXPORT_SYMS="-export-symbols $with_export_syms"
8597         AC_SUBST(EXPORT_SYMS)
8598 fi
8599 ])dnl
8600 dnl ---------------------------------------------------------------------------
8601 dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
8602 dnl -----------
8603 dnl
8604 dnl The option parameter (if neither yes/no) is assumed to be the name of
8605 dnl the gpm library, e.g., for dynamic loading.
8606 AC_DEFUN([CF_WITH_GPM],
8607 [
8608 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
8609 AC_ARG_WITH(gpm,
8610         [  --with-gpm              use Alessandro Rubini's GPM library],
8611         [with_gpm=$withval],
8612         [with_gpm=maybe])
8613 AC_MSG_RESULT($with_gpm)
8614
8615 if test "$with_gpm" != no ; then
8616         AC_CHECK_HEADER(gpm.h,[
8617                 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
8618                 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
8619                         CF_VERBOSE(assuming we really have GPM library)
8620                         AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
8621                         with_gpm=yes
8622                 else
8623                         AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
8624                                 if test "$with_gpm" = maybe; then
8625                                         AC_MSG_WARN(Cannot link with GPM library)
8626                                         with_gpm=no
8627                                 else
8628                                         AC_MSG_ERROR(Cannot link with GPM library)
8629                                 fi
8630                         ])
8631                 fi
8632         ],[
8633                 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
8634                 with_gpm=no
8635         ])
8636 fi
8637 ])
8638 dnl ---------------------------------------------------------------------------
8639 dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
8640 dnl ---------------
8641 dnl Provide a configure option to incorporate libtool.  Define several useful
8642 dnl symbols for the makefile rules.
8643 dnl
8644 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
8645 dnl macros from libtool.m4 which is in the aclocal directory of automake.
8646 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
8647 dnl But that still does not work properly since the macro is expanded outside
8648 dnl the CF_WITH_LIBTOOL macro:
8649 dnl
8650 dnl     #!/bin/sh
8651 dnl     ACLOCAL=`aclocal --print-ac-dir`
8652 dnl     if test -z "$ACLOCAL" ; then
8653 dnl             echo cannot find aclocal directory
8654 dnl             exit 1
8655 dnl     elif test ! -f $ACLOCAL/libtool.m4 ; then
8656 dnl             echo cannot find libtool.m4 file
8657 dnl             exit 1
8658 dnl     fi
8659 dnl
8660 dnl     LOCAL=aclocal.m4
8661 dnl     ORIG=aclocal.m4.orig
8662 dnl
8663 dnl     trap "mv $ORIG $LOCAL" 0 1 2 3 15
8664 dnl     rm -f $ORIG
8665 dnl     mv $LOCAL $ORIG
8666 dnl
8667 dnl     # sed the LIBTOOL= assignment to omit the current directory?
8668 dnl     sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
8669 dnl     cat $ORIG >>$LOCAL
8670 dnl
8671 dnl     autoconf-257 $*
8672 dnl
8673 AC_DEFUN([CF_WITH_LIBTOOL],
8674 [
8675 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
8676 ifdef([AC_PROG_LIBTOOL],,[
8677 LIBTOOL=
8678 ])
8679 # common library maintenance symbols that are convenient for libtool scripts:
8680 LIB_CREATE='${AR} -cr'
8681 LIB_OBJECT='${OBJECTS}'
8682 LIB_SUFFIX=.a
8683 LIB_PREP="$RANLIB"
8684
8685 # symbols used to prop libtool up to enable it to determine what it should be
8686 # doing:
8687 LIB_CLEAN=
8688 LIB_COMPILE=
8689 LIB_LINK='${CC}'
8690 LIB_INSTALL=
8691 LIB_UNINSTALL=
8692
8693 AC_MSG_CHECKING(if you want to build libraries with libtool)
8694 AC_ARG_WITH(libtool,
8695         [  --with-libtool          generate libraries with libtool],
8696         [with_libtool=$withval],
8697         [with_libtool=no])
8698 AC_MSG_RESULT($with_libtool)
8699 if test "$with_libtool" != "no"; then
8700 ifdef([AC_PROG_LIBTOOL],[
8701         # missing_content_AC_PROG_LIBTOOL{{
8702         AC_PROG_LIBTOOL
8703         # missing_content_AC_PROG_LIBTOOL}}
8704 ],[
8705         if test "$with_libtool" != "yes" ; then
8706                 CF_PATH_SYNTAX(with_libtool)
8707                 LIBTOOL=$with_libtool
8708         else
8709                 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
8710                 CF_LIBTOOL_VERSION
8711                 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
8712                 then
8713                         CF_FORGET_TOOL(LIBTOOL)
8714                         AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
8715                         CF_LIBTOOL_VERSION
8716                 fi
8717         fi
8718         if test -z "$LIBTOOL" ; then
8719                 AC_MSG_ERROR(Cannot find libtool)
8720         fi
8721 ])dnl
8722         LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
8723         LIB_OBJECT='${OBJECTS:.o=.lo}'
8724         LIB_SUFFIX=.la
8725         LIB_CLEAN='${LIBTOOL} --mode=clean'
8726         LIB_COMPILE='${LIBTOOL} --mode=compile'
8727         LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
8728         LIB_INSTALL='${LIBTOOL} --mode=install'
8729         LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
8730         LIB_PREP=:
8731
8732         CF_CHECK_LIBTOOL_VERSION
8733
8734         # special hack to add -no-undefined (which libtool should do for itself)
8735         LT_UNDEF=
8736         case "$cf_cv_system_name" in
8737         (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
8738                 LT_UNDEF=-no-undefined
8739                 ;;
8740         esac
8741         AC_SUBST([LT_UNDEF])
8742
8743         # special hack to add --tag option for C++ compiler
8744         case "$cf_cv_libtool_version" in
8745         (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
8746                 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
8747                 LIBTOOL="$LIBTOOL --tag=CC"
8748                 ;;
8749         (*)
8750                 LIBTOOL_CXX="$LIBTOOL"
8751                 ;;
8752         esac
8753 else
8754         LIBTOOL=""
8755         LIBTOOL_CXX=""
8756 fi
8757
8758 test -z "$LIBTOOL" && ECHO_LT=
8759
8760 AC_SUBST(LIBTOOL)
8761 AC_SUBST(LIBTOOL_CXX)
8762 AC_SUBST(LIBTOOL_OPTS)
8763
8764 AC_SUBST(LIB_CREATE)
8765 AC_SUBST(LIB_OBJECT)
8766 AC_SUBST(LIB_SUFFIX)
8767 AC_SUBST(LIB_PREP)
8768
8769 AC_SUBST(LIB_CLEAN)
8770 AC_SUBST(LIB_COMPILE)
8771 AC_SUBST(LIB_LINK)
8772 AC_SUBST(LIB_INSTALL)
8773 AC_SUBST(LIB_UNINSTALL)
8774
8775 ])dnl
8776 dnl ---------------------------------------------------------------------------
8777 dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
8778 dnl --------------------
8779 dnl Allow user to pass additional libtool options into the library creation
8780 dnl and link steps.  The main use for this is to do something like
8781 dnl     ./configure --with-libtool-opts=-static
8782 dnl to get the same behavior as automake-flavored
8783 dnl     ./configure --enable-static
8784 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
8785 AC_MSG_CHECKING(for additional libtool options)
8786 AC_ARG_WITH(libtool-opts,
8787         [  --with-libtool-opts=XXX specify additional libtool options],
8788         [with_libtool_opts=$withval],
8789         [with_libtool_opts=no])
8790 AC_MSG_RESULT($with_libtool_opts)
8791
8792 case .$with_libtool_opts in
8793 (.yes|.no|.)
8794         ;;
8795 (*)
8796         LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
8797         ;;
8798 esac
8799
8800 AC_SUBST(LIBTOOL_OPTS)
8801 ])dnl
8802 dnl ---------------------------------------------------------------------------
8803 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
8804 dnl --------------------
8805 dnl Allow for overriding the basename of a library, i.e., the part to which
8806 dnl prefixes/suffixes are attached.
8807 dnl
8808 dnl $1 = variable to set
8809 dnl $2 = option name
8810 dnl $3 = default basename for library, if omitted use $2
8811 AC_DEFUN([CF_WITH_LIB_BASENAME],
8812 [
8813 AC_MSG_CHECKING(for desired basename for $2 library)
8814 AC_ARG_WITH($2-libname,
8815         [  --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
8816         [with_lib_basename=$withval],
8817         [with_lib_basename=ifelse($3,,$2,$3)])
8818 $1="$with_lib_basename"
8819
8820 case "x[$]$1" in
8821 (x|xno|xnone|xyes)
8822         $1=ifelse($3,,$2,$3)
8823         ;;
8824 (*)
8825         ;;
8826 esac
8827
8828 AC_MSG_RESULT([$]$1)
8829 AC_SUBST($1)
8830 ])dnl
8831 dnl ---------------------------------------------------------------------------
8832 dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
8833 dnl ------------------
8834 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
8835 dnl "lib" prefix, e.g., because it used the dll naming convention.
8836 dnl
8837 dnl $1 = variable to set
8838 AC_DEFUN([CF_WITH_LIB_PREFIX],
8839 [
8840 AC_MSG_CHECKING(if you want to have a library-prefix)
8841 AC_ARG_WITH(lib-prefix,
8842         [  --with-lib-prefix       override library-prefix],
8843         [with_lib_prefix=$withval],
8844         [with_lib_prefix=auto])
8845 AC_MSG_RESULT($with_lib_prefix)
8846
8847 if test "$with_lib_prefix" = auto
8848 then
8849         CF_LIB_PREFIX($1)
8850 elif test "$with_lib_prefix" = no
8851 then
8852         LIB_PREFIX=
8853 else
8854         LIB_PREFIX=$with_lib_prefix
8855 fi
8856 ])dnl
8857 dnl ---------------------------------------------------------------------------
8858 dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
8859 dnl ------------
8860 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
8861 dnl defaulting to yes/no.
8862 dnl
8863 dnl $1 = option name
8864 dnl $2 = help-text
8865 dnl $3 = environment variable to set
8866 dnl $4 = default value, shown in the help-message, must be a constant
8867 dnl $5 = default value, if it's an expression & cannot be in the help-message
8868 dnl
8869 AC_DEFUN([CF_WITH_PATH],
8870 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
8871 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
8872 if ifelse([$5],,true,[test -n "$5"]) ; then
8873 CF_PATH_SYNTAX(withval)
8874 fi
8875 eval $3="$withval"
8876 AC_SUBST($3)dnl
8877 ])dnl
8878 dnl ---------------------------------------------------------------------------
8879 dnl CF_WITH_PATHLIST version: 12 updated: 2021/01/01 13:31:04
8880 dnl ----------------
8881 dnl Process an option specifying a list of colon-separated paths.
8882 dnl
8883 dnl $1 = option name
8884 dnl $2 = help-text
8885 dnl $3 = environment variable to set
8886 dnl $4 = default value, shown in the help-message, must be a constant
8887 dnl $5 = default value, if it's an expression & cannot be in the help-message
8888 dnl $6 = flag to tell if we want to define or substitute
8889 dnl
8890 AC_DEFUN([CF_WITH_PATHLIST],[
8891 AC_REQUIRE([CF_PATHSEP])
8892 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
8893 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
8894
8895 IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
8896 cf_dst_path=
8897 for cf_src_path in $withval
8898 do
8899   CF_PATH_SYNTAX(cf_src_path)
8900   test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
8901   cf_dst_path="${cf_dst_path}${cf_src_path}"
8902 done
8903 IFS="$ac_save_ifs"
8904
8905 ifelse($6,define,[
8906 # Strip single quotes from the value, e.g., when it was supplied as a literal
8907 # for $4 or $5.
8908 case "$cf_dst_path" in
8909 (\'*)
8910   cf_dst_path="`echo "$cf_dst_path" |sed -e s/\'// -e s/\'\$//`"
8911   ;;
8912 esac
8913 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
8914 ])
8915
8916 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
8917 # so we have to check/work around.  We do prefer the result of "eval"...
8918 eval cf_dst_eval="$cf_dst_path"
8919 case "x$cf_dst_eval" in
8920 (xNONE*)
8921         $3=$cf_dst_path
8922         ;;
8923 (*)
8924         $3="$cf_dst_eval"
8925         ;;
8926 esac
8927 AC_SUBST($3)dnl
8928
8929 ])dnl
8930 dnl ---------------------------------------------------------------------------
8931 dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
8932 dnl -----------------
8933 dnl Check for a given program, like CF_PATH_PROG, but allow override using a
8934 dnl "--with-xxx" option.
8935 dnl
8936 dnl Parameters:
8937 dnl             $1 = environment variable to set/update
8938 dnl             $2 = program name
8939 dnl             $3 = help-text
8940 dnl             $4 = $PATH
8941 AC_DEFUN([CF_WITH_PATH_PROG],[
8942 AC_ARG_WITH($2-path,
8943         [  --with-$2-path=XXX     specify path of $2 ifelse($3,,,$3)],
8944         [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
8945                 $1=$withval
8946                 AC_MSG_RESULT([$]$1)
8947                 CF_PATH_SYNTAX($1)
8948         ],
8949         [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
8950                 if test -z "[$]$1"
8951                 then
8952                         AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
8953                 fi
8954         ])
8955 ])
8956 dnl ---------------------------------------------------------------------------
8957 dnl CF_WITH_PCRE2 version: 5 updated: 2021/01/26 18:45:12
8958 dnl -------------
8959 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
8960 dnl available and the user requests it.  Assume the application will otherwise
8961 dnl use the POSIX interface.
8962 dnl
8963 dnl TODO allow $withval to specify package location
8964 AC_DEFUN([CF_WITH_PCRE2],
8965 [
8966 AC_REQUIRE([CF_PKG_CONFIG])
8967
8968 AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
8969 AC_ARG_WITH(pcre2,
8970         [  --with-pcre2            use PCRE2 for regular-expressions])
8971 test -z "$with_pcre2" && with_pcre2=no
8972 AC_MSG_RESULT($with_pcre2)
8973
8974 if test "x$with_pcre2" != xno ; then
8975         cf_with_pcre2_ok=no
8976         for cf_with_pcre2 in libpcre2 libpcre2-posix libpcre
8977         do
8978                 CF_TRY_PKG_CONFIG($cf_with_pcre2,[cf_with_pcre2_ok=yes; break])
8979         done
8980         cf_with_pcre2_ok=yes || AC_MSG_ERROR(Cannot find PCRE2 library)
8981
8982         AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
8983
8984         # if pkgconfig gave no results, look for the libraries directly
8985         case "$LIBS" in
8986         (*pcre2-posix*|*pcreposix*)
8987                 ;;
8988         (*)
8989                 AC_CHECK_LIB(pcre2-posix,regcomp,[
8990                         CF_ADD_LIB(pcre2-posix)],
8991                         [AC_CHECK_LIB(pcreposix,regcomp,[
8992                          CF_ADD_LIB(pcreposix)
8993                         ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
8994                 ;;
8995         esac
8996
8997         # either way, check for the library header files
8998         AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
8999 fi
9000 ])dnl
9001 dnl ---------------------------------------------------------------------------
9002 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 11 updated: 2021/01/01 16:16:30
9003 dnl -------------------------
9004 dnl Allow the choice of the pkg-config library directory to be overridden.
9005 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
9006
9007 case "$PKG_CONFIG" in
9008 (no|none|yes)
9009         AC_MSG_CHECKING(for pkg-config library directory)
9010         ;;
9011 (*)
9012         AC_MSG_CHECKING(for $PKG_CONFIG library directory)
9013         ;;
9014 esac
9015
9016 PKG_CONFIG_LIBDIR=no
9017 AC_ARG_WITH(pkg-config-libdir,
9018         [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
9019         [PKG_CONFIG_LIBDIR=$withval],
9020         [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
9021
9022 case x$PKG_CONFIG_LIBDIR in
9023 (x/*)
9024         ;;
9025 (xyes)
9026         # Look for the library directory using the same prefix as the executable
9027         if test "x$PKG_CONFIG" = xnone
9028         then
9029                 cf_path=$prefix
9030         else
9031                 cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
9032         fi
9033
9034         # If you don't like using the default architecture, you have to specify the
9035         # intended library directory and corresponding compiler/linker options.
9036         #
9037         # This case allows for Debian's 2014-flavor of multiarch, along with the
9038         # most common variations before that point.  Some other variants spell the
9039         # directory differently, e.g., "pkg-config", and put it in unusual places.
9040         # pkg-config has always been poorly standardized, which is ironic...
9041         case x`(arch) 2>/dev/null` in
9042         (*64)
9043                 cf_search_path="\
9044                         $cf_path/lib/*64-linux-gnu \
9045                         $cf_path/share \
9046                         $cf_path/lib64 \
9047                         $cf_path/lib32 \
9048                         $cf_path/lib"
9049                 ;;
9050         (*)
9051                 cf_search_path="\
9052                         $cf_path/lib/*-linux-gnu \
9053                         $cf_path/share \
9054                         $cf_path/lib32 \
9055                         $cf_path/lib \
9056                         $cf_path/libdata"
9057                 ;;
9058         esac
9059
9060         CF_VERBOSE(list...)
9061         for cf_config in $cf_search_path
9062         do
9063                 CF_VERBOSE(checking $cf_config/pkgconfig)
9064                 if test -d "$cf_config/pkgconfig"
9065                 then
9066                         PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
9067                         AC_MSG_CHECKING(done)
9068                         break
9069                 fi
9070         done
9071         ;;
9072 (*)
9073         ;;
9074 esac
9075
9076 if test "x$PKG_CONFIG_LIBDIR" != xno ; then
9077         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9078 fi
9079
9080 AC_SUBST(PKG_CONFIG_LIBDIR)
9081 ])dnl
9082 dnl ---------------------------------------------------------------------------
9083 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
9084 dnl ---------------
9085 dnl Check for POSIX thread library.
9086 AC_DEFUN([CF_WITH_PTHREAD],
9087 [
9088 AC_MSG_CHECKING(if you want to link with the pthread library)
9089 AC_ARG_WITH(pthread,
9090         [  --with-pthread          use POSIX thread library],
9091         [with_pthread=$withval],
9092         [with_pthread=no])
9093 AC_MSG_RESULT($with_pthread)
9094
9095 if test "$with_pthread" != no ; then
9096         AC_CHECK_HEADER(pthread.h,[
9097         AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
9098
9099         for cf_lib_pthread in pthread c_r
9100         do
9101             AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
9102             cf_save_LIBS="$LIBS"
9103             CF_ADD_LIB($cf_lib_pthread)
9104             AC_TRY_LINK([
9105 #include <pthread.h>
9106 ],[
9107                 int rc = pthread_create(0,0,0,0);
9108                 int r2 = pthread_mutexattr_settype(0, 0);
9109 ],[with_pthread=yes],[with_pthread=no])
9110             LIBS="$cf_save_LIBS"
9111             AC_MSG_RESULT($with_pthread)
9112             test "$with_pthread" = yes && break
9113         done
9114
9115         if test "$with_pthread" = yes ; then
9116             CF_ADD_LIB($cf_lib_pthread)
9117             AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
9118         else
9119             AC_MSG_ERROR(Cannot link with pthread library)
9120         fi
9121         ])
9122 fi
9123 ])
9124 dnl ---------------------------------------------------------------------------
9125 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
9126 dnl -------------------
9127 dnl Allow library's release-version to be overridden.  Generally this happens when a
9128 dnl packager has incremented the release-version past that used in the original package,
9129 dnl and wishes to keep doing this.
9130 dnl
9131 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
9132 dnl and {package}_MINOR symbols
9133 dnl symbol.
9134 AC_DEFUN([CF_WITH_REL_VERSION],[
9135 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
9136 AC_ARG_WITH(rel-version,
9137 [  --with-rel-version=XXX  override derived release version],
9138 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
9139  cf_cv_rel_version=$withval])
9140 ifelse($1,,[
9141  CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
9142 ],[
9143  $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
9144  $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
9145  CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
9146  CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
9147 ])
9148 ])dnl
9149 dnl ---------------------------------------------------------------------------
9150 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
9151 dnl ----------------
9152 dnl If we can compile with sysmouse, make it available unless it is not wanted.
9153 AC_DEFUN([CF_WITH_SYSMOUSE],[
9154 # not everyone has "test -c"
9155 if test -c /dev/sysmouse 2>/dev/null ; then
9156 AC_MSG_CHECKING(if you want to use sysmouse)
9157 AC_ARG_WITH(sysmouse,
9158         [  --with-sysmouse         use sysmouse (FreeBSD console)],
9159         [cf_with_sysmouse=$withval],
9160         [cf_with_sysmouse=maybe])
9161         if test "$cf_with_sysmouse" != no ; then
9162         AC_TRY_COMPILE([
9163 #include <osreldate.h>
9164 #if (__FreeBSD_version >= 400017)
9165 #include <sys/consio.h>
9166 #include <sys/fbio.h>
9167 #else
9168 #include <machine/console.h>
9169 #endif
9170 ],[
9171         struct mouse_info the_mouse;
9172         ioctl(0, CONS_MOUSECTL, &the_mouse);
9173 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
9174         fi
9175 AC_MSG_RESULT($cf_with_sysmouse)
9176 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
9177 fi
9178 ])dnl
9179 dnl ---------------------------------------------------------------------------
9180 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
9181 dnl ---------------
9182 dnl For testing, override the derived host system-type which is used to decide
9183 dnl things such as the linker commands used to build shared libraries.  This is
9184 dnl normally chosen automatically based on the type of system which you are
9185 dnl building on.  We use it for testing the configure script.
9186 dnl
9187 dnl This is different from the --host option: it is used only for testing parts
9188 dnl of the configure script which would not be reachable with --host since that
9189 dnl relies on the build environment being real, rather than mocked up.
9190 AC_DEFUN([CF_WITH_SYSTYPE],[
9191 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
9192 AC_ARG_WITH(system-type,
9193         [  --with-system-type=XXX  test: override derived host system-type],
9194 [AC_MSG_WARN(overriding system type to $withval)
9195         cf_cv_system_name=$withval
9196         host_os=$withval
9197 ])
9198 ])dnl
9199 dnl ---------------------------------------------------------------------------
9200 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
9201 dnl ----------------
9202 AC_DEFUN([CF_WITH_VALGRIND],[
9203 CF_NO_LEAKS_OPTION(valgrind,
9204         [  --with-valgrind         test: use valgrind],
9205         [USE_VALGRIND])
9206 ])dnl
9207 dnl ---------------------------------------------------------------------------
9208 dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
9209 dnl ----------------------
9210 dnl Use this when building shared library with ELF, to markup symbols with the
9211 dnl version identifier from the given input file.  Generally that identifier is
9212 dnl the same as the SONAME at which the symbol was first introduced.
9213 dnl
9214 dnl $1 = basename of the ".map" file (default $PACKAGE)
9215 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
9216 [AC_REQUIRE([AC_PROG_FGREP])dnl
9217 AC_REQUIRE([AC_PROG_EGREP])dnl
9218
9219 AC_MSG_CHECKING(if versioned-symbols file should be used)
9220 AC_ARG_WITH(versioned-syms,
9221         [  --with-versioned-syms=X markup versioned symbols using ld],
9222         [with_versioned_syms=$withval],
9223         [with_versioned_syms=no])
9224 case "x$with_versioned_syms" in
9225 (xyes)
9226         with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
9227         AC_SUBST(PACKAGE)
9228         ;;
9229 (xno)
9230         ;;
9231 (x/*)
9232         test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9233         ;;
9234 (*)
9235         test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9236         with_versioned_syms=`pwd`/"$with_versioned_syms"
9237         ;;
9238 esac
9239 AC_MSG_RESULT($with_versioned_syms)
9240
9241 RESULTING_SYMS=
9242 VERSIONED_SYMS=
9243 WILDCARD_SYMS=
9244
9245 if test "x$with_versioned_syms" != xno
9246 then
9247         RESULTING_SYMS=$with_versioned_syms
9248         case "x$MK_SHARED_LIB" in
9249         (*-Wl,*)
9250                 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
9251                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
9252                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
9253                 ;;
9254         (*-dy\ *)
9255                 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
9256                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
9257                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
9258                 ;;
9259         (*)
9260                 AC_MSG_WARN(this system does not support versioned-symbols)
9261                 ;;
9262         esac
9263
9264         # Linux ld can selectively override scope, e.g., of symbols beginning with
9265         # "_" by first declaring some as global, and then using a wildcard to
9266         # declare the others as local.  Some other loaders cannot do this.  Check
9267         # by constructing a (very) simple shared library and inspecting its
9268         # symbols.
9269         if test "x$VERSIONED_SYMS" != "x"
9270         then
9271                 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
9272                 WILDCARD_SYMS=no
9273
9274                 # make sources
9275                 rm -f conftest.*
9276
9277                 cat >conftest.ver <<EOF
9278 module_1.0 {
9279 global:
9280         globalf1;
9281 local:
9282         localf1;
9283 };
9284 module_2.0 {
9285 global:
9286         globalf2;
9287 local:
9288         localf2;
9289         _*;
9290 } module_1.0;
9291 submodule_1.0 {
9292 global:
9293         subglobalf1;
9294         _ismissing;
9295 local:
9296         sublocalf1;
9297 };
9298 submodule_2.0 {
9299 global:
9300         subglobalf2;
9301 local:
9302         sublocalf2;
9303         _*;
9304 } submodule_1.0;
9305 EOF
9306                 cat >conftest.$ac_ext <<EOF
9307 #line __oline__ "configure"
9308 int     _ismissing(void) { return 1; }
9309 int     _localf1(void) { return 1; }
9310 int     _localf2(void) { return 2; }
9311 int     globalf1(void) { return 1; }
9312 int     globalf2(void) { return 2; }
9313 int     _sublocalf1(void) { return 1; }
9314 int     _sublocalf2(void) { return 2; }
9315 int     subglobalf1(void) { return 1; }
9316 int     subglobalf2(void) { return 2; }
9317 EOF
9318                 cat >conftest.mk <<EOF
9319 CC=${CC}
9320 CFLAGS=${CFLAGS}
9321 CPPFLAGS=${CPPFLAGS}
9322 LDFLAGS=${LDFLAGS}
9323 LIBS=${LIBS}
9324 VERSIONED_SYMS=${VERSIONED_SYMS}
9325 RESULTING_SYMS=conftest.ver
9326 MK_SHARED_LIB=${MK_SHARED_LIB}
9327 conftest.so: conftest.$ac_cv_objext
9328                 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
9329 EOF
9330
9331                 # compile source, make library
9332                 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
9333                 then
9334                         # test for missing symbol in either Data or Text section
9335                         cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[      ]][[DT]][[      ]]'`"
9336                         test -n "$cf_missing" && WILDCARD_SYMS=yes
9337                 fi
9338                 AC_MSG_RESULT($WILDCARD_SYMS)
9339                 rm -f conftest.*
9340         fi
9341 fi
9342 AC_SUBST(RESULTING_SYMS)
9343 AC_SUBST(VERSIONED_SYMS)
9344 AC_SUBST(WILDCARD_SYMS)
9345 ])dnl
9346 dnl ---------------------------------------------------------------------------
9347 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
9348 dnl ---------------
9349 dnl Handle configure option "--with-x11-rgb", setting these shell
9350 dnl variables:
9351 dnl
9352 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
9353 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
9354 dnl
9355 dnl Most Linux's use this:
9356 dnl     /usr/share/X11/rgb.txt
9357 dnl Debian uses this:
9358 dnl     /etc/X11/rgb.txt
9359 dnl DragonFlyBSD ports uses this:
9360 dnl     /usr/pkg/lib/X11/rgb.txt
9361 dnl FreeBSD ports use these:
9362 dnl     /usr/local/lib/X11/rgb.txt
9363 dnl     /usr/local/share/X11/rgb.txt
9364 dnl Mandriva has these:
9365 dnl     /usr/lib/X11/rgb.txt
9366 dnl     /usr/lib64/X11/rgb.txt
9367 dnl NetBSD has these
9368 dnl     /usr/X11R7/lib/X11/rgb.txt
9369 dnl OpenSolaris uses
9370 dnl     32-bit:
9371 dnl     /usr/X11/etc/X11/rgb.txt
9372 dnl     /usr/X11/share/X11/rgb.txt
9373 dnl     /usr/X11/lib/X11/rgb.txt
9374 dnl OSX uses
9375 dnl             /opt/local/share/X11/rgb.txt (MacPorts)
9376 dnl             /opt/X11/share/X11/rgb.txt (non-ports)
9377 dnl     64-bit:
9378 dnl     /usr/X11/etc/X11/rgb.txt
9379 dnl     /usr/X11/share/X11/rgb.txt (perhaps)
9380 dnl     /usr/X11/lib/amd64/X11/rgb.txt
9381 dnl Solaris10 uses (in this order):
9382 dnl     /usr/openwin/lib/X11/rgb.txt
9383 dnl     /usr/X11/lib/X11/rgb.txt
9384 AC_DEFUN([CF_WITH_X11_RGB],[
9385 AC_MSG_CHECKING(for X11 rgb file)
9386 AC_ARG_WITH(x11-rgb,
9387         [  --with-x11-rgb=FILE   file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
9388         [RGB_PATH=$withval],
9389         [RGB_PATH=auto])
9390
9391 if test "x[$]RGB_PATH" = xauto
9392 then
9393         RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
9394         for cf_path in \
9395                 /opt/local/share/X11/rgb.txt \
9396                 /opt/X11/share/X11/rgb.txt \
9397                 /usr/share/X11/rgb.txt \
9398                 /usr/X11/share/X11/rgb.txt \
9399                 /usr/X11/lib/X11/rgb.txt \
9400                 /usr/lib/X11/rgb.txt \
9401                 /etc/X11/rgb.txt \
9402                 /usr/pkg/lib/X11/rgb.txt \
9403                 /usr/X11R7/lib/X11/rgb.txt \
9404                 /usr/X11R6/lib/X11/rgb.txt \
9405                 /usr/X11R5/lib/X11/rgb.txt \
9406                 /usr/X11R4/lib/X11/rgb.txt \
9407                 /usr/local/lib/X11/rgb.txt \
9408                 /usr/local/share/X11/rgb.txt \
9409                 /usr/lib64/X11/rgb.txt
9410         do
9411                 if test -f "$cf_path" ; then
9412                         RGB_PATH="$cf_path"
9413                         break
9414                 fi
9415         done
9416 else
9417         cf_path=$RGB_PATH
9418         CF_PATH_SYNTAX(cf_path)
9419 fi
9420
9421 AC_MSG_RESULT($RGB_PATH)
9422 AC_SUBST(RGB_PATH)
9423 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
9424
9425 no_x11_rgb=
9426 if test "$RGB_PATH" = no
9427 then
9428         no_x11_rgb="#"
9429 fi
9430 AC_SUBST(no_x11_rgb)
9431 ])dnl
9432 dnl ---------------------------------------------------------------------------
9433 dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59
9434 dnl ---------------
9435 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
9436 dnl or adapt to the vendor's definitions to get equivalent functionality,
9437 dnl without losing the common non-POSIX features.
9438 dnl
9439 dnl Parameters:
9440 dnl     $1 is the nominal value for _XOPEN_SOURCE
9441 dnl     $2 is the nominal value for _POSIX_C_SOURCE
9442 AC_DEFUN([CF_XOPEN_SOURCE],[
9443 AC_REQUIRE([AC_CANONICAL_HOST])
9444 AC_REQUIRE([CF_POSIX_VISIBLE])
9445
9446 if test "$cf_cv_posix_visible" = no; then
9447
9448 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
9449 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
9450 cf_xopen_source=
9451
9452 case "$host_os" in
9453 (aix[[4-7]]*)
9454         cf_xopen_source="-D_ALL_SOURCE"
9455         ;;
9456 (msys)
9457         cf_XOPEN_SOURCE=600
9458         ;;
9459 (darwin[[0-8]].*)
9460         cf_xopen_source="-D_APPLE_C_SOURCE"
9461         ;;
9462 (darwin*)
9463         cf_xopen_source="-D_DARWIN_C_SOURCE"
9464         cf_XOPEN_SOURCE=
9465         ;;
9466 (freebsd*|dragonfly*|midnightbsd*)
9467         # 5.x headers associate
9468         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
9469         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
9470         cf_POSIX_C_SOURCE=200112L
9471         cf_XOPEN_SOURCE=600
9472         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
9473         ;;
9474 (hpux11*)
9475         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
9476         ;;
9477 (hpux*)
9478         cf_xopen_source="-D_HPUX_SOURCE"
9479         ;;
9480 (irix[[56]].*)
9481         cf_xopen_source="-D_SGI_SOURCE"
9482         cf_XOPEN_SOURCE=
9483         ;;
9484 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
9485         CF_GNU_SOURCE($cf_XOPEN_SOURCE)
9486         ;;
9487 (minix*)
9488         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
9489         ;;
9490 (mirbsd*)
9491         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
9492         cf_XOPEN_SOURCE=
9493         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9494         ;;
9495 (netbsd*)
9496         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
9497         ;;
9498 (openbsd[[4-9]]*)
9499         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
9500         cf_xopen_source="-D_BSD_SOURCE"
9501         cf_XOPEN_SOURCE=600
9502         ;;
9503 (openbsd*)
9504         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
9505         ;;
9506 (osf[[45]]*)
9507         cf_xopen_source="-D_OSF_SOURCE"
9508         ;;
9509 (nto-qnx*)
9510         cf_xopen_source="-D_QNX_SOURCE"
9511         ;;
9512 (sco*)
9513         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
9514         ;;
9515 (solaris2.*)
9516         cf_xopen_source="-D__EXTENSIONS__"
9517         cf_cv_xopen_source=broken
9518         ;;
9519 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
9520         cf_XOPEN_SOURCE=
9521         cf_POSIX_C_SOURCE=
9522         ;;
9523 (*)
9524         CF_TRY_XOPEN_SOURCE
9525         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9526         ;;
9527 esac
9528
9529 if test -n "$cf_xopen_source" ; then
9530         CF_ADD_CFLAGS($cf_xopen_source,true)
9531 fi
9532
9533 dnl In anything but the default case, we may have system-specific setting
9534 dnl which is still not guaranteed to provide all of the entrypoints that
9535 dnl _XOPEN_SOURCE would yield.
9536 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
9537         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
9538         AC_TRY_COMPILE([#include <stdlib.h>],[
9539 #ifndef _XOPEN_SOURCE
9540 make an error
9541 #endif],
9542         [cf_XOPEN_SOURCE_set=yes],
9543         [cf_XOPEN_SOURCE_set=no])
9544         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
9545         if test "$cf_XOPEN_SOURCE_set" = yes
9546         then
9547                 AC_TRY_COMPILE([#include <stdlib.h>],[
9548 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
9549 make an error
9550 #endif],
9551                 [cf_XOPEN_SOURCE_set_ok=yes],
9552                 [cf_XOPEN_SOURCE_set_ok=no])
9553                 if test "$cf_XOPEN_SOURCE_set_ok" = no
9554                 then
9555                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
9556                 fi
9557         else
9558                 CF_TRY_XOPEN_SOURCE
9559         fi
9560 fi
9561 fi # cf_cv_posix_visible
9562 ])
9563 dnl ---------------------------------------------------------------------------
9564 dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
9565 dnl ------------------
9566 dnl Trim something using sed, then trim extra whitespace
9567 dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
9568 define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[     ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl