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