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