1dnl***************************************************************************
2dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
3dnl                                                                          *
4dnl Permission is hereby granted, free of charge, to any person obtaining a  *
5dnl copy of this software and associated documentation files (the            *
6dnl "Software"), to deal in the Software without restriction, including      *
7dnl without limitation the rights to use, copy, modify, merge, publish,      *
8dnl distribute, distribute with modifications, sublicense, and/or sell       *
9dnl copies of the Software, and to permit persons to whom the Software is    *
10dnl furnished to do so, subject to the following conditions:                 *
11dnl                                                                          *
12dnl The above copyright notice and this permission notice shall be included  *
13dnl in all copies or substantial portions of the Software.                   *
14dnl                                                                          *
15dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
16dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
17dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
18dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
19dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
20dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
21dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
22dnl                                                                          *
23dnl Except as contained in this notice, the name(s) of the above copyright   *
24dnl holders shall not be used in advertising or otherwise to promote the     *
25dnl sale, use or other dealings in this Software without prior written       *
26dnl authorization.                                                           *
27dnl***************************************************************************
28dnl
29dnl Author: Thomas E. Dickey 1995-on
30dnl
31dnl $Id: aclocal.m4,v 1.470 2008/10/25 22:15:32 tom Exp $
32dnl Macros used in NCURSES auto-configuration script.
33dnl
34dnl These macros are maintained separately from NCURSES.  The copyright on
35dnl this file applies to the aggregation of macros and does not affect use of
36dnl these macros in other applications.
37dnl
38dnl See http://invisible-island.net/autoconf/ for additional information.
39dnl
40dnl ---------------------------------------------------------------------------
41dnl ---------------------------------------------------------------------------
42dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
43dnl -------------------
44dnl Inserted as requested by gettext 0.10.40
45dnl File from /usr/share/aclocal
46dnl codeset.m4
47dnl ====================
48dnl serial AM1
49dnl
50dnl From Bruno Haible.
51AC_DEFUN([AM_LANGINFO_CODESET],
52[
53  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
54    [AC_TRY_LINK([#include <langinfo.h>],
55      [char* cs = nl_langinfo(CODESET);],
56      am_cv_langinfo_codeset=yes,
57      am_cv_langinfo_codeset=no)
58    ])
59  if test $am_cv_langinfo_codeset = yes; then
60    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
61      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
62  fi
63])dnl
64dnl ---------------------------------------------------------------------------
65dnl CF_ADA_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
66dnl -------------------
67dnl Construct the list of include-options for the C programs in the Ada95
68dnl binding.
69AC_DEFUN([CF_ADA_INCLUDE_DIRS],
70[
71ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
72if test "$srcdir" != "."; then
73	ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
74fi
75if test "$GCC" != yes; then
76	ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
77elif test "$includedir" != "/usr/include"; then
78	if test "$includedir" = '${prefix}/include' ; then
79		if test $prefix != /usr ; then
80			ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
81		fi
82	else
83		ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
84	fi
85fi
86AC_SUBST(ACPPFLAGS)
87])dnl
88dnl ---------------------------------------------------------------------------
89dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
90dnl -------------
91dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
92dnl The second parameter if given makes this macro verbose.
93dnl
94dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
95dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
96dnl confused by the quotes (which require backslashes to keep them usable).
97AC_DEFUN([CF_ADD_CFLAGS],
98[
99cf_fix_cppflags=no
100cf_new_cflags=
101cf_new_cppflags=
102cf_new_extra_cppflags=
103
104for cf_add_cflags in $1
105do
106case $cf_fix_cppflags in
107no)
108	case $cf_add_cflags in #(vi
109	-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
110		case $cf_add_cflags in
111		-D*)
112			cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
113
114			test "${cf_add_cflags}" != "${cf_tst_cflags}" \
115			&& test -z "${cf_tst_cflags}" \
116			&& cf_fix_cppflags=yes
117
118			if test $cf_fix_cppflags = yes ; then
119				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
120				continue
121			elif test "${cf_tst_cflags}" = "\"'" ; then
122				cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
123				continue
124			fi
125			;;
126		esac
127		case "$CPPFLAGS" in
128		*$cf_add_cflags) #(vi
129			;;
130		*) #(vi
131			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
132			;;
133		esac
134		;;
135	*)
136		cf_new_cflags="$cf_new_cflags $cf_add_cflags"
137		;;
138	esac
139	;;
140yes)
141	cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
142
143	cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
144
145	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
146	&& test -z "${cf_tst_cflags}" \
147	&& cf_fix_cppflags=no
148	;;
149esac
150done
151
152if test -n "$cf_new_cflags" ; then
153	ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
154	CFLAGS="$CFLAGS $cf_new_cflags"
155fi
156
157if test -n "$cf_new_cppflags" ; then
158	ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
159	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
160fi
161
162if test -n "$cf_new_extra_cppflags" ; then
163	ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
164	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
165fi
166
167AC_SUBST(EXTRA_CPPFLAGS)
168
169])dnl
170dnl ---------------------------------------------------------------------------
171dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
172dnl -------------
173dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
174dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
175dnl but old versions (and some misinstalled ones) need that.  To make things
176dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
177dnl the include-path).
178AC_DEFUN([CF_ADD_INCDIR],
179[
180if test -n "$1" ; then
181  for cf_add_incdir in $1
182  do
183	while test $cf_add_incdir != /usr/include
184	do
185	  if test -d $cf_add_incdir
186	  then
187		cf_have_incdir=no
188		if test -n "$CFLAGS$CPPFLAGS" ; then
189		  # a loop is needed to ensure we can add subdirs of existing dirs
190		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
191			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
192			  cf_have_incdir=yes; break
193			fi
194		  done
195		fi
196
197		if test "$cf_have_incdir" = no ; then
198          if test "$cf_add_incdir" = /usr/local/include ; then
199			if test "$GCC" = yes
200			then
201			  cf_save_CPPFLAGS=$CPPFLAGS
202			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
203			  AC_TRY_COMPILE([#include <stdio.h>],
204				  [printf("Hello")],
205				  [],
206				  [cf_have_incdir=yes])
207			  CPPFLAGS=$cf_save_CPPFLAGS
208			fi
209		  fi
210		fi
211
212		if test "$cf_have_incdir" = no ; then
213		  CF_VERBOSE(adding $cf_add_incdir to include-path)
214		  ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
215
216          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
217          test "$cf_top_incdir" = "$cf_add_incdir" && break
218          cf_add_incdir="$cf_top_incdir"
219		else
220		  break
221		fi
222	  fi
223	done
224  done
225fi
226])dnl
227dnl ---------------------------------------------------------------------------
228dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
229dnl -------------
230dnl	Adds to the library-path
231dnl
232dnl	Some machines have trouble with multiple -L options.
233dnl
234dnl $1 is the (list of) directory(s) to add
235dnl $2 is the optional name of the variable to update (default LDFLAGS)
236dnl
237AC_DEFUN([CF_ADD_LIBDIR],
238[
239if test -n "$1" ; then
240  for cf_add_libdir in $1
241  do
242    if test $cf_add_libdir = /usr/lib ; then
243      :
244    elif test -d $cf_add_libdir
245    then
246      cf_have_libdir=no
247      if test -n "$LDFLAGS$LIBS" ; then
248        # a loop is needed to ensure we can add subdirs of existing dirs
249        for cf_test_libdir in $LDFLAGS $LIBS ; do
250          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
251            cf_have_libdir=yes; break
252          fi
253        done
254      fi
255      if test "$cf_have_libdir" = no ; then
256        CF_VERBOSE(adding $cf_add_libdir to library-path)
257        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
258      fi
259    fi
260  done
261fi
262])dnl
263dnl ---------------------------------------------------------------------------
264dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
265dnl ------------------
266dnl Append to a search-list for a nonstandard header/lib-file
267dnl	$1 = the variable to return as result
268dnl	$2 = the package name
269dnl	$3 = the subdirectory, e.g., bin, include or lib
270dnl $4 = the directory under which we will test for subdirectories
271dnl $5 = a directory that we do not want $4 to match
272AC_DEFUN([CF_ADD_SUBDIR_PATH],
273[
274test "$4" != "$5" && \
275test -d "$4" && \
276ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
277	test -n "$verbose" && echo "	... testing for $3-directories under $4"
278	test -d $4/$3 &&          $1="[$]$1 $4/$3"
279	test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
280	test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
281	test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
282	test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
283}
284])dnl
285dnl ---------------------------------------------------------------------------
286dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
287dnl ----------------
288dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
289dnl in the sharutils 4.2 distribution.
290AC_DEFUN([CF_ANSI_CC_CHECK],
291[
292AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
293cf_cv_ansi_cc=no
294cf_save_CFLAGS="$CFLAGS"
295cf_save_CPPFLAGS="$CPPFLAGS"
296# Don't try gcc -ansi; that turns off useful extensions and
297# breaks some systems' header files.
298# AIX			-qlanglvl=ansi
299# Ultrix and OSF/1	-std1
300# HP-UX			-Aa -D_HPUX_SOURCE
301# SVR4			-Xc
302# UnixWare 1.2		(cannot use -Xc, since ANSI/POSIX clashes)
303for cf_arg in "-DCC_HAS_PROTOS" \
304	"" \
305	-qlanglvl=ansi \
306	-std1 \
307	-Ae \
308	"-Aa -D_HPUX_SOURCE" \
309	-Xc
310do
311	CF_ADD_CFLAGS($cf_arg)
312	AC_TRY_COMPILE(
313[
314#ifndef CC_HAS_PROTOS
315#if !defined(__STDC__) || (__STDC__ != 1)
316choke me
317#endif
318#endif
319],[
320	int test (int i, double x);
321	struct s1 {int (*f) (int a);};
322	struct s2 {int (*f) (double a);};],
323	[cf_cv_ansi_cc="$cf_arg"; break])
324done
325CFLAGS="$cf_save_CFLAGS"
326CPPFLAGS="$cf_save_CPPFLAGS"
327])
328
329if test "$cf_cv_ansi_cc" != "no"; then
330if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
331	CF_ADD_CFLAGS($cf_cv_ansi_cc)
332else
333	AC_DEFINE(CC_HAS_PROTOS)
334fi
335fi
336])dnl
337dnl ---------------------------------------------------------------------------
338dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
339dnl ---------------
340dnl For programs that must use an ANSI compiler, obtain compiler options that
341dnl will make it recognize prototypes.  We'll do preprocessor checks in other
342dnl macros, since tools such as unproto can fake prototypes, but only part of
343dnl the preprocessor.
344AC_DEFUN([CF_ANSI_CC_REQD],
345[AC_REQUIRE([CF_ANSI_CC_CHECK])
346if test "$cf_cv_ansi_cc" = "no"; then
347	AC_MSG_ERROR(
348[Your compiler does not appear to recognize prototypes.
349You have the following choices:
350	a. adjust your compiler options
351	b. get an up-to-date compiler
352	c. use a wrapper such as unproto])
353fi
354])dnl
355dnl ---------------------------------------------------------------------------
356dnl CF_AWK_BIG_PRINTF version: 2 updated: 2008/10/04 17:16:18
357dnl -----------------
358dnl Check if awk can handle big strings using printf.  Some older versions of
359dnl awk choke on large strings passed via "%s".
360dnl
361dnl $1 = desired string size
362dnl $2 = variable to set with result
363AC_DEFUN([CF_AWK_BIG_PRINTF],
364[
365    case x$AWK in #(vi
366    x)
367        eval $2=no
368        ;;
369    *) #(vi
370        if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
371            | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
372            eval $2=yes
373        else
374            eval $2=no
375        fi
376        ;;
377    esac
378])dnl
379dnl ---------------------------------------------------------------------------
380dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
381dnl ------------
382dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
383dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
384dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
385dnl
386dnl Treat the configuration-variable specially here, since we're directly
387dnl substituting its value (i.e., 1/0).
388dnl
389dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
390AC_DEFUN([CF_BOOL_DECL],
391[
392AC_MSG_CHECKING(if we should include stdbool.h)
393
394AC_CACHE_VAL(cf_cv_header_stdbool_h,[
395	AC_TRY_COMPILE([],[bool foo = false],
396		[cf_cv_header_stdbool_h=0],
397		[AC_TRY_COMPILE([
398#ifndef __BEOS__
399#include <stdbool.h>
400#endif
401],[bool foo = false],
402			[cf_cv_header_stdbool_h=1],
403			[cf_cv_header_stdbool_h=0])])])
404
405if test "$cf_cv_header_stdbool_h" = 1
406then	AC_MSG_RESULT(yes)
407else	AC_MSG_RESULT(no)
408fi
409
410AC_MSG_CHECKING([for builtin bool type])
411
412AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
413	AC_TRY_COMPILE([
414#include <stdio.h>
415#include <sys/types.h>
416],[bool x = false],
417		[ifelse($1,,cf_cv_builtin_bool,[$1])=1],
418		[ifelse($1,,cf_cv_builtin_bool,[$1])=0])
419	])
420
421if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
422then	AC_MSG_RESULT(yes)
423else	AC_MSG_RESULT(no)
424fi
425])dnl
426dnl ---------------------------------------------------------------------------
427dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
428dnl ------------
429dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
430dnl Don't bother looking for bool.h, since it's been deprecated.
431dnl
432dnl If the current compiler is C rather than C++, we get the bool definition
433dnl from <stdbool.h>.
434AC_DEFUN([CF_BOOL_SIZE],
435[
436AC_MSG_CHECKING([for size of bool])
437AC_CACHE_VAL(cf_cv_type_of_bool,[
438	rm -f cf_test.out
439	AC_TRY_RUN([
440#include <stdlib.h>
441#include <stdio.h>
442
443#if defined(__cplusplus)
444
445#ifdef HAVE_GXX_BUILTIN_H
446#include <g++/builtin.h>
447#elif HAVE_GPP_BUILTIN_H
448#include <gpp/builtin.h>
449#elif HAVE_BUILTIN_H
450#include <builtin.h>
451#endif
452
453#else
454
455#if $cf_cv_header_stdbool_h
456#include <stdbool.h>
457#endif
458
459#endif
460
461main()
462{
463	FILE *fp = fopen("cf_test.out", "w");
464	if (fp != 0) {
465		bool x = true;
466		if ((bool)(-x) >= 0)
467			fputs("unsigned ", fp);
468		if (sizeof(x) == sizeof(int))       fputs("int",  fp);
469		else if (sizeof(x) == sizeof(char)) fputs("char", fp);
470		else if (sizeof(x) == sizeof(short))fputs("short",fp);
471		else if (sizeof(x) == sizeof(long)) fputs("long", fp);
472		fclose(fp);
473	}
474	${cf_cv_main_return:-return}(0);
475}
476		],
477		[cf_cv_type_of_bool=`cat cf_test.out`
478		 if test -z "$cf_cv_type_of_bool"; then
479		   cf_cv_type_of_bool=unknown
480		 fi],
481		[cf_cv_type_of_bool=unknown],
482		[cf_cv_type_of_bool=unknown])
483	])
484	rm -f cf_test.out
485AC_MSG_RESULT($cf_cv_type_of_bool)
486if test "$cf_cv_type_of_bool" = unknown ; then
487	case .$NCURSES_BOOL in #(vi
488	.auto|.) NCURSES_BOOL=unsigned;;
489	esac
490	AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
491	cf_cv_type_of_bool=$NCURSES_BOOL
492fi
493])dnl
494dnl ---------------------------------------------------------------------------
495dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
496dnl -----------
497dnl If we're cross-compiling, allow the user to override the tools and their
498dnl options.  The configure script is oriented toward identifying the host
499dnl compiler, etc., but we need a build compiler to generate parts of the
500dnl source.
501dnl
502dnl $1 = default for $CPPFLAGS
503dnl $2 = default for $LIBS
504AC_DEFUN([CF_BUILD_CC],[
505AC_REQUIRE([CF_PROG_EXT])
506if test "$cross_compiling" = yes ; then
507
508	# defaults that we might want to override
509	: ${BUILD_CFLAGS:=''}
510	: ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
511	: ${BUILD_LDFLAGS:=''}
512	: ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
513	: ${BUILD_EXEEXT:='$x'}
514	: ${BUILD_OBJEXT:='o'}
515
516	AC_ARG_WITH(build-cc,
517		[  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
518		[BUILD_CC="$withval"],
519		[AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
520	AC_MSG_CHECKING(for native build C compiler)
521	AC_MSG_RESULT($BUILD_CC)
522
523	AC_MSG_CHECKING(for native build C preprocessor)
524	AC_ARG_WITH(build-cpp,
525		[  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
526		[BUILD_CPP="$withval"],
527		[BUILD_CPP='${BUILD_CC} -E'])
528	AC_MSG_RESULT($BUILD_CPP)
529
530	AC_MSG_CHECKING(for native build C flags)
531	AC_ARG_WITH(build-cflags,
532		[  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
533		[BUILD_CFLAGS="$withval"])
534	AC_MSG_RESULT($BUILD_CFLAGS)
535
536	AC_MSG_CHECKING(for native build C preprocessor-flags)
537	AC_ARG_WITH(build-cppflags,
538		[  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
539		[BUILD_CPPFLAGS="$withval"])
540	AC_MSG_RESULT($BUILD_CPPFLAGS)
541
542	AC_MSG_CHECKING(for native build linker-flags)
543	AC_ARG_WITH(build-ldflags,
544		[  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
545		[BUILD_LDFLAGS="$withval"])
546	AC_MSG_RESULT($BUILD_LDFLAGS)
547
548	AC_MSG_CHECKING(for native build linker-libraries)
549	AC_ARG_WITH(build-libs,
550		[  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
551		[BUILD_LIBS="$withval"])
552	AC_MSG_RESULT($BUILD_LIBS)
553
554	# this assumes we're on Unix.
555	BUILD_EXEEXT=
556	BUILD_OBJEXT=o
557
558	: ${BUILD_CC:='${CC}'}
559
560	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
561		AC_MSG_ERROR([Cross-build requires two compilers.
562Use --with-build-cc to specify the native compiler.])
563	fi
564
565else
566	: ${BUILD_CC:='${CC}'}
567	: ${BUILD_CPP:='${CPP}'}
568	: ${BUILD_CFLAGS:='${CFLAGS}'}
569	: ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
570	: ${BUILD_LDFLAGS:='${LDFLAGS}'}
571	: ${BUILD_LIBS:='${LIBS}'}
572	: ${BUILD_EXEEXT:='$x'}
573	: ${BUILD_OBJEXT:='o'}
574fi
575
576AC_SUBST(BUILD_CC)
577AC_SUBST(BUILD_CPP)
578AC_SUBST(BUILD_CFLAGS)
579AC_SUBST(BUILD_CPPFLAGS)
580AC_SUBST(BUILD_LDFLAGS)
581AC_SUBST(BUILD_LIBS)
582AC_SUBST(BUILD_EXEEXT)
583AC_SUBST(BUILD_OBJEXT)
584])dnl
585dnl ---------------------------------------------------------------------------
586dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
587dnl ---------------
588dnl Determine the default configuration into which we'll install ncurses.  This
589dnl can be overridden by the user's command-line options.  There's two items to
590dnl look for:
591dnl	1. the prefix (e.g., /usr)
592dnl	2. the header files (e.g., /usr/include/ncurses)
593dnl We'll look for a previous installation of ncurses and use the same defaults.
594dnl
595dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
596dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
597dnl programs from a vendor's.
598AC_DEFUN([CF_CFG_DEFAULTS],
599[
600AC_MSG_CHECKING(for prefix)
601if test "x$prefix" = "xNONE" ; then
602	case "$cf_cv_system_name" in
603		# non-vendor systems don't have a conflict
604	openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
605		prefix=/usr
606		;;
607	*)	prefix=$ac_default_prefix
608		;;
609	esac
610fi
611AC_MSG_RESULT($prefix)
612
613if test "x$prefix" = "xNONE" ; then
614AC_MSG_CHECKING(for default include-directory)
615test -n "$verbose" && echo 1>&AC_FD_MSG
616for cf_symbol in \
617	$includedir \
618	$includedir/ncurses \
619	$prefix/include \
620	$prefix/include/ncurses \
621	/usr/local/include \
622	/usr/local/include/ncurses \
623	/usr/include \
624	/usr/include/ncurses
625do
626	cf_dir=`eval echo $cf_symbol`
627	if test -f $cf_dir/curses.h ; then
628	if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
629		includedir="$cf_symbol"
630		test -n "$verbose"  && echo $ac_n "	found " 1>&AC_FD_MSG
631		break
632	fi
633	fi
634	test -n "$verbose"  && echo "	tested $cf_dir" 1>&AC_FD_MSG
635done
636AC_MSG_RESULT($includedir)
637fi
638])dnl
639dnl ---------------------------------------------------------------------------
640dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
641dnl ----------
642dnl Check if the terminal-capability database functions are available.  If not,
643dnl ncurses has a much-reduced version.
644AC_DEFUN([CF_CGETENT],[
645AC_MSG_CHECKING(for terminal-capability database functions)
646AC_CACHE_VAL(cf_cv_cgetent,[
647AC_TRY_LINK([
648#include <stdlib.h>],[
649	char temp[128];
650	char *buf = temp;
651	char *db_array = temp;
652	cgetent(&buf, /* int *, */ &db_array, "vt100");
653	cgetcap(buf, "tc", '=');
654	cgetmatch(buf, "tc");
655	],
656	[cf_cv_cgetent=yes],
657	[cf_cv_cgetent=no])
658])
659AC_MSG_RESULT($cf_cv_cgetent)
660test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
661])dnl
662dnl ---------------------------------------------------------------------------
663dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
664dnl --------------
665dnl Check if we're accidentally using a cache from a different machine.
666dnl Derive the system name, as a check for reusing the autoconf cache.
667dnl
668dnl If we've packaged config.guess and config.sub, run that (since it does a
669dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
670dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
671dnl which is useful in cross-compiles.
672dnl
673dnl Note: we would use $ac_config_sub, but that is one of the places where
674dnl autoconf 2.5x broke compatibility with autoconf 2.13
675AC_DEFUN([CF_CHECK_CACHE],
676[
677if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
678	ifelse([$1],,[AC_CANONICAL_HOST],[$1])
679	system_name="$host_os"
680else
681	system_name="`(uname -s -r) 2>/dev/null`"
682	if test -z "$system_name" ; then
683		system_name="`(hostname) 2>/dev/null`"
684	fi
685fi
686test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
687AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
688
689test -z "$system_name" && system_name="$cf_cv_system_name"
690test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
691
692if test ".$system_name" != ".$cf_cv_system_name" ; then
693	AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
694	AC_MSG_ERROR("Please remove config.cache and try again.")
695fi
696])dnl
697dnl ---------------------------------------------------------------------------
698dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
699dnl --------------
700dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
701dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
702dnl ourselves.
703dnl
704dnl $1 = the name to check
705dnl $2 = the assumed type
706AC_DEFUN([CF_CHECK_ERRNO],
707[
708AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
709    AC_TRY_COMPILE([
710#ifdef HAVE_STDLIB_H
711#include <stdlib.h>
712#endif
713#include <stdio.h>
714#include <sys/types.h>
715#include <errno.h> ],
716    ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
717    [cf_cv_dcl_$1=yes],
718    [cf_cv_dcl_$1=no])
719])
720
721if test "$cf_cv_dcl_$1" = no ; then
722    CF_UPPER(cf_result,decl_$1)
723    AC_DEFINE_UNQUOTED($cf_result)
724fi
725
726# It's possible (for near-UNIX clones) that the data doesn't exist
727CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
728])dnl
729dnl ---------------------------------------------------------------------------
730dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
731dnl --------------------
732dnl Check for existence of external data in the current set of libraries.  If
733dnl we can modify it, it's real enough.
734dnl $1 = the name to check
735dnl $2 = its type
736AC_DEFUN([CF_CHECK_EXTERN_DATA],
737[
738AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
739    AC_TRY_LINK([
740#undef $1
741extern $2 $1;
742],
743    [$1 = 2],
744    [cf_cv_have_$1=yes],
745    [cf_cv_have_$1=no])
746])
747
748if test "$cf_cv_have_$1" = yes ; then
749    CF_UPPER(cf_result,have_$1)
750    AC_DEFINE_UNQUOTED($cf_result)
751fi
752
753])dnl
754dnl ---------------------------------------------------------------------------
755dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
756dnl -------------------
757dnl Check if GPM is already linked with curses.  If so - and if the linkage
758dnl is not "weak" - warn about this because it can create problems linking
759dnl applications with ncurses.
760AC_DEFUN([CF_CHECK_GPM_WGETCH],[
761AC_CHECK_LIB(gpm,Gpm_Wgetch,[
762
763AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
764cf_cv_check_gpm_wgetch=unknown
765if test "$cross_compiling" != yes ; then
766
767cat >conftest.$ac_ext <<CF_EOF
768#include <gpm.h>
769int main()
770{
771	Gpm_Wgetch();
772	${cf_cv_main_return:-return}(0);
773}
774CF_EOF
775
776	cf_save_LIBS="$LIBS"
777	# This only works if we can look at the symbol table.  If a shared
778	# library is stripped for install, we cannot use that.  So we're forced
779	# to rely on the static library, noting that some packagers may not
780	# include it.
781	LIBS="-static -lgpm -dynamic $LIBS"
782	if AC_TRY_EVAL(ac_compile) ; then
783		if AC_TRY_EVAL(ac_link) ; then
784			cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
785			test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
786			test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
787		fi
788	fi
789	rm -f conftest*
790	LIBS="$cf_save_LIBS"
791fi
792])
793
794if test "$cf_cv_check_gpm_wgetch" != yes ; then
795	AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
796fi
797])])dnl
798dnl ---------------------------------------------------------------------------
799dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
800dnl -----------------
801dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
802dnl is a late feature for the standard and is not in some recent compilers
803dnl (1999/9/11).
804AC_DEFUN([CF_CPP_PARAM_INIT],
805[
806if test -n "$CXX"; then
807AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
808	AC_LANG_SAVE
809	AC_LANG_CPLUSPLUS
810	AC_TRY_RUN([
811class TEST {
812private:
813	int value;
814public:
815	TEST(int x = 1);
816	~TEST();
817};
818
819TEST::TEST(int x = 1)	// some compilers do not like second initializer
820{
821	value = x;
822}
823void main() { }
824],
825	[cf_cv_cpp_param_init=yes],
826	[cf_cv_cpp_param_init=no],
827	[cf_cv_cpp_param_init=unknown])
828	AC_LANG_RESTORE
829])
830fi
831test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
832])dnl
833dnl ---------------------------------------------------------------------------
834dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
835dnl ------------------
836dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
837dnl not be supported in g++ before 3.0
838AC_DEFUN([CF_CPP_STATIC_CAST],
839[
840if test -n "$CXX"; then
841
842AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
843	AC_LANG_SAVE
844	AC_LANG_CPLUSPLUS
845
846	AC_TRY_COMPILE([
847class NCursesPanel
848{
849public:
850  NCursesPanel(int nlines,
851	       int ncols,
852	       int begin_y = 0,
853	       int begin_x = 0)
854  {
855  }
856
857  ~NCursesPanel();
858};
859
860template<class T> class NCursesUserPanel : public NCursesPanel
861{
862public:
863  NCursesUserPanel (int nlines,
864		    int ncols,
865		    int begin_y = 0,
866		    int begin_x = 0,
867		    const T* p_UserData = static_cast<T*>(0))
868    : NCursesPanel (nlines, ncols, begin_y, begin_x)
869  {
870  };
871  NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
872  {
873  };
874
875  virtual ~NCursesUserPanel() {};
876};
877],[
878	const char* p_UserData = static_cast<char*>(0)],
879	[cf_cv_cpp_static_cast=yes],
880	[cf_cv_cpp_static_cast=no])
881
882	AC_LANG_RESTORE
883])
884
885fi
886
887test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
888])dnl
889dnl ---------------------------------------------------------------------------
890dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
891dnl -----------
892dnl Check if the C compiler supports "inline".
893dnl $1 is the name of a shell variable to set if inline is supported
894dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
895AC_DEFUN([CF_C_INLINE],[
896AC_C_INLINE
897$1=
898if test "$ac_cv_c_inline" != no ; then
899  $1=inline
900  if test "$INTEL_COMPILER" = yes
901  then
902    :
903  elif test "$GCC" = yes
904  then
905    AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
906      cf_save_CFLAGS=$CFLAGS
907      CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
908      AC_TRY_COMPILE([inline int foo(void) { return 1; }],
909      [${cf_cv_main_return:-return} foo()],
910      [cf_cv_gcc_inline=yes],
911      [cf_cv_gcc_inline=no])
912      CFLAGS=$cf_save_CFLAGS
913    ])
914    if test "$cf_cv_gcc_inline" = yes ; then
915        CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
916    fi
917  fi
918fi
919AC_SUBST($1)
920])dnl
921dnl ---------------------------------------------------------------------------
922dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
923dnl ----------
924dnl "dirname" is not portable, so we fake it with a shell script.
925AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
926dnl ---------------------------------------------------------------------------
927dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
928dnl ---------------
929AC_DEFUN([CF_DIRS_TO_MAKE],
930[
931DIRS_TO_MAKE="lib"
932for cf_item in $cf_list_models
933do
934	CF_OBJ_SUBDIR($cf_item,cf_subdir)
935	for cf_item2 in $DIRS_TO_MAKE
936	do
937		test $cf_item2 = $cf_subdir && break
938	done
939	test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
940done
941for cf_dir in $DIRS_TO_MAKE
942do
943	test ! -d $cf_dir && mkdir $cf_dir
944done
945AC_SUBST(DIRS_TO_MAKE)
946])dnl
947dnl ---------------------------------------------------------------------------
948dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
949dnl ----------------
950dnl Combine no-leak checks with the libraries or tools that are used for the
951dnl checks.
952AC_DEFUN([CF_DISABLE_LEAKS],[
953
954AC_REQUIRE([CF_WITH_DMALLOC])
955AC_REQUIRE([CF_WITH_DBMALLOC])
956AC_REQUIRE([CF_WITH_VALGRIND])
957
958AC_MSG_CHECKING(if you want to perform memory-leak testing)
959AC_ARG_ENABLE(leaks,
960	[  --disable-leaks         test: free permanent memory, analyze leaks],
961	[with_no_leaks=yes],
962	: ${with_no_leaks:=no})
963AC_MSG_RESULT($with_no_leaks)
964
965if test "$with_no_leaks" = yes ; then
966	AC_DEFINE(NO_LEAKS)
967fi
968])dnl
969dnl ---------------------------------------------------------------------------
970dnl CF_ENABLE_RPATH version: 1 updated: 2008/09/13 10:22:30
971dnl ---------------
972dnl Check if the rpath option should be used, setting cache variable
973dnl cf_cv_ld_rpath if so.
974AC_DEFUN([CF_ENABLE_RPATH],
975[
976AC_MSG_CHECKING(if rpath option should be used)
977AC_ARG_ENABLE(rpath,
978[  --enable-rpath          use rpath option when generating shared libraries],
979[cf_cv_ld_rpath=$enableval],
980[cf_cv_ld_rpath=no])
981AC_MSG_RESULT($cf_cv_ld_rpath)
982])dnl
983dnl ---------------------------------------------------------------------------
984dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
985dnl --------
986dnl Check if 'errno' is declared in <errno.h>
987AC_DEFUN([CF_ERRNO],
988[
989CF_CHECK_ERRNO(errno)
990])dnl
991dnl ---------------------------------------------------------------------------
992dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
993dnl ---------------
994dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
995dnl math.h and builtin.h, only for ncurses
996AC_DEFUN([CF_ETIP_DEFINES],
997[
998AC_MSG_CHECKING(for special defines needed for etip.h)
999cf_save_CXXFLAGS="$CXXFLAGS"
1000cf_result="none"
1001for cf_math in "" MATH_H
1002do
1003for cf_excp in "" MATH_EXCEPTION
1004do
1005	CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1006	test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1007	test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1008AC_TRY_COMPILE([
1009#include <etip.h.in>
1010],[],[
1011	test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1012	test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1013	cf_result="$cf_math $cf_excp"
1014	break
1015],[])
1016done
1017done
1018AC_MSG_RESULT($cf_result)
1019CXXFLAGS="$cf_save_CXXFLAGS"
1020])
1021dnl ---------------------------------------------------------------------------
1022dnl CF_FIND_LINKAGE version: 12 updated: 2007/07/29 20:13:53
1023dnl ---------------
1024dnl Find a library (specifically the linkage used in the code fragment),
1025dnl searching for it if it is not already in the library path.
1026dnl See also CF_ADD_SEARCHPATH.
1027dnl
1028dnl Parameters (4-on are optional):
1029dnl     $1 = headers for library entrypoint
1030dnl     $2 = code fragment for library entrypoint
1031dnl     $3 = the library name without the "-l" option or ".so" suffix.
1032dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1033dnl     $5 = action to perform if not successful
1034dnl     $6 = module name, if not the same as the library name
1035dnl     $7 = extra libraries
1036dnl
1037dnl Sets these variables:
1038dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1039dnl     $cf_cv_header_path_$3 - include-directory if needed
1040dnl     $cf_cv_library_path_$3 - library-directory if needed
1041dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1042AC_DEFUN([CF_FIND_LINKAGE],[
1043
1044# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1045# will be set on completion of the AC_TRY_LINK below.
1046cf_cv_header_path_$3=
1047cf_cv_library_path_$3=
1048
1049CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1050
1051AC_TRY_LINK([$1],[$2],
1052    cf_cv_find_linkage_$3=yes,[
1053    cf_cv_find_linkage_$3=no
1054
1055    CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1056
1057    cf_save_CPPFLAGS="$CPPFLAGS"
1058    cf_test_CPPFLAGS="$CPPFLAGS"
1059
1060    CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1061    for cf_cv_header_path_$3 in $cf_search
1062    do
1063      if test -d $cf_cv_header_path_$3 ; then
1064        CF_VERBOSE(... testing $cf_cv_header_path_$3)
1065        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1066        AC_TRY_COMPILE([$1],[$2],[
1067            CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1068            cf_cv_find_linkage_$3=maybe
1069            cf_test_CPPFLAGS="$CPPFLAGS"
1070            break],[
1071            CPPFLAGS="$cf_save_CPPFLAGS"
1072            ])
1073      fi
1074    done
1075
1076    if test "$cf_cv_find_linkage_$3" = maybe ; then
1077
1078      CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1079
1080      cf_save_LIBS="$LIBS"
1081      cf_save_LDFLAGS="$LDFLAGS"
1082
1083      ifelse([$6],,,[
1084        CPPFLAGS="$cf_test_CPPFLAGS"
1085        LIBS="-l$3 $7 $cf_save_LIBS"
1086        AC_TRY_LINK([$1],[$2],[
1087            CF_VERBOSE(... found $3 library in system)
1088            cf_cv_find_linkage_$3=yes])
1089            CPPFLAGS="$cf_save_CPPFLAGS"
1090            LIBS="$cf_save_LIBS"
1091            ])
1092
1093      if test "$cf_cv_find_linkage_$3" != yes ; then
1094        CF_LIBRARY_PATH(cf_search,$3)
1095        for cf_cv_library_path_$3 in $cf_search
1096        do
1097          if test -d $cf_cv_library_path_$3 ; then
1098            CF_VERBOSE(... testing $cf_cv_library_path_$3)
1099            CPPFLAGS="$cf_test_CPPFLAGS"
1100            LIBS="-l$3 $7 $cf_save_LIBS"
1101            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1102            AC_TRY_LINK([$1],[$2],[
1103                CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1104                cf_cv_find_linkage_$3=yes
1105                cf_cv_library_file_$3="-l$3"
1106                break],[
1107                CPPFLAGS="$cf_save_CPPFLAGS"
1108                LIBS="$cf_save_LIBS"
1109                LDFLAGS="$cf_save_LDFLAGS"
1110                ])
1111          fi
1112        done
1113        LIBS="$cf_save_LIBS"
1114        CPPFLAGS="$cf_save_CPPFLAGS"
1115        LDFLAGS="$cf_save_LDFLAGS"
1116      fi
1117
1118    else
1119      cf_cv_find_linkage_$3=no
1120    fi
1121    ],$7)
1122
1123if test "$cf_cv_find_linkage_$3" = yes ; then
1124ifelse([$4],,[
1125  CF_ADD_INCDIR($cf_cv_header_path_$3)
1126  CF_ADD_LIBDIR($cf_cv_library_path_$3)
1127  LIBS="-l$3 $LIBS"
1128],[$4])
1129else
1130ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1131fi
1132])dnl
1133dnl ---------------------------------------------------------------------------
1134dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1135dnl -------------
1136dnl Test for dlsym() and related functions, as well as libdl.
1137dnl
1138dnl Sets
1139dnl	$cf_have_dlsym
1140dnl	$cf_have_libdl
1141AC_DEFUN([CF_FUNC_DLSYM],[
1142cf_have_dlsym=no
1143AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1144
1145cf_have_libdl=no
1146AC_CHECK_LIB(dl,dlsym,[
1147	cf_have_dlsym=yes
1148	cf_have_libdl=yes])])
1149
1150if test "$cf_have_dlsym" = yes ; then
1151	test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1152
1153	AC_MSG_CHECKING(whether able to link to dl*() functions)
1154	AC_TRY_LINK([#include <dlfcn.h>],[
1155		void *obj;
1156		if ((obj = dlopen("filename", 0)) != 0) {
1157			if (dlsym(obj, "symbolname") == 0) {
1158			dlclose(obj);
1159			}
1160		}],[
1161		AC_DEFINE(HAVE_LIBDL)],[
1162		AC_MSG_ERROR(Cannot link test program for libdl)])
1163	AC_MSG_RESULT(ok)
1164else
1165	AC_MSG_ERROR(Cannot find dlsym function)
1166fi
1167])
1168dnl ---------------------------------------------------------------------------
1169dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1170dnl ---------------
1171dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
1172dnl is found, add our own version of memmove to the list of objects.
1173AC_DEFUN([CF_FUNC_MEMMOVE],
1174[
1175AC_CHECK_FUNC(memmove,,[
1176AC_CHECK_FUNC(bcopy,[
1177	AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1178		AC_TRY_RUN([
1179int main() {
1180	static char data[] = "abcdefghijklmnopqrstuwwxyz";
1181	char temp[40];
1182	bcopy(data, temp, sizeof(data));
1183	bcopy(temp+10, temp, 15);
1184	bcopy(temp+5, temp+15, 10);
1185	${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1186}
1187		],
1188		[cf_cv_good_bcopy=yes],
1189		[cf_cv_good_bcopy=no],
1190		[cf_cv_good_bcopy=unknown])
1191		])
1192	],[cf_cv_good_bcopy=no])
1193	if test "$cf_cv_good_bcopy" = yes ; then
1194		AC_DEFINE(USE_OK_BCOPY)
1195	else
1196		AC_DEFINE(USE_MY_MEMMOVE)
1197	fi
1198])])dnl
1199dnl ---------------------------------------------------------------------------
1200dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1201dnl -----------------
1202dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
1203dnl AIX 4.x, provide a non-working version.
1204AC_DEFUN([CF_FUNC_NANOSLEEP],[
1205AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1206AC_TRY_RUN([
1207#include <stdio.h>
1208#include <errno.h>
1209#include <time.h>
1210
1211#ifdef HAVE_SYS_TIME_H
1212#include <sys/time.h>
1213#endif
1214
1215int main() {
1216	struct timespec ts1, ts2;
1217	int code;
1218	ts1.tv_sec  = 0;
1219	ts1.tv_nsec = 750000000;
1220	ts2.tv_sec  = 0;
1221	ts2.tv_nsec = 0;
1222	errno = 0;
1223	code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1224	${cf_cv_main_return:-return}(code != 0);
1225}
1226],
1227	[cf_cv_func_nanosleep=yes],
1228	[cf_cv_func_nanosleep=no],
1229	[cf_cv_func_nanosleep=unknown])])
1230
1231test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1232])
1233dnl ---------------------------------------------------------------------------
1234dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1235dnl ---------------
1236dnl Check for openpty() function, along with <pty.h> header.  It may need the
1237dnl "util" library as well.
1238AC_DEFUN([CF_FUNC_OPENPTY],
1239[
1240AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1241AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1242    cf_save_LIBS="$LIBS"
1243    test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1244    for cf_header in pty.h libutil.h util.h
1245    do
1246    AC_TRY_LINK([
1247#include <$cf_header>
1248],[
1249    int x = openpty((int *)0, (int *)0, (char *)0,
1250                   (struct termios *)0, (struct winsize *)0);
1251],[
1252        cf_cv_func_openpty=$cf_header
1253        break
1254],[
1255        cf_cv_func_openpty=no
1256])
1257    done
1258    LIBS="$cf_save_LIBS"
1259])
1260])dnl
1261dnl ---------------------------------------------------------------------------
1262dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1263dnl ------------
1264dnl See if the poll function really works.  Some platforms have poll(), but
1265dnl it does not work for terminals or files.
1266AC_DEFUN([CF_FUNC_POLL],[
1267AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1268AC_TRY_RUN([
1269#include <stdio.h>
1270#ifdef HAVE_POLL_H
1271#include <poll.h>
1272#else
1273#include <sys/poll.h>
1274#endif
1275int main() {
1276	struct pollfd myfds;
1277	int ret;
1278
1279	myfds.fd = 0;
1280	myfds.events = POLLIN;
1281
1282	ret = poll(&myfds, 1, 100);
1283	${cf_cv_main_return:-return}(ret != 0);
1284}],
1285	[cf_cv_working_poll=yes],
1286	[cf_cv_working_poll=no],
1287	[cf_cv_working_poll=unknown])])
1288test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1289])dnl
1290dnl ---------------------------------------------------------------------------
1291dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1292dnl ---------------
1293dnl Some old/broken variations define tcgetattr() only as a macro in
1294dnl termio(s).h
1295AC_DEFUN([CF_FUNC_TERMIOS],[
1296AC_REQUIRE([CF_STRUCT_TERMIOS])
1297AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1298AC_TRY_LINK([
1299#include <sys/types.h>
1300#ifdef HAVE_UNISTD_H
1301#include <unistd.h>
1302#endif
1303#ifdef HAVE_TERMIOS_H
1304#include <termios.h>
1305#define TTY struct termios
1306#else
1307#ifdef HAVE_TERMIO_H
1308#include <termio.h>
1309#define TTY struct termio
1310#endif
1311#endif
1312],[
1313TTY foo;
1314tcgetattr(1, &foo);],
1315[cf_cv_have_tcgetattr=yes],
1316[cf_cv_have_tcgetattr=no])])
1317test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1318])dnl
1319dnl ---------------------------------------------------------------------------
1320dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1321dnl ---------------
1322dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1323dnl versions of C.  It is in the GNU C library, and can often be simulated by
1324dnl other functions.
1325AC_DEFUN([CF_FUNC_VSSCANF],
1326[
1327AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1328AC_TRY_LINK([
1329#include <stdarg.h>
1330#include <stdio.h>],[
1331	va_list ap;
1332	vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1333AC_TRY_LINK([
1334#include <stdarg.h>
1335#include <stdio.h>],[
1336    FILE strbuf;
1337    char *str = "from";
1338
1339    strbuf._flag = _IOREAD;
1340    strbuf._ptr = strbuf._base = (unsigned char *) str;
1341    strbuf._cnt = strlen(str);
1342    strbuf._file = _NFILE;
1343    return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1344AC_TRY_LINK([
1345#include <stdarg.h>
1346#include <stdio.h>],[
1347    FILE strbuf;
1348    char *str = "from";
1349
1350    strbuf._flag = _IOREAD;
1351    strbuf._ptr = strbuf._base = (unsigned char *) str;
1352    strbuf._cnt = strlen(str);
1353    strbuf._file = _NFILE;
1354    return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1355cf_cv_func_vsscanf=no])])])])
1356
1357case $cf_cv_func_vsscanf in #(vi
1358vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1359vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1360_doscan) AC_DEFINE(HAVE__DOSCAN);;
1361esac
1362
1363])dnl
1364dnl ---------------------------------------------------------------------------
1365dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
1366dnl -----------------
1367dnl Test for availability of useful gcc __attribute__ directives to quiet
1368dnl compiler warnings.  Though useful, not all are supported -- and contrary
1369dnl to documentation, unrecognized directives cause older compilers to barf.
1370AC_DEFUN([CF_GCC_ATTRIBUTES],
1371[
1372if test "$GCC" = yes
1373then
1374cat > conftest.i <<EOF
1375#ifndef GCC_PRINTF
1376#define GCC_PRINTF 0
1377#endif
1378#ifndef GCC_SCANF
1379#define GCC_SCANF 0
1380#endif
1381#ifndef GCC_NORETURN
1382#define GCC_NORETURN /* nothing */
1383#endif
1384#ifndef GCC_UNUSED
1385#define GCC_UNUSED /* nothing */
1386#endif
1387EOF
1388if test "$GCC" = yes
1389then
1390	AC_CHECKING([for $CC __attribute__ directives])
1391cat > conftest.$ac_ext <<EOF
1392#line __oline__ "${as_me-configure}"
1393#include "confdefs.h"
1394#include "conftest.h"
1395#include "conftest.i"
1396#if	GCC_PRINTF
1397#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1398#else
1399#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1400#endif
1401#if	GCC_SCANF
1402#define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1403#else
1404#define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1405#endif
1406extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1407extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1408extern void foo(void) GCC_NORETURN;
1409int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1410EOF
1411	for cf_attribute in scanf printf unused noreturn
1412	do
1413		CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1414		cf_directive="__attribute__(($cf_attribute))"
1415		echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1416		case $cf_attribute in
1417		scanf|printf)
1418		cat >conftest.h <<EOF
1419#define GCC_$cf_ATTRIBUTE 1
1420EOF
1421			;;
1422		*)
1423		cat >conftest.h <<EOF
1424#define GCC_$cf_ATTRIBUTE $cf_directive
1425EOF
1426			;;
1427		esac
1428		if AC_TRY_EVAL(ac_compile); then
1429			test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1430			cat conftest.h >>confdefs.h
1431		fi
1432	done
1433else
1434	fgrep define conftest.i >>confdefs.h
1435fi
1436rm -rf conftest*
1437fi
1438])dnl
1439dnl ---------------------------------------------------------------------------
1440dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1441dnl --------------
1442dnl Find version of gcc
1443AC_DEFUN([CF_GCC_VERSION],[
1444AC_REQUIRE([AC_PROG_CC])
1445GCC_VERSION=none
1446if test "$GCC" = yes ; then
1447	AC_MSG_CHECKING(version of $CC)
1448	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1449	test -z "$GCC_VERSION" && GCC_VERSION=unknown
1450	AC_MSG_RESULT($GCC_VERSION)
1451fi
1452])dnl
1453dnl ---------------------------------------------------------------------------
1454dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
1455dnl ---------------
1456dnl Check if the compiler supports useful warning options.  There's a few that
1457dnl we don't use, simply because they're too noisy:
1458dnl
1459dnl	-Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1460dnl	-Wredundant-decls (system headers make this too noisy)
1461dnl	-Wtraditional (combines too many unrelated messages, only a few useful)
1462dnl	-Wwrite-strings (too noisy, but should review occasionally).  This
1463dnl		is enabled for ncurses using "--enable-const".
1464dnl	-pedantic
1465dnl
1466dnl Parameter:
1467dnl	$1 is an optional list of gcc warning flags that a particular
1468dnl		application might want to use, e.g., "no-unused" for
1469dnl		-Wno-unused
1470dnl Special:
1471dnl	If $with_ext_const is "yes", add a check for -Wwrite-strings
1472dnl
1473AC_DEFUN([CF_GCC_WARNINGS],
1474[
1475AC_REQUIRE([CF_GCC_VERSION])
1476CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1477
1478cat > conftest.$ac_ext <<EOF
1479#line __oline__ "${as_me-configure}"
1480int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1481EOF
1482
1483if test "$INTEL_COMPILER" = yes
1484then
1485# The "-wdXXX" options suppress warnings:
1486# remark #1419: external declaration in primary source file
1487# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1488# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1489# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1490# remark #193: zero used for undefined preprocessing identifier
1491# remark #593: variable "curs_sb_left_arrow" was set but never used
1492# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1493# remark #869: parameter "tw" was never referenced
1494# remark #981: operands are evaluated in unspecified order
1495# warning #269: invalid format string conversion
1496
1497	AC_CHECKING([for $CC warning options])
1498	cf_save_CFLAGS="$CFLAGS"
1499	EXTRA_CFLAGS="-Wall"
1500	for cf_opt in \
1501		wd1419 \
1502		wd1682 \
1503		wd1683 \
1504		wd1684 \
1505		wd193 \
1506		wd279 \
1507		wd593 \
1508		wd810 \
1509		wd869 \
1510		wd981
1511	do
1512		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1513		if AC_TRY_EVAL(ac_compile); then
1514			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1515			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1516		fi
1517	done
1518	CFLAGS="$cf_save_CFLAGS"
1519
1520elif test "$GCC" = yes
1521then
1522	AC_CHECKING([for $CC warning options])
1523	cf_save_CFLAGS="$CFLAGS"
1524	EXTRA_CFLAGS="-W -Wall"
1525	cf_warn_CONST=""
1526	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1527	for cf_opt in \
1528		Wbad-function-cast \
1529		Wcast-align \
1530		Wcast-qual \
1531		Winline \
1532		Wmissing-declarations \
1533		Wmissing-prototypes \
1534		Wnested-externs \
1535		Wpointer-arith \
1536		Wshadow \
1537		Wstrict-prototypes \
1538		Wundef $cf_warn_CONST $1
1539	do
1540		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1541		if AC_TRY_EVAL(ac_compile); then
1542			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1543			case $cf_opt in #(vi
1544			Wcast-qual) #(vi
1545				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1546				;;
1547			Winline) #(vi
1548				case $GCC_VERSION in
1549				[[34]].*)
1550					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1551					continue;;
1552				esac
1553				;;
1554			esac
1555			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1556		fi
1557	done
1558	CFLAGS="$cf_save_CFLAGS"
1559fi
1560rm -f conftest*
1561
1562AC_SUBST(EXTRA_CFLAGS)
1563])dnl
1564dnl ---------------------------------------------------------------------------
1565dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1566dnl ----------------
1567dnl Verify that a test program compiles/links with GNAT.
1568dnl $cf_ada_make is set to the program that compiles/links
1569dnl $ADAFLAGS may be set to the GNAT flags.
1570dnl
1571dnl $1 is the text of the spec
1572dnl $2 is the text of the body
1573dnl $3 is the shell command to execute if successful
1574dnl $4 is the shell command to execute if not successful
1575AC_DEFUN([CF_GNAT_TRY_LINK],
1576[
1577rm -f conftest*
1578cat >>conftest.ads <<CF_EOF
1579$1
1580CF_EOF
1581cat >>conftest.adb <<CF_EOF
1582$2
1583CF_EOF
1584if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1585ifelse($3,,      :,[      $3])
1586ifelse($4,,,[else
1587   $4])
1588fi
1589rm -f conftest*
1590])dnl
1591dnl ---------------------------------------------------------------------------
1592dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1593dnl ---------------
1594dnl Verify that a test program compiles and runs with GNAT
1595dnl $cf_ada_make is set to the program that compiles/links
1596dnl $ADAFLAGS may be set to the GNAT flags.
1597dnl
1598dnl $1 is the text of the spec
1599dnl $2 is the text of the body
1600dnl $3 is the shell command to execute if successful
1601dnl $4 is the shell command to execute if not successful
1602AC_DEFUN([CF_GNAT_TRY_RUN],
1603[
1604rm -f conftest*
1605cat >>conftest.ads <<CF_EOF
1606$1
1607CF_EOF
1608cat >>conftest.adb <<CF_EOF
1609$2
1610CF_EOF
1611if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1612   if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1613ifelse($3,,      :,[      $3])
1614ifelse($4,,,[   else
1615      $4])
1616   fi
1617ifelse($4,,,[else
1618   $4])
1619fi
1620rm -f conftest*
1621])dnl
1622dnl ---------------------------------------------------------------------------
1623dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1624dnl ---------------
1625dnl Verify version of GNAT.
1626AC_DEFUN([CF_GNAT_VERSION],
1627[
1628AC_MSG_CHECKING(for gnat version)
1629cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1630  sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1631AC_MSG_RESULT($cf_gnat_version)
1632
1633case $cf_gnat_version in
1634  3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1635    cf_cv_prog_gnat_correct=yes
1636    ;;
1637  *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1638     cf_cv_prog_gnat_correct=no
1639     ;;
1640esac
1641case $cf_gnat_version in
1642  3.[[1-9]]*|[[4-9]].*)
1643      cf_compile_generics=generics
1644      cf_generic_objects="\${GENOBJS}"
1645      ;;
1646  *)  cf_compile_generics=
1647      cf_generic_objects=
1648      ;;
1649esac
1650])
1651dnl ---------------------------------------------------------------------------
1652dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1653dnl -------------
1654dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1655dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1656dnl (or misfeature) of glibc2, which breaks portability of many applications,
1657dnl since it is interwoven with GNU extensions.
1658dnl
1659dnl Well, yes we could work around it...
1660AC_DEFUN([CF_GNU_SOURCE],
1661[
1662AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1663AC_TRY_COMPILE([#include <sys/types.h>],[
1664#ifndef _XOPEN_SOURCE
1665make an error
1666#endif],
1667	[cf_cv_gnu_source=no],
1668	[cf_save="$CPPFLAGS"
1669	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1670	 AC_TRY_COMPILE([#include <sys/types.h>],[
1671#ifdef _XOPEN_SOURCE
1672make an error
1673#endif],
1674	[cf_cv_gnu_source=no],
1675	[cf_cv_gnu_source=yes])
1676	CPPFLAGS="$cf_save"
1677	])
1678])
1679test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1680])dnl
1681dnl ---------------------------------------------------------------------------
1682dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
1683dnl --------------
1684dnl If we're trying to use g++, test if libg++ is installed (a rather common
1685dnl problem :-).  If we have the compiler but no library, we'll be able to
1686dnl configure, but won't be able to build the c++ demo program.
1687AC_DEFUN([CF_GPP_LIBRARY],
1688[
1689cf_cxx_library=unknown
1690case $cf_cv_system_name in #(vi
1691os2*) #(vi
1692	cf_gpp_libname=gpp
1693	;;
1694*)
1695	cf_gpp_libname=g++
1696	;;
1697esac
1698if test "$GXX" = yes; then
1699	AC_MSG_CHECKING([for lib$cf_gpp_libname])
1700	cf_save="$LIBS"
1701	LIBS="$LIBS -l$cf_gpp_libname"
1702	AC_TRY_LINK([
1703#include <$cf_gpp_libname/builtin.h>
1704	],
1705	[two_arg_error_handler_t foo2 = lib_error_handler],
1706	[cf_cxx_library=yes
1707	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1708	 if test "$cf_gpp_libname" = cpp ; then
1709	    AC_DEFINE(HAVE_GPP_BUILTIN_H)
1710	 else
1711	    AC_DEFINE(HAVE_GXX_BUILTIN_H)
1712	 fi],
1713	[AC_TRY_LINK([
1714#include <builtin.h>
1715	],
1716	[two_arg_error_handler_t foo2 = lib_error_handler],
1717	[cf_cxx_library=yes
1718	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1719	 AC_DEFINE(HAVE_BUILTIN_H)],
1720	[cf_cxx_library=no])])
1721	LIBS="$cf_save"
1722	AC_MSG_RESULT($cf_cxx_library)
1723fi
1724])dnl
1725dnl ---------------------------------------------------------------------------
1726dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1727dnl --------------
1728dnl Check for version of g++
1729AC_DEFUN([CF_GXX_VERSION],[
1730AC_REQUIRE([AC_PROG_CPP])
1731GXX_VERSION=none
1732if test "$GXX" = yes; then
1733	AC_MSG_CHECKING(version of g++)
1734	GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1735	test -z "$GXX_VERSION" && GXX_VERSION=unknown
1736	AC_MSG_RESULT($GXX_VERSION)
1737fi
1738])dnl
1739dnl ---------------------------------------------------------------------------
1740dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1741dnl ---------------
1742dnl Check if the compiler supports useful warning options.
1743dnl
1744dnl Most of gcc's options apply to g++, except:
1745dnl	-Wbad-function-cast
1746dnl	-Wmissing-declarations
1747dnl	-Wnested-externs
1748dnl
1749dnl Omit a few (for now):
1750dnl	-Winline
1751dnl
1752dnl Parameter:
1753dnl	$1 is an optional list of g++ warning flags that a particular
1754dnl		application might want to use, e.g., "no-unused" for
1755dnl		-Wno-unused
1756dnl Special:
1757dnl	If $with_ext_const is "yes", add a check for -Wwrite-strings
1758dnl
1759AC_DEFUN([CF_GXX_WARNINGS],
1760[
1761
1762CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1763
1764AC_REQUIRE([CF_GXX_VERSION])
1765
1766AC_LANG_SAVE
1767AC_LANG_CPLUSPLUS
1768
1769cat > conftest.$ac_ext <<EOF
1770#line __oline__ "configure"
1771int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1772EOF
1773
1774if test "$INTEL_CPLUSPLUS" = yes
1775then
1776# The "-wdXXX" options suppress warnings:
1777# remark #1419: external declaration in primary source file
1778# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1779# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1780# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1781# remark #193: zero used for undefined preprocessing identifier
1782# remark #593: variable "curs_sb_left_arrow" was set but never used
1783# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1784# remark #869: parameter "tw" was never referenced
1785# remark #981: operands are evaluated in unspecified order
1786# warning #269: invalid format string conversion
1787
1788	AC_CHECKING([for $CC warning options])
1789	cf_save_CXXFLAGS="$CXXFLAGS"
1790	EXTRA_CXXFLAGS="-Wall"
1791	for cf_opt in \
1792		wd1419 \
1793		wd1682 \
1794		wd1683 \
1795		wd1684 \
1796		wd193 \
1797		wd279 \
1798		wd593 \
1799		wd810 \
1800		wd869 \
1801		wd981
1802	do
1803		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1804		if AC_TRY_EVAL(ac_compile); then
1805			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1806			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1807		fi
1808	done
1809	CXXFLAGS="$cf_save_CXXFLAGS"
1810
1811elif test "$GXX" = yes
1812then
1813	AC_CHECKING([for $CXX warning options])
1814	cf_save_CXXFLAGS="$CXXFLAGS"
1815	EXTRA_CXXFLAGS="-W -Wall"
1816	cf_gxx_extra_warnings=""
1817	test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1818	case "$GCC_VERSION" in
1819	[[1-2]].*)
1820		;;
1821	*)
1822		cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1823		;;
1824	esac
1825	for cf_opt in \
1826		Wabi \
1827		fabi-version=0 \
1828		Woverloaded-virtual \
1829		Wsign-promo \
1830		Wsynth \
1831		Wold-style-cast \
1832		Wcast-align \
1833		Wcast-qual \
1834		Wmissing-prototypes \
1835		Wpointer-arith \
1836		Wshadow \
1837		Wstrict-prototypes \
1838		Wundef $cf_gxx_extra_warnings $1
1839	do
1840		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1841		if AC_TRY_EVAL(ac_compile); then
1842			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1843			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1844		else
1845			test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1846		fi
1847	done
1848	CXXFLAGS="$cf_save_CXXFLAGS"
1849fi
1850
1851rm -f conftest*
1852AC_LANG_RESTORE
1853AC_SUBST(EXTRA_CXXFLAGS)
1854])dnl
1855dnl ---------------------------------------------------------------------------
1856dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1857dnl ------------
1858dnl Look for an instance of the Berkeley hashed database.
1859dnl
1860dnl $1 = optional parameter, to specify install-prefix for the database.
1861AC_DEFUN([CF_HASHED_DB],
1862[
1863ifelse([$1],,,[
1864case $1 in #(vi
1865yes|*able*) #(vi
1866    ;;
1867*)
1868    if test -d "$1" ; then
1869        CF_ADD_INCDIR($1/include)
1870        CF_ADD_LIBDIR($1/lib)
1871    fi
1872esac
1873])
1874AC_CHECK_HEADER(db.h,[
1875CF_HASHED_DB_VERSION
1876if test "$cf_cv_hashed_db_version" = unknown ; then
1877	AC_MSG_ERROR(Cannot determine version of db)
1878else
1879	CF_HASHED_DB_LIBS
1880	if test "$cf_cv_hashed_db_libs" = unknown ; then
1881		AC_MSG_ERROR(Cannot determine library for db)
1882	elif test "$cf_cv_hashed_db_libs" != default ; then
1883		LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1884	fi
1885fi
1886],[
1887	AC_MSG_ERROR(Cannot find db.h)
1888])
1889])dnl
1890dnl ---------------------------------------------------------------------------
1891dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1892dnl -----------------
1893dnl Given that we have the header and version for hashed database, find the
1894dnl library information.
1895AC_DEFUN([CF_HASHED_DB_LIBS],
1896[
1897AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1898cf_cv_hashed_db_libs=unknown
1899for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1900do
1901	cf_save_libs="$LIBS"
1902	if test -n "$cf_db_libs"; then
1903		LIBS="-l$cf_db_libs $LIBS"
1904	fi
1905	CF_MSG_LOG(checking for library "$cf_db_libs")
1906	AC_TRY_LINK([
1907$ac_includes_default
1908#include <db.h>
1909],[
1910	char *path = "/tmp/foo";
1911#ifdef DB_VERSION_MAJOR
1912#if DB_VERSION_MAJOR >= 4
1913	DB *result = 0;
1914	db_create(&result, NULL, 0);
1915	result->open(result,
1916		NULL,
1917		path,
1918		path,
1919		DB_HASH,
1920		DB_CREATE,
1921		0644);
1922#elif DB_VERSION_MAJOR >= 3
1923	DB *result = 0;
1924	db_create(&result, NULL, 0);
1925	result->open(result,
1926		path,
1927		path,
1928		DB_HASH,
1929		DB_CREATE,
1930		0644);
1931#elif DB_VERSION_MAJOR >= 2
1932	DB *result = 0;
1933	db_open(path,
1934		DB_HASH,
1935		DB_CREATE,
1936		0644,
1937		(DB_ENV *) 0,
1938		(DB_INFO *) 0,
1939		&result);
1940#endif /* DB_VERSION_MAJOR */
1941#else
1942	DB *result = dbopen(path,
1943		     2,
1944		     0644,
1945		     DB_HASH,
1946		     0);
1947#endif
1948	${cf_cv_main_return:-return}(result != 0)
1949],[
1950	if test -n "$cf_db_libs" ; then
1951		cf_cv_hashed_db_libs=$cf_db_libs
1952	else
1953		cf_cv_hashed_db_libs=default
1954	fi
1955	LIBS="$cf_save_libs"
1956	break
1957])
1958	LIBS="$cf_save_libs"
1959done
1960])
1961])dnl
1962dnl ---------------------------------------------------------------------------
1963dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
1964dnl --------------------
1965dnl Given that we have the header file for hashed database, find the version
1966dnl information.
1967AC_DEFUN([CF_HASHED_DB_VERSION],
1968[
1969AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
1970cf_cv_hashed_db_version=unknown
1971
1972for cf_db_version in 1 2 3 4 5
1973do
1974	CF_MSG_LOG(checking for db version $cf_db_version)
1975	AC_TRY_COMPILE([
1976$ac_includes_default
1977#include <db.h>
1978
1979#ifdef DB_VERSION_MAJOR
1980	/* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
1981#if $cf_db_version == DB_VERSION_MAJOR
1982	/* ok */
1983#else
1984	make an error
1985#endif
1986#else
1987#if $cf_db_version == 1
1988	/* ok: assuming this is DB 1.8.5 */
1989#else
1990	make an error
1991#endif
1992#endif
1993],[DBT *foo = 0],[
1994	cf_cv_hashed_db_version=$cf_db_version
1995	break
1996	])
1997done
1998])
1999])dnl
2000dnl ---------------------------------------------------------------------------
2001dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
2002dnl --------------
2003dnl Construct a search-list for a nonstandard header-file
2004AC_DEFUN([CF_HEADER_PATH],
2005[CF_SUBDIR_PATH($1,$2,include)
2006test "$includedir" != NONE && \
2007test "$includedir" != "/usr/include" && \
2008test -d "$includedir" && {
2009	test -d $includedir &&    $1="[$]$1 $includedir"
2010	test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2011}
2012
2013test "$oldincludedir" != NONE && \
2014test "$oldincludedir" != "/usr/include" && \
2015test -d "$oldincludedir" && {
2016	test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
2017	test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2018}
2019
2020])dnl
2021dnl ---------------------------------------------------------------------------
2022dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2023dnl ---------------
2024dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2025AC_DEFUN([CF_HELP_MESSAGE],
2026[AC_DIVERT_HELP([$1])dnl
2027])dnl
2028dnl ---------------------------------------------------------------------------
2029dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
2030dnl ---------------
2031dnl Construct the list of include-options according to whether we're building
2032dnl in the source directory or using '--srcdir=DIR' option.  If we're building
2033dnl with gcc, don't append the includedir if it happens to be /usr/include,
2034dnl since that usually breaks gcc's shadow-includes.
2035AC_DEFUN([CF_INCLUDE_DIRS],
2036[
2037CPPFLAGS="-I. -I../include $CPPFLAGS"
2038if test "$srcdir" != "."; then
2039	CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2040fi
2041if test "$GCC" != yes; then
2042	CPPFLAGS="$CPPFLAGS -I\${includedir}"
2043elif test "$includedir" != "/usr/include"; then
2044	if test "$includedir" = '${prefix}/include' ; then
2045		if test $prefix != /usr ; then
2046			CPPFLAGS="$CPPFLAGS -I\${includedir}"
2047		fi
2048	else
2049		CPPFLAGS="$CPPFLAGS -I\${includedir}"
2050	fi
2051fi
2052AC_SUBST(CPPFLAGS)
2053])dnl
2054dnl ---------------------------------------------------------------------------
2055dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
2056dnl -----------------
2057dnl Check if the given compiler is really the Intel compiler for Linux.  It
2058dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2059dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2060dnl
2061dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2062dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2063dnl the wrappers for gcc and g++ warnings.
2064dnl
2065dnl $1 = GCC (default) or GXX
2066dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2067dnl $3 = CFLAGS (default) or CXXFLAGS
2068AC_DEFUN([CF_INTEL_COMPILER],[
2069ifelse($2,,INTEL_COMPILER,[$2])=no
2070
2071if test "$ifelse($1,,[$1],GCC)" = yes ; then
2072	case $host_os in
2073	linux*|gnu*)
2074		AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
2075		cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
2076		ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
2077		AC_TRY_COMPILE([],[
2078#ifdef __INTEL_COMPILER
2079#else
2080make an error
2081#endif
2082],[ifelse($2,,INTEL_COMPILER,[$2])=yes
2083cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2084],[])
2085		ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
2086		AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
2087		;;
2088	esac
2089fi
2090])dnl
2091dnl ---------------------------------------------------------------------------
2092dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2093dnl ----------
2094dnl Check if we have either a function or macro for 'isascii()'.
2095AC_DEFUN([CF_ISASCII],
2096[
2097AC_MSG_CHECKING(for isascii)
2098AC_CACHE_VAL(cf_cv_have_isascii,[
2099	AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2100	[cf_cv_have_isascii=yes],
2101	[cf_cv_have_isascii=no])
2102])dnl
2103AC_MSG_RESULT($cf_cv_have_isascii)
2104test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2105])dnl
2106dnl ---------------------------------------------------------------------------
2107dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2108dnl ------------
2109dnl Add checks for large file support.
2110AC_DEFUN([CF_LARGEFILE],[
2111ifdef([AC_FUNC_FSEEKO],[
2112    AC_SYS_LARGEFILE
2113    if test "$enable_largefile" != no ; then
2114	AC_FUNC_FSEEKO
2115
2116	# Normally we would collect these definitions in the config.h,
2117	# but (like _XOPEN_SOURCE), some environments rely on having these
2118	# defined before any of the system headers are included.  Another
2119	# case comes up with C++, e.g., on AIX the compiler compiles the
2120	# header files by themselves before looking at the body files it is
2121	# told to compile.  For ncurses, those header files do not include
2122	# the config.h
2123	test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2124	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2125	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2126
2127	AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2128		AC_TRY_COMPILE([
2129#include <sys/types.h>
2130#include <dirent.h>
2131		],[
2132		/* if transitional largefile support is setup, this is true */
2133		extern struct dirent64 * readdir(DIR *);
2134		struct dirent64 *x = readdir((DIR *)0);
2135		struct dirent *y = readdir((DIR *)0);
2136		int z = x - y;
2137		],
2138		[cf_cv_struct_dirent64=yes],
2139		[cf_cv_struct_dirent64=no])
2140	])
2141	test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2142    fi
2143])
2144])
2145dnl ---------------------------------------------------------------------------
2146dnl CF_LDFLAGS_STATIC version: 4 updated: 2008/10/18 17:58:20
2147dnl -----------------
2148dnl Check for compiler/linker flags used to temporarily force usage of static
2149dnl libraries.  This depends on the compiler and platform.  Use this to help
2150dnl ensure that the linker picks up a given library based on its position in
2151dnl the list of linker options and libraries.
2152AC_DEFUN([CF_LDFLAGS_STATIC],[
2153
2154if test "$GCC" = yes ; then
2155	case $cf_cv_system_name in #(
2156	OS/2*|os2*|aix[[45]]*) 	#( vi
2157		LDFLAGS_STATIC=
2158		LDFLAGS_SHARED=
2159		;;
2160    *) 	#( normally, except when broken
2161        LDFLAGS_STATIC=-static
2162        LDFLAGS_SHARED=-dynamic
2163        ;;
2164    esac
2165else
2166	case $cf_cv_system_name in #(
2167	aix[[45]]*) 	#( from ld manpage
2168		LDFLAGS_STATIC=-bstatic
2169		LDFLAGS_SHARED=-bdynamic
2170		;;
2171	hpux*)		#( from ld manpage for hpux10.20, hpux11.11
2172		# We could also use just "archive" and "shared".
2173		LDFLAGS_STATIC=-Wl,-a,archive_shared
2174		LDFLAGS_SHARED=-Wl,-a,shared_archive
2175		;;
2176	irix*)		#( from ld manpage IRIX64
2177		LDFLAGS_STATIC=-Bstatic
2178		LDFLAGS_SHARED=-Bdynamic
2179		;;
2180	osf[[45]]*)	#( from ld manpage osf4.0d, osf5.1
2181		# alternative "-oldstyle_liblookup" (not in cc manpage)
2182		LDFLAGS_STATIC=-noso 
2183		LDFLAGS_SHARED=-so_archive
2184		;;
2185	solaris2*)
2186		LDFLAGS_STATIC=-Bstatic
2187		LDFLAGS_SHARED=-Bdynamic
2188		;;
2189	esac
2190fi
2191
2192AC_SUBST(LDFLAGS_STATIC)
2193AC_SUBST(LDFLAGS_SHARED)
2194])
2195dnl ---------------------------------------------------------------------------
2196dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
2197dnl ---------------
2198dnl Construct a search-list for a nonstandard library-file
2199AC_DEFUN([CF_LIBRARY_PATH],
2200[CF_SUBDIR_PATH($1,$2,lib)])dnl
2201dnl ---------------------------------------------------------------------------
2202dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2203dnl -------------
2204dnl Compute the library-prefix for the given host system
2205dnl $1 = variable to set
2206AC_DEFUN([CF_LIB_PREFIX],
2207[
2208	case $cf_cv_system_name in #(vi
2209	OS/2*|os2*) #(vi
2210        LIB_PREFIX=''
2211        ;;
2212	*)	LIB_PREFIX='lib'
2213        ;;
2214	esac
2215ifelse($1,,,[$1=$LIB_PREFIX])
2216	AC_SUBST(LIB_PREFIX)
2217])dnl
2218dnl ---------------------------------------------------------------------------
2219dnl CF_LIB_RULES version: 53 updated: 2008/09/20 19:51:59
2220dnl ------------
2221dnl Append definitions and rules for the given models to the subdirectory
2222dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
2223dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2224dnl the corresponding makefile to list the models that we'll generate.
2225dnl
2226dnl For shared libraries, make a list of symbolic links to construct when
2227dnl generating each library.  The convention used for Linux is the simplest
2228dnl one:
2229dnl	lib<name>.so	->
2230dnl	lib<name>.so.<major>	->
2231dnl	lib<name>.so.<maj>.<minor>
2232AC_DEFUN([CF_LIB_RULES],
2233[
2234CF_LIB_PREFIX(cf_prefix)
2235AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2236
2237if test $cf_cv_shlib_version = cygdll ; then
2238	TINFO_NAME=$TINFO_ARG_SUFFIX
2239	TINFO_SUFFIX=.dll
2240fi
2241
2242for cf_dir in $SRC_SUBDIRS
2243do
2244	if test ! -d $srcdir/$cf_dir ; then
2245		continue
2246	elif test -f $srcdir/$cf_dir/modules; then
2247
2248		SHARED_LIB=
2249		LIBS_TO_MAKE=
2250		for cf_item in $cf_LIST_MODELS
2251		do
2252			CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2253			if test $cf_item = shared ; then
2254			if test "$cf_cv_do_symlinks" = yes ; then
2255				case "$cf_cv_shlib_version" in #(vi
2256				rel) #(vi
2257					case "$cf_cv_system_name" in #(vi
2258					darwin*)
2259					case .${LIB_SUFFIX} in
2260					.w*)
2261						cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2262						cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2263						;;
2264					*)
2265						cf_suffix='.${REL_VERSION}'"$cf_suffix"
2266						;;
2267					esac
2268					;; #(vi
2269					*) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2270					esac
2271					;;
2272				abi)
2273					case "$cf_cv_system_name" in #(vi
2274					darwin*)
2275					case .${LIB_SUFFIX} in
2276					.w*)
2277						cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2278						cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2279						;;
2280					*)
2281						cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2282						;;
2283					esac
2284					;; #(vi
2285					*) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2286					esac
2287					;;
2288				esac
2289			fi
2290			# cygwin needs import library, and has unique naming convention
2291			# use autodetected ${cf_prefix} for import lib and static lib, but
2292			# use 'cyg' prefix for shared lib.
2293			if test $cf_cv_shlib_version = cygdll ; then
2294				cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2295				LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2296				continue
2297			fi
2298			fi
2299			LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2300		done
2301
2302		if test $cf_dir = ncurses ; then
2303			cf_subsets="$LIB_SUBSETS"
2304			cf_r_parts="$cf_subsets"
2305			cf_liblist="$LIBS_TO_MAKE"
2306
2307			while test -n "$cf_r_parts"
2308			do
2309				cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2310				cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2311				if test "$cf_l_parts" != "$cf_r_parts" ; then
2312					cf_item=
2313					case $cf_l_parts in #(vi
2314					*termlib*) #(vi
2315						cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2316						;;
2317					*ticlib*)
2318						cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2319						;;
2320					*)
2321						break
2322						;;
2323					esac
2324					if test -n "$cf_item"; then
2325						LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2326					fi
2327				else
2328					break
2329				fi
2330			done
2331		else
2332			cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2333		fi
2334
2335		sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2336		    -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2337			$cf_dir/Makefile >$cf_dir/Makefile.out
2338		mv $cf_dir/Makefile.out $cf_dir/Makefile
2339
2340		$AWK -f $srcdir/mk-0th.awk \
2341			libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2342			$srcdir/$cf_dir/modules >>$cf_dir/Makefile
2343
2344		for cf_subset in $cf_subsets
2345		do
2346			cf_subdirs=
2347			for cf_item in $cf_LIST_MODELS
2348			do
2349			echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2350			CF_UPPER(cf_ITEM,$cf_item)
2351			CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2352			CF_OBJ_SUBDIR($cf_item,cf_subdir)
2353
2354			# Test for case where we build libtinfo with a different name.
2355			cf_libname=$cf_dir
2356			if test $cf_dir = ncurses ; then
2357				case $cf_subset in
2358				*base*)
2359					cf_libname=${cf_libname}$LIB_SUFFIX
2360					;;
2361				*termlib*)
2362					cf_libname=$TINFO_LIB_SUFFIX
2363					;;
2364				ticlib*)
2365					cf_libname=$TICS_LIB_SUFFIX
2366					;;
2367				esac
2368			else
2369				cf_libname=${cf_libname}$LIB_SUFFIX
2370			fi
2371			if test -n "${DFT_ARG_SUFFIX}" ; then
2372				# undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2373				cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2374			fi
2375
2376			# These dependencies really are for development, not
2377			# builds, but they are useful in porting, too.
2378			cf_depend="../include/ncurses_cfg.h"
2379			if test "$srcdir" = "."; then
2380				cf_reldir="."
2381			else
2382				cf_reldir="\${srcdir}"
2383			fi
2384
2385			if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2386				cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2387			elif test -f $srcdir/$cf_dir/curses.priv.h; then
2388				cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2389			fi
2390
2391 			cf_dir_suffix=
2392 			old_cf_suffix="$cf_suffix"
2393 			if test "$cf_cv_shlib_version_infix" = yes ; then
2394			if test -n "$LIB_SUFFIX" ; then
2395				case $LIB_SUFFIX in
2396				w*)
2397					cf_libname=`echo $cf_libname | sed 's/w$//'`
2398					cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2399					cf_dir_suffix=w
2400					;;
2401				esac
2402			fi
2403 			fi
2404
2405			$AWK -f $srcdir/mk-1st.awk \
2406				name=${cf_libname}${cf_dir_suffix} \
2407				traces=$LIB_TRACING \
2408				MODEL=$cf_ITEM \
2409				model=$cf_subdir \
2410				prefix=$cf_prefix \
2411				suffix=$cf_suffix \
2412				subset=$cf_subset \
2413				TermlibRoot=$TINFO_NAME \
2414				TermlibSuffix=$TINFO_SUFFIX \
2415				ShlibVer=$cf_cv_shlib_version \
2416				ShlibVerInfix=$cf_cv_shlib_version_infix \
2417				ReLink=${cf_cv_do_relink-no} \
2418				DoLinks=$cf_cv_do_symlinks \
2419				rmSoLocs=$cf_cv_rm_so_locs \
2420				ldconfig="$LDCONFIG" \
2421				overwrite=$WITH_OVERWRITE \
2422				depend="$cf_depend" \
2423				host="$host" \
2424				$srcdir/$cf_dir/modules >>$cf_dir/Makefile
2425
2426			cf_suffix="$old_cf_suffix"
2427
2428			for cf_subdir2 in $cf_subdirs lib
2429			do
2430				test $cf_subdir = $cf_subdir2 && break
2431			done
2432			test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2433			$AWK -f $srcdir/mk-2nd.awk \
2434				name=$cf_dir \
2435				traces=$LIB_TRACING \
2436				MODEL=$cf_ITEM \
2437				model=$cf_subdir \
2438				subset=$cf_subset \
2439				srcdir=$srcdir \
2440				echo=$WITH_ECHO \
2441				crenames=$cf_cv_prog_CC_c_o \
2442				cxxrenames=$cf_cv_prog_CXX_c_o \
2443				$srcdir/$cf_dir/modules >>$cf_dir/Makefile
2444			cf_subdirs="$cf_subdirs $cf_subdir"
2445			done
2446		done
2447	fi
2448
2449	echo '	cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2450done
2451
2452for cf_dir in $SRC_SUBDIRS
2453do
2454	if test ! -d $srcdir/$cf_dir ; then
2455		continue
2456	fi
2457
2458	if test -f $cf_dir/Makefile ; then
2459		case "$cf_dir" in
2460		Ada95) #(vi
2461			echo 'libs \' >> Makefile
2462			echo 'install.libs \' >> Makefile
2463			echo 'uninstall.libs ::' >> Makefile
2464			echo '	cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2465			;;
2466		esac
2467	fi
2468
2469	if test -f $srcdir/$cf_dir/modules; then
2470		echo >> Makefile
2471		if test -f $srcdir/$cf_dir/headers; then
2472cat >> Makefile <<CF_EOF
2473install.includes \\
2474uninstall.includes \\
2475CF_EOF
2476		fi
2477if test "$cf_dir" != "c++" ; then
2478echo 'lint \' >> Makefile
2479fi
2480cat >> Makefile <<CF_EOF
2481libs \\
2482lintlib \\
2483install.libs \\
2484uninstall.libs \\
2485install.$cf_dir \\
2486uninstall.$cf_dir ::
2487	cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2488CF_EOF
2489	elif test -f $srcdir/$cf_dir/headers; then
2490cat >> Makefile <<CF_EOF
2491
2492libs \\
2493install.libs \\
2494uninstall.libs \\
2495install.includes \\
2496uninstall.includes ::
2497	cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2498CF_EOF
2499fi
2500done
2501
2502cat >> Makefile <<CF_EOF
2503
2504install.libs uninstall.libs \\
2505install.data uninstall.data ::
2506$MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2507
2508install.man \\
2509uninstall.man ::
2510	cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2511
2512distclean ::
2513	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2514	rm -f headers.sh headers.sed mk_shared_lib.sh
2515	rm -rf \${DIRS_TO_MAKE}
2516CF_EOF
2517
2518# Special case: tack's manpage lives in its own directory.
2519if test -d tack ; then
2520if test -f $srcdir/$tack.h; then
2521cat >> Makefile <<CF_EOF
2522
2523install.man \\
2524uninstall.man ::
2525	cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2526CF_EOF
2527fi
2528fi
2529
2530dnl If we're installing into a subdirectory of /usr/include, etc., we should
2531dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
2532dnl anything, and will make it more standardized.  It's awkward to decide this
2533dnl at configuration because of quoting, so we'll simply make all headers
2534dnl installed via a script that can do the right thing.
2535
2536rm -f headers.sed headers.sh
2537
2538dnl ( generating this script makes the makefiles a little tidier :-)
2539echo creating headers.sh
2540cat >headers.sh <<CF_EOF
2541#! /bin/sh
2542# This shell script is generated by the 'configure' script.  It is invoked in a
2543# subdirectory of the build tree.  It generates a sed-script in the parent
2544# directory that is used to adjust includes for header files that reside in a
2545# subdirectory of /usr/include, etc.
2546PRG=""
2547while test \[$]# != 3
2548do
2549PRG="\$PRG \[$]1"; shift
2550done
2551DST=\[$]1
2552REF=\[$]2
2553SRC=\[$]3
2554TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2555TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2556echo installing \$SRC in \$DST
2557CF_EOF
2558
2559if test $WITH_CURSES_H = yes; then
2560	cat >>headers.sh <<CF_EOF
2561case \$DST in
2562/*/include/*)
2563	END=\`basename \$DST\`
2564	for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2565	do
2566		NAME=\`basename \$i\`
2567		echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2568	done
2569	;;
2570*)
2571	echo "" >> \$TMPSED
2572	;;
2573esac
2574CF_EOF
2575
2576else
2577	cat >>headers.sh <<CF_EOF
2578case \$DST in
2579/*/include/*)
2580	END=\`basename \$DST\`
2581	for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2582	do
2583		NAME=\`basename \$i\`
2584		if test "\$NAME" = "curses.h"
2585		then
2586			echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2587			NAME=ncurses.h
2588		fi
2589		echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2590	done
2591	;;
2592*)
2593	echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2594	;;
2595esac
2596CF_EOF
2597fi
2598cat >>headers.sh <<CF_EOF
2599rm -f \$TMPSRC
2600sed -f \$TMPSED \$SRC > \$TMPSRC
2601NAME=\`basename \$SRC\`
2602CF_EOF
2603if test $WITH_CURSES_H != yes; then
2604	cat >>headers.sh <<CF_EOF
2605test "\$NAME" = "curses.h" && NAME=ncurses.h
2606CF_EOF
2607fi
2608cat >>headers.sh <<CF_EOF
2609# Just in case someone gzip'd manpages, remove the conflicting copy.
2610test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2611
2612eval \$PRG \$TMPSRC \$DST/\$NAME
2613rm -f \$TMPSRC \$TMPSED
2614CF_EOF
2615
2616chmod 0755 headers.sh
2617
2618for cf_dir in $SRC_SUBDIRS
2619do
2620	if test ! -d $srcdir/$cf_dir ; then
2621		continue
2622	fi
2623
2624	if test -f $srcdir/$cf_dir/headers; then
2625		$AWK -f $srcdir/mk-hdr.awk \
2626			subset="$LIB_SUBSETS" \
2627			compat="$WITH_CURSES_H" \
2628			$srcdir/$cf_dir/headers >>$cf_dir/Makefile
2629	fi
2630
2631	if test -f $srcdir/$cf_dir/modules; then
2632		if test "$cf_dir" != "c++" ; then
2633			cat >>$cf_dir/Makefile <<"CF_EOF"
2634depend : ${AUTO_SRC}
2635	makedepend -- ${CPPFLAGS} -- ${C_SRC}
2636
2637# DO NOT DELETE THIS LINE -- make depend depends on it.
2638CF_EOF
2639		fi
2640	fi
2641done
2642
2643])dnl
2644dnl ---------------------------------------------------------------------------
2645dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2646dnl -------------
2647dnl Find the and soname for the given shared library.  Set the cache variable
2648dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
2649dnl variable to "unknown".
2650dnl
2651dnl $1 = headers
2652dnl $2 = code
2653dnl $3 = library name
2654AC_DEFUN([CF_LIB_SONAME],
2655[
2656AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2657
2658cf_cv_$3_soname=unknown
2659if test "$cross_compiling" != yes ; then
2660cat >conftest.$ac_ext <<CF_EOF
2661$1
2662int main()
2663{
2664$2
2665	${cf_cv_main_return:-return}(0);
2666}
2667CF_EOF
2668cf_save_LIBS="$LIBS"
2669	LIBS="-l$3 $LIBS"
2670	if AC_TRY_EVAL(ac_compile) ; then
2671		if AC_TRY_EVAL(ac_link) ; then
2672			cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2673			test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2674		fi
2675	fi
2676rm -f conftest*
2677LIBS="$cf_save_LIBS"
2678fi
2679])
2680])
2681dnl ---------------------------------------------------------------------------
2682dnl CF_LIB_SUFFIX version: 15 updated: 2008/09/13 11:54:48
2683dnl -------------
2684dnl Compute the library file-suffix from the given model name
2685dnl $1 = model name
2686dnl $2 = variable to set (the nominal library suffix)
2687dnl $3 = dependency variable to set (actual filename)
2688dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2689AC_DEFUN([CF_LIB_SUFFIX],
2690[
2691	AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2692	case $1 in
2693	libtool)
2694		$2='.la'
2695		$3=[$]$2
2696		;;
2697	normal)
2698		$2='.a'
2699		$3=[$]$2
2700		;;
2701	debug)
2702		$2='_g.a'
2703		$3=[$]$2
2704		;;
2705	profile)
2706		$2='_p.a'
2707		$3=[$]$2
2708		;;
2709	shared)
2710		case $cf_cv_system_name in
2711		cygwin*)
2712			$2='.dll'
2713			$3='.dll.a'
2714			;;
2715		darwin*)
2716			$2='.dylib'
2717			$3=[$]$2
2718			;;
2719		hpux*)
2720			case $target in
2721			ia64*)
2722				$2='.so'
2723				$3=[$]$2
2724				;;
2725			*)
2726				$2='.sl'
2727				$3=[$]$2
2728				;;
2729			esac
2730			;;
2731		*)	$2='.so'
2732			$3=[$]$2
2733			;;
2734		esac
2735	esac
2736	test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2737	test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2738])dnl
2739dnl ---------------------------------------------------------------------------
2740dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2741dnl -----------
2742dnl Compute the string to append to -library from the given model name
2743dnl $1 = model name
2744dnl $2 = variable to set
2745dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2746AC_DEFUN([CF_LIB_TYPE],
2747[
2748	case $1 in
2749	libtool) $2=''   ;;
2750	normal)  $2=''   ;;
2751	debug)   $2='_g' ;;
2752	profile) $2='_p' ;;
2753	shared)  $2=''   ;;
2754	esac
2755	test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2756])dnl
2757dnl ---------------------------------------------------------------------------
2758dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
2759dnl ----------------
2760dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2761dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
2762dnl have to provide wrappers for global tables to ensure they're linked
2763dnl properly.
2764AC_DEFUN([CF_LINK_DATAONLY],
2765[
2766AC_MSG_CHECKING([if data-only library module links])
2767AC_CACHE_VAL(cf_cv_link_dataonly,[
2768	rm -f conftest.a
2769	cat >conftest.$ac_ext <<EOF
2770#line __oline__ "configure"
2771int	testdata[[3]] = { 123, 456, 789 };
2772EOF
2773	if AC_TRY_EVAL(ac_compile) ; then
2774		mv conftest.o data.o && \
2775		( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2776	fi
2777	rm -f conftest.$ac_ext data.o
2778	cat >conftest.$ac_ext <<EOF
2779#line __oline__ "configure"
2780int	testfunc()
2781{
2782#if defined(NeXT)
2783	${cf_cv_main_return:-return}(1);	/* I'm told this linker is broken */
2784#else
2785	extern int testdata[[3]];
2786	return testdata[[0]] == 123
2787	   &&  testdata[[1]] == 456
2788	   &&  testdata[[2]] == 789;
2789#endif
2790}
2791EOF
2792	if AC_TRY_EVAL(ac_compile); then
2793		mv conftest.o func.o && \
2794		( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2795	fi
2796	rm -f conftest.$ac_ext func.o
2797	( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2798	cf_saveLIBS="$LIBS"
2799	LIBS="conftest.a $LIBS"
2800	AC_TRY_RUN([
2801	int main()
2802	{
2803		extern int testfunc();
2804		${cf_cv_main_return:-return} (!testfunc());
2805	}
2806	],
2807	[cf_cv_link_dataonly=yes],
2808	[cf_cv_link_dataonly=no],
2809	[cf_cv_link_dataonly=unknown])
2810	LIBS="$cf_saveLIBS"
2811	])
2812AC_MSG_RESULT($cf_cv_link_dataonly)
2813
2814if test "$cf_cv_link_dataonly" = no ; then
2815	AC_DEFINE(BROKEN_LINKER)
2816	BROKEN_LINKER=1
2817fi
2818
2819])dnl
2820dnl ---------------------------------------------------------------------------
2821dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2822dnl -------------
2823dnl Most Unix systems have both link and symlink, a few don't have symlink.
2824dnl A few non-Unix systems implement symlink, but not link.
2825dnl A few non-systems implement neither (or have nonfunctional versions).
2826AC_DEFUN([CF_LINK_FUNCS],
2827[
2828AC_CHECK_FUNCS( \
2829	remove \
2830	unlink )
2831
2832if test "$cross_compiling" = yes ; then
2833	AC_CHECK_FUNCS( \
2834		link \
2835		symlink )
2836else
2837	AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2838		cf_cv_link_funcs=
2839		for cf_func in link symlink ; do
2840			AC_TRY_RUN([
2841#include <sys/types.h>
2842#include <sys/stat.h>
2843#ifdef HAVE_UNISTD_H
2844#include <unistd.h>
2845#endif
2846int main()
2847{
2848	int fail = 0;
2849	char *src = "config.log";
2850	char *dst = "conftest.chk";
2851	struct stat src_sb;
2852	struct stat dst_sb;
2853
2854	stat(src, &src_sb);
2855	fail = ($cf_func("config.log", "conftest.chk") < 0)
2856	    || (stat(dst, &dst_sb) < 0)
2857	    || (dst_sb.st_mtime != src_sb.st_mtime);
2858#ifdef HAVE_UNLINK
2859	unlink(dst);
2860#else
2861	remove(dst);
2862#endif
2863	${cf_cv_main_return:-return} (fail);
2864}
2865			],[
2866			cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2867			eval 'ac_cv_func_'$cf_func'=yes'],[
2868			eval 'ac_cv_func_'$cf_func'=no'],[
2869			eval 'ac_cv_func_'$cf_func'=error'])
2870		done
2871		test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2872	])
2873	test "$ac_cv_func_link"    = yes && AC_DEFINE(HAVE_LINK)
2874	test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2875fi
2876])dnl
2877dnl ---------------------------------------------------------------------------
2878dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2879dnl --------------
2880dnl Check if a return from main to the shell actually returns the same exit
2881dnl code.  This is true for almost any POSIX environment.
2882dnl
2883dnl Some very old environments did not flush stdout, etc., on an exit.  That
2884dnl would be a useful case to test for also.
2885AC_DEFUN([CF_MAIN_RETURN],
2886[
2887cf_cv_main_return=return
2888])dnl
2889dnl ---------------------------------------------------------------------------
2890dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2891dnl ------------
2892dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2893dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
2894dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2895dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2896AC_DEFUN([CF_MAKEFLAGS],
2897[
2898AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2899	cf_cv_makeflags=''
2900	for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2901	do
2902		cat >cf_makeflags.tmp <<CF_EOF
2903SHELL = /bin/sh
2904all :
2905	@ echo '.$cf_option'
2906CF_EOF
2907		cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ 	]]*$,,'`
2908		case "$cf_result" in
2909		.*k)
2910			cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2911			case "$cf_result" in
2912			.*CC=*)	cf_cv_makeflags=
2913				;;
2914			*)	cf_cv_makeflags=$cf_option
2915				;;
2916			esac
2917			break
2918			;;
2919		.-)	;;
2920		*)	echo "given option \"$cf_option\", no match \"$cf_result\""
2921			;;
2922		esac
2923	done
2924	rm -f cf_makeflags.tmp
2925])
2926
2927AC_SUBST(cf_cv_makeflags)
2928])dnl
2929dnl ---------------------------------------------------------------------------
2930dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
2931dnl ------------
2932dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
2933dnl a monocase filesystem.
2934AC_DEFUN([CF_MAKE_TAGS],[
2935AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2936AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
2937
2938if test "$cf_cv_mixedcase" = yes ; then
2939	AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
2940else
2941	MAKE_UPPER_TAGS=no
2942fi
2943
2944if test "$MAKE_UPPER_TAGS" = yes ; then
2945	MAKE_UPPER_TAGS=
2946else
2947	MAKE_UPPER_TAGS="#"
2948fi
2949AC_SUBST(MAKE_UPPER_TAGS)
2950
2951if test "$MAKE_LOWER_TAGS" = yes ; then
2952	MAKE_LOWER_TAGS=
2953else
2954	MAKE_LOWER_TAGS="#"
2955fi
2956AC_SUBST(MAKE_LOWER_TAGS)
2957])dnl
2958dnl ---------------------------------------------------------------------------
2959dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
2960dnl -----------------
2961dnl Option to allow user to override automatic configuration of manpage format.
2962dnl There are several special cases:
2963dnl
2964dnl	gzip - man checks for, can display gzip'd files
2965dnl	compress - man checks for, can display compressed files
2966dnl	BSDI - files in the cat-directories are suffixed ".0"
2967dnl	formatted - installer should format (put files in cat-directory)
2968dnl	catonly - installer should only format, e.g., for a turnkey system.
2969dnl
2970dnl There are other configurations which this macro does not test, e.g., HPUX's
2971dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
2972dnl convention would not match our use).
2973AC_DEFUN([CF_MANPAGE_FORMAT],
2974[
2975AC_REQUIRE([CF_PATHSEP])
2976AC_MSG_CHECKING(format of man-pages)
2977
2978AC_ARG_WITH(manpage-format,
2979	[  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
2980                          optionally formatted/catonly, e.g., gzip,formatted],
2981	[MANPAGE_FORMAT=$withval],
2982	[MANPAGE_FORMAT=unknown])
2983
2984test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
2985MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
2986
2987cf_unknown=
2988
2989case $MANPAGE_FORMAT in
2990unknown)
2991  if test -z "$MANPATH" ; then
2992    MANPATH="/usr/man:/usr/share/man"
2993  fi
2994
2995  # look for the 'date' man-page (it's most likely to be installed!)
2996  MANPAGE_FORMAT=
2997  cf_preform=no
2998  cf_catonly=yes
2999  cf_example=date
3000
3001  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
3002  for cf_dir in $MANPATH; do
3003    test -z "$cf_dir" && cf_dir=/usr/man
3004    for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
3005    do
3006      cf_test=`echo $cf_name | sed -e 's/*//'`
3007      if test "x$cf_test" = "x$cf_name" ; then
3008
3009	case "$cf_name" in
3010	*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3011	*.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3012	*.0)	MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3013	*)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3014	esac
3015
3016	case "$cf_name" in
3017	$cf_dir/man*)
3018	  cf_catonly=no
3019	  ;;
3020	$cf_dir/cat*)
3021	  cf_preform=yes
3022	  ;;
3023	esac
3024	break
3025      fi
3026
3027      # if we found a match in either man* or cat*, stop looking
3028      if test -n "$MANPAGE_FORMAT" ; then
3029	cf_found=no
3030	test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3031	test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3032	case "$cf_name" in
3033	$cf_dir/cat*)
3034	  cf_found=yes
3035	  ;;
3036	esac
3037	test $cf_found=yes && break
3038      fi
3039    done
3040    # only check the first directory in $MANPATH where we find manpages
3041    if test -n "$MANPAGE_FORMAT" ; then
3042       break
3043    fi
3044  done
3045  # if we did not find the example, just assume it is normal
3046  test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3047  IFS="$ac_save_ifs"
3048  ;;
3049*)
3050  for cf_option in $MANPAGE_FORMAT; do
3051     case $cf_option in #(vi
3052     gzip|compress|BSDI|normal|formatted|catonly)
3053       ;;
3054     *)
3055       cf_unknown="$cf_unknown $cf_option"
3056       ;;
3057     esac
3058  done
3059  ;;
3060esac
3061
3062AC_MSG_RESULT($MANPAGE_FORMAT)
3063if test -n "$cf_unknown" ; then
3064  AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3065fi
3066])dnl
3067dnl ---------------------------------------------------------------------------
3068dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3069dnl ------------------
3070dnl The Debian people have their own naming convention for manpages.  This
3071dnl option lets us override the name of the file containing renaming, or
3072dnl disable it altogether.
3073AC_DEFUN([CF_MANPAGE_RENAMES],
3074[
3075AC_MSG_CHECKING(for manpage renaming)
3076
3077AC_ARG_WITH(manpage-renames,
3078	[  --with-manpage-renames  specify manpage-renaming],
3079	[MANPAGE_RENAMES=$withval],
3080	[MANPAGE_RENAMES=yes])
3081
3082case ".$MANPAGE_RENAMES" in #(vi
3083.no) #(vi
3084  ;;
3085.|.yes)
3086  # Debian 'man' program?
3087  if test -f /etc/debian_version ; then
3088    MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3089  else
3090    MANPAGE_RENAMES=no
3091  fi
3092  ;;
3093esac
3094
3095if test "$MANPAGE_RENAMES" != no ; then
3096  if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3097    MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3098  elif test ! -f $MANPAGE_RENAMES ; then
3099    AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3100  fi
3101
3102  test ! -d man && mkdir man
3103
3104  # Construct a sed-script to perform renaming within man-pages
3105  if test -n "$MANPAGE_RENAMES" ; then
3106    test ! -d man && mkdir man
3107    sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3108  fi
3109fi
3110
3111AC_MSG_RESULT($MANPAGE_RENAMES)
3112AC_SUBST(MANPAGE_RENAMES)
3113])dnl
3114dnl ---------------------------------------------------------------------------
3115dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3116dnl -------------------
3117dnl Some people expect each tool to make all aliases for manpages in the
3118dnl man-directory.  This accommodates the older, less-capable implementations
3119dnl of 'man', and is optional.
3120AC_DEFUN([CF_MANPAGE_SYMLINKS],
3121[
3122AC_MSG_CHECKING(if manpage aliases will be installed)
3123
3124AC_ARG_WITH(manpage-aliases,
3125	[  --with-manpage-aliases  specify manpage-aliases using .so],
3126	[MANPAGE_ALIASES=$withval],
3127	[MANPAGE_ALIASES=yes])
3128
3129AC_MSG_RESULT($MANPAGE_ALIASES)
3130
3131if test "$LN_S" = "ln -s"; then
3132	cf_use_symlinks=yes
3133else
3134	cf_use_symlinks=no
3135fi
3136
3137MANPAGE_SYMLINKS=no
3138if test "$MANPAGE_ALIASES" = yes ; then
3139AC_MSG_CHECKING(if manpage symlinks should be used)
3140
3141AC_ARG_WITH(manpage-symlinks,
3142	[  --with-manpage-symlinks specify manpage-aliases using symlinks],
3143	[MANPAGE_SYMLINKS=$withval],
3144	[MANPAGE_SYMLINKS=$cf_use_symlinks])
3145
3146if test "$$cf_use_symlinks" = no; then
3147if test "$MANPAGE_SYMLINKS" = yes ; then
3148	AC_MSG_WARN(cannot make symlinks, will use .so files)
3149	MANPAGE_SYMLINKS=no
3150fi
3151fi
3152
3153AC_MSG_RESULT($MANPAGE_SYMLINKS)
3154fi
3155
3156])dnl
3157dnl ---------------------------------------------------------------------------
3158dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3159dnl --------------
3160dnl This option causes manpages to be run through tbl(1) to generate tables
3161dnl correctly.
3162AC_DEFUN([CF_MANPAGE_TBL],
3163[
3164AC_MSG_CHECKING(for manpage tbl)
3165
3166AC_ARG_WITH(manpage-tbl,
3167	[  --with-manpage-tbl      specify manpage processing with tbl],
3168	[MANPAGE_TBL=$withval],
3169	[MANPAGE_TBL=no])
3170
3171AC_MSG_RESULT($MANPAGE_TBL)
3172])dnl
3173dnl ---------------------------------------------------------------------------
3174dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
3175dnl ------------
3176dnl Try to determine if the man-pages on the system are compressed, and if
3177dnl so, what format is used.  Use this information to construct a script that
3178dnl will install man-pages.
3179AC_DEFUN([CF_MAN_PAGES],
3180[
3181CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3182CF_MANPAGE_FORMAT
3183CF_MANPAGE_RENAMES
3184CF_MANPAGE_SYMLINKS
3185CF_MANPAGE_TBL
3186
3187  if test "$prefix" = "NONE" ; then
3188     cf_prefix="$ac_default_prefix"
3189  else
3190     cf_prefix="$prefix"
3191  fi
3192
3193  case "$MANPAGE_FORMAT" in # (vi
3194  *catonly*) # (vi
3195    cf_format=yes
3196    cf_inboth=no
3197    ;;
3198  *formatted*) # (vi
3199    cf_format=yes
3200    cf_inboth=yes
3201    ;;
3202  *)
3203    cf_format=no
3204    cf_inboth=no
3205    ;;
3206  esac
3207
3208test ! -d man && mkdir man
3209
3210cf_so_strip=
3211cf_compress=
3212case "$MANPAGE_FORMAT" in #(vi
3213*compress*) #(vi
3214	cf_so_strip="Z"
3215	cf_compress=compress
3216  ;;
3217*gzip*) #(vi
3218	cf_so_strip="gz"
3219	cf_compress=gzip
3220  ;;
3221esac
3222
3223cf_edit_man=./edit_man.sh
3224cf_man_alias=`pwd`/man_alias.sed
3225
3226cat >$cf_edit_man <<CF_EOF
3227#! /bin/sh
3228# this script is generated by the configure-script CF_MAN_PAGES macro.
3229
3230prefix="$cf_prefix"
3231datadir="$datadir"
3232
3233NCURSES_MAJOR="$NCURSES_MAJOR"
3234NCURSES_MINOR="$NCURSES_MINOR"
3235NCURSES_PATCH="$NCURSES_PATCH"
3236
3237NCURSES_OSPEED="$NCURSES_OSPEED"
3238TERMINFO="$TERMINFO"
3239
3240MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3241
3242INSTALL="$INSTALL"
3243INSTALL_DATA="$INSTALL_DATA"
3244
3245transform="$program_transform_name"
3246
3247TMP=\${TMPDIR-/tmp}/man\$\$
3248trap "rm -f \$TMP" 0 1 2 5 15
3249
3250form=\[$]1
3251shift || exit 1
3252
3253verb=\[$]1
3254shift || exit 1
3255
3256mandir=\[$]1
3257shift || exit 1
3258
3259srcdir=\[$]1
3260top_srcdir=\[$]srcdir/..
3261shift || exit 1
3262
3263if test "\$form" = normal ; then
3264	if test "$cf_format" = yes ; then
3265	if test "$cf_inboth" = no ; then
3266		sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3267		exit $?
3268	fi
3269	fi
3270	cf_subdir=\$mandir/man
3271	cf_tables=$MANPAGE_TBL
3272else
3273	cf_subdir=\$mandir/cat
3274	cf_tables=yes
3275fi
3276
3277# process the list of source-files
3278for i in \[$]* ; do
3279case \$i in #(vi
3280*.orig|*.rej) ;; #(vi
3281*.[[0-9]]*)
3282	section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3283	if test \$verb = installing ; then
3284	if test ! -d \$cf_subdir\${section} ; then
3285		\$MKDIRS \$cf_subdir\$section
3286	fi
3287	fi
3288
3289	# replace variables in man page
3290	if test ! -f $cf_man_alias ; then
3291cat >>$cf_man_alias <<-CF_EOF2
3292		s,@DATADIR@,\$datadir,g
3293		s,@TERMINFO@,\$TERMINFO,g
3294		s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3295		s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3296		s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3297		s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3298CF_EOF
3299	ifelse($1,,,[
3300	for cf_name in $1
3301	do
3302		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3303		cf_name=`echo $cf_name|sed "$program_transform_name"`
3304cat >>$cf_edit_man <<-CF_EOF
3305		s,@$cf_NAME@,$cf_name,
3306CF_EOF
3307	done
3308	])
3309cat >>$cf_edit_man <<CF_EOF
3310CF_EOF2
3311		echo "...made $cf_man_alias"
3312	fi
3313
3314	aliases=
3315	cf_source=\`basename \$i\`
3316	inalias=\$cf_source
3317	test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3318	if test ! -f \$inalias ; then
3319		echo .. skipped \$cf_source
3320		continue
3321	fi
3322CF_EOF
3323
3324if test "$MANPAGE_ALIASES" != no ; then
3325cat >>$cf_edit_man <<CF_EOF
3326	aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3327CF_EOF
3328fi
3329
3330if test "$MANPAGE_RENAMES" = no ; then
3331cat >>$cf_edit_man <<CF_EOF
3332	# perform program transformations for section 1 man pages
3333	if test \$section = 1 ; then
3334		cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3335	else
3336		cf_target=\$cf_subdir\${section}/\$cf_source
3337	fi
3338CF_EOF
3339else
3340cat >>$cf_edit_man <<CF_EOF
3341	cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3342	if test -z "\$cf_target" ; then
3343		echo '? missing rename for '\$cf_source
3344		cf_target="\$cf_source"
3345	fi
3346	cf_target="\$cf_subdir\${section}/\${cf_target}"
3347
3348CF_EOF
3349fi
3350
3351cat >>$cf_edit_man <<CF_EOF
3352	sed	-f $cf_man_alias \\
3353CF_EOF
3354
3355if test -f $MANPAGE_RENAMES ; then
3356cat >>$cf_edit_man <<CF_EOF
3357		< \$i | sed -f `pwd`/edit_man.sed >\$TMP
3358CF_EOF
3359else
3360cat >>$cf_edit_man <<CF_EOF
3361		< \$i >\$TMP
3362CF_EOF
3363fi
3364
3365cat >>$cf_edit_man <<CF_EOF
3366if test \$cf_tables = yes ; then
3367	tbl \$TMP >\$TMP.out
3368	mv \$TMP.out \$TMP
3369fi
3370CF_EOF
3371
3372if test $with_curses_h != yes ; then
3373cat >>$cf_edit_man <<CF_EOF
3374	sed -e "/\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3375	mv \$TMP.out \$TMP
3376CF_EOF
3377fi
3378
3379cat >>$cf_edit_man <<CF_EOF
3380	if test \$form = format ; then
3381		nroff -man \$TMP >\$TMP.out
3382		mv \$TMP.out \$TMP
3383	fi
3384CF_EOF
3385
3386if test -n "$cf_compress" ; then
3387cat >>$cf_edit_man <<CF_EOF
3388	if test \$verb = installing ; then
3389	if ( $cf_compress -f \$TMP )
3390	then
3391		mv \$TMP.$cf_so_strip \$TMP
3392	fi
3393	fi
3394	cf_target="\$cf_target.$cf_so_strip"
3395CF_EOF
3396fi
3397
3398case "$MANPAGE_FORMAT" in #(vi
3399*BSDI*)
3400cat >>$cf_edit_man <<CF_EOF
3401	if test \$form = format ; then
3402		# BSDI installs only .0 suffixes in the cat directories
3403		cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3404	fi
3405CF_EOF
3406  ;;
3407esac
3408
3409cat >>$cf_edit_man <<CF_EOF
3410	suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3411	if test \$verb = installing ; then
3412		echo \$verb \$cf_target
3413		\$INSTALL_DATA \$TMP \$cf_target
3414		test -d \$cf_subdir\${section} &&
3415		test -n "\$aliases" && (
3416			cd \$cf_subdir\${section} && (
3417				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3418				test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3419				cf_target=\`basename \$cf_target\`
3420				for cf_alias in \$aliases
3421				do
3422					if test \$section = 1 ; then
3423						cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3424					fi
3425
3426					if test "$MANPAGE_SYMLINKS" = yes ; then
3427						if test -f \$cf_alias\${suffix} ; then
3428							if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3429							then
3430								continue
3431							fi
3432						fi
3433						echo .. \$verb alias \$cf_alias\${suffix}
3434						rm -f \$cf_alias\${suffix}
3435						$LN_S \$cf_target \$cf_alias\${suffix}
3436					elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3437						echo ".so \$cf_source" >\$TMP
3438CF_EOF
3439if test -n "$cf_compress" ; then
3440cat >>$cf_edit_man <<CF_EOF
3441						if test -n "$cf_so_strip" ; then
3442							$cf_compress -f \$TMP
3443							mv \$TMP.$cf_so_strip \$TMP
3444						fi
3445CF_EOF
3446fi
3447cat >>$cf_edit_man <<CF_EOF
3448						echo .. \$verb alias \$cf_alias\${suffix}
3449						rm -f \$cf_alias\${suffix}
3450						\$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3451					fi
3452				done
3453			)
3454		)
3455	elif test \$verb = removing ; then
3456		test -f \$cf_target && (
3457			echo \$verb \$cf_target
3458			rm -f \$cf_target
3459		)
3460		test -d \$cf_subdir\${section} &&
3461		test -n "\$aliases" && (
3462			cd \$cf_subdir\${section} && (
3463				for cf_alias in \$aliases
3464				do
3465					if test \$section = 1 ; then
3466						cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3467					fi
3468
3469					echo .. \$verb alias \$cf_alias\${suffix}
3470					rm -f \$cf_alias\${suffix}
3471				done
3472			)
3473		)
3474	else
3475#		echo ".hy 0"
3476		cat \$TMP
3477	fi
3478	;;
3479esac
3480done
3481
3482if test $cf_inboth = yes ; then
3483if test \$form != format ; then
3484	sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3485fi
3486fi
3487
3488exit 0
3489CF_EOF
3490chmod 755 $cf_edit_man
3491
3492])dnl
3493dnl ---------------------------------------------------------------------------
3494dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3495dnl -----------
3496dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
3497dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
3498dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3499AC_DEFUN([CF_MATH_LIB],
3500[
3501AC_CACHE_CHECK(if -lm needed for math functions,
3502	cf_cv_need_libm,[
3503	AC_TRY_LINK([
3504	#include <stdio.h>
3505	#include <math.h>
3506	],
3507	[double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3508	[cf_cv_need_libm=no],
3509	[cf_cv_need_libm=yes])])
3510if test "$cf_cv_need_libm" = yes
3511then
3512ifelse($1,,[
3513	LIBS="$LIBS -lm"
3514],[$1=-lm])
3515fi
3516])
3517dnl ---------------------------------------------------------------------------
3518dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3519dnl ----------------------
3520dnl Check if the file-system supports mixed-case filenames.  If we're able to
3521dnl create a lowercase name and see it as uppercase, it doesn't support that.
3522AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3523[
3524AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3525if test "$cross_compiling" = yes ; then
3526	case $target_alias in #(vi
3527	*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3528		cf_cv_mixedcase=no
3529		;;
3530	*)
3531		cf_cv_mixedcase=yes
3532		;;
3533	esac
3534else
3535	rm -f conftest CONFTEST
3536	echo test >conftest
3537	if test -f CONFTEST ; then
3538		cf_cv_mixedcase=no
3539	else
3540		cf_cv_mixedcase=yes
3541	fi
3542	rm -f conftest CONFTEST
3543fi
3544])
3545test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3546])dnl
3547dnl ---------------------------------------------------------------------------
3548dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3549dnl ----------
3550dnl Check for a working mkstemp.  This creates two files, checks that they are
3551dnl successfully created and distinct (AmigaOS apparently fails on the last).
3552AC_DEFUN([CF_MKSTEMP],[
3553AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3554rm -f conftest*
3555AC_TRY_RUN([
3556#include <sys/types.h>
3557#include <stdlib.h>
3558#include <stdio.h>
3559#include <string.h>
3560#include <sys/stat.h>
3561int main()
3562{
3563	char *tmpl = "conftestXXXXXX";
3564	char name[2][80];
3565	int n;
3566	int result = 0;
3567	int fd;
3568	struct stat sb;
3569
3570	umask(077);
3571	for (n = 0; n < 2; ++n) {
3572		strcpy(name[n], tmpl);
3573		if ((fd = mkstemp(name[n])) >= 0) {
3574			if (!strcmp(name[n], tmpl)
3575			 || stat(name[n], &sb) != 0
3576			 || (sb.st_mode & S_IFMT) != S_IFREG
3577			 || (sb.st_mode & 077) != 0) {
3578				result = 1;
3579			}
3580			close(fd);
3581		}
3582	}
3583	if (result == 0
3584	 && !strcmp(name[0], name[1]))
3585		result = 1;
3586	${cf_cv_main_return:-return}(result);
3587}
3588],[cf_cv_func_mkstemp=yes
3589],[cf_cv_func_mkstemp=no
3590],[AC_CHECK_FUNC(mkstemp)
3591])
3592])
3593if test "$cf_cv_func_mkstemp" = yes ; then
3594	AC_DEFINE(HAVE_MKSTEMP)
3595fi
3596])dnl
3597dnl ---------------------------------------------------------------------------
3598dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3599dnl ----------
3600dnl Write a debug message to config.log, along with the line number in the
3601dnl configure script.
3602AC_DEFUN([CF_MSG_LOG],[
3603echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3604])dnl
3605dnl ---------------------------------------------------------------------------
3606dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3607dnl ----------------
3608dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3609dnl warn about this.
3610AC_DEFUN([CF_NCURSES_ABI_6],[
3611if test "${with_abi_version+set}" != set; then
3612	case $cf_cv_rel_version in
3613	5.*)
3614		cf_cv_rel_version=6.0
3615		cf_cv_abi_version=6
3616		AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3617		;;
3618	esac
3619fi
3620])dnl
3621dnl ---------------------------------------------------------------------------
3622dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3623dnl ------------------
3624dnl see CF_WITH_NO_LEAKS
3625AC_DEFUN([CF_NO_LEAKS_OPTION],[
3626AC_MSG_CHECKING(if you want to use $1 for testing)
3627AC_ARG_WITH($1,
3628	[$2],
3629	[AC_DEFINE($3)ifelse([$4],,[
3630	 $4
3631])
3632	: ${with_cflags:=-g}
3633	: ${with_no_leaks:=yes}
3634	 with_$1=yes],
3635	[with_$1=])
3636AC_MSG_RESULT(${with_$1:-no})
3637
3638case .$with_cflags in #(vi
3639.*-g*)
3640	case .$CFLAGS in #(vi
3641	.*-g*) #(vi
3642		;;
3643	*)
3644		CF_ADD_CFLAGS([-g])
3645		;;
3646	esac
3647	;;
3648esac
3649])dnl
3650dnl ---------------------------------------------------------------------------
3651dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3652dnl ----------------
3653dnl Check if the given variable is a number.  If not, report an error.
3654dnl $1 is the variable
3655dnl $2 is the message
3656AC_DEFUN([CF_NUMBER_SYNTAX],[
3657if test -n "$1" ; then
3658  case $1 in #(vi
3659  [[0-9]]*) #(vi
3660 	;;
3661  *)
3662	AC_MSG_ERROR($2 is not a number: $1)
3663 	;;
3664  esac
3665else
3666  AC_MSG_ERROR($2 value is empty)
3667fi
3668])dnl
3669dnl ---------------------------------------------------------------------------
3670dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3671dnl -------------
3672dnl Compute the object-directory name from the given model name
3673AC_DEFUN([CF_OBJ_SUBDIR],
3674[
3675	case $1 in
3676	libtool) $2='obj_lo'  ;;
3677	normal)  $2='objects' ;;
3678	debug)   $2='obj_g' ;;
3679	profile) $2='obj_p' ;;
3680	shared)
3681		case $cf_cv_system_name in #(vi
3682		cygwin) #(vi
3683			$2='objects' ;;
3684		*)
3685			$2='obj_s' ;;
3686		esac
3687	esac
3688])dnl
3689dnl ---------------------------------------------------------------------------
3690dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
3691dnl ----------
3692dnl Provide a value for the $PATH and similar separator
3693AC_DEFUN([CF_PATHSEP],
3694[
3695	case $cf_cv_system_name in
3696	os2*)	PATHSEP=';'  ;;
3697	*)	PATHSEP=':'  ;;
3698	esac
3699ifelse($1,,,[$1=$PATHSEP])
3700	AC_SUBST(PATHSEP)
3701])dnl
3702dnl ---------------------------------------------------------------------------
3703dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3704dnl --------------
3705dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
3706dnl begins with one of the prefix/exec_prefix variables, and then again if the
3707dnl result begins with 'NONE'.  This is necessary to work around autoconf's
3708dnl delayed evaluation of those symbols.
3709AC_DEFUN([CF_PATH_SYNTAX],[
3710if test "x$prefix" != xNONE; then
3711  cf_path_syntax="$prefix"
3712else
3713  cf_path_syntax="$ac_default_prefix"
3714fi
3715
3716case ".[$]$1" in #(vi
3717.\[$]\(*\)*|.\'*\'*) #(vi
3718  ;;
3719..|./*|.\\*) #(vi
3720  ;;
3721.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3722  ;;
3723.\[$]{*prefix}*) #(vi
3724  eval $1="[$]$1"
3725  case ".[$]$1" in #(vi
3726  .NONE/*)
3727    $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3728    ;;
3729  esac
3730  ;; #(vi
3731.no|.NONE/*)
3732  $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3733  ;;
3734*)
3735  ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3736  ;;
3737esac
3738])dnl
3739dnl ---------------------------------------------------------------------------
3740dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3741dnl -----------------
3742dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3743dnl
3744dnl	POSIX.1-1990				_POSIX_SOURCE
3745dnl	POSIX.1-1990 and			_POSIX_SOURCE and
3746dnl		POSIX.2-1992 C-Language			_POSIX_C_SOURCE=2
3747dnl		Bindings Option
3748dnl	POSIX.1b-1993				_POSIX_C_SOURCE=199309L
3749dnl	POSIX.1c-1996				_POSIX_C_SOURCE=199506L
3750dnl	X/Open 2000				_POSIX_C_SOURCE=200112L
3751dnl
3752dnl Parameters:
3753dnl	$1 is the nominal value for _POSIX_C_SOURCE
3754AC_DEFUN([CF_POSIX_C_SOURCE],
3755[
3756cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3757
3758cf_save_CFLAGS="$CFLAGS"
3759cf_save_CPPFLAGS="$CPPFLAGS"
3760
3761CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3762CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3763
3764AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3765	CF_MSG_LOG(if the symbol is already defined go no further)
3766	AC_TRY_COMPILE([#include <sys/types.h>],[
3767#ifndef _POSIX_C_SOURCE
3768make an error
3769#endif],
3770	[cf_cv_posix_c_source=no],
3771	[cf_want_posix_source=no
3772	 case .$cf_POSIX_C_SOURCE in #(vi
3773	 .[[12]]??*) #(vi
3774		cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3775		;;
3776	 .2) #(vi
3777		cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3778		cf_want_posix_source=yes
3779		;;
3780	 .*)
3781		cf_want_posix_source=yes
3782		;;
3783	 esac
3784	 if test "$cf_want_posix_source" = yes ; then
3785		AC_TRY_COMPILE([#include <sys/types.h>],[
3786#ifdef _POSIX_SOURCE
3787make an error
3788#endif],[],
3789		cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3790	 fi
3791	 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3792	 CFLAGS="$cf_trim_CFLAGS"
3793	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3794	 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3795	 AC_TRY_COMPILE([#include <sys/types.h>],[
3796#ifndef _POSIX_C_SOURCE
3797make an error
3798#endif],,
3799	 [cf_cv_posix_c_source=no])
3800	 CFLAGS="$cf_save_CFLAGS"
3801	 CPPFLAGS="$cf_save_CPPFLAGS"
3802	])
3803])
3804
3805if test "$cf_cv_posix_c_source" != no ; then
3806	CFLAGS="$cf_trim_CFLAGS"
3807	CPPFLAGS="$cf_trim_CPPFLAGS"
3808	if test "$cf_cv_cc_u_d_options" = yes ; then
3809		cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3810				sed -e 's/-D/-U/g' -e 's/=[[^ 	]]*//g'`
3811		CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3812	fi
3813	CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3814fi
3815
3816])dnl
3817dnl ---------------------------------------------------------------------------
3818dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3819dnl ------------
3820dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3821dnl
3822dnl $1 = symbol to test
3823dnl $2 = value (if any) to use for a predefinition
3824AC_DEFUN([CF_PREDEFINE],
3825[
3826AC_MSG_CHECKING(if we must define $1)
3827AC_TRY_COMPILE([#include <sys/types.h>
3828],[
3829#ifndef $1
3830make an error
3831#endif],[cf_result=no],[cf_result=yes])
3832AC_MSG_RESULT($cf_result)
3833
3834if test "$cf_result" = yes ; then
3835	CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3836elif test "x$2" != "x" ; then
3837	AC_MSG_CHECKING(checking for compatible value versus $2)
3838	AC_TRY_COMPILE([#include <sys/types.h>
3839],[
3840#if $1-$2 < 0
3841make an error
3842#endif],[cf_result=yes],[cf_result=no])
3843	AC_MSG_RESULT($cf_result)
3844	if test "$cf_result" = no ; then
3845		# perhaps we can override it - try...
3846		CPPFLAGS="$CPPFLAGS -D$1=$2"
3847	fi
3848fi
3849])dnl
3850dnl ---------------------------------------------------------------------------
3851dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3852dnl ------------
3853dnl Append definitions and rules for the given programs to the subdirectory
3854dnl Makefiles, and the recursion rule for the top-level Makefile.
3855dnl
3856dnl parameters
3857dnl	$1 = script to run
3858dnl	$2 = list of subdirectories
3859dnl
3860dnl variables
3861dnl	$AWK
3862AC_DEFUN([CF_PRG_RULES],
3863[
3864for cf_dir in $2
3865do
3866	if test ! -d $srcdir/$cf_dir; then
3867		continue
3868	elif test -f $srcdir/$cf_dir/programs; then
3869		$AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3870	fi
3871done
3872
3873])dnl
3874dnl ---------------------------------------------------------------------------
3875dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3876dnl -----------
3877dnl Check for awk, ensure that the check found something.
3878AC_DEFUN([CF_PROG_AWK],
3879[
3880AC_PROG_AWK
3881test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3882])dnl
3883dnl ---------------------------------------------------------------------------
3884dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
3885dnl --------------
3886dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3887dnl the output file can be renamed, and allows for a shell variable that can
3888dnl be used later.  The parameter is either CC or CXX.  The result is the
3889dnl cache variable:
3890dnl	$cf_cv_prog_CC_c_o
3891dnl	$cf_cv_prog_CXX_c_o
3892AC_DEFUN([CF_PROG_CC_C_O],
3893[AC_REQUIRE([AC_PROG_CC])dnl
3894AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3895AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3896[
3897cat > conftest.$ac_ext <<CF_EOF
3898#include <stdio.h>
3899int main()
3900{
3901	${cf_cv_main_return:-return}(0);
3902}
3903CF_EOF
3904# We do the test twice because some compilers refuse to overwrite an
3905# existing .o file with -o, though they will create one.
3906ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3907if AC_TRY_EVAL(ac_try) &&
3908  test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3909then
3910  eval cf_cv_prog_$1_c_o=yes
3911else
3912  eval cf_cv_prog_$1_c_o=no
3913fi
3914rm -f conftest*
3915])dnl
3916if test $cf_cv_prog_$1_c_o = yes; then
3917  AC_MSG_RESULT([yes])
3918else
3919  AC_MSG_RESULT([no])
3920fi
3921])dnl
3922dnl ---------------------------------------------------------------------------
3923dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
3924dnl --------------
3925dnl Check if C (preprocessor) -U and -D options are processed in the order
3926dnl given rather than by type of option.  Some compilers insist on apply all
3927dnl of the -U options after all of the -D options.  Others allow mixing them,
3928dnl and may predefine symbols that conflict with those we define.
3929AC_DEFUN([CF_PROG_CC_U_D],
3930[
3931AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
3932	cf_save_CPPFLAGS="$CPPFLAGS"
3933	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
3934	AC_TRY_COMPILE([],[
3935#ifndef U_D_OPTIONS
3936make an undefined-error
3937#endif
3938#ifdef  D_U_OPTIONS
3939make a defined-error
3940#endif
3941	],[
3942	cf_cv_cc_u_d_options=yes],[
3943	cf_cv_cc_u_d_options=no])
3944	CPPFLAGS="$cf_save_CPPFLAGS"
3945])
3946])dnl
3947dnl ---------------------------------------------------------------------------
3948dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
3949dnl -------------
3950dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3951dnl This macro adds a check to ensure the script found something.
3952AC_DEFUN([CF_PROG_EGREP],
3953[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3954   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3955    then ac_cv_prog_egrep='grep -E'
3956    else ac_cv_prog_egrep='egrep'
3957    fi])
3958 EGREP=$ac_cv_prog_egrep
3959 AC_SUBST([EGREP])
3960test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3961])dnl
3962dnl ---------------------------------------------------------------------------
3963dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
3964dnl -----------
3965dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3966AC_DEFUN([CF_PROG_EXT],
3967[
3968AC_REQUIRE([CF_CHECK_CACHE])
3969case $cf_cv_system_name in
3970os2*)
3971    CFLAGS="$CFLAGS -Zmt"
3972    CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
3973    CXXFLAGS="$CXXFLAGS -Zmt"
3974    # autoconf's macro sets -Zexe and suffix both, which conflict:w
3975    LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3976    ac_cv_exeext=.exe
3977    ;;
3978esac
3979
3980AC_EXEEXT
3981AC_OBJEXT
3982
3983PROG_EXT="$EXEEXT"
3984AC_SUBST(PROG_EXT)
3985test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
3986])dnl
3987dnl ---------------------------------------------------------------------------
3988dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
3989dnl ---------------
3990dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
3991dnl misc/tabset install won't work properly.  Usually this happens only when
3992dnl using the fallback mkinstalldirs script
3993AC_DEFUN([CF_PROG_INSTALL],
3994[AC_PROG_INSTALL
3995case $INSTALL in
3996/*)
3997  ;;
3998*)
3999  CF_DIRNAME(cf_dir,$INSTALL)
4000  test -z "$cf_dir" && cf_dir=.
4001  INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4002  ;;
4003esac
4004])dnl
4005dnl ---------------------------------------------------------------------------
4006dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
4007dnl ----------------
4008dnl Check for ldconfig, needed to fixup shared libraries that would be built
4009dnl and then used in the install.
4010AC_DEFUN([CF_PROG_LDCONFIG],[
4011if test "$cross_compiling" = yes ; then
4012  LDCONFIG=:
4013else
4014case "$cf_cv_system_name" in #(vi
4015freebsd*) #(vi
4016  test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4017  ;;
4018*) LDPATH=$PATH:/sbin:/usr/sbin
4019  AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4020  ;;
4021esac
4022fi
4023AC_SUBST(LDCONFIG)
4024])dnl
4025dnl ---------------------------------------------------------------------------
4026dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
4027dnl ------------
4028AC_DEFUN([CF_PROG_LINT],
4029[
4030AC_CHECK_PROGS(LINT, tdlint lint alint)
4031AC_SUBST(LINT_OPTS)
4032])dnl
4033dnl ---------------------------------------------------------------------------
4034dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
4035dnl --------
4036dnl Attempt to determine if we've got one of the flavors of regular-expression
4037dnl code that we can support.
4038AC_DEFUN([CF_REGEX],
4039[
4040AC_MSG_CHECKING([for regular-expression headers])
4041AC_CACHE_VAL(cf_cv_regex,[
4042AC_TRY_LINK([#include <sys/types.h>
4043#include <regex.h>],[
4044	regex_t *p;
4045	int x = regcomp(p, "", 0);
4046	int y = regexec(p, "", 0, 0, 0);
4047	regfree(p);
4048	],[cf_cv_regex="regex.h"],[
4049	AC_TRY_LINK([#include <regexp.h>],[
4050		char *p = compile("", "", "", 0);
4051		int x = step("", "");
4052	],[cf_cv_regex="regexp.h"],[
4053		cf_save_LIBS="$LIBS"
4054		LIBS="-lgen $LIBS"
4055		AC_TRY_LINK([#include <regexpr.h>],[
4056			char *p = compile("", "", "");
4057			int x = step("", "");
4058		],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
4059])
4060AC_MSG_RESULT($cf_cv_regex)
4061case $cf_cv_regex in
4062	regex.h)   AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
4063	regexp.h)  AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
4064	regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4065esac
4066])dnl
4067dnl ---------------------------------------------------------------------------
4068dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
4069dnl ----------------
4070dnl Remove all -U and -D options that refer to the given symbol from a list
4071dnl of C compiler options.  This works around the problem that not all
4072dnl compilers process -U and -D options from left-to-right, so a -U option
4073dnl cannot be used to cancel the effect of a preceding -D option.
4074dnl
4075dnl $1 = target (which could be the same as the source variable)
4076dnl $2 = source (including '$')
4077dnl $3 = symbol to remove
4078define([CF_REMOVE_DEFINE],
4079[
4080# remove $3 symbol from $2
4081$1=`echo "$2" | \
4082	sed	-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[[ 	]]/ /g' \
4083		-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[$]//g'`
4084])dnl
4085dnl ---------------------------------------------------------------------------
4086dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4087dnl -------------
4088dnl Remove the given library from the symbol
4089dnl
4090dnl $1 = target (which could be the same as the source variable)
4091dnl $2 = source (including '$')
4092dnl $3 = library to remove
4093define([CF_REMOVE_LIB],
4094[
4095# remove $3 library from $2
4096$1=`echo "$2" | sed -e 's/-l$3[[ 	]]//g' -e 's/-l$3[$]//'`
4097])dnl
4098dnl ---------------------------------------------------------------------------
4099dnl CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
4100dnl -------------
4101AC_DEFUN([CF_RPATH_HACK],
4102[
4103AC_REQUIRE([CF_SHARED_OPTS])
4104AC_MSG_CHECKING(for updated LDFLAGS)
4105if test -n "$LDFLAGS" ; then
4106AC_MSG_RESULT(maybe)
4107CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
4108CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4109case "$EXTRA_LDFLAGS" in #(vi
4110-Wl,-rpath,*) #(vi
4111	cf_rpath_hack="-Wl,-rpath,"
4112	;;
4113-R\ *)
4114	cf_rpath_hack="-R "
4115	;;
4116-R*)
4117	cf_rpath_hack="-R"
4118	;;
4119*)
4120	cf_rpath_hack=
4121	;;
4122esac
4123if test -n "$cf_rpath_hack" ; then
4124	cf_rpath_dst=
4125	for cf_rpath_src in $LDFLAGS
4126	do
4127		CF_VERBOSE(Filtering $cf_rpath_src)
4128		case $cf_rpath_src in #(vi
4129		-L*) #(vi
4130			if test "$cf_rpath_hack" = "-R " ; then
4131				cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4132			else
4133				cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
4134			fi
4135			CF_VERBOSE(...Filter $cf_rpath_tmp)
4136			EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4137			;;
4138		esac
4139		cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4140	done
4141	LDFLAGS=$cf_rpath_dst
4142	CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
4143	CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4144fi
4145else
4146AC_MSG_RESULT(no)
4147fi
4148])dnl
4149dnl ---------------------------------------------------------------------------
4150dnl CF_SHARED_OPTS version: 53 updated: 2008/10/25 18:14:20
4151dnl --------------
4152dnl --------------
4153dnl Attempt to determine the appropriate CC/LD options for creating a shared
4154dnl library.
4155dnl
4156dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4157dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4158dnl We avoid compiling-in a ../lib path for the shared library since that can
4159dnl lead to unexpected results at runtime.
4160dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4161dnl are compiled in ../../lib
4162dnl
4163dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4164dnl to install symbolic links to the rel/abi versions of shared libraries.
4165dnl
4166dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4167dnl version when making symbolic links.
4168dnl
4169dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4170dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4171dnl (ex: libncurses.so.<ver>).
4172dnl
4173dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
4174AC_DEFUN([CF_SHARED_OPTS],
4175[
4176	AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4177	LOCAL_LDFLAGS=
4178	LOCAL_LDFLAGS2=
4179	LD_SHARED_OPTS=
4180	INSTALL_LIB="-m 644"
4181
4182	cf_cv_do_symlinks=no
4183
4184	AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4185	AC_ARG_WITH(shlib-version,
4186	[  --with-shlib-version=X  Specify rel or abi version for shared libs],
4187	[test -z "$withval" && withval=auto
4188	case $withval in #(vi
4189	yes) #(vi
4190		cf_cv_shlib_version=auto
4191		;;
4192	rel|abi|auto|no) #(vi
4193		cf_cv_shlib_version=$withval
4194		;;
4195	*)
4196		AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4197		;;
4198	esac
4199	],[cf_cv_shlib_version=auto])
4200	AC_MSG_RESULT($cf_cv_shlib_version)
4201
4202	cf_cv_rm_so_locs=no
4203
4204	# Some less-capable ports of gcc support only -fpic
4205	CC_SHARED_OPTS=
4206	if test "$GCC" = yes
4207	then
4208		AC_MSG_CHECKING(which $CC option to use)
4209		cf_save_CFLAGS="$CFLAGS"
4210		for CC_SHARED_OPTS in -fPIC -fpic ''
4211		do
4212			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4213			AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4214		done
4215		AC_MSG_RESULT($CC_SHARED_OPTS)
4216		CFLAGS="$cf_save_CFLAGS"
4217	fi
4218
4219	cf_cv_shlib_version_infix=no
4220
4221	case $cf_cv_system_name in
4222	beos*)
4223		MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4224		;;
4225	cygwin*)
4226		CC_SHARED_OPTS=
4227		MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4228		cf_cv_shlib_version=cygdll
4229		cf_cv_shlib_version_infix=cygdll
4230		cat >mk_shared_lib.sh <<-CF_EOF
4231		#!/bin/sh
4232		SHARED_LIB=\[$]1
4233		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4234		shift
4235		cat <<-EOF
4236		Linking shared library
4237		** SHARED_LIB \[$]SHARED_LIB
4238		** IMPORT_LIB \[$]IMPORT_LIB
4239EOF
4240		exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4241CF_EOF
4242		chmod +x mk_shared_lib.sh 
4243		;;
4244	darwin*)
4245		EXTRA_CFLAGS="-no-cpp-precomp"
4246		CC_SHARED_OPTS="-dynamic"
4247		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4248		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4249		cf_cv_shlib_version_infix=yes
4250		AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4251			cf_save_LDFLAGS=$LDFLAGS
4252			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4253			AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4254				LDFLAGS=$cf_save_LDFLAGS])
4255		if test $cf_cv_ldflags_search_paths_first = yes; then
4256			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4257		fi
4258		;;
4259	hpux*)
4260		# (tested with gcc 2.7.2 -- I don't have c89)
4261		if test "$GCC" = yes; then
4262			LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4263		else
4264			CC_SHARED_OPTS='+Z'
4265			LD_SHARED_OPTS='-Wl,+b,${libdir}'
4266		fi
4267		MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4268		# HP-UX shared libraries must be executable, and should be
4269		# readonly to exploit a quirk in the memory manager.
4270		INSTALL_LIB="-m 555"
4271		;;
4272	irix*)
4273		if test "$cf_cv_ld_rpath" = yes ; then
4274			if test "$GCC" = yes; then
4275				cf_ld_rpath_opt="-Wl,-rpath,"
4276				EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4277			else
4278				cf_ld_rpath_opt="-rpath "
4279				EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4280			fi
4281		fi
4282		# tested with IRIX 5.2 and 'cc'.
4283		if test "$GCC" != yes; then
4284			CC_SHARED_OPTS='-KPIC'
4285			MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4286		else
4287			MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4288		fi
4289		cf_cv_rm_so_locs=yes
4290		;;
4291	linux*|gnu*|k*bsd*-gnu)
4292		if test "$DFT_LWR_MODEL" = "shared" ; then
4293			LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4294			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4295		fi
4296		if test "$cf_cv_ld_rpath" = yes ; then
4297			cf_ld_rpath_opt="-Wl,-rpath,"
4298			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4299		fi
4300		CF_SHARED_SONAME
4301		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4302		;;
4303	openbsd[[2-9]].*)
4304		if test "$DFT_LWR_MODEL" = "shared" ; then
4305			LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4306			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4307		fi
4308		if test "$cf_cv_ld_rpath" = yes ; then
4309			cf_ld_rpath_opt="-Wl,-rpath,"
4310			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4311		fi
4312		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4313		CF_SHARED_SONAME
4314		MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4315		;;
4316	nto-qnx*|openbsd*|freebsd[[12]].*)
4317		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4318		MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4319		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4320		;;
4321	freebsd*)
4322		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4323		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4324			LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4325			LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4326			cf_ld_rpath_opt="-rpath "
4327			EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4328		fi
4329		CF_SHARED_SONAME
4330		MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
4331		;;
4332	netbsd*)
4333		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4334		test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
4335		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4336			LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4337			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4338			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4339			if test "$cf_cv_shlib_version" = auto; then
4340			if test -f /usr/libexec/ld.elf_so; then
4341				cf_cv_shlib_version=abi
4342			else
4343				cf_cv_shlib_version=rel
4344			fi
4345			fi
4346			CF_SHARED_SONAME
4347			MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4348		else
4349			MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4350		fi
4351		;;
4352	osf*|mls+*)
4353		# tested with OSF/1 V3.2 and 'cc'
4354		# tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4355		# link with shared libs).
4356		MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4357		case $host_os in
4358		osf4*)
4359			MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4360			;;
4361		esac
4362		MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4363		if test "$DFT_LWR_MODEL" = "shared" ; then
4364			LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4365			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4366		fi
4367		if test "$cf_cv_ld_rpath" = yes ; then
4368			cf_ld_rpath_opt="-rpath"
4369			# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4370		fi
4371		cf_cv_rm_so_locs=yes
4372		;;
4373	sco3.2v5*)  # (also uw2* and UW7) hops 13-Apr-98
4374		# tested with osr5.0.5
4375		if test "$GCC" != yes; then
4376			CC_SHARED_OPTS='-belf -KPIC'
4377		fi
4378		MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4379		if test "$cf_cv_ld_rpath" = yes ; then
4380			# only way is to set LD_RUN_PATH but no switch for it
4381			RUN_PATH=$libdir
4382		fi
4383		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4384		LINK_PROGS='LD_RUN_PATH=${libdir}'
4385		LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4386		;;
4387	sunos4*)
4388		# tested with SunOS 4.1.1 and gcc 2.7.0
4389		if test "$GCC" != yes; then
4390			CC_SHARED_OPTS='-KPIC'
4391		fi
4392		MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4393		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4394		;;
4395	solaris2*)
4396		# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4397		# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4398		if test "$DFT_LWR_MODEL" = "shared" ; then
4399			LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4400			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4401		fi
4402		if test "$cf_cv_ld_rpath" = yes ; then
4403			cf_ld_rpath_opt="-R"
4404			EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4405		fi
4406		CF_SHARED_SONAME
4407		if test "$GCC" != yes; then
4408			CC_SHARED_OPTS='-xcode=pic32'
4409			MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4410		else
4411			MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4412		fi
4413		;;
4414	sysv5uw7*|unix_sv*)
4415		# tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4416		if test "$GCC" != yes; then
4417			CC_SHARED_OPTS='-KPIC'
4418		fi
4419		MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4420		;;
4421	*)
4422		CC_SHARED_OPTS='unknown'
4423		MK_SHARED_LIB='echo unknown'
4424		;;
4425	esac
4426
4427	# This works if the last tokens in $MK_SHARED_LIB are the -o target.
4428	case "$cf_cv_shlib_version" in #(vi
4429	rel|abi)
4430		case "$MK_SHARED_LIB" in #(vi
4431		*'-o $[@]')
4432			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4433			;;
4434		*)
4435			AC_MSG_WARN(ignored --with-shlib-version)
4436			;;
4437		esac
4438		;;
4439	esac
4440
4441	if test -n "$cf_ld_rpath_opt" ; then
4442		AC_MSG_CHECKING(if we need a space after rpath option)
4443		cf_save_LIBS="$LIBS"
4444		LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
4445		AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4446		LIBS="$cf_save_LIBS"
4447		AC_MSG_RESULT($cf_rpath_space)
4448		test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
4449		MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4450	fi
4451
4452	AC_SUBST(CC_SHARED_OPTS)
4453	AC_SUBST(LD_SHARED_OPTS)
4454	AC_SUBST(MK_SHARED_LIB)
4455	AC_SUBST(LINK_PROGS)
4456	AC_SUBST(LINK_TESTS)
4457	AC_SUBST(EXTRA_LDFLAGS)
4458	AC_SUBST(LOCAL_LDFLAGS)
4459	AC_SUBST(LOCAL_LDFLAGS2)
4460	AC_SUBST(INSTALL_LIB)
4461])dnl
4462dnl ---------------------------------------------------------------------------
4463dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4464dnl ----------------
4465dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4466dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4467dnl option.
4468dnl
4469dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4470dnl If missing, use "rel".
4471define([CF_SHARED_SONAME],
4472[
4473	test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4474	if test "$cf_cv_shlib_version" = rel; then
4475		cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4476	else
4477		cf_cv_shared_soname='`basename $[@]`'
4478	fi
4479])
4480dnl ---------------------------------------------------------------------------
4481dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4482dnl -----------
4483dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4484dnl programs need this test).
4485dnl
4486dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
4487dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
4488dnl winsize declaration is left alone - we may revisit this if Apple choose to
4489dnl break that part of the interface as well.
4490AC_DEFUN([CF_SIGWINCH],
4491[
4492AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4493	AC_TRY_COMPILE([
4494#include <sys/types.h>
4495#include <sys/signal.h>
4496],[int x = SIGWINCH],
4497	[cf_cv_define_sigwinch=yes],
4498	[AC_TRY_COMPILE([
4499#undef _XOPEN_SOURCE
4500#undef _POSIX_SOURCE
4501#undef _POSIX_C_SOURCE
4502#include <sys/types.h>
4503#include <sys/signal.h>
4504],[int x = SIGWINCH],
4505	[cf_cv_define_sigwinch=maybe],
4506	[cf_cv_define_sigwinch=no])
4507])
4508])
4509
4510if test "$cf_cv_define_sigwinch" = maybe ; then
4511AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4512cf_cv_fixup_sigwinch=unknown
4513cf_sigwinch=32
4514while test $cf_sigwinch != 1
4515do
4516	AC_TRY_COMPILE([
4517#undef _XOPEN_SOURCE
4518#undef _POSIX_SOURCE
4519#undef _POSIX_C_SOURCE
4520#include <sys/types.h>
4521#include <sys/signal.h>
4522],[
4523#if SIGWINCH != $cf_sigwinch
4524make an error
4525#endif
4526int x = SIGWINCH],
4527	[cf_cv_fixup_sigwinch=$cf_sigwinch
4528	 break])
4529
4530cf_sigwinch=`expr $cf_sigwinch - 1`
4531done
4532])
4533
4534	if test "$cf_cv_fixup_sigwinch" != unknown ; then
4535		CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4536	fi
4537fi
4538])dnl
4539dnl ---------------------------------------------------------------------------
4540dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4541dnl ---------------
4542dnl signal handler, but there are some gcc depedencies in that recommendation.
4543dnl Try anyway.
4544AC_DEFUN([CF_SIG_ATOMIC_T],
4545[
4546AC_MSG_CHECKING(for signal global datatype)
4547AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4548	for cf_type in \
4549		"volatile sig_atomic_t" \
4550		"sig_atomic_t" \
4551		"int"
4552	do
4553	AC_TRY_COMPILE([
4554#include <sys/types.h>
4555#include <signal.h>
4556#include <stdio.h>
4557
4558extern $cf_type x;
4559$cf_type x;
4560static void handler(int sig)
4561{
4562	x = 5;
4563}],
4564		[signal(SIGINT, handler);
4565		 x = 1],
4566		[cf_cv_sig_atomic_t=$cf_type],
4567		[cf_cv_sig_atomic_t=no])
4568		test "$cf_cv_sig_atomic_t" != no && break
4569	done
4570	])
4571AC_MSG_RESULT($cf_cv_sig_atomic_t)
4572test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4573])dnl
4574dnl ---------------------------------------------------------------------------
4575dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4576dnl -------------
4577dnl Check for definitions & structures needed for window size-changing
4578dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4579AC_DEFUN([CF_SIZECHANGE],
4580[
4581AC_REQUIRE([CF_STRUCT_TERMIOS])
4582AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4583    cf_cv_sizechange=unknown
4584    cf_save_CPPFLAGS="$CPPFLAGS"
4585
4586for cf_opts in "" "NEED_PTEM_H"
4587do
4588
4589    CPPFLAGS="$cf_save_CPPFLAGS"
4590    test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4591    AC_TRY_COMPILE([#include <sys/types.h>
4592#ifdef HAVE_TERMIOS_H
4593#include <termios.h>
4594#else
4595#ifdef HAVE_TERMIO_H
4596#include <termio.h>
4597#endif
4598#endif
4599#ifdef NEED_PTEM_H
4600/* This is a workaround for SCO:  they neglected to define struct winsize in
4601 * termios.h -- it's only in termio.h and ptem.h
4602 */
4603#include        <sys/stream.h>
4604#include        <sys/ptem.h>
4605#endif
4606#if !defined(sun) || !defined(HAVE_TERMIOS_H)
4607#include <sys/ioctl.h>
4608#endif
4609],[
4610#ifdef TIOCGSIZE
4611	struct ttysize win;	/* FIXME: what system is this? */
4612	int y = win.ts_lines;
4613	int x = win.ts_cols;
4614#else
4615#ifdef TIOCGWINSZ
4616	struct winsize win;
4617	int y = win.ws_row;
4618	int x = win.ws_col;
4619#else
4620	no TIOCGSIZE or TIOCGWINSZ
4621#endif /* TIOCGWINSZ */
4622#endif /* TIOCGSIZE */
4623	],
4624	[cf_cv_sizechange=yes],
4625	[cf_cv_sizechange=no])
4626
4627	CPPFLAGS="$cf_save_CPPFLAGS"
4628	if test "$cf_cv_sizechange" = yes ; then
4629		echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4630		test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4631		break
4632	fi
4633done
4634])
4635if test "$cf_cv_sizechange" != no ; then
4636	AC_DEFINE(HAVE_SIZECHANGE)
4637	case $cf_cv_sizechange in #(vi
4638	NEED*)
4639		AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4640		;;
4641	esac
4642fi
4643])dnl
4644dnl ---------------------------------------------------------------------------
4645dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
4646dnl --------------
4647dnl For each parameter, test if the source-directory exists, and if it contains
4648dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
4649dnl use in CF_LIB_RULES.
4650dnl
4651dnl This uses the configured value to make the lists SRC_SUBDIRS and
4652dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4653AC_DEFUN([CF_SRC_MODULES],
4654[
4655AC_MSG_CHECKING(for src modules)
4656
4657# dependencies and linker-arguments for test-programs
4658TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4659TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4660if test "$DFT_LWR_MODEL" = "libtool"; then
4661	TEST_ARGS="${TEST_DEPS}"
4662	TEST_ARG2="${TEST_DEP2}"
4663else
4664	TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4665	TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4666fi
4667
4668cf_cv_src_modules=
4669for cf_dir in $1
4670do
4671	if test -f $srcdir/$cf_dir/modules; then
4672
4673		# We may/may not have tack in the distribution, though the
4674		# makefile is.
4675		if test $cf_dir = tack ; then
4676			if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4677				continue
4678			fi
4679		fi
4680
4681		if test -z "$cf_cv_src_modules"; then
4682			cf_cv_src_modules=$cf_dir
4683		else
4684			cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4685		fi
4686
4687		# Make the ncurses_cfg.h file record the library interface files as
4688		# well.  These are header files that are the same name as their
4689		# directory.  Ncurses is the only library that does not follow
4690		# that pattern.
4691		if test $cf_dir = tack ; then
4692			continue
4693		elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4694			CF_UPPER(cf_have_include,$cf_dir)
4695			AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4696			AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4697			TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4698			TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4699			if test "$DFT_LWR_MODEL" = "libtool"; then
4700				TEST_ARGS="${TEST_DEPS}"
4701				TEST_ARG2="${TEST_DEP2}"
4702			else
4703				TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4704				TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4705			fi
4706		fi
4707	fi
4708done
4709AC_MSG_RESULT($cf_cv_src_modules)
4710
4711TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4712TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4713
4714AC_SUBST(TEST_ARGS)
4715AC_SUBST(TEST_DEPS)
4716
4717AC_SUBST(TEST_ARG2)
4718AC_SUBST(TEST_DEP2)
4719
4720SRC_SUBDIRS="man include"
4721for cf_dir in $cf_cv_src_modules
4722do
4723	SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4724done
4725SRC_SUBDIRS="$SRC_SUBDIRS test"
4726test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4727test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4728
4729ADA_SUBDIRS=
4730if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
4731   SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
4732   ADA_SUBDIRS="gen src samples"
4733fi
4734
4735SUB_MAKEFILES=
4736for cf_dir in $SRC_SUBDIRS
4737do
4738	SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
4739done
4740
4741if test -n "$ADA_SUBDIRS"; then
4742   for cf_dir in $ADA_SUBDIRS
4743   do
4744      SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
4745   done
4746   AC_SUBST(ADA_SUBDIRS)
4747fi
4748])dnl
4749dnl ---------------------------------------------------------------------------
4750dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
4751dnl -----------------
4752dnl Check for -lstdc++, which is GNU's standard C++ library.
4753AC_DEFUN([CF_STDCPP_LIBRARY],
4754[
4755if test -n "$GXX" ; then
4756case $cf_cv_system_name in #(vi
4757os2*) #(vi
4758	cf_stdcpp_libname=stdcpp
4759	;;
4760*)
4761	cf_stdcpp_libname=stdc++
4762	;;
4763esac
4764AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
4765	cf_save="$LIBS"
4766	LIBS="$LIBS -l$cf_stdcpp_libname"
4767AC_TRY_LINK([
4768#include <strstream.h>],[
4769char buf[80];
4770strstreambuf foo(buf, sizeof(buf))
4771],
4772	[cf_cv_libstdcpp=yes],
4773	[cf_cv_libstdcpp=no])
4774	LIBS="$cf_save"
4775])
4776test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
4777fi
4778])dnl
4779dnl ---------------------------------------------------------------------------
4780dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4781dnl --------------
4782dnl	Remove "-g" option from the compiler options
4783AC_DEFUN([CF_STRIP_G_OPT],
4784[$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4785dnl ---------------------------------------------------------------------------
4786dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4787dnl -------------------
4788dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
4789dnl do this if we've found the sigaction function.
4790dnl
4791dnl If needed, define SVR4_ACTION.
4792AC_DEFUN([CF_STRUCT_SIGACTION],[
4793if test "$ac_cv_func_sigaction" = yes; then
4794AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
4795AC_TRY_COMPILE([
4796#include <sys/types.h>
4797#include <signal.h>],
4798	[struct sigaction act],
4799	[sigact_bad=no],
4800	[
4801AC_TRY_COMPILE([
4802#define _POSIX_SOURCE
4803#include <sys/types.h>
4804#include <signal.h>],
4805	[struct sigaction act],
4806	[sigact_bad=yes
4807	 AC_DEFINE(SVR4_ACTION)],
4808	 [sigact_bad=unknown])])
4809AC_MSG_RESULT($sigact_bad)
4810fi
4811])dnl
4812dnl ---------------------------------------------------------------------------
4813dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
4814dnl -----------------
4815dnl Some machines require _POSIX_SOURCE to completely define struct termios.
4816dnl If so, define SVR4_TERMIO
4817AC_DEFUN([CF_STRUCT_TERMIOS],[
4818AC_CHECK_HEADERS( \
4819termio.h \
4820termios.h \
4821unistd.h \
4822)
4823if test "$ISC" = yes ; then
4824	AC_CHECK_HEADERS( sys/termio.h )
4825fi
4826if test "$ac_cv_header_termios_h" = yes ; then
4827	case "$CFLAGS $CPPFLAGS" in
4828	*-D_POSIX_SOURCE*)
4829		termios_bad=dunno ;;
4830	*)	termios_bad=maybe ;;
4831	esac
4832	if test "$termios_bad" = maybe ; then
4833	AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
4834	AC_TRY_COMPILE([#include <termios.h>],
4835		[struct termios foo; int x = foo.c_iflag],
4836		termios_bad=no, [
4837		AC_TRY_COMPILE([
4838#define _POSIX_SOURCE
4839#include <termios.h>],
4840			[struct termios foo; int x = foo.c_iflag],
4841			termios_bad=unknown,
4842			termios_bad=yes AC_DEFINE(SVR4_TERMIO))
4843			])
4844	AC_MSG_RESULT($termios_bad)
4845	fi
4846fi
4847])dnl
4848dnl ---------------------------------------------------------------------------
4849dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
4850dnl --------------
4851dnl Construct a search-list for a nonstandard header/lib-file
4852dnl	$1 = the variable to return as result
4853dnl	$2 = the package name
4854dnl	$3 = the subdirectory, e.g., bin, include or lib
4855AC_DEFUN([CF_SUBDIR_PATH],
4856[$1=""
4857
4858CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
4859CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4860CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
4861CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
4862CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
4863])dnl
4864dnl ---------------------------------------------------------------------------
4865dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
4866dnl --------
4867dnl	Shorthand macro for substituting things that the user may override
4868dnl	with an environment variable.
4869dnl
4870dnl	$1 = long/descriptive name
4871dnl	$2 = environment variable
4872dnl	$3 = default value
4873AC_DEFUN([CF_SUBST],
4874[AC_CACHE_VAL(cf_cv_subst_$2,[
4875AC_MSG_CHECKING(for $1 (symbol $2))
4876CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
4877cf_cv_subst_$2=[$]$2
4878AC_MSG_RESULT([$]$2)
4879])
4880])dnl
4881dnl ---------------------------------------------------------------------------
4882dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
4883dnl -----------
4884dnl	Shorthand macro for substituting things that the user may override
4885dnl	with an environment variable.
4886dnl
4887dnl	$1 = condition to pass to "test"
4888dnl	$2 = environment variable
4889dnl	$3 = value if the test succeeds
4890dnl	$4 = value if the test fails
4891AC_DEFUN([CF_SUBST_IF],
4892[
4893if test $1 ; then
4894	$2=$3
4895ifelse($4,,,[else
4896	$2=$4])
4897fi
4898AC_SUBST($2)
4899])dnl
4900dnl ---------------------------------------------------------------------------
4901dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
4902dnl ------------------------
4903dnl Get the version-number for use in shared-library naming, etc.
4904AC_DEFUN([CF_SUBST_NCURSES_VERSION],
4905[
4906AC_REQUIRE([CF_PROG_EGREP])
4907NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ 	]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4908NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ 	]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4909NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ 	]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4910cf_cv_abi_version=${NCURSES_MAJOR}
4911cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
4912dnl Show the computed version, for logging
4913cf_cv_timestamp=`date`
4914AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
4915dnl We need these values in the generated headers
4916AC_SUBST(NCURSES_MAJOR)
4917AC_SUBST(NCURSES_MINOR)
4918AC_SUBST(NCURSES_PATCH)
4919dnl We need these values in the generated makefiles
4920AC_SUBST(cf_cv_rel_version)
4921AC_SUBST(cf_cv_abi_version)
4922AC_SUBST(cf_cv_builtin_bool)
4923AC_SUBST(cf_cv_header_stdbool_h)
4924AC_SUBST(cf_cv_type_of_bool)dnl
4925])dnl
4926dnl ---------------------------------------------------------------------------
4927dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
4928dnl ------------------
4929dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
4930dnl older SCO configurations.
4931AC_DEFUN([CF_SYS_TIME_SELECT],
4932[
4933AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
4934AC_CACHE_VAL(cf_cv_sys_time_select,[
4935AC_TRY_COMPILE([
4936#include <sys/types.h>
4937#ifdef HAVE_SYS_TIME_H
4938#include <sys/time.h>
4939#endif
4940#ifdef HAVE_SYS_SELECT_H
4941#include <sys/select.h>
4942#endif
4943],[],[cf_cv_sys_time_select=yes],
4944     [cf_cv_sys_time_select=no])
4945     ])
4946AC_MSG_RESULT($cf_cv_sys_time_select)
4947test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
4948])dnl
4949dnl ---------------------------------------------------------------------------
4950dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
4951dnl ---------------
4952dnl Define a top_builddir symbol, for applications that need an absolute path.
4953AC_DEFUN([CF_TOP_BUILDDIR],
4954[
4955top_builddir=`pwd`
4956AC_SUBST(top_builddir)
4957])dnl
4958dnl ---------------------------------------------------------------------------
4959dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
4960dnl ----------------
4961dnl Determine the type we should use for chtype (and attr_t, which is treated
4962dnl as the same thing).  We want around 32 bits, so on most machines want a
4963dnl long, but on newer 64-bit machines, probably want an int.  If we're using
4964dnl wide characters, we have to have a type compatible with that, as well.
4965AC_DEFUN([CF_TYPEOF_CHTYPE],
4966[
4967AC_MSG_CHECKING([for type of chtype])
4968AC_CACHE_VAL(cf_cv_typeof_chtype,[
4969		AC_TRY_RUN([
4970#define WANT_BITS 31
4971#include <stdio.h>
4972int main()
4973{
4974	FILE *fp = fopen("cf_test.out", "w");
4975	if (fp != 0) {
4976		char *result = "long";
4977		if (sizeof(unsigned long) > sizeof(unsigned int)) {
4978			int n;
4979			unsigned int x, y;
4980			for (n = 0; n < WANT_BITS; n++) {
4981				x = (1 << n);
4982				y = (x >> n);
4983				if (y != 1 || x == 0) {
4984					x = 0;
4985					break;
4986				}
4987			}
4988			/*
4989			 * If x is nonzero, an int is big enough for the bits
4990			 * that we want.
4991			 */
4992			result = (x != 0) ? "int" : "long";
4993		}
4994		fputs(result, fp);
4995		fclose(fp);
4996	}
4997	${cf_cv_main_return:-return}(0);
4998}
4999		],
5000		[cf_cv_typeof_chtype=`cat cf_test.out`],
5001		[cf_cv_typeof_chtype=long],
5002		[cf_cv_typeof_chtype=long])
5003		rm -f cf_test.out
5004	])
5005AC_MSG_RESULT($cf_cv_typeof_chtype)
5006
5007AC_SUBST(cf_cv_typeof_chtype)
5008AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5009])dnl
5010dnl ---------------------------------------------------------------------------
5011dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5012dnl -----------------
5013dnl
5014AC_DEFUN([CF_TYPE_SIGACTION],
5015[
5016AC_MSG_CHECKING([for type sigaction_t])
5017AC_CACHE_VAL(cf_cv_type_sigaction,[
5018	AC_TRY_COMPILE([
5019#include <signal.h>],
5020		[sigaction_t x],
5021		[cf_cv_type_sigaction=yes],
5022		[cf_cv_type_sigaction=no])])
5023AC_MSG_RESULT($cf_cv_type_sigaction)
5024test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5025])dnl
5026dnl ---------------------------------------------------------------------------
5027dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5028dnl --------------------
5029dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
5030dnl won't, but they're still there.
5031AC_DEFUN([CF_UNSIGNED_LITERALS],
5032[
5033AC_MSG_CHECKING([if unsigned literals are legal])
5034AC_CACHE_VAL(cf_cv_unsigned_literals,[
5035	AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5036		[cf_cv_unsigned_literals=yes],
5037		[cf_cv_unsigned_literals=no])
5038	])
5039AC_MSG_RESULT($cf_cv_unsigned_literals)
5040])dnl
5041dnl ---------------------------------------------------------------------------
5042dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5043dnl --------
5044dnl Make an uppercase version of a variable
5045dnl $1=uppercase($2)
5046AC_DEFUN([CF_UPPER],
5047[
5048$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5049])dnl
5050dnl ---------------------------------------------------------------------------
5051dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
5052dnl -----------
5053dnl Check for multibyte support, and if not found, utf8 compatibility library
5054AC_DEFUN([CF_UTF8_LIB],
5055[
5056AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5057	cf_save_LIBS="$LIBS"
5058	AC_TRY_LINK([
5059#include <stdlib.h>],[putwc(0,0);],
5060	[cf_cv_utf8_lib=yes],
5061	[CF_FIND_LINKAGE([
5062#include <libutf8.h>],[putwc(0,0);],utf8,
5063		[cf_cv_utf8_lib=add-on],
5064		[cf_cv_utf8_lib=no])
5065])])
5066
5067# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5068# ncurses/ncursesw:
5069if test "$cf_cv_utf8_lib" = "add-on" ; then
5070	AC_DEFINE(HAVE_LIBUTF8_H)
5071	CF_ADD_INCDIR($cf_cv_header_path_utf8)
5072	CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5073	LIBS="-lutf8 $LIBS"
5074fi
5075])dnl
5076dnl ---------------------------------------------------------------------------
5077dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5078dnl ----------
5079dnl Use AC_VERBOSE w/o the warnings
5080AC_DEFUN([CF_VERBOSE],
5081[test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
5082CF_MSG_LOG([$1])
5083])dnl
5084dnl ---------------------------------------------------------------------------
5085dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
5086dnl -------------
5087dnl Check if type wide-character type $1 is declared, and if so, which header
5088dnl file is needed.  The second parameter is used to set a shell variable when
5089dnl the type is not found.  The first parameter sets a shell variable for the
5090dnl opposite sense.
5091AC_DEFUN([CF_WCHAR_TYPE],
5092[
5093# This is needed on Tru64 5.0 to declare $1
5094AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5095AC_TRY_COMPILE([
5096#include <stdlib.h>
5097#include <stdarg.h>
5098#include <stdio.h>
5099#ifdef HAVE_LIBUTF8_H
5100#include <libutf8.h>
5101#endif],
5102	[$1 state],
5103	[cf_cv_$1=no],
5104	[AC_TRY_COMPILE([
5105#include <stdlib.h>
5106#include <stdarg.h>
5107#include <stdio.h>
5108#include <wchar.h>
5109#ifdef HAVE_LIBUTF8_H
5110#include <libutf8.h>
5111#endif],
5112	[$1 value],
5113	[cf_cv_$1=yes],
5114	[cf_cv_$1=unknown])])])
5115
5116if test "$cf_cv_$1" = yes ; then
5117	AC_DEFINE(NEED_WCHAR_H)
5118	NEED_WCHAR_H=1
5119fi
5120
5121ifelse($2,,,[
5122# if we do not find $1 in either place, use substitution to provide a fallback.
5123if test "$cf_cv_$1" = unknown ; then
5124	$2=1
5125fi
5126])
5127ifelse($3,,,[
5128# if we find $1 in either place, use substitution to provide a fallback.
5129if test "$cf_cv_$1" != unknown ; then
5130	$3=1
5131fi
5132])
5133])dnl
5134dnl ---------------------------------------------------------------------------
5135dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5136dnl ---------------
5137dnl Check for compiler-support for weak symbols.
5138dnl This works with "recent" gcc.
5139AC_DEFUN([CF_WEAK_SYMBOLS],[
5140AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5141
5142AC_TRY_COMPILE([
5143#include <stdio.h>],
5144[
5145#if defined(__GNUC__)
5146#  if defined __USE_ISOC99
5147#    define _cat_pragma(exp)	_Pragma(#exp)
5148#    define _weak_pragma(exp)	_cat_pragma(weak name)
5149#  else
5150#    define _weak_pragma(exp)
5151#  endif
5152#  define _declare(name)	__extension__ extern __typeof__(name) name
5153#  define weak_symbol(name)	_weak_pragma(name) _declare(name) __attribute__((weak))
5154#endif
5155
5156weak_symbol(fopen);
5157],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5158])
5159])dnl
5160dnl ---------------------------------------------------------------------------
5161dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5162dnl -------------------
5163dnl Allow library's ABI to be overridden.  Generally this happens when a
5164dnl packager has incremented the ABI past that used in the original package,
5165dnl and wishes to keep doing this.
5166dnl
5167dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5168dnl symbol.
5169AC_DEFUN([CF_WITH_ABI_VERSION],[
5170test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5171AC_ARG_WITH(abi-version,
5172[  --with-abi-version=XXX  override derived ABI version],
5173[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5174 cf_cv_abi_version=$withval])
5175 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5176ifelse($1,,,[
5177$1_ABI=$cf_cv_abi_version
5178])
5179])dnl
5180dnl ---------------------------------------------------------------------------
5181dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5182dnl ----------------
5183dnl Configure-option for dbmalloc.  The optional parameter is used to override
5184dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5185AC_DEFUN([CF_WITH_DBMALLOC],[
5186CF_NO_LEAKS_OPTION(dbmalloc,
5187	[  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
5188	[USE_DBMALLOC])
5189
5190if test "$with_dbmalloc" = yes ; then
5191	AC_CHECK_HEADER(dbmalloc.h,
5192		[AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5193fi
5194])dnl
5195dnl ---------------------------------------------------------------------------
5196dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5197dnl ---------------
5198dnl Configure-option for dmalloc.  The optional parameter is used to override
5199dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5200AC_DEFUN([CF_WITH_DMALLOC],[
5201CF_NO_LEAKS_OPTION(dmalloc,
5202	[  --with-dmalloc          test: use Gray Watson's dmalloc library],
5203	[USE_DMALLOC])
5204
5205if test "$with_dmalloc" = yes ; then
5206	AC_CHECK_HEADER(dmalloc.h,
5207		[AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5208fi
5209])dnl
5210dnl ---------------------------------------------------------------------------
5211dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5212dnl -----------
5213dnl
5214dnl The option parameter (if neither yes/no) is assumed to be the name of
5215dnl the gpm library, e.g., for dynamic loading.
5216AC_DEFUN([CF_WITH_GPM],
5217[
5218AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5219AC_ARG_WITH(gpm,
5220	[  --with-gpm              use Alessandro Rubini's GPM library],
5221	[with_gpm=$withval],
5222	[with_gpm=maybe])
5223AC_MSG_RESULT($with_gpm)
5224
5225if test "$with_gpm" != no ; then
5226	AC_CHECK_HEADER(gpm.h,[
5227		AC_DEFINE(HAVE_GPM_H)
5228		if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5229			CF_VERBOSE(assuming we really have GPM library)
5230			AC_DEFINE(HAVE_LIBGPM)
5231		else
5232			AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5233				AC_MSG_ERROR(Cannot link with GPM library)
5234		fi
5235		with_gpm=yes
5236		])
5237	],[
5238		test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5239		with_gpm=no
5240	])
5241fi
5242])
5243dnl ---------------------------------------------------------------------------
5244dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
5245dnl ---------------
5246dnl Provide a configure option to incorporate libtool.  Define several useful
5247dnl symbols for the makefile rules.
5248dnl
5249dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5250dnl macros from libtool.m4 which is in the aclocal directory of automake.
5251dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5252dnl But that still does not work properly since the macro is expanded outside
5253dnl the CF_WITH_LIBTOOL macro:
5254dnl
5255dnl	#!/bin/sh
5256dnl	ACLOCAL=`aclocal --print-ac-dir`
5257dnl	if test -z "$ACLOCAL" ; then
5258dnl		echo cannot find aclocal directory
5259dnl		exit 1
5260dnl	elif test ! -f $ACLOCAL/libtool.m4 ; then
5261dnl		echo cannot find libtool.m4 file
5262dnl		exit 1
5263dnl	fi
5264dnl	
5265dnl	LOCAL=aclocal.m4
5266dnl	ORIG=aclocal.m4.orig
5267dnl	
5268dnl	trap "mv $ORIG $LOCAL" 0 1 2 5 15
5269dnl	rm -f $ORIG
5270dnl	mv $LOCAL $ORIG
5271dnl	
5272dnl	# sed the LIBTOOL= assignment to omit the current directory?
5273dnl	sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5274dnl	cat $ORIG >>$LOCAL
5275dnl	
5276dnl	autoconf-257 $*
5277dnl
5278AC_DEFUN([CF_WITH_LIBTOOL],
5279[
5280ifdef([AC_PROG_LIBTOOL],,[
5281LIBTOOL=
5282])
5283# common library maintenance symbols that are convenient for libtool scripts:
5284LIB_CREATE='${AR} -cr'
5285LIB_OBJECT='${OBJECTS}'
5286LIB_SUFFIX=.a
5287LIB_PREP="$RANLIB"
5288
5289# symbols used to prop libtool up to enable it to determine what it should be
5290# doing:
5291LIB_CLEAN=
5292LIB_COMPILE=
5293LIB_LINK='${CC}'
5294LIB_INSTALL=
5295LIB_UNINSTALL=
5296
5297AC_MSG_CHECKING(if you want to build libraries with libtool)
5298AC_ARG_WITH(libtool,
5299	[  --with-libtool          generate libraries with libtool],
5300	[with_libtool=$withval],
5301	[with_libtool=no])
5302AC_MSG_RESULT($with_libtool)
5303if test "$with_libtool" != "no"; then
5304ifdef([AC_PROG_LIBTOOL],[
5305	# missing_content_AC_PROG_LIBTOOL{{
5306	AC_PROG_LIBTOOL
5307	# missing_content_AC_PROG_LIBTOOL}}
5308],[
5309 	if test "$with_libtool" != "yes" ; then
5310		CF_PATH_SYNTAX(with_libtool)
5311		LIBTOOL=$with_libtool
5312	else
5313 		AC_PATH_PROG(LIBTOOL,libtool)
5314 	fi
5315 	if test -z "$LIBTOOL" ; then
5316 		AC_MSG_ERROR(Cannot find libtool)
5317 	fi
5318])dnl
5319	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
5320	LIB_OBJECT='${OBJECTS:.o=.lo}'
5321	LIB_SUFFIX=.la
5322	LIB_CLEAN='${LIBTOOL} --mode=clean'
5323	LIB_COMPILE='${LIBTOOL} --mode=compile'
5324	LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5325	LIB_INSTALL='${LIBTOOL} --mode=install'
5326	LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5327	LIB_PREP=:
5328
5329	# Show the version of libtool
5330	AC_MSG_CHECKING(version of libtool)
5331
5332	# Save the version in a cache variable - this is not entirely a good
5333	# thing, but the version string from libtool is very ugly, and for
5334	# bug reports it might be useful to have the original string.
5335	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
5336	AC_MSG_RESULT($cf_cv_libtool_version)
5337	if test -z "$cf_cv_libtool_version" ; then
5338		AC_MSG_ERROR(This is not GNU libtool)
5339	fi
5340
5341	# special hack to add --tag option for C++ compiler
5342	case $cf_cv_libtool_version in
5343	1.[[5-9]]*|[[2-9]]*)
5344		LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5345		LIBTOOL="$LIBTOOL --tag=CC"
5346		;;
5347	*)
5348		LIBTOOL_CXX="$LIBTOOL"
5349		;;
5350	esac
5351else
5352	LIBTOOL=""
5353	LIBTOOL_CXX=""
5354fi
5355
5356test -z "$LIBTOOL" && ECHO_LT=
5357
5358AC_SUBST(LIBTOOL)
5359AC_SUBST(LIBTOOL_CXX)
5360AC_SUBST(LIBTOOL_OPTS)
5361
5362AC_SUBST(LIB_CREATE)
5363AC_SUBST(LIB_OBJECT)
5364AC_SUBST(LIB_SUFFIX)
5365AC_SUBST(LIB_PREP)
5366
5367AC_SUBST(LIB_CLEAN)
5368AC_SUBST(LIB_COMPILE)
5369AC_SUBST(LIB_LINK)
5370AC_SUBST(LIB_INSTALL)
5371AC_SUBST(LIB_UNINSTALL)
5372
5373])dnl
5374dnl ---------------------------------------------------------------------------
5375dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5376dnl ------------
5377dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5378dnl defaulting to yes/no.
5379dnl
5380dnl $1 = option name
5381dnl $2 = help-text
5382dnl $3 = environment variable to set
5383dnl $4 = default value, shown in the help-message, must be a constant
5384dnl $5 = default value, if it's an expression & cannot be in the help-message
5385dnl
5386AC_DEFUN([CF_WITH_PATH],
5387[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5388ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5389if ifelse($5,,true,[test -n "$5"]) ; then
5390CF_PATH_SYNTAX(withval)
5391fi
5392$3="$withval"
5393AC_SUBST($3)dnl
5394])dnl
5395dnl ---------------------------------------------------------------------------
5396dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
5397dnl ----------------
5398dnl Process an option specifying a list of colon-separated paths.
5399dnl
5400dnl $1 = option name
5401dnl $2 = help-text
5402dnl $3 = environment variable to set
5403dnl $4 = default value, shown in the help-message, must be a constant
5404dnl $5 = default value, if it's an expression & cannot be in the help-message
5405dnl $6 = flag to tell if we want to define or substitute
5406dnl
5407AC_DEFUN([CF_WITH_PATHLIST],[
5408AC_REQUIRE([CF_PATHSEP])
5409AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5410ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5411
5412IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
5413cf_dst_path=
5414for cf_src_path in $withval
5415do
5416  CF_PATH_SYNTAX(cf_src_path)
5417  test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5418  cf_dst_path="${cf_dst_path}${cf_src_path}"
5419done
5420IFS="$ac_save_ifs"
5421
5422ifelse($6,define,[
5423# Strip single quotes from the value, e.g., when it was supplied as a literal
5424# for $4 or $5.
5425case $cf_dst_path in #(vi
5426\'*)
5427  cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5428  ;;
5429esac
5430cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5431])
5432
5433eval '$3="$cf_dst_path"'
5434AC_SUBST($3)dnl
5435
5436])dnl
5437dnl ---------------------------------------------------------------------------
5438dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5439dnl ---------------
5440dnl Check for POSIX thread library.
5441AC_DEFUN([CF_WITH_PTHREAD],
5442[
5443AC_MSG_CHECKING(if you want to link with the pthread library)
5444AC_ARG_WITH(pthread,
5445    [  --with-pthread          use POSIX thread library],
5446    [with_pthread=$withval],
5447    [with_pthread=no])
5448AC_MSG_RESULT($with_pthread)
5449
5450if test "$with_pthread" != no ; then
5451    AC_CHECK_HEADER(pthread.h,[
5452        AC_DEFINE(HAVE_PTHREADS_H)
5453
5454        AC_MSG_CHECKING(if we can link with the pthread library)
5455        cf_save_LIBS="$LIBS"
5456        LIBS="-lpthread $LIBS"
5457        AC_TRY_LINK([
5458#include <pthread.h>
5459],[
5460        int rc = pthread_create(0,0,0,0);
5461],[with_pthread=yes],[with_pthread=no])
5462        LIBS="$cf_save_LIBS"
5463        AC_MSG_RESULT($with_pthread)
5464
5465        if test "$with_pthread" = yes ; then
5466            LIBS="-lpthread $LIBS"
5467            AC_DEFINE(HAVE_LIBPTHREADS)
5468        else
5469            AC_MSG_ERROR(Cannot link with pthread library)
5470        fi
5471    ])
5472fi
5473])
5474dnl ---------------------------------------------------------------------------
5475dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5476dnl -------------------
5477dnl Allow library's release-version to be overridden.  Generally this happens when a
5478dnl packager has incremented the release-version past that used in the original package,
5479dnl and wishes to keep doing this.
5480dnl
5481dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5482dnl and {package}_MINOR symbols
5483dnl symbol.
5484AC_DEFUN([CF_WITH_REL_VERSION],[
5485test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5486AC_ARG_WITH(rel-version,
5487[  --with-rel-version=XXX  override derived release version],
5488[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5489 cf_cv_rel_version=$withval])
5490ifelse($1,,[
5491 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5492],[
5493 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5494 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5495 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5496 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5497])
5498])dnl
5499dnl ---------------------------------------------------------------------------
5500dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5501dnl ----------------
5502dnl If we can compile with sysmouse, make it available unless it is not wanted.
5503AC_DEFUN([CF_WITH_SYSMOUSE],[
5504# not everyone has "test -c"
5505if test -c /dev/sysmouse 2>/dev/null ; then
5506AC_MSG_CHECKING(if you want to use sysmouse)
5507AC_ARG_WITH(sysmouse,
5508	[  --with-sysmouse         use sysmouse (FreeBSD console)],
5509	[cf_with_sysmouse=$withval],
5510	[cf_with_sysmouse=maybe])
5511	if test "$cf_with_sysmouse" != no ; then
5512	AC_TRY_COMPILE([
5513#include <osreldate.h>
5514#if (__FreeBSD_version >= 400017)
5515#include <sys/consio.h>
5516#include <sys/fbio.h>
5517#else
5518#include <machine/console.h>
5519#endif
5520],[
5521	struct mouse_info the_mouse;
5522	ioctl(0, CONS_MOUSECTL, &the_mouse);
5523],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5524	fi
5525AC_MSG_RESULT($cf_with_sysmouse)
5526test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5527fi
5528])dnl
5529dnl ---------------------------------------------------------------------------
5530dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5531dnl ----------------
5532AC_DEFUN([CF_WITH_VALGRIND],[
5533CF_NO_LEAKS_OPTION(valgrind,
5534	[  --with-valgrind         test: use valgrind],
5535	[USE_VALGRIND])
5536])dnl
5537dnl ---------------------------------------------------------------------------
5538dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
5539dnl ---------------
5540dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5541dnl or adapt to the vendor's definitions to get equivalent functionality,
5542dnl without losing the common non-POSIX features.
5543dnl
5544dnl Parameters:
5545dnl	$1 is the nominal value for _XOPEN_SOURCE
5546dnl	$2 is the nominal value for _POSIX_C_SOURCE
5547AC_DEFUN([CF_XOPEN_SOURCE],[
5548
5549AC_REQUIRE([CF_PROG_CC_U_D])
5550
5551cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5552cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5553
5554case $host_os in #(vi
5555aix[[45]]*) #(vi
5556	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
5557	;;
5558freebsd*|dragonfly*) #(vi
5559	# 5.x headers associate
5560	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5561	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5562	cf_POSIX_C_SOURCE=200112L
5563	cf_XOPEN_SOURCE=600
5564	CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5565	;;
5566hpux*) #(vi
5567	CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
5568	;;
5569irix[[56]].*) #(vi
5570	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
5571	;;
5572linux*|gnu*|k*bsd*-gnu) #(vi
5573	CF_GNU_SOURCE
5574	;;
5575mirbsd*) #(vi
5576	# setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5577	;;
5578netbsd*) #(vi
5579	# setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5580	;;
5581openbsd*) #(vi
5582	# setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5583	;;
5584osf[[45]]*) #(vi
5585	CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
5586	;;
5587nto-qnx*) #(vi
5588	CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
5589	;;
5590sco*) #(vi
5591	# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5592	;;
5593solaris*) #(vi
5594	CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
5595	;;
5596*)
5597	AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5598	AC_TRY_COMPILE([#include <sys/types.h>],[
5599#ifndef _XOPEN_SOURCE
5600make an error
5601#endif],
5602	[cf_cv_xopen_source=no],
5603	[cf_save="$CPPFLAGS"
5604	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5605	 AC_TRY_COMPILE([#include <sys/types.h>],[
5606#ifdef _XOPEN_SOURCE
5607make an error
5608#endif],
5609	[cf_cv_xopen_source=no],
5610	[cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5611	CPPFLAGS="$cf_save"
5612	])
5613])
5614	if test "$cf_cv_xopen_source" != no ; then
5615		CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5616		CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5617		test "$cf_cv_cc_u_d_options" = yes && \
5618			CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
5619		CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
5620	fi
5621	CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
5622	;;
5623esac
5624])
5625