• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1dnl***************************************************************************
2dnl Copyright 2018-2023,2024 Thomas E. Dickey                                *
3dnl Copyright 2010-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
31dnl
32dnl $Id: aclocal.m4,v 1.210 2024/03/30 22:17:13 tom Exp $
33dnl Macros used in NCURSES Ada95 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 CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
46dnl ------------------
47dnl Conditionally generate script according to whether we're using a given autoconf.
48dnl
49dnl $1 = version to compare against
50dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
51dnl $3 = code to use if AC_ACVERSION is older than $1.
52define([CF_ACVERSION_CHECK],
53[
54ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
55ifdef([m4_version_compare],
56[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
57[CF_ACVERSION_COMPARE(
58AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
59AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
60dnl ---------------------------------------------------------------------------
61dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
62dnl --------------------
63dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
64dnl                      MAJOR2, MINOR2, TERNARY2,
65dnl                      PRINTABLE2, not FOUND, FOUND)
66define([CF_ACVERSION_COMPARE],
67[ifelse(builtin([eval], [$2 < $5]), 1,
68[ifelse([$8], , ,[$8])],
69[ifelse([$9], , ,[$9])])])dnl
70dnl ---------------------------------------------------------------------------
71dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
72dnl -------------------
73dnl Construct the list of include-options for the C programs in the Ada95
74dnl binding.
75AC_DEFUN([CF_ADA_INCLUDE_DIRS],
76[
77ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
78if test "$srcdir" != "."; then
79	ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
80fi
81if test "$GCC" != yes; then
82	ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
83elif test "$includedir" != "/usr/include"; then
84	if test "$includedir" = '${prefix}/include' ; then
85		if test x$prefix != x/usr ; then
86			ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
87		fi
88	else
89		ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
90	fi
91fi
92AC_SUBST(ACPPFLAGS)
93])dnl
94dnl ---------------------------------------------------------------------------
95dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
96dnl ---------------
97dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
98AC_DEFUN([CF_ADD_ADAFLAGS],[
99 	ADAFLAGS="$ADAFLAGS $1"
100	AC_SUBST(ADAFLAGS)
101])dnl
102dnl ---------------------------------------------------------------------------
103dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
104dnl -------------
105dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
106dnl $1 = flags to add
107dnl $2 = if given makes this macro verbose.
108dnl
109dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
110dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
111dnl confused by the quotes (which require backslashes to keep them usable).
112AC_DEFUN([CF_ADD_CFLAGS],
113[
114cf_fix_cppflags=no
115cf_new_cflags=
116cf_new_cppflags=
117cf_new_extra_cppflags=
118
119for cf_add_cflags in $1
120do
121case "$cf_fix_cppflags" in
122(no)
123	case "$cf_add_cflags" in
124	(-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
125		case "$cf_add_cflags" in
126		(-D*)
127			cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
128
129			test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
130				&& test -z "${cf_tst_cflags}" \
131				&& cf_fix_cppflags=yes
132
133			if test "$cf_fix_cppflags" = yes ; then
134				CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
135				continue
136			elif test "${cf_tst_cflags}" = "\"'" ; then
137				CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
138				continue
139			fi
140			;;
141		esac
142		case "$CPPFLAGS" in
143		(*$cf_add_cflags)
144			;;
145		(*)
146			case "$cf_add_cflags" in
147			(-D*)
148				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
149				CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
150				;;
151			esac
152			CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
153			;;
154		esac
155		;;
156	(*)
157		CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
158		;;
159	esac
160	;;
161(yes)
162	CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
163
164	cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
165
166	test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
167		&& test -z "${cf_tst_cflags}" \
168		&& cf_fix_cppflags=no
169	;;
170esac
171done
172
173if test -n "$cf_new_cflags" ; then
174	ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
175	CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
176fi
177
178if test -n "$cf_new_cppflags" ; then
179	ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
180	CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
181fi
182
183if test -n "$cf_new_extra_cppflags" ; then
184	ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
185	CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
186fi
187
188AC_SUBST(EXTRA_CPPFLAGS)
189
190])dnl
191dnl ---------------------------------------------------------------------------
192dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
193dnl -------------
194dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it is
195dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
196dnl but old versions (and some misinstalled ones) need that.  To make things
197dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
198dnl the include-path).
199AC_DEFUN([CF_ADD_INCDIR],
200[
201if test -n "$1" ; then
202  for cf_add_incdir in $1
203  do
204	while test "$cf_add_incdir" != /usr/include
205	do
206	  if test -d "$cf_add_incdir"
207	  then
208		cf_have_incdir=no
209		if test -n "$CFLAGS$CPPFLAGS" ; then
210		  # a loop is needed to ensure we can add subdirs of existing dirs
211		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
212			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
213			  cf_have_incdir=yes; break
214			fi
215		  done
216		fi
217
218		if test "$cf_have_incdir" = no ; then
219		  if test "$cf_add_incdir" = /usr/local/include ; then
220			if test "$GCC" = yes
221			then
222			  cf_save_CPPFLAGS=$CPPFLAGS
223			  CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
224			  AC_TRY_COMPILE([#include <stdio.h>],
225				  [printf("Hello")],
226				  [],
227				  [cf_have_incdir=yes])
228			  CPPFLAGS=$cf_save_CPPFLAGS
229			fi
230		  fi
231		fi
232
233		if test "$cf_have_incdir" = no ; then
234		  CF_VERBOSE(adding $cf_add_incdir to include-path)
235		  ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
236
237		  cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
238		  test "$cf_top_incdir" = "$cf_add_incdir" && break
239		  cf_add_incdir="$cf_top_incdir"
240		else
241		  break
242		fi
243	  else
244		break
245	  fi
246	done
247  done
248fi
249])dnl
250dnl ---------------------------------------------------------------------------
251dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
252dnl ----------
253dnl Add a library, used to enforce consistency.
254dnl
255dnl $1 = library to add, without the "-l"
256dnl $2 = variable to update (default $LIBS)
257AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
258dnl ---------------------------------------------------------------------------
259dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
260dnl -------------
261dnl	Adds to the library-path
262dnl
263dnl	Some machines have trouble with multiple -L options.
264dnl
265dnl $1 is the (list of) directory(s) to add
266dnl $2 is the optional name of the variable to update (default LDFLAGS)
267dnl
268AC_DEFUN([CF_ADD_LIBDIR],
269[
270if test -n "$1" ; then
271	for cf_add_libdir in $1
272	do
273		if test "$cf_add_libdir" = /usr/lib ; then
274			:
275		elif test -d "$cf_add_libdir"
276		then
277			cf_have_libdir=no
278			if test -n "$LDFLAGS$LIBS" ; then
279				# a loop is needed to ensure we can add subdirs of existing dirs
280				for cf_test_libdir in $LDFLAGS $LIBS ; do
281					if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
282						cf_have_libdir=yes; break
283					fi
284				done
285			fi
286			if test "$cf_have_libdir" = no ; then
287				CF_VERBOSE(adding $cf_add_libdir to library-path)
288				ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
289			fi
290		fi
291	done
292fi
293])dnl
294dnl ---------------------------------------------------------------------------
295dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
296dnl -----------
297dnl Add one or more libraries, used to enforce consistency.  Libraries are
298dnl prepended to an existing list, since their dependencies are assumed to
299dnl already exist in the list.
300dnl
301dnl $1 = libraries to add, with the "-l", etc.
302dnl $2 = variable to update (default $LIBS)
303AC_DEFUN([CF_ADD_LIBS],[
304cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
305# reverse order
306cf_add_0lib=
307for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
308# filter duplicates
309for cf_add_1lib in $cf_add_0lib; do
310	for cf_add_2lib in $cf_add_libs; do
311		if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
312			cf_add_1lib=
313			break
314		fi
315	done
316	test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
317done
318ifelse($2,,LIBS,[$2])="$cf_add_libs"
319])dnl
320dnl ---------------------------------------------------------------------------
321dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
322dnl ------------------
323dnl Append to a search-list for a nonstandard header/lib-file
324dnl	$1 = the variable to return as result
325dnl	$2 = the package name
326dnl	$3 = the subdirectory, e.g., bin, include or lib
327dnl $4 = the directory under which we will test for subdirectories
328dnl $5 = a directory that we do not want $4 to match
329AC_DEFUN([CF_ADD_SUBDIR_PATH],
330[
331test "x$4" != "x$5" && \
332test -d "$4" && \
333ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
334	test -n "$verbose" && echo "	... testing for $3-directories under $4"
335	test -d "$4/$3" &&          $1="[$]$1 $4/$3"
336	test -d "$4/$3/$2" &&       $1="[$]$1 $4/$3/$2"
337	test -d "$4/$3/$2/$3" &&    $1="[$]$1 $4/$3/$2/$3"
338	test -d "$4/$2/$3" &&       $1="[$]$1 $4/$2/$3"
339	test -d "$4/$2/$3/$2" &&    $1="[$]$1 $4/$2/$3/$2"
340}
341])dnl
342dnl ---------------------------------------------------------------------------
343dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
344dnl ----------------
345dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
346dnl $1 = flags to add
347dnl $2 = if given makes this macro verbose.
348define([CF_APPEND_CFLAGS],
349[
350for cf_add_cflags in $1
351do
352	case "x$cf_add_cflags" in
353	(x-[[DU]]*)
354		CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
355		CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
356		;;
357	esac
358	CF_ADD_CFLAGS([$cf_add_cflags],[$2])
359done
360])dnl
361dnl ---------------------------------------------------------------------------
362dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
363dnl --------------
364dnl use this macro for appending text without introducing an extra blank at
365dnl the beginning
366define([CF_APPEND_TEXT],
367[
368	test -n "[$]$1" && $1="[$]$1 "
369	$1="[$]{$1}$2"
370])dnl
371dnl ---------------------------------------------------------------------------
372dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
373dnl --------------
374dnl Allow user to disable a normally-on option.
375AC_DEFUN([CF_ARG_DISABLE],
376[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
377dnl ---------------------------------------------------------------------------
378dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
379dnl -------------
380dnl Allow user to enable a normally-off option.
381AC_DEFUN([CF_ARG_ENABLE],
382[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
383dnl ---------------------------------------------------------------------------
384dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
385dnl -------------
386dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
387dnl values.
388dnl
389dnl Parameters:
390dnl $1 = option name
391dnl $2 = help-string
392dnl $3 = action to perform if option is not default
393dnl $4 = action if perform if option is default
394dnl $5 = default option value (either 'yes' or 'no')
395AC_DEFUN([CF_ARG_OPTION],
396[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
397	if test "$enableval" != "$5" ; then
398ifelse([$3],,[    :]dnl
399,[    $3]) ifelse([$4],,,[
400	else
401		$4])
402	fi],[enableval=$5 ifelse([$4],,,[
403	$4
404])dnl
405])])dnl
406dnl ---------------------------------------------------------------------------
407dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
408dnl -----------
409dnl Check for suitable "ar" (archiver) options for updating an archive.
410dnl
411dnl In particular, handle some obsolete cases where the "-" might be omitted,
412dnl as well as a workaround for breakage of make's archive rules by the GNU
413dnl binutils "ar" program.
414AC_DEFUN([CF_AR_FLAGS],[
415AC_REQUIRE([CF_PROG_AR])
416
417AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
418	case "$cf_cv_system_name" in
419	(*-msvc*)
420		cf_cv_ar_flags=''
421		cat >mk_static_lib.sh <<-EOF
422		#!$SHELL
423		MSVC_BIN="[$]AR"
424		out="\[$]1"
425		shift
426		exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
427		EOF
428		chmod +x mk_static_lib.sh
429		AR=`pwd`/mk_static_lib.sh
430		;;
431	(*)
432		cf_cv_ar_flags=unknown
433		for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
434		do
435
436			# check if $ARFLAGS already contains this choice
437			if test "x$ARFLAGS" != "x" ; then
438				cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
439				if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
440					cf_cv_ar_flags=
441					break
442				fi
443			fi
444
445			rm -f "conftest.$ac_cv_objext"
446			rm -f conftest.a
447
448			cat >"conftest.$ac_ext" <<EOF
449#line __oline__ "configure"
450int	testdata[[3]] = { 123, 456, 789 };
451EOF
452			if AC_TRY_EVAL(ac_compile) ; then
453				echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
454				$AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
455				if test -f conftest.a ; then
456					cf_cv_ar_flags="$cf_ar_flags"
457					break
458				fi
459			else
460				CF_VERBOSE(cannot compile test-program)
461				break
462			fi
463		done
464		rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
465		;;
466	esac
467])
468
469if test -n "$ARFLAGS" ; then
470	if test -n "$cf_cv_ar_flags" ; then
471		ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
472	fi
473else
474	ARFLAGS=$cf_cv_ar_flags
475fi
476
477AC_SUBST(ARFLAGS)
478])
479dnl ---------------------------------------------------------------------------
480dnl CF_BUILD_CC version: 11 updated: 2022/12/04 15:40:08
481dnl -----------
482dnl If we're cross-compiling, allow the user to override the tools and their
483dnl options.  The configure script is oriented toward identifying the host
484dnl compiler, etc., but we need a build compiler to generate parts of the
485dnl source.
486dnl
487dnl $1 = default for $CPPFLAGS
488dnl $2 = default for $LIBS
489AC_DEFUN([CF_BUILD_CC],[
490CF_ACVERSION_CHECK(2.52,,
491	[AC_REQUIRE([CF_PROG_EXT])])
492if test "$cross_compiling" = yes ; then
493
494	# defaults that we might want to override
495	: ${BUILD_CFLAGS:=''}
496	: ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
497	: ${BUILD_LDFLAGS:=''}
498	: ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
499	: ${BUILD_EXEEXT:='$x'}
500	: ${BUILD_OBJEXT:='o'}
501
502	AC_ARG_WITH(build-cc,
503		[  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
504		[BUILD_CC="$withval"],
505		[AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
506	AC_MSG_CHECKING(for native build C compiler)
507	AC_MSG_RESULT($BUILD_CC)
508
509	AC_MSG_CHECKING(for native build C preprocessor)
510	AC_ARG_WITH(build-cpp,
511		[  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
512		[BUILD_CPP="$withval"],
513		[BUILD_CPP='${BUILD_CC} -E'])
514	AC_MSG_RESULT($BUILD_CPP)
515
516	AC_MSG_CHECKING(for native build C flags)
517	AC_ARG_WITH(build-cflags,
518		[  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
519		[BUILD_CFLAGS="$withval"])
520	AC_MSG_RESULT($BUILD_CFLAGS)
521
522	AC_MSG_CHECKING(for native build C preprocessor-flags)
523	AC_ARG_WITH(build-cppflags,
524		[  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
525		[BUILD_CPPFLAGS="$withval"])
526	AC_MSG_RESULT($BUILD_CPPFLAGS)
527
528	AC_MSG_CHECKING(for native build linker-flags)
529	AC_ARG_WITH(build-ldflags,
530		[  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
531		[BUILD_LDFLAGS="$withval"])
532	AC_MSG_RESULT($BUILD_LDFLAGS)
533
534	AC_MSG_CHECKING(for native build linker-libraries)
535	AC_ARG_WITH(build-libs,
536		[  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
537		[BUILD_LIBS="$withval"])
538	AC_MSG_RESULT($BUILD_LIBS)
539
540	# this assumes we're on Unix.
541	BUILD_EXEEXT=
542	BUILD_OBJEXT=o
543
544	: ${BUILD_CC:='${CC}'}
545
546	AC_MSG_CHECKING(if the build-compiler "$BUILD_CC" works)
547
548	cf_save_crossed=$cross_compiling
549	cf_save_ac_link=$ac_link
550	cross_compiling=no
551	cf_build_cppflags=$BUILD_CPPFLAGS
552	test "$cf_build_cppflags" = "#" && cf_build_cppflags=
553	ac_link='$BUILD_CC -o "conftest$ac_exeext" $BUILD_CFLAGS $cf_build_cppflags $BUILD_LDFLAGS "conftest.$ac_ext" $BUILD_LIBS >&AS_MESSAGE_LOG_FD'
554
555	AC_TRY_RUN([#include <stdio.h>
556		int main(int argc, char *argv[])
557		{
558			${cf_cv_main_return:-return}(argc < 0 || argv == 0 || argv[0] == 0);
559		}
560	],
561		cf_ok_build_cc=yes,
562		cf_ok_build_cc=no,
563		cf_ok_build_cc=unknown)
564
565	cross_compiling=$cf_save_crossed
566	ac_link=$cf_save_ac_link
567
568	AC_MSG_RESULT($cf_ok_build_cc)
569
570	if test "$cf_ok_build_cc" != yes
571	then
572		AC_MSG_ERROR([Cross-build requires two compilers.
573Use --with-build-cc to specify the native compiler.])
574	fi
575
576else
577	: ${BUILD_CC:='${CC}'}
578	: ${BUILD_CPP:='${CPP}'}
579	: ${BUILD_CFLAGS:='${CFLAGS}'}
580	: ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
581	: ${BUILD_LDFLAGS:='${LDFLAGS}'}
582	: ${BUILD_LIBS:='${LIBS}'}
583	: ${BUILD_EXEEXT:='$x'}
584	: ${BUILD_OBJEXT:='o'}
585fi
586
587AC_SUBST(BUILD_CC)
588AC_SUBST(BUILD_CPP)
589AC_SUBST(BUILD_CFLAGS)
590AC_SUBST(BUILD_CPPFLAGS)
591AC_SUBST(BUILD_LDFLAGS)
592AC_SUBST(BUILD_LIBS)
593AC_SUBST(BUILD_EXEEXT)
594AC_SUBST(BUILD_OBJEXT)
595])dnl
596dnl ---------------------------------------------------------------------------
597dnl CF_C11_NORETURN version: 4 updated: 2023/02/18 17:41:25
598dnl ---------------
599AC_DEFUN([CF_C11_NORETURN],
600[
601AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
602CF_ARG_ENABLE(stdnoreturn,
603	[  --enable-stdnoreturn    enable C11 _Noreturn feature for diagnostics],
604	[enable_stdnoreturn=yes],
605	[enable_stdnoreturn=no])
606AC_MSG_RESULT($enable_stdnoreturn)
607
608if test $enable_stdnoreturn = yes; then
609AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
610	[AC_TRY_COMPILE([
611$ac_includes_default
612#include <stdnoreturn.h>
613static _Noreturn void giveup(void) { exit(0); }
614	],
615	[if (feof(stdin)) giveup()],
616	cf_cv_c11_noreturn=yes,
617	cf_cv_c11_noreturn=no)
618	])
619else
620	cf_cv_c11_noreturn=no,
621fi
622
623if test "$cf_cv_c11_noreturn" = yes; then
624	AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
625	AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
626	HAVE_STDNORETURN_H=1
627else
628	HAVE_STDNORETURN_H=0
629fi
630
631AC_SUBST(HAVE_STDNORETURN_H)
632AC_SUBST(STDC_NORETURN)
633])dnl
634dnl ---------------------------------------------------------------------------
635dnl CF_CC_ENV_FLAGS version: 11 updated: 2023/02/20 11:15:46
636dnl ---------------
637dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
638dnl into CC.  This will not help with broken scripts that wrap the compiler
639dnl with options, but eliminates a more common category of user confusion.
640dnl
641dnl In particular, it addresses the problem of being able to run the C
642dnl preprocessor in a consistent manner.
643dnl
644dnl Caveat: this also disallows blanks in the pathname for the compiler, but
645dnl the nuisance of having inconsistent settings for compiler and preprocessor
646dnl outweighs that limitation.
647AC_DEFUN([CF_CC_ENV_FLAGS],
648[
649# This should have been defined by AC_PROG_CC
650: "${CC:=cc}"
651
652AC_MSG_CHECKING(\$CFLAGS variable)
653case "x$CFLAGS" in
654(*-[[IUD]]*)
655	AC_MSG_RESULT(broken)
656	AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
657	cf_flags="$CFLAGS"
658	CFLAGS=
659	for cf_arg in $cf_flags
660	do
661		CF_ADD_CFLAGS($cf_arg)
662	done
663	;;
664(*)
665	AC_MSG_RESULT(ok)
666	;;
667esac
668
669AC_MSG_CHECKING(\$CC variable)
670case "$CC" in
671(*[[\ \	]]-*)
672	AC_MSG_RESULT(broken)
673	AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
674	# humor him...
675	cf_prog=`echo "$CC" | sed -e 's/	/ /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
676	cf_flags=`echo "$CC" | sed -e "s%^$cf_prog%%"`
677	CC="$cf_prog"
678	for cf_arg in $cf_flags
679	do
680		case "x$cf_arg" in
681		(x-[[IUDfgOW]]*)
682			CF_ADD_CFLAGS($cf_arg)
683			;;
684		(*)
685			CC="$CC $cf_arg"
686			;;
687		esac
688	done
689	CF_VERBOSE(resulting CC: '$CC')
690	CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
691	CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
692	;;
693(*)
694	AC_MSG_RESULT(ok)
695	;;
696esac
697])dnl
698dnl ---------------------------------------------------------------------------
699dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
700dnl ---------------
701dnl Determine the default configuration into which we'll install ncurses.  This
702dnl can be overridden by the user's command-line options.  There's two items to
703dnl look for:
704dnl	1. the prefix (e.g., /usr)
705dnl	2. the header files (e.g., /usr/include/ncurses)
706dnl We'll look for a previous installation of ncurses and use the same defaults.
707dnl
708dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
709dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
710dnl programs from a vendor's.
711AC_DEFUN([CF_CFG_DEFAULTS],
712[AC_REQUIRE([AC_PROG_FGREP])dnl
713
714AC_MSG_CHECKING(for prefix)
715if test "x$prefix" = "xNONE" ; then
716	case "$cf_cv_system_name" in
717		# non-vendor systems don't have a conflict
718	(openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
719		prefix=/usr
720		;;
721	(*)	prefix=$ac_default_prefix
722		;;
723	esac
724fi
725AC_MSG_RESULT($prefix)
726
727if test "x$prefix" = "xNONE" ; then
728AC_MSG_CHECKING(for default include-directory)
729test -n "$verbose" && echo 1>&AC_FD_MSG
730for cf_symbol in \
731	"$includedir" \
732	"$includedir/ncurses" \
733	"$prefix/include" \
734	"$prefix/include/ncurses" \
735	/usr/local/include \
736	/usr/local/include/ncurses \
737	/usr/include \
738	/usr/include/ncurses
739do
740	cf_dir=`eval echo "$cf_symbol"`
741	if test -f "$cf_dir/curses.h" ; then
742	if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
743		includedir="$cf_symbol"
744		test -n "$verbose"  && echo $ECHO_N "	found " 1>&AC_FD_MSG
745		break
746	fi
747	fi
748	test -n "$verbose"  && echo "	tested $cf_dir" 1>&AC_FD_MSG
749done
750AC_MSG_RESULT($includedir)
751fi
752])dnl
753dnl ---------------------------------------------------------------------------
754dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
755dnl --------------
756dnl Check if we're accidentally using a cache from a different machine.
757dnl Derive the system name, as a check for reusing the autoconf cache.
758dnl
759dnl If we've packaged config.guess and config.sub, run that (since it does a
760dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
761dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
762dnl which is useful in cross-compiles.
763dnl
764dnl Note: we would use $ac_config_sub, but that is one of the places where
765dnl autoconf 2.5x broke compatibility with autoconf 2.13
766AC_DEFUN([CF_CHECK_CACHE],
767[
768if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
769	ifelse([$1],,[AC_CANONICAL_HOST],[$1])
770	system_name="$host_os"
771else
772	system_name="`(uname -s -r) 2>/dev/null`"
773	if test -z "$system_name" ; then
774		system_name="`(hostname) 2>/dev/null`"
775	fi
776fi
777test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
778AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
779
780test -z "$system_name" && system_name="$cf_cv_system_name"
781test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
782
783if test ".$system_name" != ".$cf_cv_system_name" ; then
784	AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
785	AC_MSG_ERROR("Please remove config.cache and try again.")
786fi
787])dnl
788dnl ---------------------------------------------------------------------------
789dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
790dnl ---------------------
791AC_DEFUN([CF_CHECK_GNAT_VERSION],
792[
793AC_REQUIRE([CF_GNAT_VERSION])
794case "$cf_cv_gnat_version" in
795(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
796	cf_cv_prog_gnat_correct=yes
797	;;
798(*)
799	AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
800	cf_cv_prog_gnat_correct=no
801	;;
802esac
803])
804dnl ---------------------------------------------------------------------------
805dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
806dnl ---------------
807dnl Check if libssp is needed, e.g., to work around misconfigured libraries
808dnl used in cross-compiling to MinGW.
809AC_DEFUN([CF_CHECK_LIBSSP],[
810AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
811AC_TRY_LINK([
812#include <sys/types.h>
813#include <dirent.h>
814],[
815       DIR *dp = opendir(".");
816],cf_cv_need_libssp=no,[
817	cf_save_LIBS="$LIBS"
818	LIBS="$LIBS -lssp"
819	AC_TRY_LINK([
820#include <sys/types.h>
821#include <dirent.h>
822	],[
823		   DIR *dp = opendir(".");
824	],cf_cv_need_libssp=yes,
825	  cf_cv_need_libssp=maybe)
826	LIBS="$cf_save_LIBS"
827])dnl
828])
829
830if test "x$cf_cv_need_libssp" = xyes
831then
832	CF_ADD_LIB(ssp)
833fi
834])dnl
835dnl ---------------------------------------------------------------------------
836dnl CF_CLANG_COMPILER version: 9 updated: 2023/02/18 17:41:25
837dnl -----------------
838dnl Check if the given compiler is really clang.  clang's C driver defines
839dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
840dnl not ignore some gcc options.
841dnl
842dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
843dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
844dnl the wrappers for gcc and g++ warnings.
845dnl
846dnl $1 = GCC (default) or GXX
847dnl $2 = CLANG_COMPILER (default)
848dnl $3 = CFLAGS (default) or CXXFLAGS
849AC_DEFUN([CF_CLANG_COMPILER],[
850ifelse([$2],,CLANG_COMPILER,[$2])=no
851
852if test "$ifelse([$1],,[$1],GCC)" = yes ; then
853	AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
854	cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
855	AC_TRY_COMPILE([],[
856#ifdef __clang__
857#else
858#error __clang__ is not defined
859#endif
860],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
861],[])
862	ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
863	AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
864fi
865
866CLANG_VERSION=none
867
868if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
869	case "$CC" in
870	(c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
871		AC_MSG_WARN(replacing broken compiler alias $CC)
872		CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
873		CC=clang
874		;;
875	esac
876
877	AC_MSG_CHECKING(version of $CC)
878	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.]].*//'`"
879	test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
880	AC_MSG_RESULT($CLANG_VERSION)
881
882	for cf_clang_opt in \
883		-Qunused-arguments \
884		-Wno-error=implicit-function-declaration
885	do
886		AC_MSG_CHECKING(if option $cf_clang_opt works)
887		cf_save_CFLAGS="$CFLAGS"
888		CFLAGS="$CFLAGS $cf_clang_opt"
889		AC_TRY_LINK([
890			#include <stdio.h>],[
891			printf("hello!\\n");],[
892			cf_clang_optok=yes],[
893			cf_clang_optok=no])
894		AC_MSG_RESULT($cf_clang_optok)
895		CFLAGS="$cf_save_CFLAGS"
896		if test "$cf_clang_optok" = yes; then
897			CF_VERBOSE(adding option $cf_clang_opt)
898			CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
899		fi
900	done
901fi
902])
903dnl ---------------------------------------------------------------------------
904dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
905dnl -----------------
906dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
907dnl character-strings.
908dnl
909dnl It is ambiguous because the specification accommodated the pre-ANSI
910dnl compilers bundled by more than one vendor in lieu of providing a standard C
911dnl compiler other than by costly add-ons.  Because of this, the specification
912dnl did not take into account the use of const for telling the compiler that
913dnl string literals would be in readonly memory.
914dnl
915dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
916dnl let the compiler decide how to represent Xt's strings which were #define'd.
917dnl That does not solve the problem of using the block of Xt's strings which
918dnl are compiled into the library (and is less efficient than one might want).
919dnl
920dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
921dnl when compiling the library and compiling using the library, to tell the
922dnl compiler that String is const.
923AC_DEFUN([CF_CONST_X_STRING],
924[
925AC_REQUIRE([AC_PATH_XTRA])
926
927CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
928
929AC_TRY_COMPILE(
930[
931#include <stdlib.h>
932#include <X11/Intrinsic.h>
933],
934[String foo = malloc(1); free((void*)foo)],[
935
936AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
937	AC_TRY_COMPILE(
938		[
939#undef  _CONST_X_STRING
940#define _CONST_X_STRING	/* X11R7.8 (perhaps) */
941#undef  XTSTRINGDEFINES	/* X11R5 and later */
942#include <stdlib.h>
943#include <X11/Intrinsic.h>
944		],[String foo = malloc(1); *foo = 0],[
945			cf_cv_const_x_string=no
946		],[
947			cf_cv_const_x_string=yes
948		])
949])
950
951CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
952
953case "$cf_cv_const_x_string" in
954(no)
955	CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
956	;;
957(*)
958	CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
959	;;
960esac
961
962])
963])dnl
964dnl ---------------------------------------------------------------------------
965dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
966dnl -----------------
967dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
968dnl character-strings.
969dnl
970dnl It is ambiguous because the specification accommodated the pre-ANSI
971dnl compilers bundled by more than one vendor in lieu of providing a standard C
972dnl compiler other than by costly add-ons.  Because of this, the specification
973dnl did not take into account the use of const for telling the compiler that
974dnl string literals would be in readonly memory.
975dnl
976dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
977dnl let the compiler decide how to represent Xt's strings which were #define'd.
978dnl That does not solve the problem of using the block of Xt's strings which
979dnl are compiled into the library (and is less efficient than one might want).
980dnl
981dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
982dnl when compiling the library and compiling using the library, to tell the
983dnl compiler that String is const.
984AC_DEFUN([CF_CONST_X_STRING],
985[
986AC_REQUIRE([AC_PATH_XTRA])
987
988CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
989
990AC_TRY_COMPILE(
991[
992#include <stdlib.h>
993#include <X11/Intrinsic.h>
994],
995[String foo = malloc(1); free((void*)foo)],[
996
997AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
998	AC_TRY_COMPILE(
999		[
1000#undef  _CONST_X_STRING
1001#define _CONST_X_STRING	/* X11R7.8 (perhaps) */
1002#undef  XTSTRINGDEFINES	/* X11R5 and later */
1003#include <stdlib.h>
1004#include <X11/Intrinsic.h>
1005		],[String foo = malloc(1); *foo = 0],[
1006			cf_cv_const_x_string=no
1007		],[
1008			cf_cv_const_x_string=yes
1009		])
1010])
1011
1012CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1013
1014case "$cf_cv_const_x_string" in
1015(no)
1016	CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1017	;;
1018(*)
1019	CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1020	;;
1021esac
1022
1023])
1024])dnl
1025dnl ---------------------------------------------------------------------------
1026dnl CF_CURSES_HEADER version: 6 updated: 2022/12/02 20:06:52
1027dnl ----------------
1028dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
1029dnl variations of ncurses' installs.
1030dnl
1031dnl $1 = ncurses when looking for ncurses, or is empty
1032AC_DEFUN([CF_CURSES_HEADER],[
1033AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
1034cf_cv_ncurses_header=none
1035for cf_header in \
1036	ncurses.h ifelse($1,,,[$1/ncurses.h]) \
1037	curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
1038do
1039AC_TRY_COMPILE([#include <${cf_header}>],
1040	[initscr(); endwin()],
1041	[cf_cv_ncurses_header=$cf_header; break],[])
1042done
1043])
1044
1045if test "$cf_cv_ncurses_header" = none ; then
1046	AC_MSG_ERROR(No curses header-files found)
1047fi
1048
1049# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
1050AC_CHECK_HEADERS($cf_cv_ncurses_header)
1051])dnl
1052dnl ---------------------------------------------------------------------------
1053dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1054dnl ----------
1055dnl "dirname" is not portable, so we fake it with a shell script.
1056AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1057dnl ---------------------------------------------------------------------------
1058dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1059dnl ---------------
1060dnl You can always use "make -n" to see the actual options, but it is hard to
1061dnl pick out/analyze warning messages when the compile-line is long.
1062dnl
1063dnl Sets:
1064dnl	ECHO_LT - symbol to control if libtool is verbose
1065dnl	ECHO_LD - symbol to prefix "cc -o" lines
1066dnl	RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1067dnl	SHOW_CC - symbol to put before explicit "cc -c" lines
1068dnl	ECHO_CC - symbol to put before any "cc" line
1069dnl
1070AC_DEFUN([CF_DISABLE_ECHO],[
1071AC_MSG_CHECKING(if you want to see long compiling messages)
1072CF_ARG_DISABLE(echo,
1073	[  --disable-echo          do not display "compiling" commands],
1074	[
1075	ECHO_LT='--silent'
1076	ECHO_LD='@echo linking [$]@;'
1077	RULE_CC='@echo compiling [$]<'
1078	SHOW_CC='@echo compiling [$]@'
1079	ECHO_CC='@'
1080],[
1081	ECHO_LT=''
1082	ECHO_LD=''
1083	RULE_CC=''
1084	SHOW_CC=''
1085	ECHO_CC=''
1086])
1087AC_MSG_RESULT($enableval)
1088AC_SUBST(ECHO_LT)
1089AC_SUBST(ECHO_LD)
1090AC_SUBST(RULE_CC)
1091AC_SUBST(SHOW_CC)
1092AC_SUBST(ECHO_CC)
1093])dnl
1094dnl ---------------------------------------------------------------------------
1095dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1096dnl ------------------------
1097AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1098AC_MSG_CHECKING(if we want to use GNAT projects)
1099CF_ARG_DISABLE(gnat-projects,
1100	[  --disable-gnat-projects test: disable GNAT projects even if usable],
1101	[enable_gnat_projects=no],
1102	[enable_gnat_projects=yes])
1103AC_MSG_RESULT($enable_gnat_projects)
1104])dnl
1105dnl ---------------------------------------------------------------------------
1106dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
1107dnl -----------------------
1108dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
1109dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
1110dnl an unconditional feature.
1111AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
1112
1113AC_MSG_CHECKING(if you want broken-linker support code)
1114AC_ARG_ENABLE(broken_linker,
1115	[  --enable-broken_linker  compile with broken-linker support code],
1116	[with_broken_linker=$enableval],
1117	[with_broken_linker=no])
1118AC_MSG_RESULT($with_broken_linker)
1119
1120: "${BROKEN_LINKER:=0}"
1121if test "x$with_broken_linker" = xyes ; then
1122	AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
1123	BROKEN_LINKER=1
1124fi
1125AC_SUBST(BROKEN_LINKER)
1126])dnl
1127dnl ---------------------------------------------------------------------------
1128dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
1129dnl ------------------
1130dnl Configure-option to enable gcc warnings
1131dnl
1132dnl $1 = extra options to add, if supported
1133dnl $2 = option for checking attributes.  By default, this is done when
1134dnl      warnings are enabled.  For other values:
1135dnl      yes: always do this, e.g., to use in generated library-headers
1136dnl      no: never do this
1137AC_DEFUN([CF_ENABLE_WARNINGS],[
1138if test "$GCC" = yes || test "$GXX" = yes
1139then
1140CF_FIX_WARNINGS(CFLAGS)
1141CF_FIX_WARNINGS(CPPFLAGS)
1142CF_FIX_WARNINGS(LDFLAGS)
1143AC_MSG_CHECKING(if you want to turn on gcc warnings)
1144CF_ARG_ENABLE(warnings,
1145	[  --enable-warnings       test: turn on gcc compiler warnings],
1146	[enable_warnings=yes],
1147	[enable_warnings=no])
1148AC_MSG_RESULT($enable_warnings)
1149if test "$enable_warnings" = "yes"
1150then
1151	ifelse($2,,[CF_GCC_ATTRIBUTES])
1152	CF_GCC_WARNINGS($1)
1153fi
1154ifelse($2,yes,[CF_GCC_ATTRIBUTES])
1155fi
1156])dnl
1157dnl ---------------------------------------------------------------------------
1158dnl CF_FIND_LIBRARY version: 11 updated: 2021/01/02 09:31:20
1159dnl ---------------
1160dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
1161dnl prefer a standard location, and use -L options only if we do not find the
1162dnl library in the standard library location(s).
1163dnl	$1 = library name
1164dnl	$2 = library class, usually the same as library name
1165dnl	$3 = includes
1166dnl	$4 = code fragment to compile/link
1167dnl	$5 = corresponding function-name
1168dnl	$6 = flag, nonnull if failure should not cause an error-exit
1169dnl
1170dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1171dnl to use a -L option.
1172AC_DEFUN([CF_FIND_LIBRARY],
1173[
1174	eval 'cf_cv_have_lib_'"$1"'=no'
1175	cf_libdir=""
1176	AC_CHECK_FUNC($5,
1177		eval 'cf_cv_have_lib_'"$1"'=yes',[
1178		cf_save_LIBS="$LIBS"
1179		AC_MSG_CHECKING(for $5 in -l$1)
1180		LIBS="-l$1 $LIBS"
1181		AC_TRY_LINK([$3],[$4],
1182			[AC_MSG_RESULT(yes)
1183			 eval 'cf_cv_have_lib_'"$1"'=yes'
1184			],
1185			[AC_MSG_RESULT(no)
1186			CF_LIBRARY_PATH(cf_search,$2)
1187			for cf_libdir in $cf_search
1188			do
1189				AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1190				LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1191				AC_TRY_LINK([$3],[$4],
1192					[AC_MSG_RESULT(yes)
1193			 		 eval 'cf_cv_have_lib_'"$1"'=yes'
1194					 break],
1195					[AC_MSG_RESULT(no)
1196					 LIBS="$cf_save_LIBS"])
1197			done
1198			])
1199		])
1200eval 'cf_found_library="[$]cf_cv_have_lib_'"$1"\"
1201ifelse($6,,[
1202if test "$cf_found_library" = no ; then
1203	AC_MSG_ERROR(Cannot link $1 library)
1204fi
1205])
1206])dnl
1207dnl ---------------------------------------------------------------------------
1208dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
1209dnl ---------------
1210dnl Find a library (specifically the linkage used in the code fragment),
1211dnl searching for it if it is not already in the library path.
1212dnl See also CF_ADD_SEARCHPATH.
1213dnl
1214dnl Parameters (4-on are optional):
1215dnl     $1 = headers for library entrypoint
1216dnl     $2 = code fragment for library entrypoint
1217dnl     $3 = the library name without the "-l" option or ".so" suffix.
1218dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1219dnl     $5 = action to perform if not successful
1220dnl     $6 = module name, if not the same as the library name
1221dnl     $7 = extra libraries
1222dnl
1223dnl Sets these variables:
1224dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1225dnl     $cf_cv_header_path_$3 - include-directory if needed
1226dnl     $cf_cv_library_path_$3 - library-directory if needed
1227dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1228AC_DEFUN([CF_FIND_LINKAGE],[
1229
1230# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1231# will be set on completion of the AC_TRY_LINK below.
1232cf_cv_header_path_$3=
1233cf_cv_library_path_$3=
1234
1235CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1236
1237cf_save_LIBS="$LIBS"
1238
1239AC_TRY_LINK([$1],[$2],[
1240	cf_cv_find_linkage_$3=yes
1241	cf_cv_header_path_$3=/usr/include
1242	cf_cv_library_path_$3=/usr/lib
1243],[
1244
1245LIBS="-l$3 $7 $cf_save_LIBS"
1246
1247AC_TRY_LINK([$1],[$2],[
1248	cf_cv_find_linkage_$3=yes
1249	cf_cv_header_path_$3=/usr/include
1250	cf_cv_library_path_$3=/usr/lib
1251	cf_cv_library_file_$3="-l$3"
1252],[
1253	cf_cv_find_linkage_$3=no
1254	LIBS="$cf_save_LIBS"
1255
1256	CF_VERBOSE(find linkage for $3 library)
1257	CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1258
1259	cf_save_CPPFLAGS="$CPPFLAGS"
1260	cf_test_CPPFLAGS="$CPPFLAGS"
1261
1262	CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1263	for cf_cv_header_path_$3 in $cf_search
1264	do
1265		if test -d "$cf_cv_header_path_$3" ; then
1266			CF_VERBOSE(... testing $cf_cv_header_path_$3)
1267			CPPFLAGS="$cf_save_CPPFLAGS"
1268			CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
1269			AC_TRY_COMPILE([$1],[$2],[
1270				CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1271				cf_cv_find_linkage_$3=maybe
1272				cf_test_CPPFLAGS="$CPPFLAGS"
1273				break],[
1274				CPPFLAGS="$cf_save_CPPFLAGS"
1275				])
1276		fi
1277	done
1278
1279	if test "$cf_cv_find_linkage_$3" = maybe ; then
1280
1281		CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1282
1283		cf_save_LIBS="$LIBS"
1284		cf_save_LDFLAGS="$LDFLAGS"
1285
1286		ifelse([$6],,,[
1287		CPPFLAGS="$cf_test_CPPFLAGS"
1288		LIBS="-l$3 $7 $cf_save_LIBS"
1289		AC_TRY_LINK([$1],[$2],[
1290			CF_VERBOSE(... found $3 library in system)
1291			cf_cv_find_linkage_$3=yes])
1292			CPPFLAGS="$cf_save_CPPFLAGS"
1293			LIBS="$cf_save_LIBS"
1294			])
1295
1296		if test "$cf_cv_find_linkage_$3" != yes ; then
1297			CF_LIBRARY_PATH(cf_search,$3)
1298			for cf_cv_library_path_$3 in $cf_search
1299			do
1300				if test -d "$cf_cv_library_path_$3" ; then
1301					CF_VERBOSE(... testing $cf_cv_library_path_$3)
1302					CPPFLAGS="$cf_test_CPPFLAGS"
1303					LIBS="-l$3 $7 $cf_save_LIBS"
1304					LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1305					AC_TRY_LINK([$1],[$2],[
1306					CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1307					cf_cv_find_linkage_$3=yes
1308					cf_cv_library_file_$3="-l$3"
1309					break],[
1310					CPPFLAGS="$cf_save_CPPFLAGS"
1311					LIBS="$cf_save_LIBS"
1312					LDFLAGS="$cf_save_LDFLAGS"
1313					])
1314				fi
1315			done
1316			CPPFLAGS="$cf_save_CPPFLAGS"
1317			LDFLAGS="$cf_save_LDFLAGS"
1318		fi
1319
1320	else
1321		cf_cv_find_linkage_$3=no
1322	fi
1323	],$7)
1324])
1325
1326LIBS="$cf_save_LIBS"
1327
1328if test "$cf_cv_find_linkage_$3" = yes ; then
1329ifelse([$4],,[
1330	CF_ADD_INCDIR($cf_cv_header_path_$3)
1331	CF_ADD_LIBDIR($cf_cv_library_path_$3)
1332	CF_ADD_LIB($3)
1333],[$4])
1334else
1335ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1336fi
1337])dnl
1338dnl ---------------------------------------------------------------------------
1339dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
1340dnl -----------------
1341dnl make ADAFLAGS consistent with CFLAGS
1342AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1343	AC_MSG_CHECKING(optimization options for ADAFLAGS)
1344	case "$CFLAGS" in
1345	(*-g*)
1346		CF_ADD_ADAFLAGS(-g)
1347		;;
1348	esac
1349	case "$CFLAGS" in
1350	(*-O*)
1351		cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ 	]].*//'`
1352		CF_ADD_ADAFLAGS($cf_O_flag)
1353		;;
1354	esac
1355	AC_MSG_RESULT($ADAFLAGS)
1356])dnl
1357dnl ---------------------------------------------------------------------------
1358dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
1359dnl ---------------
1360dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
1361dnl "-Werror" flags can interfere with configure-checks.  Those go into
1362dnl EXTRA_CFLAGS.
1363dnl
1364dnl $1 = variable name to repair
1365define([CF_FIX_WARNINGS],[
1366if test "$GCC" = yes || test "$GXX" = yes
1367then
1368	case [$]$1 in
1369	(*-Werror=*)
1370		cf_temp_flags=
1371		for cf_temp_scan in [$]$1
1372		do
1373			case "x$cf_temp_scan" in
1374			(x-Werror=format*)
1375				CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
1376				;;
1377			(x-Werror=*)
1378				CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
1379				;;
1380			(*)
1381				CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
1382				;;
1383			esac
1384		done
1385		if test "x[$]$1" != "x$cf_temp_flags"
1386		then
1387			CF_VERBOSE(repairing $1: [$]$1)
1388			$1="$cf_temp_flags"
1389			CF_VERBOSE(... fixed [$]$1)
1390			CF_VERBOSE(... extra $EXTRA_CFLAGS)
1391		fi
1392		;;
1393	esac
1394fi
1395AC_SUBST(EXTRA_CFLAGS)
1396])dnl
1397dnl ---------------------------------------------------------------------------
1398dnl CF_FUNC_GETTIME version: 2 updated: 2023/02/25 08:45:56
1399dnl ---------------
1400dnl Check for gettimeofday or clock_gettime.  In 2023, the former is still more
1401dnl widely supported, but "deprecated" (2008), so we will use the latter if it
1402dnl is available, to reduce compiler warnings.
1403AC_DEFUN([CF_FUNC_GETTIME],[
1404AC_CACHE_CHECK(for clock_gettime,cf_cv_func_clock_gettime,[
1405		AC_TRY_LINK([#include <time.h>],
1406		[struct timespec ts;
1407		int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts],
1408		[cf_cv_func_clock_gettime=yes],
1409		[cf_cv_func_clock_gettime=no])
1410])
1411
1412if test "$cf_cv_func_clock_gettime" = yes
1413then
1414	AC_DEFINE(HAVE_CLOCK_GETTIME,1,[Define to 1 if we have clock_gettime function])
1415else
1416AC_CHECK_FUNC(gettimeofday,
1417	AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
1418
1419AC_CHECK_LIB(bsd, gettimeofday,
1420	AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
1421	CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
1422fi
1423])dnl
1424dnl ---------------------------------------------------------------------------
1425dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
1426dnl -----------------
1427dnl Test for availability of useful gcc __attribute__ directives to quiet
1428dnl compiler warnings.  Though useful, not all are supported -- and contrary
1429dnl to documentation, unrecognized directives cause older compilers to barf.
1430AC_DEFUN([CF_GCC_ATTRIBUTES],
1431[AC_REQUIRE([AC_PROG_FGREP])dnl
1432AC_REQUIRE([CF_C11_NORETURN])dnl
1433
1434if test "$GCC" = yes || test "$GXX" = yes
1435then
1436cat > conftest.i <<EOF
1437#ifndef GCC_PRINTF
1438#define GCC_PRINTF 0
1439#endif
1440#ifndef GCC_SCANF
1441#define GCC_SCANF 0
1442#endif
1443#ifndef GCC_NORETURN
1444#define GCC_NORETURN /* nothing */
1445#endif
1446#ifndef GCC_UNUSED
1447#define GCC_UNUSED /* nothing */
1448#endif
1449EOF
1450if test "$GCC" = yes
1451then
1452	AC_CHECKING([for $CC __attribute__ directives])
1453cat > "conftest.$ac_ext" <<EOF
1454#line __oline__ "${as_me:-configure}"
1455#include <stdio.h>
1456#include "confdefs.h"
1457#include "conftest.h"
1458#include "conftest.i"
1459#if	GCC_PRINTF
1460#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1461#else
1462#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1463#endif
1464#if	GCC_SCANF
1465#define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1466#else
1467#define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1468#endif
1469extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1470extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
1471extern GCC_NORETURN void foo(void);
1472int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
1473EOF
1474	cf_printf_attribute=no
1475	cf_scanf_attribute=no
1476	for cf_attribute in scanf printf unused noreturn
1477	do
1478		CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1479		cf_directive="__attribute__(($cf_attribute))"
1480		echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1481
1482		case "$cf_attribute" in
1483		(printf)
1484			cf_printf_attribute=yes
1485			cat >conftest.h <<EOF
1486#define GCC_$cf_ATTRIBUTE 1
1487EOF
1488			;;
1489		(scanf)
1490			cf_scanf_attribute=yes
1491			cat >conftest.h <<EOF
1492#define GCC_$cf_ATTRIBUTE 1
1493EOF
1494			;;
1495		(*)
1496			cat >conftest.h <<EOF
1497#define GCC_$cf_ATTRIBUTE $cf_directive
1498EOF
1499			;;
1500		esac
1501
1502		if AC_TRY_EVAL(ac_compile); then
1503			test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1504			cat conftest.h >>confdefs.h
1505			case "$cf_attribute" in
1506			(noreturn)
1507				AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1508				;;
1509			(printf)
1510				cf_value='/* nothing */'
1511				if test "$cf_printf_attribute" != no ; then
1512					cf_value='__attribute__((format(printf,fmt,var)))'
1513					AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1514				fi
1515				AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1516				;;
1517			(scanf)
1518				cf_value='/* nothing */'
1519				if test "$cf_scanf_attribute" != no ; then
1520					cf_value='__attribute__((format(scanf,fmt,var)))'
1521					AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1522				fi
1523				AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1524				;;
1525			(unused)
1526				AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1527				;;
1528			esac
1529		fi
1530	done
1531else
1532	${FGREP-fgrep} define conftest.i >>confdefs.h
1533fi
1534rm -rf ./conftest*
1535fi
1536])dnl
1537dnl ---------------------------------------------------------------------------
1538dnl CF_GCC_VERSION version: 9 updated: 2023/03/05 14:30:13
1539dnl --------------
1540dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
1541dnl compatible), attempt to determine if icc/clang is actually used.
1542AC_DEFUN([CF_GCC_VERSION],[
1543AC_REQUIRE([AC_PROG_CC])
1544GCC_VERSION=none
1545if test "$GCC" = yes ; then
1546	AC_MSG_CHECKING(version of $CC)
1547	GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1548	test -z "$GCC_VERSION" && GCC_VERSION=unknown
1549	AC_MSG_RESULT($GCC_VERSION)
1550fi
1551CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1552CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1553])dnl
1554dnl ---------------------------------------------------------------------------
1555dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
1556dnl ---------------
1557dnl Check if the compiler supports useful warning options.  There's a few that
1558dnl we don't use, simply because they're too noisy:
1559dnl
1560dnl	-Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1561dnl	-Winline (usually not worthwhile)
1562dnl	-Wredundant-decls (system headers make this too noisy)
1563dnl	-Wtraditional (combines too many unrelated messages, only a few useful)
1564dnl	-Wwrite-strings (too noisy, but should review occasionally).  This
1565dnl		is enabled for ncurses using "--enable-const".
1566dnl	-pedantic
1567dnl
1568dnl Parameter:
1569dnl	$1 is an optional list of gcc warning flags that a particular
1570dnl		application might want to use, e.g., "no-unused" for
1571dnl		-Wno-unused
1572dnl Special:
1573dnl	If $with_ext_const is "yes", add a check for -Wwrite-strings
1574dnl
1575AC_DEFUN([CF_GCC_WARNINGS],
1576[
1577AC_REQUIRE([CF_GCC_VERSION])
1578if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
1579cat > "conftest.$ac_ext" <<EOF
1580#line __oline__ "${as_me:-configure}"
1581int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1582EOF
1583if test "$INTEL_COMPILER" = yes
1584then
1585# The "-wdXXX" options suppress warnings:
1586# remark #1419: external declaration in primary source file
1587# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1588# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1589# remark #193: zero used for undefined preprocessing identifier
1590# remark #593: variable "curs_sb_left_arrow" was set but never used
1591# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1592# remark #869: parameter "tw" was never referenced
1593# remark #981: operands are evaluated in unspecified order
1594# warning #279: controlling expression is constant
1595
1596	AC_CHECKING([for $CC warning options])
1597	cf_save_CFLAGS="$CFLAGS"
1598	EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
1599	for cf_opt in \
1600		wd1419 \
1601		wd1683 \
1602		wd1684 \
1603		wd193 \
1604		wd593 \
1605		wd279 \
1606		wd810 \
1607		wd869 \
1608		wd981
1609	do
1610		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1611		if AC_TRY_EVAL(ac_compile); then
1612			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1613			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1614		fi
1615	done
1616	CFLAGS="$cf_save_CFLAGS"
1617elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
1618then
1619	AC_CHECKING([for $CC warning options])
1620	cf_save_CFLAGS="$CFLAGS"
1621	cf_warn_CONST=""
1622	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1623	cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1624	test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1625	for cf_opt in W Wall \
1626		Wbad-function-cast \
1627		Wcast-align \
1628		Wcast-qual \
1629		Wdeclaration-after-statement \
1630		Wextra \
1631		Winline \
1632		Wmissing-declarations \
1633		Wmissing-prototypes \
1634		Wnested-externs \
1635		Wpointer-arith \
1636		Wshadow \
1637		Wstrict-prototypes \
1638		Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
1639	do
1640		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1641		if AC_TRY_EVAL(ac_compile); then
1642			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1643			case "$cf_opt" in
1644			(Winline)
1645				case "$GCC_VERSION" in
1646				([[34]].*)
1647					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1648					continue;;
1649				esac
1650				;;
1651			(Wpointer-arith)
1652				case "$GCC_VERSION" in
1653				([[12]].*)
1654					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1655					continue;;
1656				esac
1657				;;
1658			esac
1659			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1660		fi
1661	done
1662	CFLAGS="$cf_save_CFLAGS"
1663fi
1664rm -rf ./conftest*
1665
1666AC_SUBST(EXTRA_CFLAGS)
1667])dnl
1668dnl ---------------------------------------------------------------------------
1669dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
1670dnl -----------------
1671AC_DEFUN([CF_GNATPREP_OPT_T],[
1672AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
1673cf_cv_gnatprep_opt_t=no
1674gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
1675])
1676test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
1677AC_SUBST(GNATPREP_OPTS)
1678])dnl
1679dnl ---------------------------------------------------------------------------
1680dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
1681dnl ----------------
1682AC_DEFUN([CF_GNAT_GENERICS],
1683[
1684AC_REQUIRE([CF_GNAT_VERSION])
1685
1686AC_MSG_CHECKING(if GNAT supports generics)
1687case "$cf_cv_gnat_version" in
1688(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1689	cf_gnat_generics=yes
1690	;;
1691(*)
1692	cf_gnat_generics=no
1693	;;
1694esac
1695AC_MSG_RESULT($cf_gnat_generics)
1696
1697if test "$cf_gnat_generics" = yes
1698then
1699	cf_compile_generics=generics
1700	cf_generic_objects="\${GENOBJS}"
1701else
1702	cf_compile_generics=
1703	cf_generic_objects=
1704fi
1705
1706AC_SUBST(cf_compile_generics)
1707AC_SUBST(cf_generic_objects)
1708])dnl
1709dnl ---------------------------------------------------------------------------
1710dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
1711dnl ----------------
1712dnl GNAT projects are configured with ".gpr" project files.
1713dnl GNAT libraries are a further development, using the project feature.
1714AC_DEFUN([CF_GNAT_PROJECTS],
1715[
1716AC_REQUIRE([CF_GNAT_VERSION])
1717AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
1718
1719cf_gnat_libraries=no
1720cf_gnat_projects=no
1721
1722if test "$enable_gnat_projects" != no ; then
1723AC_MSG_CHECKING(if GNAT supports project files)
1724case "$cf_cv_gnat_version" in
1725(3.[[0-9]]*)
1726	;;
1727(*)
1728	case "$cf_cv_system_name" in
1729	(cygwin*|msys*)
1730		;;
1731	(*)
1732		rm -rf ./conftest* ./*~conftest*
1733		if mkdir conftest.src conftest.bin conftest.lib
1734		then
1735			cd conftest.src
1736			rm -rf ./conftest* ./*~conftest*
1737			cat >>library.gpr <<CF_EOF
1738project Library is
1739  Kind := External ("LIB_KIND");
1740  for Library_Name use "ConfTest";
1741  for Object_Dir use ".";
1742  for Library_ALI_Dir use External("LIBRARY_DIR");
1743  for Library_Version use External ("SONAME");
1744  for Library_Kind use Kind;
1745  for Library_Dir use External("BUILD_DIR");
1746  Source_Dir := External ("SOURCE_DIR");
1747  for Source_Dirs use (Source_Dir);
1748end Library;
1749CF_EOF
1750			cat >>confpackage.ads <<CF_EOF
1751package ConfPackage is
1752   procedure conftest;
1753end ConfPackage;
1754CF_EOF
1755			cat >>confpackage.adb <<CF_EOF
1756with Text_IO;
1757package body ConfPackage is
1758   procedure conftest is
1759   begin
1760      Text_IO.Put ("Hello World");
1761      Text_IO.New_Line;
1762   end conftest;
1763end ConfPackage;
1764CF_EOF
1765			if ( "$cf_ada_make" $ADAFLAGS \
1766					-Plibrary.gpr \
1767					-XBUILD_DIR="`cd ../conftest.bin;pwd`" \
1768					-XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
1769					-XSOURCE_DIR="`pwd`" \
1770					-XSONAME=libConfTest.so.1 \
1771					-XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
1772				cf_gnat_projects=yes
1773			fi
1774			cd ..
1775		fi
1776		if test -f conftest.lib/confpackage.ali
1777		then
1778			cf_gnat_libraries=yes
1779		fi
1780		rm -rf ./conftest* ./*~conftest*
1781		;;
1782	esac
1783	;;
1784esac
1785AC_MSG_RESULT($cf_gnat_projects)
1786fi # enable_gnat_projects
1787
1788if test "$cf_gnat_projects" = yes
1789then
1790	AC_MSG_CHECKING(if GNAT supports libraries)
1791	AC_MSG_RESULT($cf_gnat_libraries)
1792fi
1793
1794USE_OLD_MAKERULES=""
1795USE_GNAT_PROJECTS="#"
1796USE_GNAT_MAKE_GPR="#"
1797USE_GNAT_GPRBUILD="#"
1798
1799if test "$cf_gnat_projects" = yes
1800then
1801	USE_OLD_MAKERULES="#"
1802	USE_GNAT_PROJECTS=""
1803	if test "$cf_cv_VERSION_GPRBUILD" != no
1804	then
1805		USE_GNAT_GPRBUILD=""
1806	elif test "$cf_cv_VERSION_GNATMAKE" != no
1807	then
1808		USE_GNAT_MAKE_GPR=""
1809	else
1810		AC_MSG_WARN(use old makefile rules since tools are missing)
1811	fi
1812fi
1813
1814if test "$cf_gnat_libraries" = yes
1815then
1816	USE_GNAT_LIBRARIES=""
1817else
1818	USE_GNAT_LIBRARIES="#"
1819fi
1820
1821AC_SUBST(USE_OLD_MAKERULES)
1822AC_SUBST(USE_GNAT_PROJECTS)
1823AC_SUBST(USE_GNAT_LIBRARIES)
1824AC_SUBST(USE_GNAT_MAKE_GPR)
1825AC_SUBST(USE_GNAT_GPRBUILD)
1826])dnl
1827dnl ---------------------------------------------------------------------------
1828dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
1829dnl --------------
1830dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
1831dnl is noted that gnat may compile a tasking unit even for configurations which
1832dnl fail at runtime.
1833AC_DEFUN([CF_GNAT_SIGINT],[
1834AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
1835CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
1836
1837package ConfTest is
1838
1839   pragma Warnings (Off);  --  the next pragma exists since 3.11p
1840   pragma Unreserve_All_Interrupts;
1841   pragma Warnings (On);
1842
1843   protected Process is
1844      procedure Stop;
1845      function Continue return Boolean;
1846      pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
1847   private
1848      Done : Boolean := False;
1849   end Process;
1850
1851end ConfTest;],
1852[package body ConfTest is
1853   protected body Process is
1854      procedure Stop is
1855      begin
1856         Done := True;
1857      end Stop;
1858      function Continue return Boolean is
1859      begin
1860         return not Done;
1861      end Continue;
1862   end Process;
1863end ConfTest;],
1864	[cf_cv_gnat_sigint=yes],
1865	[cf_cv_gnat_sigint=no])])
1866
1867if test "$cf_cv_gnat_sigint" = yes ; then
1868	USE_GNAT_SIGINT=""
1869else
1870	USE_GNAT_SIGINT="#"
1871fi
1872AC_SUBST(USE_GNAT_SIGINT)
1873])dnl
1874dnl ---------------------------------------------------------------------------
1875dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
1876dnl ----------------
1877dnl Verify that a test program compiles/links with GNAT.
1878dnl $cf_ada_make is set to the program that compiles/links
1879dnl $ADAFLAGS may be set to the GNAT flags.
1880dnl
1881dnl $1 is the text of the spec
1882dnl $2 is the text of the body
1883dnl $3 is the shell command to execute if successful
1884dnl $4 is the shell command to execute if not successful
1885AC_DEFUN([CF_GNAT_TRY_LINK],
1886[
1887rm -rf ./conftest* ./*~conftest*
1888cat >>conftest.ads <<CF_EOF
1889$1
1890CF_EOF
1891cat >>conftest.adb <<CF_EOF
1892$2
1893CF_EOF
1894if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1895ifelse($3,,      :,[      $3])
1896ifelse($4,,,[else
1897   $4])
1898fi
1899rm -rf ./conftest* ./*~conftest*
1900])dnl
1901dnl ---------------------------------------------------------------------------
1902dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
1903dnl ---------------
1904dnl Verify that a test program compiles and runs with GNAT
1905dnl $cf_ada_make is set to the program that compiles/links
1906dnl $ADAFLAGS may be set to the GNAT flags.
1907dnl
1908dnl $1 is the text of the spec
1909dnl $2 is the text of the body
1910dnl $3 is the shell command to execute if successful
1911dnl $4 is the shell command to execute if not successful
1912AC_DEFUN([CF_GNAT_TRY_RUN],
1913[
1914rm -rf ./conftest* ./*~conftest*
1915cat >>conftest.ads <<CF_EOF
1916$1
1917CF_EOF
1918cat >>conftest.adb <<CF_EOF
1919$2
1920CF_EOF
1921if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1922   if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1923ifelse($3,,      :,[      $3])
1924ifelse($4,,,[   else
1925      $4])
1926   fi
1927ifelse($4,,,[else
1928   $4])
1929fi
1930rm -rf ./conftest* ./*~conftest*
1931])dnl
1932dnl ---------------------------------------------------------------------------
1933dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
1934dnl ---------------
1935dnl $1 = cache variable to update
1936dnl $2 = program name
1937dnl Verify version of GNAT or related tool
1938AC_DEFUN([CF_GNAT_VERSION],
1939[
1940AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
1941cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
1942	grep '[[0-9]].[[0-9]][[0-9]]*' |\
1943	sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1944])
1945test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
1946ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
1947])dnl
1948dnl ---------------------------------------------------------------------------
1949dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1950dnl -------------
1951dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1952dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1953dnl (or misfeature) of glibc2, which breaks portability of many applications,
1954dnl since it is interwoven with GNU extensions.
1955dnl
1956dnl Well, yes we could work around it...
1957dnl
1958dnl Parameters:
1959dnl	$1 is the nominal value for _XOPEN_SOURCE
1960AC_DEFUN([CF_GNU_SOURCE],
1961[
1962cf_gnu_xopen_source=ifelse($1,,500,$1)
1963
1964AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1965AC_TRY_COMPILE([#include <sys/types.h>],[
1966	#if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1967		return 0;
1968	#elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1969		return 0;
1970	#else
1971	#	error not GNU C library
1972	#endif],
1973	[cf_cv_gnu_library=yes],
1974	[cf_cv_gnu_library=no])
1975])
1976
1977if test x$cf_cv_gnu_library = xyes; then
1978
1979	# With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1980	# was changed to help a little.  newlib incorporated the change about 4
1981	# years later.
1982	AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1983		cf_save="$CPPFLAGS"
1984		CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1985		AC_TRY_COMPILE([#include <sys/types.h>],[
1986			#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1987				return 0;
1988			#elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1989				return 0;
1990			#else
1991			#	error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1992			#endif],
1993			[cf_cv_gnu_library_219=yes],
1994			[cf_cv_gnu_library_219=no])
1995		CPPFLAGS="$cf_save"
1996	])
1997
1998	if test "x$cf_cv_gnu_library_219" = xyes; then
1999		cf_save="$CPPFLAGS"
2000		AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
2001			CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
2002			AC_TRY_COMPILE([
2003				#include <limits.h>
2004				#include <sys/types.h>
2005				],[
2006				#if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
2007					return 0;
2008				#else
2009				#	error GNU C library is too old
2010				#endif],
2011				[cf_cv_gnu_dftsrc_219=yes],
2012				[cf_cv_gnu_dftsrc_219=no])
2013			])
2014		test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
2015	else
2016		cf_cv_gnu_dftsrc_219=maybe
2017	fi
2018
2019	if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
2020
2021		AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
2022		AC_TRY_COMPILE([#include <sys/types.h>],[
2023			#ifndef _XOPEN_SOURCE
2024			#error	expected _XOPEN_SOURCE to be defined
2025			#endif],
2026			[cf_cv_gnu_source=no],
2027			[cf_save="$CPPFLAGS"
2028			 CF_ADD_CFLAGS(-D_GNU_SOURCE)
2029			 AC_TRY_COMPILE([#include <sys/types.h>],[
2030				#ifdef _XOPEN_SOURCE
2031				#error	expected _XOPEN_SOURCE to be undefined
2032				#endif],
2033				[cf_cv_gnu_source=no],
2034				[cf_cv_gnu_source=yes])
2035			CPPFLAGS="$cf_save"
2036			])
2037		])
2038
2039		if test "$cf_cv_gnu_source" = yes
2040		then
2041		AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
2042			CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
2043			AC_TRY_COMPILE([#include <sys/types.h>],[
2044				#ifdef _DEFAULT_SOURCE
2045				#error	expected _DEFAULT_SOURCE to be undefined
2046				#endif],
2047				[cf_cv_default_source=no],
2048				[cf_cv_default_source=yes])
2049			])
2050			if test "$cf_cv_default_source" = yes
2051			then
2052				CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
2053			fi
2054		fi
2055	fi
2056
2057fi
2058])dnl
2059dnl ---------------------------------------------------------------------------
2060dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
2061dnl --------------
2062dnl Construct a search-list of directories for a nonstandard header-file
2063dnl
2064dnl Parameters
2065dnl	$1 = the variable to return as result
2066dnl	$2 = the package name
2067AC_DEFUN([CF_HEADER_PATH],
2068[
2069$1=
2070
2071# collect the current set of include-directories from compiler flags
2072cf_header_path_list=""
2073if test -n "${CFLAGS}${CPPFLAGS}" ; then
2074	for cf_header_path in $CPPFLAGS $CFLAGS
2075	do
2076		case "$cf_header_path" in
2077		(-I*)
2078			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2079			CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2080			cf_header_path_list="$cf_header_path_list [$]$1"
2081			;;
2082		esac
2083	done
2084fi
2085
2086# add the variations for the package we are looking for
2087CF_SUBDIR_PATH($1,$2,include)
2088
2089test "$includedir" != NONE && \
2090test "$includedir" != "/usr/include" && \
2091test -d "$includedir" && {
2092	test -d "$includedir" &&    $1="[$]$1 $includedir"
2093	test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
2094}
2095
2096test "$oldincludedir" != NONE && \
2097test "$oldincludedir" != "/usr/include" && \
2098test -d "$oldincludedir" && {
2099	test -d "$oldincludedir"    && $1="[$]$1 $oldincludedir"
2100	test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
2101}
2102
2103$1="[$]$1 $cf_header_path_list"
2104])dnl
2105dnl ---------------------------------------------------------------------------
2106dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
2107dnl ---------------
2108dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2109AC_DEFUN([CF_HELP_MESSAGE],
2110[CF_ACVERSION_CHECK(2.53,[],[
2111AC_DIVERT_HELP($1)])dnl
2112])dnl
2113dnl ---------------------------------------------------------------------------
2114dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
2115dnl ---------------
2116dnl Construct the list of include-options according to whether we're building
2117dnl in the source directory or using '--srcdir=DIR' option.
2118AC_DEFUN([CF_INCLUDE_DIRS],
2119[
2120if test "$srcdir" != "."; then
2121	CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2122fi
2123CPPFLAGS="-I../include $CPPFLAGS"
2124if test "$srcdir" != "."; then
2125	CPPFLAGS="-I\${srcdir} $CPPFLAGS"
2126fi
2127CPPFLAGS="-I. $CPPFLAGS"
2128AC_SUBST(CPPFLAGS)
2129])dnl
2130dnl ---------------------------------------------------------------------------
2131dnl CF_INSTALL_OPTS version: 3 updated: 2023/06/03 15:17:30
2132dnl ---------------
2133dnl prompt for/fill-in useful install-program options
2134AC_DEFUN([CF_INSTALL_OPTS],
2135[
2136CF_INSTALL_OPT_S
2137CF_INSTALL_OPT_P
2138CF_INSTALL_OPT_O
2139CF_INSTALL_OPT_STRIP_PROG
2140])dnl
2141dnl ---------------------------------------------------------------------------
2142dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
2143dnl ----------------
2144dnl Almost all "install" programs default to the current user's ownership.
2145dnl Almost - MINIX is an exception.
2146AC_DEFUN([CF_INSTALL_OPT_O],
2147[
2148AC_MSG_CHECKING(if install needs to be told about ownership)
2149case `$ac_config_guess` in
2150(*minix)
2151	with_install_o=yes
2152	;;
2153(*)
2154	with_install_o=no
2155	;;
2156esac
2157
2158AC_MSG_RESULT($with_install_o)
2159if test "x$with_install_o" = xyes
2160then
2161	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'`"
2162else
2163	INSTALL_OPT_O=
2164fi
2165
2166AC_SUBST(INSTALL_OPT_O)
2167])dnl
2168dnl ---------------------------------------------------------------------------
2169dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
2170dnl ----------------
2171dnl Some install-programs accept a "-p" option to preserve file modification
2172dnl timestamps.  That can be useful as an install option, as well as a way to
2173dnl avoid the need for ranlib after copying a static archive.
2174AC_DEFUN([CF_INSTALL_OPT_P],
2175[
2176: "${INSTALL:=install}"
2177AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
2178	rm -rf ./conftest*
2179	date >conftest.in
2180	mkdir conftest.out
2181	sleep 3
2182	if $INSTALL -p conftest.in conftest.out 2>/dev/null
2183	then
2184		if test -f conftest.out/conftest.in
2185		then
2186			test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
2187			test conftest.out/conftest.in -nt conftest.in 2>conftest.err
2188			if test -s conftest.err
2189			then
2190				cf_cv_install_p=no
2191			else
2192				cf_cv_install_p=yes
2193			fi
2194		else
2195			cf_cv_install_p=no
2196		fi
2197	else
2198		cf_cv_install_p=no
2199	fi
2200	rm -rf ./conftest*
2201])
2202])dnl
2203dnl ---------------------------------------------------------------------------
2204dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
2205dnl ----------------
2206dnl By default, we should strip executables which are installed, but leave the
2207dnl ability to suppress that for unit-testing.
2208AC_DEFUN([CF_INSTALL_OPT_S],
2209[
2210AC_MSG_CHECKING(if you want to install stripped executables)
2211CF_ARG_DISABLE(stripping,
2212	[  --disable-stripping     do not strip (debug info) installed executables],
2213	[enable_stripping=no],
2214	[enable_stripping=yes])
2215AC_MSG_RESULT($enable_stripping)
2216
2217if test "$enable_stripping" = yes
2218then
2219	INSTALL_OPT_S="-s"
2220else
2221	INSTALL_OPT_S=
2222fi
2223AC_SUBST(INSTALL_OPT_S)
2224])dnl
2225dnl ---------------------------------------------------------------------------
2226dnl CF_INSTALL_OPT_STRIP_PROG version: 1 updated: 2023/06/03 15:17:30
2227dnl -------------------------
2228dnl Provide an option for overriding the strip program used in install "-s"
2229dnl
2230dnl coreutils install provides a --strip-program option
2231dnl FreeBSD uses STRIPBIN environment variable, while NetBSD and OpenBSD use
2232dnl STRIP environment variable.  Other versions of install do not support this.
2233AC_DEFUN([CF_INSTALL_OPT_STRIP_PROG],
2234[
2235AC_REQUIRE([CF_INSTALL_OPT_S])
2236if test -n "$INSTALL_OPT_S"
2237then
2238	AC_MSG_CHECKING(if you want to specify strip-program)
2239	AC_ARG_WITH(strip-program,
2240		[  --with-strip-program=XX specify program to use when stripping in install],
2241		[with_strip_program=$withval],
2242		[with_strip_program=no])
2243	AC_MSG_RESULT($with_strip_program)
2244	if test "$with_strip_program" != no
2245	then
2246		AC_MSG_CHECKING(if strip-program is supported with this installer)
2247		cf_install_program=`echo "$INSTALL" | sed -e 's%[[ ]]*[[ ]]-.%%'`
2248		check_install_strip=no
2249		if test -f "$cf_install_program"
2250		then
2251			check_install_version=`"$cf_install_program" --version 2>/dev/null | head -n 1 | grep coreutils`
2252			if test -n "$check_install_version"
2253			then
2254				check_install_strip="option"
2255			else
2256				for check_strip_variable in STRIPBIN STRIP
2257				do
2258					if strings "$cf_install_program" | grep "^$check_strip_variable[$]" >/dev/null
2259					then
2260						check_install_strip="environ"
2261						break
2262					fi
2263				done
2264			fi
2265		fi
2266		AC_MSG_RESULT($check_install_strip)
2267		case "$check_install_strip" in
2268		(no)
2269			AC_MSG_WARN($cf_install_program does not support strip program option)
2270			with_strip_program=no
2271			;;
2272		(environ)
2273			cat >install.tmp <<-CF_EOF
2274			#! $SHELL
2275			STRIPBIN="$with_strip_program" \\
2276			STRIP="$with_strip_program" \\
2277			$INSTALL "[$]@"
2278			CF_EOF
2279			INSTALL="`pwd`/install.tmp"
2280			chmod +x "$INSTALL"
2281			CF_VERBOSE(created $INSTALL)
2282			;;
2283		(option)
2284			INSTALL_OPT_S="$INSTALL_OPT_S --strip-program=\"$with_strip_program\""
2285			;;
2286		esac
2287	fi
2288fi
2289AC_SUBST(INSTALL_OPT_S)
2290])dnl
2291dnl ---------------------------------------------------------------------------
2292dnl CF_INTEL_COMPILER version: 9 updated: 2023/02/18 17:41:25
2293dnl -----------------
2294dnl Check if the given compiler is really the Intel compiler for Linux.  It
2295dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2296dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2297dnl
2298dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2299dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2300dnl the wrappers for gcc and g++ warnings.
2301dnl
2302dnl $1 = GCC (default) or GXX
2303dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2304dnl $3 = CFLAGS (default) or CXXFLAGS
2305AC_DEFUN([CF_INTEL_COMPILER],[
2306AC_REQUIRE([AC_CANONICAL_HOST])
2307ifelse([$2],,INTEL_COMPILER,[$2])=no
2308
2309if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2310	case "$host_os" in
2311	(linux*|gnu*)
2312		AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2313		cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2314		ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2315		AC_TRY_COMPILE([],[
2316#ifdef __INTEL_COMPILER
2317#else
2318#error __INTEL_COMPILER is not defined
2319#endif
2320],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2321cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2322],[])
2323		ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2324		AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2325		;;
2326	esac
2327fi
2328])dnl
2329dnl ---------------------------------------------------------------------------
2330dnl CF_LARGEFILE version: 13 updated: 2023/12/03 19:09:59
2331dnl ------------
2332dnl Add checks for large file support.
2333AC_DEFUN([CF_LARGEFILE],[
2334ifdef([AC_FUNC_FSEEKO],[
2335	AC_SYS_LARGEFILE
2336	if test "$enable_largefile" != no ; then
2337	AC_FUNC_FSEEKO
2338
2339	# Normally we would collect these definitions in the config.h,
2340	# but (like _XOPEN_SOURCE), some environments rely on having these
2341	# defined before any of the system headers are included.  Another
2342	# case comes up with C++, e.g., on AIX the compiler compiles the
2343	# header files by themselves before looking at the body files it is
2344	# told to compile.  For ncurses, those header files do not include
2345	# the config.h
2346	if test "$ac_cv_sys_large_files" != no
2347	then
2348		CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
2349	fi
2350	if test "$ac_cv_sys_largefile_source" != no
2351	then
2352		CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
2353	fi
2354	if test "$ac_cv_sys_file_offset_bits" != no
2355	then
2356		CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
2357	fi
2358
2359	AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2360		AC_TRY_COMPILE([
2361#pragma GCC diagnostic error "-Wincompatible-pointer-types"
2362#include <sys/types.h>
2363#include <dirent.h>
2364
2365#ifndef __REDIRECT
2366/* if transitional largefile support is setup, this is true */
2367extern struct dirent64 * readdir(DIR *);
2368#endif
2369		],[
2370		DIR *dp = opendir(".");
2371		struct dirent64 *x = readdir(dp);
2372		struct dirent *y = readdir(dp);
2373		int z = x - y;
2374		(void)z;
2375		],
2376		[cf_cv_struct_dirent64=yes],
2377		[cf_cv_struct_dirent64=no])
2378	])
2379	test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
2380	fi
2381])
2382])
2383dnl ---------------------------------------------------------------------------
2384dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
2385dnl ---------------
2386dnl For the given system and compiler, find the compiler flags to pass to the
2387dnl loader to use the "rpath" feature.
2388AC_DEFUN([CF_LD_RPATH_OPT],
2389[
2390AC_REQUIRE([CF_CHECK_CACHE])
2391
2392LD_RPATH_OPT=
2393if test "x$cf_cv_enable_rpath" != xno
2394then
2395	AC_MSG_CHECKING(for an rpath option)
2396	case "$cf_cv_system_name" in
2397	(irix*)
2398		if test "$GCC" = yes; then
2399			LD_RPATH_OPT="-Wl,-rpath,"
2400		else
2401			LD_RPATH_OPT="-rpath "
2402		fi
2403		;;
2404	(linux*|gnu*|k*bsd*-gnu|freebsd*)
2405		LD_RPATH_OPT="-Wl,-rpath,"
2406		;;
2407	(openbsd[[2-9]].*|mirbsd*)
2408		LD_RPATH_OPT="-Wl,-rpath,"
2409		;;
2410	(dragonfly*)
2411		LD_RPATH_OPT="-rpath "
2412		;;
2413	(netbsd*)
2414		LD_RPATH_OPT="-Wl,-rpath,"
2415		;;
2416	(osf*|mls+*)
2417		LD_RPATH_OPT="-rpath "
2418		;;
2419	(solaris2*)
2420		LD_RPATH_OPT="-R"
2421		;;
2422	(*)
2423		;;
2424	esac
2425	AC_MSG_RESULT($LD_RPATH_OPT)
2426
2427	case "x$LD_RPATH_OPT" in
2428	(x-R*)
2429		AC_MSG_CHECKING(if we need a space after rpath option)
2430		cf_save_LIBS="$LIBS"
2431		CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2432		AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2433		LIBS="$cf_save_LIBS"
2434		AC_MSG_RESULT($cf_rpath_space)
2435		test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2436		;;
2437	esac
2438fi
2439])dnl
2440dnl ---------------------------------------------------------------------------
2441dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
2442dnl ---------------
2443dnl Construct a search-list of directories for a nonstandard library-file
2444dnl
2445dnl Parameters
2446dnl	$1 = the variable to return as result
2447dnl	$2 = the package name
2448AC_DEFUN([CF_LIBRARY_PATH],
2449[
2450$1=
2451cf_library_path_list=""
2452if test -n "${LDFLAGS}${LIBS}" ; then
2453	for cf_library_path in $LDFLAGS $LIBS
2454	do
2455		case "$cf_library_path" in
2456		(-L*)
2457			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2458			CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2459			cf_library_path_list="$cf_library_path_list [$]$1"
2460			;;
2461		esac
2462	done
2463fi
2464
2465CF_SUBDIR_PATH($1,$2,lib)
2466
2467$1="$cf_library_path_list [$]$1"
2468])dnl
2469dnl ---------------------------------------------------------------------------
2470dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
2471dnl -------------
2472dnl Compute the library-prefix for the given host system
2473dnl $1 = variable to set
2474define([CF_LIB_PREFIX],
2475[
2476	case "$cf_cv_system_name" in
2477	(OS/2*|os2*)
2478		if test "$DFT_LWR_MODEL" = libtool; then
2479			LIB_PREFIX='lib'
2480		else
2481			LIB_PREFIX=''
2482		fi
2483		;;
2484	(*-msvc*)
2485		LIB_PREFIX=''
2486		;;
2487	(*)	LIB_PREFIX='lib'
2488		;;
2489	esac
2490ifelse($1,,,[$1=$LIB_PREFIX])
2491	AC_SUBST(LIB_PREFIX)
2492])dnl
2493dnl ---------------------------------------------------------------------------
2494dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
2495dnl -------------
2496dnl Compute the library file-suffix from the given model name
2497dnl $1 = model name
2498dnl $2 = variable to set (the nominal library suffix)
2499dnl $3 = dependency variable to set (actual filename)
2500dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2501AC_DEFUN([CF_LIB_SUFFIX],
2502[
2503	case X$1 in
2504	(Xlibtool)
2505		$2='.la'
2506		$3=[$]$2
2507		;;
2508	(Xdebug)
2509		case "$cf_cv_system_name" in
2510		(*-msvc*)
2511			$2='_g.lib'
2512			;;
2513		(*)
2514			$2='_g.a'
2515			;;
2516		esac
2517		$3=[$]$2
2518		;;
2519	(Xprofile)
2520		case "$cf_cv_system_name" in
2521		(*-msvc*)
2522			$2='_p.lib'
2523			;;
2524		(*)
2525			$2='_p.a'
2526			;;
2527		esac
2528		$3=[$]$2
2529		;;
2530	(Xshared)
2531		case "$cf_cv_system_name" in
2532		(aix[[5-7]]*)
2533			$2='.so'
2534			$3=[$]$2
2535			;;
2536		(*-msvc*)
2537			$2='.dll'
2538			$3='.dll.lib'
2539			;;
2540		(cygwin*|msys*|mingw*)
2541			$2='.dll'
2542			$3='.dll.a'
2543			;;
2544		(darwin*)
2545			$2='.dylib'
2546			$3=[$]$2
2547			;;
2548		(hpux*)
2549			case "$target" in
2550			(ia64*)
2551				$2='.so'
2552				$3=[$]$2
2553				;;
2554			(*)
2555				$2='.sl'
2556				$3=[$]$2
2557				;;
2558			esac
2559			;;
2560		(*)
2561			$2='.so'
2562			$3=[$]$2
2563			;;
2564		esac
2565		;;
2566	(*)
2567		case "$target" in
2568		(*-msvc*)
2569			$2='.lib'
2570			;;
2571		(*)
2572			$2='.a'
2573			;;
2574		esac
2575		$3=[$]$2
2576		;;
2577	esac
2578	if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
2579	then
2580		$2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
2581		$3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
2582	fi
2583])dnl
2584dnl ---------------------------------------------------------------------------
2585dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
2586dnl -----------
2587dnl Compute the string to append to -library from the given model name
2588dnl $1 = model name
2589dnl $2 = variable to set
2590dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2591AC_DEFUN([CF_LIB_TYPE],
2592[
2593	case $1 in
2594	(libtool) $2=''   ;;
2595	(normal)  $2=''   ;;
2596	(debug)   $2='_g' ;;
2597	(profile) $2='_p' ;;
2598	(shared)  $2=''   ;;
2599	esac
2600	test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2601])dnl
2602dnl ---------------------------------------------------------------------------
2603dnl CF_LINK_DATAONLY version: 15 updated: 2023/12/03 10:03:10
2604dnl ----------------
2605dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2606dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
2607dnl have to provide wrappers for global tables to ensure they're linked
2608dnl properly.
2609AC_DEFUN([CF_LINK_DATAONLY],
2610[
2611AC_MSG_CHECKING([if data-only library module links])
2612AC_CACHE_VAL(cf_cv_link_dataonly,[
2613	rm -f conftest.a
2614	cat >conftest.$ac_ext <<EOF
2615#line __oline__ "configure"
2616int	testdata[[3]] = { 123, 456, 789 };
2617EOF
2618	if AC_TRY_EVAL(ac_compile) ; then
2619		mv conftest.o data.o && \
2620		( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2621	fi
2622	rm -f conftest.$ac_ext data.o
2623	cat >conftest.$ac_ext <<EOF
2624#line __oline__ "configure"
2625extern int testfunc(void);
2626#if defined(NeXT)
2627int	testfunc(void)
2628{
2629	${cf_cv_main_return:-return}(1);	/* I'm told this linker is broken */
2630}
2631#else
2632extern int testdata[[3]];
2633int	testfunc(void)
2634{
2635	return testdata[[0]] == 123
2636	   &&  testdata[[1]] == 456
2637	   &&  testdata[[2]] == 789;
2638}
2639#endif
2640EOF
2641	if AC_TRY_EVAL(ac_compile); then
2642		mv conftest.o func.o && \
2643		( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2644	fi
2645	rm -f conftest.$ac_ext func.o
2646	( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2647	cf_saveLIBS="$LIBS"
2648	LIBS="conftest.a $LIBS"
2649	AC_TRY_RUN([
2650	extern int testfunc(void);
2651	int main(void)
2652	{
2653		${cf_cv_main_return:-return} (!testfunc());
2654	}
2655	],
2656	[cf_cv_link_dataonly=yes],
2657	[cf_cv_link_dataonly=no],
2658	[cf_cv_link_dataonly=unknown])
2659	LIBS="$cf_saveLIBS"
2660	])
2661AC_MSG_RESULT($cf_cv_link_dataonly)
2662
2663if test "$cf_cv_link_dataonly" = no ; then
2664	AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
2665	BROKEN_LINKER=1
2666fi
2667AC_SUBST(BROKEN_LINKER)
2668
2669])dnl
2670dnl ---------------------------------------------------------------------------
2671dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
2672dnl ------------
2673dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2674dnl options to lower-levels.  It is very useful for "make -n" -- if we have it.
2675dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2676dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2677AC_DEFUN([CF_MAKEFLAGS],
2678[AC_REQUIRE([AC_PROG_FGREP])dnl
2679
2680AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2681	cf_cv_makeflags=''
2682	for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2683	do
2684		cat >cf_makeflags.tmp <<CF_EOF
2685SHELL = $SHELL
2686all :
2687	@ echo '.$cf_option'
2688CF_EOF
2689		cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[ 	]]*$,,'`
2690		case "$cf_result" in
2691		(.*k|.*kw)
2692			cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
2693			case "$cf_result" in
2694			(.*CC=*)	cf_cv_makeflags=
2695				;;
2696			(*)	cf_cv_makeflags=$cf_option
2697				;;
2698			esac
2699			break
2700			;;
2701		(.-)
2702			;;
2703		(*)
2704			CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
2705			;;
2706		esac
2707	done
2708	rm -f cf_makeflags.tmp
2709])
2710
2711AC_SUBST(cf_cv_makeflags)
2712])dnl
2713dnl ---------------------------------------------------------------------------
2714dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
2715dnl -------------
2716dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
2717dnl acts as a placeholder.
2718dnl
2719dnl The ".PHONY" feature was proposed in 2011 here
2720dnl     https://www.austingroupbugs.net/view.php?id=523
2721dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
2722dnl
2723dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
2724dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
2725dnl
2726dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
2727dnl   date unspecified).
2728dnl
2729dnl + It was adopted in NetBSD make in June 1995.
2730dnl
2731dnl + The other BSD make programs are derived from the NetBSD make (and for
2732dnl   that reason are not actually different "implementations").
2733dnl
2734dnl + Some features of NetBSD make were actually adapted from pmake, which
2735dnl   began as a modified GNU make starting in 1993.
2736dnl
2737dnl + Version 3.8 of the dmake program in January 1992 also implemented this
2738dnl   GNU make extension, but is less well known than the BSD make.
2739AC_DEFUN([CF_MAKE_PHONY],[
2740AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
2741	rm -rf conftest*
2742	(
2743		mkdir conftest || exit 1
2744		cd conftest
2745		cat >makefile <<'CF_EOF'
2746.PHONY: always
2747DATA=0
2748always:	always.out
2749	@echo "** making [$]@ [$](DATA)"
2750once: once.out
2751	@echo "** making [$]@ [$](DATA)"
2752always.out:
2753	@echo "** making [$]@ [$](DATA)"
2754	echo [$](DATA) > [$]@
2755once.out:
2756	@echo "** making [$]@ [$](DATA)"
2757	echo [$](DATA) > [$]@
2758CF_EOF
2759		for cf_data in 1 2 3
2760		do
2761			${MAKE:-make} always DATA=$cf_data
2762			${MAKE:-make} once   DATA=$cf_data
2763			${MAKE:-make} -t always once
2764			if test -f always ; then
2765				echo "no (case 1)" > ../conftest.tmp
2766			elif test ! -f always.out ; then
2767				echo "no (case 2)" > ../conftest.tmp
2768			elif test ! -f once.out ; then
2769				echo "no (case 3)" > ../conftest.tmp
2770			elif ! cmp -s always.out once.out ; then
2771				echo "no (case 4)" > ../conftest.tmp
2772				diff always.out once.out
2773			else
2774				cf_check="`cat always.out`"
2775				if test "x$cf_check" != "x$cf_data" ; then
2776					echo "no (case 5)" > ../conftest.tmp
2777				else
2778					echo yes > ../conftest.tmp
2779					rm -f ./*.out
2780					continue
2781				fi
2782			fi
2783			break
2784		done
2785	) >&AC_FD_CC 2>&1
2786	cf_cv_make_PHONY="`cat conftest.tmp`"
2787	rm -rf conftest*
2788])
2789MAKE_NO_PHONY="#"
2790MAKE_PHONY="#"
2791test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
2792test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
2793AC_SUBST(MAKE_NO_PHONY)
2794AC_SUBST(MAKE_PHONY)
2795])dnl
2796dnl ---------------------------------------------------------------------------
2797dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2798dnl ------------
2799dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
2800dnl a monocase filesystem.
2801AC_DEFUN([CF_MAKE_TAGS],[
2802AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2803
2804AC_CHECK_PROGS(CTAGS, exctags ctags)
2805AC_CHECK_PROGS(ETAGS, exetags etags)
2806
2807AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2808
2809if test "$cf_cv_mixedcase" = yes ; then
2810	AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2811else
2812	MAKE_UPPER_TAGS=no
2813fi
2814
2815if test "$MAKE_UPPER_TAGS" = yes ; then
2816	MAKE_UPPER_TAGS=
2817else
2818	MAKE_UPPER_TAGS="#"
2819fi
2820
2821if test "$MAKE_LOWER_TAGS" = yes ; then
2822	MAKE_LOWER_TAGS=
2823else
2824	MAKE_LOWER_TAGS="#"
2825fi
2826
2827AC_SUBST(CTAGS)
2828AC_SUBST(ETAGS)
2829
2830AC_SUBST(MAKE_UPPER_TAGS)
2831AC_SUBST(MAKE_LOWER_TAGS)
2832])dnl
2833dnl ---------------------------------------------------------------------------
2834dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
2835dnl ----------------------
2836dnl Check if the file-system supports mixed-case filenames.  If we're able to
2837dnl create a lowercase name and see it as uppercase, it doesn't support that.
2838AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2839[
2840AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2841if test "$cross_compiling" = yes ; then
2842	case "$target_alias" in
2843	(*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
2844		cf_cv_mixedcase=no
2845		;;
2846	(*)
2847		cf_cv_mixedcase=yes
2848		;;
2849	esac
2850else
2851	rm -f conftest CONFTEST
2852	echo test >conftest
2853	if test -f CONFTEST ; then
2854		cf_cv_mixedcase=no
2855	else
2856		cf_cv_mixedcase=yes
2857	fi
2858	rm -f conftest CONFTEST
2859fi
2860])
2861test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2862])dnl
2863dnl ---------------------------------------------------------------------------
2864dnl CF_MKSTEMP version: 13 updated: 2023/12/01 17:22:50
2865dnl ----------
2866dnl Check for a working mkstemp.  This creates two files, checks that they are
2867dnl successfully created and distinct (AmigaOS apparently fails on the last).
2868AC_DEFUN([CF_MKSTEMP],[
2869AC_CHECK_HEADERS( \
2870unistd.h \
2871)
2872AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
2873rm -rf ./conftest*
2874AC_TRY_RUN([
2875$ac_includes_default
2876
2877int main(void)
2878{
2879	static char tmpl[] = "conftestXXXXXX";
2880	char name[2][80];
2881	int n;
2882	int result = 0;
2883	int fd;
2884	struct stat sb;
2885
2886	umask(077);
2887	for (n = 0; n < 2; ++n) {
2888		strcpy(name[n], tmpl);
2889		if ((fd = mkstemp(name[n])) >= 0) {
2890			if (!strcmp(name[n], tmpl)
2891			 || stat(name[n], &sb) != 0
2892			 || (sb.st_mode & S_IFMT) != S_IFREG
2893			 || (sb.st_mode & 077) != 0) {
2894				result = 1;
2895			}
2896			close(fd);
2897		}
2898	}
2899	if (result == 0
2900	 && !strcmp(name[0], name[1]))
2901		result = 1;
2902	${cf_cv_main_return:-return}(result);
2903}
2904],[cf_cv_func_mkstemp=yes
2905],[cf_cv_func_mkstemp=no
2906],[cf_cv_func_mkstemp=maybe])
2907])
2908if test "x$cf_cv_func_mkstemp" = xmaybe ; then
2909	AC_CHECK_FUNC(mkstemp)
2910fi
2911if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
2912	AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
2913fi
2914])dnl
2915dnl ---------------------------------------------------------------------------
2916dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2917dnl ----------
2918dnl Write a debug message to config.log, along with the line number in the
2919dnl configure script.
2920AC_DEFUN([CF_MSG_LOG],[
2921echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2922])dnl
2923dnl ---------------------------------------------------------------------------
2924dnl CF_NCURSES_ADDON version: 6 updated: 2021/01/04 19:33:05
2925dnl ----------------
2926dnl Configure an ncurses add-on, built outside the ncurses tree.
2927AC_DEFUN([CF_NCURSES_ADDON],[
2928AC_REQUIRE([CF_NCURSES_CONFIG])
2929
2930AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
2931
2932AC_MSG_CHECKING(if you want wide-character code)
2933AC_ARG_ENABLE(widec,
2934	[  --enable-widec          compile with wide-char/UTF-8 code],
2935	[with_widec=$enableval],
2936	[with_widec=no])
2937AC_MSG_RESULT($with_widec)
2938if test "$with_widec" = yes ; then
2939	CF_UTF8_LIB
2940	CF_NCURSES_CONFIG(ncursesw)
2941else
2942	CF_NCURSES_CONFIG(ncurses)
2943fi
2944
2945if test "$NCURSES_CONFIG_PKG" != none ; then
2946	cf_version=`$PKG_CONFIG --modversion $NCURSES_CONFIG_PKG 2>/dev/null`
2947
2948	NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2949	NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2950	NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2951
2952	cf_cv_abi_version=`$PKG_CONFIG --variable=abi_version $NCURSES_CONFIG_PKG 2>/dev/null`
2953	if test -z "$cf_cv_abi_version"
2954	then
2955		cf_cv_abi_version=`$PKG_CONFIG --variable=major_version $NCURSES_CONFIG_PKG 2>/dev/null`
2956	fi
2957
2958elif test "$NCURSES_CONFIG" != none ; then
2959
2960	cf_version=`$NCURSES_CONFIG --version 2>/dev/null`
2961
2962	NCURSES_MAJOR=`echo "$cf_version" | sed -e 's/\..*//'`
2963	NCURSES_MINOR=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.//' -e 's/\..*//'`
2964	NCURSES_PATCH=`echo "$cf_version" | sed -e 's/^[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.//'`
2965
2966	# ABI version is not available from headers
2967	cf_cv_abi_version=`$NCURSES_CONFIG --abi-version 2>/dev/null`
2968
2969else
2970
2971	for cf_name in MAJOR MINOR PATCH
2972	do
2973	cat >conftest.$ac_ext <<CF_EOF
2974	#include <${cf_cv_ncurses_header:-curses.h}>
2975	AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
2976CF_EOF
2977		cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
2978		AC_TRY_EVAL(cf_try)
2979		if test -f conftest.out ; then
2980			cf_result=`sed -e "s/^.*AUTOCONF_${cf_name}[[ 	]][[ 	]]*//" conftest.out`
2981			eval NCURSES_$cf_name=\"$cf_result\"
2982			# cat conftest.$ac_ext
2983			# cat conftest.out
2984		fi
2985	done
2986
2987	cf_cv_abi_version=${NCURSES_MAJOR}
2988
2989fi
2990
2991cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
2992
2993dnl Show the computed version, for logging
2994cf_cv_timestamp=`date`
2995
2996AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
2997
2998dnl We need these values in the generated headers
2999AC_SUBST(NCURSES_MAJOR)
3000AC_SUBST(NCURSES_MINOR)
3001AC_SUBST(NCURSES_PATCH)
3002
3003dnl We need these values in the generated makefiles
3004AC_SUBST(cf_cv_rel_version)
3005AC_SUBST(cf_cv_abi_version)
3006
3007dnl FIXME - not needed for Ada95
3008AC_SUBST(cf_cv_builtin_bool)
3009AC_SUBST(cf_cv_header_stdbool_h)
3010AC_SUBST(cf_cv_type_of_bool)dnl
3011
3012])
3013dnl ---------------------------------------------------------------------------
3014dnl CF_NCURSES_CC_CHECK version: 6 updated: 2023/02/18 17:47:58
3015dnl -------------------
3016dnl Check if we can compile with ncurses' header file
3017dnl $1 is the cache variable to set
3018dnl $2 is the header-file to include
3019dnl $3 is the root name (ncurses or ncursesw)
3020AC_DEFUN([CF_NCURSES_CC_CHECK],[
3021	AC_TRY_COMPILE([
3022]ifelse($3,ncursesw,[
3023#define _XOPEN_SOURCE_EXTENDED
3024#undef  HAVE_LIBUTF8_H	/* in case we used CF_UTF8_LIB */
3025#define HAVE_LIBUTF8_H	/* to force ncurses' header file to use cchar_t */
3026])[
3027#include <$2>],[
3028#ifdef NCURSES_VERSION
3029]ifelse($3,ncursesw,[
3030#ifndef WACS_BSSB
3031	#error WACS_BSSB is not defined
3032#endif
3033])[
3034printf("%s\\n", NCURSES_VERSION);
3035#else
3036#ifdef __NCURSES_H
3037printf("old\\n");
3038#else
3039	#error __NCURSES_H is not defined
3040#endif
3041#endif
3042	]
3043	,[$1=$2]
3044	,[$1=no])
3045])dnl
3046dnl ---------------------------------------------------------------------------
3047dnl CF_NCURSES_CONFIG version: 28 updated: 2021/08/28 15:20:37
3048dnl -----------------
3049dnl Tie together the configure-script macros for ncurses, preferring these in
3050dnl order:
3051dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
3052dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
3053dnl c) just plain libraries
3054dnl
3055dnl $1 is the root library name (default: "ncurses")
3056AC_DEFUN([CF_NCURSES_CONFIG],[
3057AC_REQUIRE([CF_PKG_CONFIG])
3058cf_ncuconfig_root=ifelse($1,,ncurses,$1)
3059cf_have_ncuconfig=no
3060
3061if test "x${PKG_CONFIG:=none}" != xnone; then
3062	AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
3063	if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
3064		AC_MSG_RESULT(yes)
3065
3066		AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
3067		cf_have_ncuconfig=unknown
3068
3069		cf_save_CFLAGS="$CFLAGS"
3070		cf_save_CPPFLAGS="$CPPFLAGS"
3071		cf_save_LIBS="$LIBS"
3072
3073		cf_pkg_cflags="`$PKG_CONFIG --cflags $cf_ncuconfig_root`"
3074		cf_pkg_libs="`$PKG_CONFIG --libs $cf_ncuconfig_root`"
3075
3076		# while -W for passing linker flags is prevalent, it is not "standard".
3077		# At least one wrapper for c89/c99 (in Apple's xcode) has its own
3078		# incompatible _and_ non-standard -W option which gives an error.  Work
3079		# around that pitfall.
3080		case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in
3081		(x*c[[89]]9@@*-W*)
3082			CF_ADD_CFLAGS($cf_pkg_cflags)
3083			CF_ADD_LIBS($cf_pkg_libs)
3084
3085			AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3086				[initscr(); mousemask(0,0); tigetstr((char *)0);],
3087				[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
3088					int main(void)
3089					{ const char *xx = curses_version(); return (xx == 0); }],
3090					[cf_test_ncuconfig=yes],
3091					[cf_test_ncuconfig=no],
3092					[cf_test_ncuconfig=maybe])],
3093				[cf_test_ncuconfig=no])
3094
3095			CFLAGS="$cf_save_CFLAGS"
3096			CPPFLAGS="$cf_save_CPPFLAGS"
3097			LIBS="$cf_save_LIBS"
3098
3099			if test "x$cf_test_ncuconfig" != xyes; then
3100				cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^ 	]]*//g'`
3101				cf_pkg_cflags="$cf_temp"
3102				cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^ 	]]*//g'`
3103				cf_pkg_libs="$cf_temp"
3104			fi
3105			;;
3106		esac
3107
3108		CF_APPEND_CFLAGS($cf_pkg_cflags)
3109		CF_ADD_LIBS($cf_pkg_libs)
3110
3111		AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3112			[initscr(); mousemask(0,0); tigetstr((char *)0);],
3113			[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
3114				int main(void)
3115				{ const char *xx = curses_version(); return (xx == 0); }],
3116				[cf_have_ncuconfig=yes],
3117				[cf_have_ncuconfig=no],
3118				[cf_have_ncuconfig=maybe])],
3119			[cf_have_ncuconfig=no])
3120		AC_MSG_RESULT($cf_have_ncuconfig)
3121		test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
3122		if test "$cf_have_ncuconfig" != "yes"
3123		then
3124			CPPFLAGS="$cf_save_CPPFLAGS"
3125			LIBS="$cf_save_LIBS"
3126			NCURSES_CONFIG_PKG=none
3127		else
3128			AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3129			NCURSES_CONFIG_PKG=$cf_ncuconfig_root
3130			CF_TERM_HEADER
3131		fi
3132
3133	else
3134		AC_MSG_RESULT(no)
3135		NCURSES_CONFIG_PKG=none
3136	fi
3137else
3138	NCURSES_CONFIG_PKG=none
3139fi
3140
3141if test "x$cf_have_ncuconfig" = "xno"; then
3142	cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
3143
3144	CF_ACVERSION_CHECK(2.52,
3145		[AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
3146		[AC_PATH_PROGS(NCURSES_CONFIG,  ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
3147
3148	if test "$NCURSES_CONFIG" != none ; then
3149
3150		CF_APPEND_CFLAGS(`$NCURSES_CONFIG --cflags`)
3151		CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
3152
3153		# even with config script, some packages use no-override for curses.h
3154		CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
3155
3156		dnl like CF_NCURSES_CPPFLAGS
3157		AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3158
3159		dnl like CF_NCURSES_LIBS
3160		CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
3161		AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
3162
3163		dnl like CF_NCURSES_VERSION
3164		cf_cv_ncurses_version="`$NCURSES_CONFIG --version`"
3165
3166	else
3167
3168		CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
3169		CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
3170
3171	fi
3172else
3173	NCURSES_CONFIG=none
3174fi
3175])dnl
3176dnl ---------------------------------------------------------------------------
3177dnl CF_NCURSES_CPPFLAGS version: 22 updated: 2021/01/02 09:31:20
3178dnl -------------------
3179dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
3180dnl the CPPFLAGS variable so we can include its header.
3181dnl
3182dnl The header files may be installed as either curses.h, or ncurses.h (would
3183dnl be obsolete, except that some packagers prefer this name to distinguish it
3184dnl from a "native" curses implementation).  If not installed for overwrite,
3185dnl the curses.h file would be in an ncurses subdirectory (e.g.,
3186dnl /usr/include/ncurses), but someone may have installed overwriting the
3187dnl vendor's curses.  Only very old versions (pre-1.9.2d, the first autoconf'd
3188dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
3189dnl the header.
3190dnl
3191dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
3192dnl is already in the include-path, don't even bother with this, since we cannot
3193dnl easily determine which file it is.  In this case, it has to be <curses.h>.
3194dnl
3195dnl The optional parameter gives the root name of the library, in case it is
3196dnl not installed as the default curses library.  That is how the
3197dnl wide-character version of ncurses is installed.
3198AC_DEFUN([CF_NCURSES_CPPFLAGS],
3199[AC_REQUIRE([CF_WITH_CURSES_DIR])
3200
3201AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
3202cf_ncuhdr_root=ifelse($1,,ncurses,$1)
3203
3204test -n "$cf_cv_curses_dir" && \
3205test "$cf_cv_curses_dir" != "no" && { \
3206  CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
3207}
3208
3209AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
3210	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
3211	{ test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw; } && cf_header_list="$cf_header_list curses.h ncurses.h"
3212	for cf_header in $cf_header_list
3213	do
3214		CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
3215		test "$cf_cv_ncurses_h" != no && break
3216	done
3217])
3218
3219CF_NCURSES_HEADER
3220CF_TERM_HEADER
3221
3222# some applications need this, but should check for NCURSES_VERSION
3223AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3224
3225CF_NCURSES_VERSION
3226])dnl
3227dnl ---------------------------------------------------------------------------
3228dnl CF_NCURSES_HEADER version: 7 updated: 2021/01/04 19:33:05
3229dnl -----------------
3230dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
3231dnl variations of ncurses' installs.
3232dnl
3233dnl See also CF_CURSES_HEADER, which sets the same cache variable.
3234AC_DEFUN([CF_NCURSES_HEADER],[
3235
3236if test "$cf_cv_ncurses_h" != no ; then
3237	cf_cv_ncurses_header=$cf_cv_ncurses_h
3238else
3239
3240AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
3241	test -n "$verbose" && echo
3242	CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
3243	test -n "$verbose" && echo "search path $cf_search"
3244	cf_save2_CPPFLAGS="$CPPFLAGS"
3245	for cf_incdir in $cf_search
3246	do
3247		CF_ADD_INCDIR($cf_incdir)
3248		for cf_header in \
3249			ncurses.h \
3250			curses.h
3251		do
3252			CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
3253			if test "$cf_cv_ncurses_h2" != no ; then
3254				cf_cv_ncurses_h2=$cf_incdir/$cf_header
3255				test -n "$verbose" && echo $ECHO_N "	... found $ECHO_C" 1>&AC_FD_MSG
3256				break
3257			fi
3258			test -n "$verbose" && echo "	... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
3259		done
3260		CPPFLAGS="$cf_save2_CPPFLAGS"
3261		test "$cf_cv_ncurses_h2" != no && break
3262	done
3263	test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
3264	])
3265
3266	CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
3267	cf_cv_ncurses_header="`basename "$cf_cv_ncurses_h2"`"
3268	if test "`basename "$cf_1st_incdir"`" = "$cf_ncuhdr_root" ; then
3269		cf_cv_ncurses_header="$cf_ncuhdr_root/$cf_cv_ncurses_header"
3270	fi
3271	CF_ADD_INCDIR($cf_1st_incdir)
3272
3273fi
3274
3275# Set definitions to allow ifdef'ing for ncurses.h
3276
3277case "$cf_cv_ncurses_header" in
3278(*ncurses.h)
3279	AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
3280	;;
3281esac
3282
3283case "$cf_cv_ncurses_header" in
3284(ncurses/curses.h|ncurses/ncurses.h)
3285	AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
3286	;;
3287(ncursesw/curses.h|ncursesw/ncurses.h)
3288	AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
3289	;;
3290esac
3291
3292])dnl
3293dnl ---------------------------------------------------------------------------
3294dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12
3295dnl ---------------
3296dnl Look for the ncurses library.  This is a little complicated on Linux,
3297dnl because it may be linked with the gpm (general purpose mouse) library.
3298dnl Some distributions have gpm linked with (bsd) curses, which makes it
3299dnl unusable with ncurses.  However, we don't want to link with gpm unless
3300dnl ncurses has a dependency, since gpm is normally set up as a shared library,
3301dnl and the linker will record a dependency.
3302dnl
3303dnl The optional parameter gives the root name of the library, in case it is
3304dnl not installed as the default curses library.  That is how the
3305dnl wide-character version of ncurses is installed.
3306AC_DEFUN([CF_NCURSES_LIBS],
3307[AC_REQUIRE([CF_NCURSES_CPPFLAGS])
3308
3309cf_nculib_root=ifelse($1,,ncurses,$1)
3310	# This works, except for the special case where we find gpm, but
3311	# ncurses is in a nonstandard location via $LIBS, and we really want
3312	# to link gpm.
3313cf_ncurses_LIBS=""
3314cf_ncurses_SAVE="$LIBS"
3315AC_CHECK_LIB(gpm,Gpm_Open,
3316	[AC_CHECK_LIB(gpm,initscr,
3317		[LIBS="$cf_ncurses_SAVE"],
3318		[cf_ncurses_LIBS="-lgpm"])])
3319
3320case "$host_os" in
3321(freebsd*)
3322	# This is only necessary if you are linking against an obsolete
3323	# version of ncurses (but it should do no harm, since it is static).
3324	if test "$cf_nculib_root" = ncurses ; then
3325		AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
3326	fi
3327	;;
3328esac
3329
3330CF_ADD_LIBS($cf_ncurses_LIBS)
3331
3332if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
3333then
3334	CF_ADD_LIBS(-l$cf_nculib_root)
3335else
3336	CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
3337		[#include <${cf_cv_ncurses_header:-curses.h}>],
3338		[initscr()],
3339		initscr)
3340fi
3341
3342if test -n "$cf_ncurses_LIBS" ; then
3343	AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
3344	cf_ncurses_SAVE="$LIBS"
3345	for p in $cf_ncurses_LIBS ; do
3346		q=`echo "$LIBS" | sed -e "s%$p %%" -e "s%$p$%%"`
3347		if test "$q" != "$LIBS" ; then
3348			LIBS="$q"
3349		fi
3350	done
3351	AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3352		[initscr(); mousemask(0,0); tigetstr((char *)0);],
3353		[AC_MSG_RESULT(yes)],
3354		[AC_MSG_RESULT(no)
3355		 LIBS="$cf_ncurses_SAVE"])
3356fi
3357
3358CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
3359AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
3360])dnl
3361dnl ---------------------------------------------------------------------------
3362dnl CF_NCURSES_VERSION version: 18 updated: 2024/01/07 06:34:16
3363dnl ------------------
3364dnl Check for the version of ncurses, to aid in reporting bugs, etc.
3365dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
3366dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
3367AC_DEFUN([CF_NCURSES_VERSION],
3368[
3369AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3370AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
3371	cf_cv_ncurses_version=no
3372	cf_tempfile=out$$
3373	rm -f "$cf_tempfile"
3374	AC_TRY_RUN([
3375$ac_includes_default
3376
3377#include <${cf_cv_ncurses_header:-curses.h}>
3378
3379int main(void)
3380{
3381	FILE *fp = fopen("$cf_tempfile", "w");
3382#ifdef NCURSES_VERSION
3383# ifdef NCURSES_VERSION_PATCH
3384	fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
3385# else
3386	fprintf(fp, "%s\\n", NCURSES_VERSION);
3387# endif
3388#else
3389# ifdef __NCURSES_H
3390	fprintf(fp, "old\\n");
3391# else
3392	#error expected ncurses header to define __NCURSES_H
3393# endif
3394#endif
3395	${cf_cv_main_return:-return}(0);
3396}],[
3397	cf_cv_ncurses_version=`cat $cf_tempfile`],,[
3398
3399	# This will not work if the preprocessor splits the line after the
3400	# Autoconf token.  The 'unproto' program does that.
3401	cat > "conftest.$ac_ext" <<EOF
3402#include <${cf_cv_ncurses_header:-curses.h}>
3403#undef Autoconf
3404#ifdef NCURSES_VERSION
3405Autoconf NCURSES_VERSION
3406#else
3407#ifdef __NCURSES_H
3408Autoconf "old"
3409#endif
3410;
3411#endif
3412EOF
3413	cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
3414	AC_TRY_EVAL(cf_try)
3415	if test -f conftest.out ; then
3416		cf_out=`sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%' conftest.out`
3417		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
3418		rm -f conftest.out
3419	fi
3420])
3421	rm -f "$cf_tempfile"
3422])
3423test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3424])dnl
3425dnl ---------------------------------------------------------------------------
3426dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
3427dnl -------------
3428dnl Compute the object-directory name from the given model name
3429AC_DEFUN([CF_OBJ_SUBDIR],
3430[
3431	case $1 in
3432	(libtool) $2='obj_lo'  ;;
3433	(normal)  $2='objects' ;;
3434	(debug)   $2='obj_g' ;;
3435	(profile) $2='obj_p' ;;
3436	(shared)
3437		case "$cf_cv_system_name" in
3438		(cygwin|msys)
3439			$2='objects' ;;
3440		(*)
3441			$2='obj_s' ;;
3442		esac
3443	esac
3444])dnl
3445dnl ---------------------------------------------------------------------------
3446dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
3447dnl ----------
3448dnl Provide a value for the $PATH and similar separator (or amend the value
3449dnl as provided in autoconf 2.5x).
3450AC_DEFUN([CF_PATHSEP],
3451[
3452	AC_MSG_CHECKING(for PATH separator)
3453	case "$cf_cv_system_name" in
3454	(os2*)	PATH_SEPARATOR=';'  ;;
3455	(*)	${PATH_SEPARATOR:=':'}  ;;
3456	esac
3457ifelse([$1],,,[$1=$PATH_SEPARATOR])
3458	AC_SUBST(PATH_SEPARATOR)
3459	AC_MSG_RESULT($PATH_SEPARATOR)
3460])dnl
3461dnl ---------------------------------------------------------------------------
3462dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
3463dnl --------------
3464dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
3465dnl begins with one of the prefix/exec_prefix variables, and then again if the
3466dnl result begins with 'NONE'.  This is necessary to work around autoconf's
3467dnl delayed evaluation of those symbols.
3468AC_DEFUN([CF_PATH_SYNTAX],[
3469if test "x$prefix" != xNONE; then
3470	cf_path_syntax="$prefix"
3471else
3472	cf_path_syntax="$ac_default_prefix"
3473fi
3474
3475case ".[$]$1" in
3476(.\[$]\(*\)*|.\'*\'*)
3477	;;
3478(..|./*|.\\*)
3479	;;
3480(.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
3481	;;
3482(.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
3483	eval $1="[$]$1"
3484	case ".[$]$1" in
3485	(.NONE/*)
3486		$1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
3487		;;
3488	esac
3489	;;
3490(.no|.NONE/*)
3491	$1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
3492	;;
3493(*)
3494	ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3495	;;
3496esac
3497])dnl
3498dnl ---------------------------------------------------------------------------
3499dnl CF_PKG_CONFIG version: 13 updated: 2023/10/28 11:59:01
3500dnl -------------
3501dnl Check for the package-config program, unless disabled by command-line.
3502dnl
3503dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
3504AC_DEFUN([CF_PKG_CONFIG],
3505[
3506AC_MSG_CHECKING(if you want to use pkg-config)
3507AC_ARG_WITH(pkg-config,
3508	[[  --with-pkg-config[=CMD] enable/disable use of pkg-config and its name CMD]],
3509	[cf_pkg_config=$withval],
3510	[cf_pkg_config=yes])
3511AC_MSG_RESULT($cf_pkg_config)
3512
3513case "$cf_pkg_config" in
3514(no)
3515	PKG_CONFIG=none
3516	;;
3517(yes)
3518	CF_ACVERSION_CHECK(2.52,
3519		[AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
3520		[AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
3521	;;
3522(*)
3523	PKG_CONFIG=$withval
3524	;;
3525esac
3526
3527test -z "$PKG_CONFIG" && PKG_CONFIG=none
3528if test "$PKG_CONFIG" != none ; then
3529	CF_PATH_SYNTAX(PKG_CONFIG)
3530elif test "x$cf_pkg_config" != xno ; then
3531	AC_MSG_WARN(pkg-config is not installed)
3532fi
3533
3534AC_SUBST(PKG_CONFIG)
3535])dnl
3536dnl ---------------------------------------------------------------------------
3537dnl CF_POSIX_C_SOURCE version: 12 updated: 2023/02/18 17:41:25
3538dnl -----------------
3539dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3540dnl
3541dnl	POSIX.1-1990				_POSIX_SOURCE
3542dnl	POSIX.1-1990 and			_POSIX_SOURCE and
3543dnl		POSIX.2-1992 C-Language			_POSIX_C_SOURCE=2
3544dnl		Bindings Option
3545dnl	POSIX.1b-1993				_POSIX_C_SOURCE=199309L
3546dnl	POSIX.1c-1996				_POSIX_C_SOURCE=199506L
3547dnl	X/Open 2000				_POSIX_C_SOURCE=200112L
3548dnl
3549dnl Parameters:
3550dnl	$1 is the nominal value for _POSIX_C_SOURCE
3551AC_DEFUN([CF_POSIX_C_SOURCE],
3552[AC_REQUIRE([CF_POSIX_VISIBLE])dnl
3553
3554if test "$cf_cv_posix_visible" = no; then
3555
3556cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
3557
3558cf_save_CFLAGS="$CFLAGS"
3559cf_save_CPPFLAGS="$CPPFLAGS"
3560
3561CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3562CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3563
3564AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3565	CF_MSG_LOG(if the symbol is already defined go no further)
3566	AC_TRY_COMPILE([#include <sys/types.h>],[
3567#ifndef _POSIX_C_SOURCE
3568#error _POSIX_C_SOURCE is not defined
3569#endif],
3570	[cf_cv_posix_c_source=no],
3571	[cf_want_posix_source=no
3572	 case .$cf_POSIX_C_SOURCE in
3573	 (.[[12]]??*)
3574		cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3575		;;
3576	 (.2)
3577		cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3578		cf_want_posix_source=yes
3579		;;
3580	 (.*)
3581		cf_want_posix_source=yes
3582		;;
3583	 esac
3584	 if test "$cf_want_posix_source" = yes ; then
3585		AC_TRY_COMPILE([#include <sys/types.h>],[
3586#ifdef _POSIX_SOURCE
3587#error _POSIX_SOURCE is defined
3588#endif],[],
3589		cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3590	 fi
3591	 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3592	 CFLAGS="$cf_trim_CFLAGS"
3593	 CPPFLAGS="$cf_trim_CPPFLAGS"
3594	 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
3595	 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3596	 AC_TRY_COMPILE([#include <sys/types.h>],[
3597#ifndef _POSIX_C_SOURCE
3598#error _POSIX_C_SOURCE is not defined
3599#endif],,
3600	 [cf_cv_posix_c_source=no])
3601	 CFLAGS="$cf_save_CFLAGS"
3602	 CPPFLAGS="$cf_save_CPPFLAGS"
3603	])
3604])
3605
3606if test "$cf_cv_posix_c_source" != no ; then
3607	CFLAGS="$cf_trim_CFLAGS"
3608	CPPFLAGS="$cf_trim_CPPFLAGS"
3609	CF_ADD_CFLAGS($cf_cv_posix_c_source)
3610fi
3611
3612fi # cf_cv_posix_visible
3613
3614])dnl
3615dnl ---------------------------------------------------------------------------
3616dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
3617dnl ----------------
3618dnl POSIX documents test-macros which an application may set before any system
3619dnl headers are included to make features available.
3620dnl
3621dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
3622dnl diverged from POSIX in 2002 by setting symbols which make all of the most
3623dnl recent features visible in the system header files unless the application
3624dnl overrides the corresponding test-macros.  Doing that introduces portability
3625dnl problems.
3626dnl
3627dnl This macro makes a special check for the symbols used for this, to avoid a
3628dnl conflicting definition.
3629AC_DEFUN([CF_POSIX_VISIBLE],
3630[
3631AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
3632AC_TRY_COMPILE([#include <stdio.h>],[
3633#if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
3634	&& defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
3635	&& defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
3636	&& defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
3637#error conflicting symbols found
3638#endif
3639],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
3640])
3641])dnl
3642dnl ---------------------------------------------------------------------------
3643dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
3644dnl ----------
3645dnl Check for archiver "ar".
3646AC_DEFUN([CF_PROG_AR],[
3647AC_CHECK_TOOL(AR, ar, ar)
3648])
3649dnl ---------------------------------------------------------------------------
3650dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3651dnl -----------
3652dnl Check for awk, ensure that the check found something.
3653AC_DEFUN([CF_PROG_AWK],
3654[
3655AC_PROG_AWK
3656test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3657])dnl
3658dnl ---------------------------------------------------------------------------
3659dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
3660dnl ----------
3661dnl standard check for CC, plus followup sanity checks
3662dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
3663AC_DEFUN([CF_PROG_CC],[
3664CF_ACVERSION_CHECK(2.53,
3665	[AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
3666	 AC_REQUIRE([AC_PROG_CC])],
3667	[])
3668ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
3669CF_GCC_VERSION
3670CF_ACVERSION_CHECK(2.52,
3671	[AC_PROG_CC_STDC],
3672	[CF_ANSI_CC_REQD])
3673CF_CC_ENV_FLAGS
3674])dnl
3675dnl ---------------------------------------------------------------------------
3676dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
3677dnl --------------
3678dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3679dnl the output file can be renamed, and allows for a shell variable that can
3680dnl be used later.  The parameter is either CC or CXX.  The result is the
3681dnl cache variable:
3682dnl	$cf_cv_prog_CC_c_o
3683dnl	$cf_cv_prog_CXX_c_o
3684dnl
3685dnl $1 = compiler
3686dnl $2 = compiler options, if any
3687AC_DEFUN([CF_PROG_CC_C_O],
3688[AC_REQUIRE([AC_PROG_CC])dnl
3689AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3690AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3691[
3692cat > conftest.$ac_ext <<CF_EOF
3693int main(void)
3694{
3695	${cf_cv_main_return:-return}(0);
3696}
3697CF_EOF
3698# We do the test twice because some compilers refuse to overwrite an
3699# existing .o file with -o, though they will create one.
3700ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3701if AC_TRY_EVAL(ac_try) &&
3702  test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3703then
3704  eval cf_cv_prog_$1_c_o=yes
3705else
3706  eval cf_cv_prog_$1_c_o=no
3707fi
3708rm -rf ./conftest*
3709])dnl
3710if test "$cf_cv_prog_$1_c_o" = yes; then
3711  AC_MSG_RESULT([yes])
3712else
3713  AC_MSG_RESULT([no])
3714fi
3715])dnl
3716dnl ---------------------------------------------------------------------------
3717dnl CF_PROG_EGREP version: 2 updated: 2015/04/18 08:56:57
3718dnl -------------
3719dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3720dnl This macro adds a check to ensure the script found something.
3721AC_DEFUN([CF_PROG_EGREP],
3722[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3723	[if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3724		then ac_cv_prog_egrep='grep -E'
3725		else ac_cv_prog_egrep='egrep'
3726	fi])
3727	EGREP=$ac_cv_prog_egrep
3728	AC_SUBST([EGREP])
3729	test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3730])dnl
3731dnl ---------------------------------------------------------------------------
3732dnl CF_PROG_EXT version: 15 updated: 2021/01/02 09:31:20
3733dnl -----------
3734dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3735AC_DEFUN([CF_PROG_EXT],
3736[
3737AC_REQUIRE([CF_CHECK_CACHE])
3738case "$cf_cv_system_name" in
3739(os2*)
3740	CFLAGS="$CFLAGS -Zmt"
3741	CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__)
3742	CXXFLAGS="$CXXFLAGS -Zmt"
3743	# autoconf's macro sets -Zexe and suffix both, which conflict:w
3744	LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3745	ac_cv_exeext=.exe
3746	;;
3747esac
3748
3749AC_EXEEXT
3750AC_OBJEXT
3751
3752PROG_EXT="$EXEEXT"
3753AC_SUBST(PROG_EXT)
3754test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
3755])dnl
3756dnl ---------------------------------------------------------------------------
3757dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
3758dnl ------------
3759dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
3760AC_DEFUN([CF_PROG_GNAT],[
3761for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
3762do
3763	CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
3764
3765	unset ac_cv_path_cf_TEMP_gnat
3766	unset cf_TEMP_gnat
3767	AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
3768	eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
3769
3770	if test "x$cf_TEMP_gnat" != xno; then
3771		unset cf_cv_gnat_version
3772		unset cf_TEMP_gnat
3773		CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
3774	fi
3775	eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
3776
3777	unset cf_TEMP_gnat
3778	unset cf_cv_gnat_version
3779	unset ac_cv_path_cf_TEMP_gnat
3780done
3781
3782if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
3783	cf_ada_make=
3784	cf_cv_prog_gnat_correct=no
3785else
3786	cf_ada_make=gnatmake
3787	if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
3788		# gprconfig is newer than gnatmake; we can continue...
3789		cf_ada_config="##"
3790	else
3791		rm -rf ./conftest* ./*~conftest*
3792		if mkdir conftest.src
3793		then
3794			cf_ada_config=""
3795			cd conftest.src
3796			for cf_gprconfig in Ada C
3797			do
3798				AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
3799				if test "$cf_gprconfig" = C
3800				then
3801					for cf_gprconfig_param in \
3802						"$cf_gprconfig,,,,GNATGCC" \
3803						"$cf_gprconfig,,,,GCC" \
3804						"$cf_gprconfig"
3805					do
3806						cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3807						test -n "$cf_gprconfig_value" && break
3808					done
3809				else
3810					cf_gprconfig_param=$cf_gprconfig
3811					cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
3812				fi
3813				if test -n "$cf_gprconfig_value"
3814				then
3815					eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
3816					AC_MSG_RESULT($cf_gprconfig_value)
3817				else
3818					AC_MSG_RESULT(missing)
3819					cf_ada_config="#"
3820					break
3821				fi
3822			done
3823			cd ..
3824			rm -rf ./conftest* ./*~conftest*
3825		fi
3826	fi
3827	if test "x$cf_ada_config" != "x#"
3828	then
3829		CF_GNAT_VERSION
3830		CF_CHECK_GNAT_VERSION
3831		AC_CHECK_PROG(M4_exists, m4, yes, no)
3832		if test "$ac_cv_prog_M4_exists" = no; then
3833			cf_cv_prog_gnat_correct=no
3834			AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
3835		fi
3836		if test "$cf_cv_prog_gnat_correct" = yes; then
3837			AC_MSG_CHECKING(if GNAT works)
3838			CF_GNAT_TRY_RUN([procedure conftest;],
3839[with Text_IO;
3840with GNAT.OS_Lib;
3841procedure conftest is
3842begin
3843   Text_IO.Put ("Hello World");
3844   Text_IO.New_Line;
3845   GNAT.OS_Lib.OS_Exit (0);
3846end conftest;],
3847[cf_cv_prog_gnat_correct=yes],
3848[cf_cv_prog_gnat_correct=no])
3849			AC_MSG_RESULT($cf_cv_prog_gnat_correct)
3850		fi
3851	else
3852		cf_cv_prog_gnat_correct=no
3853	fi
3854fi
3855
3856AC_SUBST(cf_ada_make)
3857AC_SUBST(cf_ada_config)
3858AC_SUBST(cf_ada_config_Ada)
3859AC_SUBST(cf_ada_config_C)
3860])dnl
3861dnl ---------------------------------------------------------------------------
3862dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
3863dnl ---------------
3864dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
3865dnl misc/tabset install won't work properly.  Usually this happens only when
3866dnl using the fallback mkinstalldirs script
3867AC_DEFUN([CF_PROG_INSTALL],
3868[AC_PROG_INSTALL
3869case $INSTALL in
3870(/*)
3871	;;
3872(*)
3873	CF_DIRNAME(cf_dir,$INSTALL)
3874	test -z "$cf_dir" && cf_dir=.
3875	INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
3876	;;
3877esac
3878])dnl
3879dnl ---------------------------------------------------------------------------
3880dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
3881dnl ------------
3882dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
3883dnl option if it is supported.
3884AC_DEFUN([CF_PROG_LN_S],[
3885AC_PROG_LN_S
3886AC_MSG_CHECKING(if $LN_S -f options work)
3887
3888rm -f conf$$.src conf$$dst
3889echo >conf$$.dst
3890echo first >conf$$.src
3891if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
3892	cf_prog_ln_sf=yes
3893else
3894	cf_prog_ln_sf=no
3895fi
3896rm -f conf$$.dst conf$$src
3897AC_MSG_RESULT($cf_prog_ln_sf)
3898
3899test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
3900])dnl
3901dnl ---------------------------------------------------------------------------
3902dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
3903dnl ----------------
3904dnl Remove a given option from CFLAGS/CPPFLAGS
3905dnl $1 = option to remove
3906dnl $2 = variable to update
3907dnl $3 = nonempty to allow verbose message
3908define([CF_REMOVE_CFLAGS],
3909[
3910cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
3911while true
3912do
3913	cf_old_cflag=`echo "x[$]$2" | sed -e 's/^.//' -e 's/[[ 	]][[ 	]]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[[^ 	]][[^ 	]]*\\)\?%%" -e 's/^[[ 	]]*//' -e 's%[[ ]][[ ]]*-D% -D%g' -e 's%[[ ]][[ ]]*-I% -I%g'`
3914	test "[$]$2" != "$cf_old_cflag" || break
3915	ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
3916	$2="$cf_old_cflag"
3917done
3918])dnl
3919dnl ---------------------------------------------------------------------------
3920dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3921dnl ----------------
3922dnl Remove all -U and -D options that refer to the given symbol from a list
3923dnl of C compiler options.  This works around the problem that not all
3924dnl compilers process -U and -D options from left-to-right, so a -U option
3925dnl cannot be used to cancel the effect of a preceding -D option.
3926dnl
3927dnl $1 = target (which could be the same as the source variable)
3928dnl $2 = source (including '$')
3929dnl $3 = symbol to remove
3930define([CF_REMOVE_DEFINE],
3931[
3932$1=`echo "$2" | \
3933	sed	-e 's/-[[UD]]'"$3"'\(=[[^ 	]]*\)\?[[ 	]]/ /g' \
3934		-e 's/-[[UD]]'"$3"'\(=[[^ 	]]*\)\?[$]//g'`
3935])dnl
3936dnl ---------------------------------------------------------------------------
3937dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3938dnl -------------
3939dnl Remove the given library from the symbol
3940dnl
3941dnl $1 = target (which could be the same as the source variable)
3942dnl $2 = source (including '$')
3943dnl $3 = library to remove
3944define([CF_REMOVE_LIB],
3945[
3946# remove $3 library from $2
3947$1=`echo "$2" | sed -e 's/-l$3[[ 	]]//g' -e 's/-l$3[$]//'`
3948])dnl
3949dnl ---------------------------------------------------------------------------
3950dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
3951dnl ---------------------
3952dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
3953dnl $1 = name of current macro
3954define([CF_RESTORE_XTRA_FLAGS],
3955[
3956LIBS="$cf_save_LIBS_$1"
3957CFLAGS="$cf_save_CFLAGS_$1"
3958CPPFLAGS="$cf_save_CPPFLAGS_$1"
3959])dnl
3960dnl ---------------------------------------------------------------------------
3961dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
3962dnl ------------------
3963dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
3964dnl and libraries which do not update those variables.
3965dnl
3966dnl $1 = name of current macro
3967define([CF_SAVE_XTRA_FLAGS],
3968[
3969cf_save_LIBS_$1="$LIBS"
3970cf_save_CFLAGS_$1="$CFLAGS"
3971cf_save_CPPFLAGS_$1="$CPPFLAGS"
3972LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
3973for cf_X_CFLAGS in $X_CFLAGS
3974do
3975	case "x$cf_X_CFLAGS" in
3976	x-[[IUD]]*)
3977		CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
3978		;;
3979	*)
3980		CFLAGS="$CFLAGS $cf_X_CFLAGS"
3981		;;
3982	esac
3983done
3984])dnl
3985dnl ---------------------------------------------------------------------------
3986dnl CF_SHARED_OPTS version: 111 updated: 2024/03/29 20:08:49
3987dnl --------------
3988dnl --------------
3989dnl Attempt to determine the appropriate CC/LD options for creating a shared
3990dnl library.
3991dnl
3992dnl Notes:
3993dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
3994dnl the build-tree, i.e., by making use of the libraries that are compiled in
3995dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
3996dnl shared library since that can lead to unexpected results at runtime.
3997dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
3998dnl libraries are compiled in ../../lib
3999dnl
4000dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4001dnl to install symbolic links to the rel/abi versions of shared libraries.
4002dnl
4003dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4004dnl version when making symbolic links.
4005dnl
4006dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4007dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4008dnl (ex: libncurses.so.<ver>).
4009dnl
4010dnl Some loaders leave 'so_locations' lying around.  It is nice to clean up.
4011AC_DEFUN([CF_SHARED_OPTS],
4012[
4013	AC_REQUIRE([CF_LD_RPATH_OPT])
4014
4015	RM_SHARED_OPTS=
4016	LOCAL_LDFLAGS=
4017	LOCAL_LDFLAGS2=
4018	LD_SHARED_OPTS=
4019	INSTALL_LIB="-m 644"
4020	: ${rel_builddir:=.}
4021
4022	shlibdir=$libdir
4023	AC_SUBST(shlibdir)
4024
4025	MAKE_DLLS="#"
4026	AC_SUBST(MAKE_DLLS)
4027
4028	cf_cv_do_symlinks=no
4029	cf_ld_rpath_opt=
4030	test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
4031
4032	AC_MSG_CHECKING(whether to use release or ABI version in shared library file names)
4033	AC_ARG_WITH(shlib-version,
4034	[[  --with-shlib-version[={rel|abi}] use release or ABI version in shared library file names]],
4035	[test -z "$withval" && withval=auto
4036	case "$withval" in
4037	(yes)
4038		cf_cv_shlib_version=auto
4039		;;
4040	(rel|abi|auto)
4041		cf_cv_shlib_version=$withval
4042		;;
4043	(*)
4044		AC_MSG_RESULT($withval)
4045		AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
4046		;;
4047	esac
4048	],[cf_cv_shlib_version=auto])
4049	AC_MSG_RESULT($cf_cv_shlib_version)
4050
4051	cf_cv_rm_so_locs=no
4052	cf_try_cflags=
4053
4054	# Some less-capable ports of gcc support only -fpic
4055	CC_SHARED_OPTS=
4056
4057	cf_try_fPIC=no
4058	if test "$GCC" = yes
4059	then
4060		cf_try_fPIC=yes
4061	else
4062		case "$cf_cv_system_name" in
4063		(*linux*)	# e.g., PGI compiler
4064			cf_try_fPIC=yes
4065			;;
4066		esac
4067	fi
4068
4069	if test "$cf_try_fPIC" = yes
4070	then
4071		AC_MSG_CHECKING(which $CC option to use)
4072		cf_save_CFLAGS="$CFLAGS"
4073		for CC_SHARED_OPTS in -fPIC -fpic ''
4074		do
4075			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4076			AC_TRY_COMPILE([#include <stdio.h>],[int x = 1; (void)x],[break],[])
4077		done
4078		AC_MSG_RESULT($CC_SHARED_OPTS)
4079		CFLAGS="$cf_save_CFLAGS"
4080	fi
4081
4082	cf_cv_shlib_version_infix=no
4083
4084	case "$cf_cv_system_name" in
4085	(aix4.[3-9]*|aix[[5-7]]*)
4086		if test "$GCC" = yes; then
4087			CC_SHARED_OPTS='-Wl,-brtl'
4088			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
4089		else
4090			CC_SHARED_OPTS='-brtl'
4091			# as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
4092			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
4093		fi
4094		;;
4095	(beos*)
4096		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4097		;;
4098	(cygwin*)
4099		CC_SHARED_OPTS=
4100		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4101		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4102		cf_cv_shlib_version=cygdll
4103		cf_cv_shlib_version_infix=cygdll
4104		shlibdir=$bindir
4105		MAKE_DLLS=
4106		cat >mk_shared_lib.sh <<-CF_EOF
4107		#!$SHELL
4108		SHARED_LIB=\[$]1
4109		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4110		shift
4111		cat <<-EOF
4112		Linking shared library
4113		** SHARED_LIB \[$]SHARED_LIB
4114		** IMPORT_LIB \[$]IMPORT_LIB
4115EOF
4116		exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4117CF_EOF
4118		chmod +x mk_shared_lib.sh
4119		;;
4120	(msys*)
4121		CC_SHARED_OPTS=
4122		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4123		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4124		cf_cv_shlib_version=msysdll
4125		cf_cv_shlib_version_infix=msysdll
4126		shlibdir=$bindir
4127		MAKE_DLLS=
4128		cat >mk_shared_lib.sh <<-CF_EOF
4129		#!$SHELL
4130		SHARED_LIB=\[$]1
4131		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4132		shift
4133		cat <<-EOF
4134		Linking shared library
4135		** SHARED_LIB \[$]SHARED_LIB
4136		** IMPORT_LIB \[$]IMPORT_LIB
4137EOF
4138		exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4139CF_EOF
4140		chmod +x mk_shared_lib.sh
4141		;;
4142	(darwin*)
4143		cf_try_cflags="no-cpp-precomp"
4144		CC_SHARED_OPTS="-dynamic"
4145		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4146		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4147		cf_cv_shlib_version_infix=yes
4148		AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4149			cf_save_LDFLAGS=$LDFLAGS
4150			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4151			AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4152				LDFLAGS=$cf_save_LDFLAGS])
4153		if test "$cf_cv_ldflags_search_paths_first" = yes; then
4154			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4155		fi
4156		;;
4157	(haiku*)
4158		CF_SHARED_SONAME
4159		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4160		;;
4161	(hpux[[7-8]]*)
4162		# HP-UX 8.07 ld lacks "+b" option used for libdir search-list
4163		if test "$GCC" != yes; then
4164			CC_SHARED_OPTS='+Z'
4165		fi
4166		MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
4167		INSTALL_LIB="-m 555"
4168		;;
4169	(hpux*)
4170		# (tested with gcc 2.7.2 -- I don't have c89)
4171		if test "$GCC" = yes; then
4172			LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4173		else
4174			CC_SHARED_OPTS='+Z'
4175			LD_SHARED_OPTS='-Wl,+b,${libdir}'
4176		fi
4177		MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
4178		# HP-UX shared libraries must be executable, and should be
4179		# readonly to exploit a quirk in the memory manager.
4180		INSTALL_LIB="-m 555"
4181		;;
4182	(interix*)
4183		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4184		if test "$cf_cv_shlib_version" = rel; then
4185			cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4186		else
4187			cf_shared_soname='`basename $[@]`'
4188		fi
4189		CC_SHARED_OPTS=
4190		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
4191		;;
4192	(irix*)
4193		if test "$cf_cv_enable_rpath" = yes ; then
4194			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4195		fi
4196		# tested with IRIX 5.2 and 'cc'.
4197		if test "$GCC" != yes; then
4198			CC_SHARED_OPTS='-KPIC'
4199			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4200		else
4201			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4202		fi
4203		cf_cv_rm_so_locs=yes
4204		;;
4205	(linux*|gnu*|k*bsd*-gnu)
4206		if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4207			LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4208			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4209		fi
4210		if test "$cf_cv_enable_rpath" = yes ; then
4211			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4212		fi
4213		CF_SHARED_SONAME
4214		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4215		;;
4216	(mingw*msvc*)
4217		cf_cv_shlib_version=msvcdll
4218		cf_cv_shlib_version_infix=msvcdll
4219		shlibdir=$bindir
4220		MAKE_DLLS=
4221		if test "$DFT_LWR_MODEL" = "shared" ; then
4222			LOCAL_LDFLAGS="-link -dll"
4223			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4224			EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
4225		fi
4226		CC_SHARED_OPTS=
4227		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
4228		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
4229		cat >mk_shared_lib.sh <<-CF_EOF
4230		#!$SHELL
4231		SHARED_LIB=\[$]1
4232		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
4233		shift
4234		my_ld=\[$]1
4235		shift
4236		cat <<-EOF
4237		Linking shared library
4238		** SHARED LIB \$SHARED_LIB
4239		** IMPORT_LIB \$IMPORT_LIB
4240EOF
4241		args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
4242		exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
4243		mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
4244CF_EOF
4245		chmod +x mk_shared_lib.sh
4246		cat >mk_prog.sh <<-CF_EOF
4247		#!$SHELL
4248		shift
4249		# Ignore first argument (compiler) and use LD (link.exe) unconditionally
4250		LD="[$]LD"
4251		clopts=()
4252		ldopts=("/subsystem:console")
4253		libs=()
4254		isdll=0
4255		while test \[$]# -gt 0; do
4256			case "\[$]1" in
4257				-link)
4258					# ignore -link argument
4259					;;
4260				-M[[TD]] | -M[[TD]]d)
4261					# ignore runtime-library option
4262					;;
4263				-dll)
4264					isdll=1
4265					;;
4266				-W* | -w*)
4267					# ignore warnings
4268					;;
4269				-D*)
4270					clopts+=("\[$]1")
4271					;;
4272				-I*)
4273					clopts+=("\[$]1")
4274					;;
4275				-l*)
4276					libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
4277					;;
4278				-L*)
4279					ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
4280					;;
4281				*.obj | *.o)
4282					ldopts+=("\[$]1")
4283					;;
4284				-Wl,*)
4285					for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
4286						ldopts+=("\[$]{linkarg}")
4287					done
4288					;;
4289				*.lib)
4290					ldopts+=("\[$]1")
4291					;;
4292				-o)
4293					shift
4294					ldopts+=("-out:\[$]1")
4295					;;
4296				*)
4297					clopts+=("\[$]1")
4298					ldopts+=("\[$]1")
4299					;;
4300			esac
4301			shift
4302		done
4303		if [[ "\$isdll" -ne 0 ]]; then
4304			for lib in \[$]{libs[[*]]}; do
4305				ldopts+=("\[$]lib.dll.lib")
4306			done
4307		else
4308			for lib in \[$]{libs[[*]]}; do
4309				ldopts+=("\[$]lib.lib")
4310			done
4311		fi
4312		cat <<-EOF
4313		Creating program
4314		** ld options:   "\[$]{ldopts[[@]]}"
4315EOF
4316		exec \[$]LD \[$]{ldopts[[@]]}
4317CF_EOF
4318		chmod +x mk_prog.sh
4319		LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
4320		LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
4321		;;
4322	(mingw*)
4323		cf_cv_shlib_version=mingw
4324		cf_cv_shlib_version_infix=mingw
4325		shlibdir=$bindir
4326		MAKE_DLLS=
4327		if test "$DFT_LWR_MODEL" = "shared" ; then
4328			LOCAL_LDFLAGS="-Wl,--enable-auto-import"
4329			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4330			EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
4331		fi
4332		CC_SHARED_OPTS=
4333		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4334		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4335		cat >mk_shared_lib.sh <<-CF_EOF
4336		#!$SHELL
4337		SHARED_LIB=\[$]1
4338		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4339		shift
4340		cat <<-EOF
4341		Linking shared library
4342		** SHARED_LIB \[$]SHARED_LIB
4343		** IMPORT_LIB \[$]IMPORT_LIB
4344EOF
4345		exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4346CF_EOF
4347		chmod +x mk_shared_lib.sh
4348		;;
4349	(openbsd[[2-9]].*|mirbsd*)
4350		if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4351			LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4352			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4353		fi
4354		if test "$cf_cv_enable_rpath" = yes ; then
4355			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4356		fi
4357		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4358		CF_SHARED_SONAME
4359		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4360		;;
4361	(nskJ*)
4362		CC_SHARED_OPTS=
4363		MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
4364		;;
4365	(nskL*)
4366		CC_SHARED_OPTS=
4367		MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
4368		;;
4369	(nto-qnx*|openbsd*|freebsd[[12]].*)
4370		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4371		MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
4372		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4373		;;
4374	(dragonfly*|freebsd*)
4375		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4376		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4377			LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4378			LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
4379			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4380		fi
4381		CF_SHARED_SONAME
4382		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4383		;;
4384	(netbsd*)
4385		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4386		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4387			LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4388			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4389			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4390			if test "$cf_cv_shlib_version" = auto; then
4391			if test -f /usr/libexec/ld.elf_so; then
4392				cf_cv_shlib_version=abi
4393			else
4394				cf_cv_shlib_version=rel
4395			fi
4396			fi
4397			CF_SHARED_SONAME
4398			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4399		else
4400			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
4401		fi
4402		;;
4403	(osf*|mls+*)
4404		# tested with OSF/1 V3.2 and 'cc'
4405		# tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4406		# link with shared libs).
4407		MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4408		case "$host_os" in
4409		(osf4*)
4410			MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4411			;;
4412		esac
4413		MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4414		if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4415			LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4416			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4417		fi
4418		cf_cv_rm_so_locs=yes
4419		;;
4420	(sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
4421		# tested with osr5.0.5
4422		if test "$GCC" != yes; then
4423			CC_SHARED_OPTS='-belf -KPIC'
4424		fi
4425		MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4426		if test "$cf_cv_enable_rpath" = yes ; then
4427			# only way is to set LD_RUN_PATH but no switch for it
4428			RUN_PATH=$libdir
4429		fi
4430		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4431		LINK_PROGS='LD_RUN_PATH=${libdir}'
4432		LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4433		;;
4434	(sunos4*)
4435		# tested with SunOS 4.1.1 and gcc 2.7.0
4436		if test "$GCC" != yes; then
4437			CC_SHARED_OPTS='-KPIC'
4438		fi
4439		MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
4440		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4441		;;
4442	(solaris2*)
4443		# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4444		# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4445		if test "$DFT_LWR_MODEL" = "shared" ; then
4446			LOCAL_LDFLAGS="-R\$(LOCAL_LIBDIR):\${libdir}"
4447			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4448		fi
4449		if test "$cf_cv_enable_rpath" = yes ; then
4450			EXTRA_LDFLAGS="-R\${libdir} $EXTRA_LDFLAGS"
4451		fi
4452		CF_SHARED_SONAME
4453		if test "$GCC" != yes; then
4454			cf_save_CFLAGS="$CFLAGS"
4455			for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
4456			do
4457				CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4458				AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
4459			done
4460			CFLAGS="$cf_save_CFLAGS"
4461			CC_SHARED_OPTS=$cf_shared_opts
4462			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
4463		else
4464			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
4465		fi
4466		;;
4467	(sysv5uw7*|unix_sv*)
4468		# tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4469		if test "$GCC" != yes; then
4470			CC_SHARED_OPTS='-KPIC'
4471		fi
4472		MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
4473		;;
4474	(*)
4475		CC_SHARED_OPTS='unknown'
4476		MK_SHARED_LIB='echo unknown'
4477		;;
4478	esac
4479
4480	# This works if the last tokens in $MK_SHARED_LIB are the -o target.
4481	case "$cf_cv_shlib_version" in
4482	(rel|abi)
4483		case "$MK_SHARED_LIB" in
4484		(*'-o $[@]')
4485			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4486			;;
4487		(*)
4488			AC_MSG_WARN(ignored --with-shlib-version)
4489			;;
4490		esac
4491		;;
4492	esac
4493
4494	if test -n "$cf_try_cflags"
4495	then
4496cat > conftest.$ac_ext <<EOF
4497#line __oline__ "${as_me:-configure}"
4498#include <stdio.h>
4499int main(int argc, char *argv[[]])
4500{
4501	printf("hello\\n");
4502	return (argv[[argc-1]] == 0) ;
4503}
4504EOF
4505		cf_save_CFLAGS="$CFLAGS"
4506		for cf_opt in $cf_try_cflags
4507		do
4508			CFLAGS="$cf_save_CFLAGS -$cf_opt"
4509			AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
4510			if AC_TRY_EVAL(ac_compile); then
4511				AC_MSG_RESULT(yes)
4512				cf_save_CFLAGS="$CFLAGS"
4513			else
4514				AC_MSG_RESULT(no)
4515			fi
4516		done
4517		CFLAGS="$cf_save_CFLAGS"
4518	fi
4519
4520
4521	# RPATH_LIST is a colon-separated list of directories
4522	test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
4523	test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
4524
4525	test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
4526
4527	CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
4528	CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
4529
4530	AC_SUBST(CC_SHARED_OPTS)
4531	AC_SUBST(LD_RPATH_OPT)
4532	AC_SUBST(LD_SHARED_OPTS)
4533	AC_SUBST(MK_SHARED_LIB)
4534	AC_SUBST(RM_SHARED_OPTS)
4535
4536	AC_SUBST(LINK_PROGS)
4537	AC_SUBST(LINK_TESTS)
4538
4539	AC_SUBST(EXTRA_LDFLAGS)
4540	AC_SUBST(LOCAL_LDFLAGS)
4541	AC_SUBST(LOCAL_LDFLAGS2)
4542
4543	AC_SUBST(INSTALL_LIB)
4544	AC_SUBST(RPATH_LIST)
4545])dnl
4546dnl ---------------------------------------------------------------------------
4547dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4548dnl ----------------
4549dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4550dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4551dnl option.
4552dnl
4553dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4554dnl If missing, use "rel".
4555define([CF_SHARED_SONAME],
4556[
4557	test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4558	if test "$cf_cv_shlib_version" = rel; then
4559		cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4560	else
4561		cf_cv_shared_soname='`basename $[@]`'
4562	fi
4563])
4564dnl ---------------------------------------------------------------------------
4565dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
4566dnl --------------
4567dnl	Remove "-g" option from the compiler options
4568AC_DEFUN([CF_STRIP_G_OPT],
4569[$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
4570dnl ---------------------------------------------------------------------------
4571dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
4572dnl --------------
4573dnl Construct a search-list for a nonstandard header/lib-file
4574dnl	$1 = the variable to return as result
4575dnl	$2 = the package name
4576dnl	$3 = the subdirectory, e.g., bin, include or lib
4577AC_DEFUN([CF_SUBDIR_PATH],
4578[
4579$1=
4580
4581CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4582
4583for cf_subdir_prefix in \
4584	/usr \
4585	/usr/local \
4586	/usr/pkg \
4587	/opt \
4588	/opt/local \
4589	[$]HOME
4590do
4591	CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
4592done
4593])dnl
4594dnl ---------------------------------------------------------------------------
4595dnl CF_TERM_HEADER version: 6 updated: 2021/01/02 09:31:20
4596dnl --------------
4597dnl Look for term.h, which is part of X/Open curses.  It defines the interface
4598dnl to terminfo database.  Usually it is in the same include-path as curses.h,
4599dnl but some packagers change this, breaking various applications.
4600AC_DEFUN([CF_TERM_HEADER],[
4601AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
4602case "${cf_cv_ncurses_header}" in
4603(*/ncurses.h|*/ncursesw.h)
4604	cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
4605	;;
4606(*)
4607	cf_term_header=term.h
4608	;;
4609esac
4610
4611for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
4612do
4613AC_TRY_COMPILE([#include <stdio.h>
4614#include <${cf_cv_ncurses_header:-curses.h}>
4615#include <$cf_test>
4616],[int x = auto_left_margin; (void)x],[
4617	cf_cv_term_header="$cf_test"],[
4618	cf_cv_term_header=unknown
4619	])
4620	test "$cf_cv_term_header" != unknown && break
4621done
4622])
4623
4624# Set definitions to allow ifdef'ing to accommodate subdirectories
4625
4626case "$cf_cv_term_header" in
4627(*term.h)
4628	AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
4629	;;
4630esac
4631
4632case "$cf_cv_term_header" in
4633(ncurses/term.h)
4634	AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
4635	;;
4636(ncursesw/term.h)
4637	AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
4638	;;
4639esac
4640])dnl
4641dnl ---------------------------------------------------------------------------
4642dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
4643dnl ---------------
4644dnl Define a top_builddir symbol, for applications that need an absolute path.
4645AC_DEFUN([CF_TOP_BUILDDIR],
4646[
4647top_builddir=ifelse($1,,`pwd`,$1)
4648AC_SUBST(top_builddir)
4649])dnl
4650dnl ---------------------------------------------------------------------------
4651dnl CF_TRY_XOPEN_SOURCE version: 4 updated: 2022/09/10 15:16:16
4652dnl -------------------
4653dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
4654dnl can define it successfully.
4655AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
4656AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
4657	AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
4658	[cf_cv_xopen_source=no],
4659	[cf_save="$CPPFLAGS"
4660	 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
4661	 AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
4662		[cf_cv_xopen_source=no],
4663		[cf_cv_xopen_source=$cf_XOPEN_SOURCE])
4664		CPPFLAGS="$cf_save"
4665	])
4666])
4667
4668if test "$cf_cv_xopen_source" != no ; then
4669	CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
4670	CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
4671	cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
4672	CF_APPEND_CFLAGS($cf_temp_xopen_source)
4673fi
4674])
4675dnl ---------------------------------------------------------------------------
4676dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
4677dnl --------
4678dnl Make an uppercase version of a variable
4679dnl $1=uppercase($2)
4680AC_DEFUN([CF_UPPER],
4681[
4682$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4683])dnl
4684dnl ---------------------------------------------------------------------------
4685dnl CF_UTF8_LIB version: 10 updated: 2023/01/11 04:05:23
4686dnl -----------
4687dnl Check for multibyte support, and if not found, utf8 compatibility library
4688AC_DEFUN([CF_UTF8_LIB],
4689[
4690AC_HAVE_HEADERS(wchar.h)
4691AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
4692	cf_save_LIBS="$LIBS"
4693	AC_TRY_LINK([
4694$ac_includes_default
4695#ifdef HAVE_WCHAR_H
4696#include <wchar.h>
4697#endif
4698],[putwc(0,0);],
4699	[cf_cv_utf8_lib=yes],
4700	[CF_FIND_LINKAGE([
4701#include <libutf8.h>],[putwc(0,0);],utf8,
4702		[cf_cv_utf8_lib=add-on],
4703		[cf_cv_utf8_lib=no])
4704])])
4705
4706# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
4707# ncurses/ncursesw:
4708if test "$cf_cv_utf8_lib" = "add-on" ; then
4709	AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
4710	CF_ADD_INCDIR($cf_cv_header_path_utf8)
4711	CF_ADD_LIBDIR($cf_cv_library_path_utf8)
4712	CF_ADD_LIBS($cf_cv_library_file_utf8)
4713fi
4714])dnl
4715dnl ---------------------------------------------------------------------------
4716dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
4717dnl ----------
4718dnl Use AC_VERBOSE w/o the warnings
4719AC_DEFUN([CF_VERBOSE],
4720[test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
4721CF_MSG_LOG([$1])
4722])dnl
4723dnl ---------------------------------------------------------------------------
4724dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
4725dnl ---------------
4726dnl Check for compiler-support for weak symbols.
4727dnl This works with "recent" gcc.
4728AC_DEFUN([CF_WEAK_SYMBOLS],[
4729AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
4730
4731AC_TRY_COMPILE([
4732#include <stdio.h>],
4733[
4734#if defined(__GNUC__)
4735#  if defined __USE_ISOC99
4736#    define _cat_pragma(exp)	_Pragma(#exp)
4737#    define _weak_pragma(exp)	_cat_pragma(weak name)
4738#  else
4739#    define _weak_pragma(exp)
4740#  endif
4741#  define _declare(name)	__extension__ extern __typeof__(name) name
4742#  define weak_symbol(name)	_weak_pragma(name) _declare(name) __attribute__((weak))
4743#endif
4744
4745weak_symbol(fopen);
4746],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
4747])
4748])dnl
4749dnl ---------------------------------------------------------------------------
4750dnl CF_WITH_ADA_COMPILER version: 3 updated: 2023/10/28 11:59:01
4751dnl --------------------
4752dnl Command-line option to specify the Ada95 compiler.
4753AC_DEFUN([CF_WITH_ADA_COMPILER],[
4754AC_MSG_CHECKING(for Ada95 compiler)
4755AC_ARG_WITH(ada-compiler,
4756	[[  --with-ada-compiler[=CMD] use CMD as Ada95 compiler (default: gnatmake)]],
4757	[cf_ada_compiler=$withval],
4758	[cf_ada_compiler=gnatmake])
4759AC_SUBST(cf_ada_compiler)
4760AC_MSG_RESULT($cf_ada_compiler)
4761])dnl
4762dnl ---------------------------------------------------------------------------
4763dnl CF_WITH_ADA_INCLUDE version: 3 updated: 2023/10/28 11:59:01
4764dnl -------------------
4765dnl Command-line option to specify where Ada includes will install.
4766AC_DEFUN([CF_WITH_ADA_INCLUDE],[
4767AC_MSG_CHECKING(for Ada95 include directory)
4768CF_WITH_PATH(ada-include,
4769   [  --with-ada-include=DIR  find Ada95 includes in DIR],
4770   ADA_INCLUDE,
4771   PREFIX/share/ada/adainclude,
4772   [$]prefix/share/ada/adainclude)
4773AC_SUBST(ADA_INCLUDE)
4774AC_MSG_RESULT($ADA_INCLUDE)
4775])dnl
4776dnl ---------------------------------------------------------------------------
4777dnl CF_WITH_ADA_LIBNAME version: 3 updated: 2023/11/22 20:48:30
4778dnl -------------------
4779dnl CF_WITH_ADA_LIBNAME
4780dnl -------------------
4781dnl Command-line option to specify how to name the resulting Ada library.
4782dnl $1 = default value
4783AC_DEFUN([CF_WITH_ADA_LIBNAME],[
4784AC_MSG_CHECKING(for Ada95 curses library name)
4785AC_ARG_WITH(ada-libname,
4786   [[  --with-ada-libname[=XXX]  use XXX as Ada95 library name]],
4787   ADA_LIBNAME=[$]withval,
4788   ADA_LIBNAME=$1)
4789case "x$ADA_LIBNAME" in
4790(x|xyes|xno)
4791	ADA_LIBNAME=$1
4792	;;
4793esac
4794AC_SUBST(ADA_LIBNAME)
4795AC_MSG_RESULT($ADA_LIBNAME)
4796])dnl
4797dnl ---------------------------------------------------------------------------
4798dnl CF_WITH_ADA_OBJECTS version: 3 updated: 2023/10/28 11:59:01
4799dnl -------------------
4800dnl Command-line option to specify where Ada objects will install.
4801AC_DEFUN([CF_WITH_ADA_OBJECTS],[
4802AC_MSG_CHECKING(for Ada95 object directory)
4803CF_WITH_PATH(ada-objects,
4804   [  --with-ada-objects=DIR  find Ada95 objects in DIR],
4805   ADA_OBJECTS,
4806   PREFIX/lib/ada/adalib,
4807   [$]prefix/lib/ada/adalib)
4808AC_SUBST(ADA_OBJECTS)
4809AC_MSG_RESULT($ADA_OBJECTS)
4810])dnl
4811dnl ---------------------------------------------------------------------------
4812dnl CF_WITH_ADA_SHAREDLIB version: 6 updated: 2023/10/28 11:59:01
4813dnl ---------------------
4814dnl Command-line option to specify if an Ada95 shared library should be built,
4815dnl and optionally what its soname should be.
4816AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
4817AC_REQUIRE([CF_GNAT_PROJECTS])
4818AC_MSG_CHECKING(whether to build an Ada95 shared library)
4819AC_ARG_WITH(ada-sharedlib,
4820	[  --with-ada-sharedlib    build Ada95 shared library; requires GNAT project support],
4821	[with_ada_sharedlib=$withval],
4822	[with_ada_sharedlib=no])
4823cf_ada_sharedlib_warn=no
4824
4825if test "x$with_ada_sharedlib" != xno
4826then
4827	if test "x$cf_gnat_projects" != xyes
4828	then
4829		with_ada_sharedlib=no
4830		cf_ada_sharedlib_warn=yes
4831	fi
4832fi
4833
4834AC_MSG_RESULT($with_ada_sharedlib)
4835if test "x$cf_ada_sharedlib_warn" != xno
4836then
4837	AC_MSG_WARN(disabling Ada95 shared library since GNAT projects are not supported)
4838fi
4839
4840ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
4841MAKE_ADA_SHAREDLIB="#"
4842
4843if test "x$with_ada_sharedlib" != xno
4844then
4845	MAKE_ADA_SHAREDLIB=
4846	if test "x$with_ada_sharedlib" != xyes
4847	then
4848		ADA_SHAREDLIB="$with_ada_sharedlib"
4849	fi
4850fi
4851
4852AC_SUBST(ADA_SHAREDLIB)
4853AC_SUBST(MAKE_ADA_SHAREDLIB)
4854])dnl
4855dnl ---------------------------------------------------------------------------
4856dnl CF_WITH_CURSES_DIR version: 4 updated: 2021/01/02 19:22:58
4857dnl ------------------
4858dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
4859dnl libraries.
4860AC_DEFUN([CF_WITH_CURSES_DIR],[
4861
4862AC_MSG_CHECKING(for specific curses-directory)
4863AC_ARG_WITH(curses-dir,
4864	[  --with-curses-dir=DIR   directory in which (n)curses is installed],
4865	[cf_cv_curses_dir=$withval],
4866	[cf_cv_curses_dir=no])
4867AC_MSG_RESULT($cf_cv_curses_dir)
4868
4869if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
4870then
4871	CF_PATH_SYNTAX(withval)
4872	if test -d "$cf_cv_curses_dir"
4873	then
4874		CF_ADD_INCDIR($cf_cv_curses_dir/include)
4875		CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
4876	fi
4877fi
4878])dnl
4879dnl ---------------------------------------------------------------------------
4880dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
4881dnl ------------------
4882dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
4883dnl "lib" prefix, e.g., because it used the dll naming convention.
4884dnl
4885dnl $1 = variable to set
4886AC_DEFUN([CF_WITH_LIB_PREFIX],
4887[
4888AC_MSG_CHECKING(if you want to have a library-prefix)
4889AC_ARG_WITH(lib-prefix,
4890	[  --with-lib-prefix       override library-prefix],
4891	[with_lib_prefix=$withval],
4892	[with_lib_prefix=auto])
4893AC_MSG_RESULT($with_lib_prefix)
4894
4895if test "$with_lib_prefix" = auto
4896then
4897	CF_LIB_PREFIX($1)
4898elif test "$with_lib_prefix" = no
4899then
4900	LIB_PREFIX=
4901else
4902	LIB_PREFIX=$with_lib_prefix
4903fi
4904])dnl
4905dnl ---------------------------------------------------------------------------
4906dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
4907dnl ------------
4908dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
4909dnl defaulting to yes/no.
4910dnl
4911dnl $1 = option name
4912dnl $2 = help-text
4913dnl $3 = environment variable to set
4914dnl $4 = default value, shown in the help-message, must be a constant
4915dnl $5 = default value, if it is an expression & cannot be in the help-message
4916dnl
4917AC_DEFUN([CF_WITH_PATH],
4918[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
4919ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
4920if ifelse([$5],,true,[test -n "$5"]) ; then
4921CF_PATH_SYNTAX(withval)
4922fi
4923eval $3="$withval"
4924AC_SUBST($3)dnl
4925])dnl
4926dnl ---------------------------------------------------------------------------
4927dnl CF_WITH_PKG_CONFIG_LIBDIR version: 23 updated: 2023/11/22 20:48:30
4928dnl -------------------------
4929dnl Allow the choice of the pkg-config library directory to be overridden.
4930dnl
4931dnl pkg-config uses a search-list built from these colon-separated lists of
4932dnl directories:
4933dnl a) $PKG_CONFIG_PATH (tested first, added if set)
4934dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
4935dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
4936dnl
4937dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
4938dnl optionally ignores $PKG_CONFIG_LIBDIR.  Very old versions of pkg-config,
4939dnl e.g., Solaris 10 also do not recognize $PKG_CONFIG_LIBDIR.
4940AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
4941
4942case "$PKG_CONFIG" in
4943(no|none|yes)
4944	AC_MSG_CHECKING(for pkg-config library directory)
4945	;;
4946(*)
4947	AC_MSG_CHECKING(for $PKG_CONFIG library directory)
4948	;;
4949esac
4950
4951# if $PKG_CONFIG_LIBDIR is set, try to use that
4952if test -n "$PKG_CONFIG_PATH"; then
4953	cf_search_path=`echo "$PKG_CONFIG_PATH" | sed -e 's/:/ /g' -e 's,^[[ 	]]*,,' -e 's,[[ 	]]*$,,'`
4954elif test -n "$PKG_CONFIG_LIBDIR"; then
4955	cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ 	]]*,,' -e 's,[[ 	]]*$,,'`
4956else
4957	cf_search_path=auto
4958fi
4959
4960# if the option is used, let that override.  otherwise default to "libdir"
4961AC_ARG_WITH(pkg-config-libdir,
4962	[[  --with-pkg-config-libdir[=XXX] use given directory for installing pc-files]],
4963	[cf_search_path=$withval],
4964	[test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
4965
4966case "x$cf_search_path" in
4967(xlibdir)
4968	PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
4969	AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
4970	cf_search_path=
4971	;;
4972(x)
4973	;;
4974(x/*\ *)
4975	PKG_CONFIG_LIBDIR=
4976	;;
4977(x/*)
4978	PKG_CONFIG_LIBDIR="$cf_search_path"
4979	AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
4980	cf_search_path=
4981	;;
4982(xyes|xauto)
4983	AC_MSG_RESULT(auto)
4984	cf_search_path=
4985	# Look for the library directory using the same prefix as the executable
4986	AC_MSG_CHECKING(for search-list)
4987	if test "x$PKG_CONFIG" != xnone
4988	then
4989		# works for pkg-config since version 0.24 (2009)
4990		# works for pkgconf since version 0.8.3 (2012)
4991		for cf_pkg_program in \
4992			`echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
4993			pkg-config \
4994			pkgconf
4995		do
4996			cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
4997			test -n "$cf_search_path" && break
4998		done
4999
5000		# works for pkg-config since import in 2005 of original 2001 HP code.
5001		test -z "$cf_search_path" && \
5002		cf_search_path=`
5003		"$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
5004/^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
5005	sub(\"^[[^']]*'\",\"\"); \
5006	sub(\"'.*\",\"\"); \
5007	printf \" %s\", \\[$]0; } \
5008{ next; } \
5009"`
5010	fi
5011
5012	AC_MSG_RESULT($cf_search_path)
5013	;;
5014(*)
5015	AC_MSG_ERROR(Unexpected option value: $cf_search_path)
5016	;;
5017esac
5018
5019if test -n "$cf_search_path"
5020then
5021	AC_MSG_CHECKING(for first directory)
5022	cf_pkg_config_path=none
5023	for cf_config in $cf_search_path
5024	do
5025		if test -d "$cf_config"
5026		then
5027			cf_pkg_config_path=$cf_config
5028			break
5029		fi
5030	done
5031	AC_MSG_RESULT($cf_pkg_config_path)
5032
5033	if test "x$cf_pkg_config_path" != xnone ; then
5034		# limit this to the first directory found
5035		PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
5036	fi
5037
5038	if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
5039	then
5040		AC_MSG_CHECKING(for workaround)
5041		if test "$prefix" = "NONE" ; then
5042			cf_prefix="$ac_default_prefix"
5043		else
5044			cf_prefix="$prefix"
5045		fi
5046		eval cf_libdir=$libdir
5047		cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
5048		cf_backup=
5049		for cf_config in $cf_search_path
5050		do
5051			case $cf_config in
5052			$cf_libdir/pkgconfig)
5053				PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
5054				break
5055				;;
5056			*)
5057				test -z "$cf_backup" && cf_backup=$cf_config
5058				;;
5059			esac
5060		done
5061		test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
5062		AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
5063	fi
5064fi
5065
5066AC_SUBST(PKG_CONFIG_LIBDIR)
5067])dnl
5068dnl ---------------------------------------------------------------------------
5069dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
5070dnl ---------------
5071dnl Check for POSIX thread library.
5072AC_DEFUN([CF_WITH_PTHREAD],
5073[
5074AC_MSG_CHECKING(if you want to link with the pthread library)
5075AC_ARG_WITH(pthread,
5076	[  --with-pthread          use POSIX thread library],
5077	[with_pthread=$withval],
5078	[with_pthread=no])
5079AC_MSG_RESULT($with_pthread)
5080
5081if test "$with_pthread" != no ; then
5082	AC_CHECK_HEADER(pthread.h,[
5083	AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
5084
5085	for cf_lib_pthread in pthread c_r
5086	do
5087	    AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
5088	    cf_save_LIBS="$LIBS"
5089	    CF_ADD_LIB($cf_lib_pthread)
5090	    AC_TRY_LINK([
5091#include <pthread.h>
5092],[
5093		int rc = pthread_create(0,0,0,0);
5094		int r2 = pthread_mutexattr_settype(0, 0);
5095],[with_pthread=yes],[with_pthread=no])
5096	    LIBS="$cf_save_LIBS"
5097	    AC_MSG_RESULT($with_pthread)
5098	    test "$with_pthread" = yes && break
5099	done
5100
5101	if test "$with_pthread" = yes ; then
5102	    CF_ADD_LIB($cf_lib_pthread)
5103	    AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
5104	else
5105	    AC_MSG_ERROR(Cannot link with pthread library)
5106	fi
5107	])
5108fi
5109])
5110dnl ---------------------------------------------------------------------------
5111dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
5112dnl ---------------
5113dnl For testing, override the derived host system-type which is used to decide
5114dnl things such as the linker commands used to build shared libraries.  This is
5115dnl normally chosen automatically based on the type of system which you are
5116dnl building on.  We use it for testing the configure script.
5117dnl
5118dnl This is different from the --host option: it is used only for testing parts
5119dnl of the configure script which would not be reachable with --host since that
5120dnl relies on the build environment being real, rather than mocked up.
5121AC_DEFUN([CF_WITH_SYSTYPE],[
5122CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
5123AC_ARG_WITH(system-type,
5124	[  --with-system-type=XXX  test: override derived host system-type],
5125[AC_MSG_WARN(overriding system type to $withval)
5126	cf_cv_system_name=$withval
5127	host_os=$withval
5128])
5129])dnl
5130dnl ---------------------------------------------------------------------------
5131dnl CF_XOPEN_SOURCE version: 67 updated: 2023/09/06 18:55:27
5132dnl ---------------
5133dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5134dnl or adapt to the vendor's definitions to get equivalent functionality,
5135dnl without losing the common non-POSIX features.
5136dnl
5137dnl Parameters:
5138dnl	$1 is the nominal value for _XOPEN_SOURCE
5139dnl	$2 is the nominal value for _POSIX_C_SOURCE
5140dnl
5141dnl The default case prefers _XOPEN_SOURCE over _POSIX_C_SOURCE if the
5142dnl implementation predefines it, because X/Open and most implementations agree
5143dnl that the latter is a legacy or "aligned" value.
5144dnl
5145dnl Because _XOPEN_SOURCE is preferred, if defining _POSIX_C_SOURCE turns
5146dnl that off, then refrain from setting _POSIX_C_SOURCE explicitly.
5147dnl
5148dnl References:
5149dnl https://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html
5150dnl https://docs.oracle.com/cd/E19253-01/816-5175/standards-5/index.html
5151dnl https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
5152AC_DEFUN([CF_XOPEN_SOURCE],[
5153AC_REQUIRE([AC_CANONICAL_HOST])
5154AC_REQUIRE([CF_POSIX_VISIBLE])
5155
5156if test "$cf_cv_posix_visible" = no; then
5157
5158cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
5159cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
5160cf_xopen_source=
5161
5162case "$host_os" in
5163(aix[[4-7]]*)
5164	cf_xopen_source="-D_ALL_SOURCE"
5165	;;
5166(darwin[[0-8]].*)
5167	cf_xopen_source="-D_APPLE_C_SOURCE"
5168	;;
5169(darwin*)
5170	cf_xopen_source="-D_DARWIN_C_SOURCE"
5171	cf_XOPEN_SOURCE=
5172	;;
5173(freebsd*|dragonfly*|midnightbsd*)
5174	# 5.x headers associate
5175	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5176	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5177	cf_POSIX_C_SOURCE=200112L
5178	cf_XOPEN_SOURCE=600
5179	cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5180	;;
5181(hpux11*)
5182	cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
5183	;;
5184(hpux*)
5185	cf_xopen_source="-D_HPUX_SOURCE"
5186	;;
5187(irix[[56]].*)
5188	cf_xopen_source="-D_SGI_SOURCE"
5189	cf_XOPEN_SOURCE=
5190	;;
5191(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*|linux*uclibc)
5192	CF_GNU_SOURCE($cf_XOPEN_SOURCE)
5193	;;
5194(minix*)
5195	cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
5196	;;
5197(mirbsd*)
5198	# setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
5199	cf_XOPEN_SOURCE=
5200	CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
5201	;;
5202(netbsd*)
5203	cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5204	;;
5205(openbsd[[6-9]]*)
5206	# OpenBSD 6.x has broken locale support, both compile-time and runtime.
5207	# see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
5208	# Abusing the conformance level is a workaround.
5209	AC_MSG_WARN(this system does not provide usable locale support)
5210	cf_xopen_source="-D_BSD_SOURCE"
5211	cf_XOPEN_SOURCE=700
5212	;;
5213(openbsd[[4-5]]*)
5214	# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
5215	cf_xopen_source="-D_BSD_SOURCE"
5216	cf_XOPEN_SOURCE=600
5217	;;
5218(openbsd*)
5219	# setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5220	;;
5221(osf[[45]]*)
5222	cf_xopen_source="-D_OSF_SOURCE"
5223	;;
5224(nto-qnx*)
5225	cf_xopen_source="-D_QNX_SOURCE"
5226	;;
5227(sco*)
5228	# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5229	;;
5230(solaris2.*)
5231	cf_xopen_source="-D__EXTENSIONS__"
5232	cf_cv_xopen_source=broken
5233	;;
5234(sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
5235	cf_XOPEN_SOURCE=
5236	cf_POSIX_C_SOURCE=
5237	;;
5238(*)
5239	CF_TRY_XOPEN_SOURCE
5240	cf_save_xopen_cppflags="$CPPFLAGS"
5241	CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
5242	# Some of these niche implementations use copy/paste, double-check...
5243	if test "$cf_cv_xopen_source" = no ; then
5244		CF_VERBOSE(checking if _POSIX_C_SOURCE interferes with _XOPEN_SOURCE)
5245		AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,,[
5246			AC_MSG_WARN(_POSIX_C_SOURCE definition is not usable)
5247			CPPFLAGS="$cf_save_xopen_cppflags"])
5248	fi
5249	;;
5250esac
5251
5252if test -n "$cf_xopen_source" ; then
5253	CF_APPEND_CFLAGS($cf_xopen_source,true)
5254fi
5255
5256dnl In anything but the default case, we may have system-specific setting
5257dnl which is still not guaranteed to provide all of the entrypoints that
5258dnl _XOPEN_SOURCE would yield.
5259if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
5260	AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
5261	AC_TRY_COMPILE([#include <stdlib.h>],[
5262#ifndef _XOPEN_SOURCE
5263#error _XOPEN_SOURCE is not defined
5264#endif],
5265	[cf_XOPEN_SOURCE_set=yes],
5266	[cf_XOPEN_SOURCE_set=no])
5267	AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
5268	if test "$cf_XOPEN_SOURCE_set" = yes
5269	then
5270		AC_TRY_COMPILE([#include <stdlib.h>],[
5271#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
5272#error (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
5273#endif],
5274		[cf_XOPEN_SOURCE_set_ok=yes],
5275		[cf_XOPEN_SOURCE_set_ok=no])
5276		if test "$cf_XOPEN_SOURCE_set_ok" = no
5277		then
5278			AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
5279		fi
5280	else
5281		CF_TRY_XOPEN_SOURCE
5282	fi
5283fi
5284fi # cf_cv_posix_visible
5285])
5286dnl ---------------------------------------------------------------------------
5287dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
5288dnl ------------------
5289dnl Trim something using sed, then trim extra whitespace
5290dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
5291define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[	]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl
5292dnl ---------------------------------------------------------------------------
5293dnl CF__XOPEN_SOURCE_BODY version: 2 updated: 2023/02/18 17:41:25
5294dnl ---------------------
5295dnl body of test when test-compiling for _XOPEN_SOURCE check
5296define([CF__XOPEN_SOURCE_BODY],
5297[
5298#ifndef _XOPEN_SOURCE
5299#error _XOPEN_SOURCE is not defined
5300#endif
5301])
5302dnl ---------------------------------------------------------------------------
5303dnl CF__XOPEN_SOURCE_HEAD version: 2 updated: 2023/02/18 17:41:25
5304dnl ---------------------
5305dnl headers to include when test-compiling for _XOPEN_SOURCE check
5306define([CF__XOPEN_SOURCE_HEAD],
5307[
5308$ac_includes_default
5309])
5310