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