]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 5.9 - patch 20140629
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.              *
3 dnl                                                                          *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
5 dnl copy of this software and associated documentation files (the            *
6 dnl "Software"), to deal in the Software without restriction, including      *
7 dnl without limitation the rights to use, copy, modify, merge, publish,      *
8 dnl distribute, distribute with modifications, sublicense, and/or sell       *
9 dnl copies of the Software, and to permit persons to whom the Software is    *
10 dnl furnished to do so, subject to the following conditions:                 *
11 dnl                                                                          *
12 dnl The above copyright notice and this permission notice shall be included  *
13 dnl in all copies or substantial portions of the Software.                   *
14 dnl                                                                          *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
22 dnl                                                                          *
23 dnl Except as contained in this notice, the name(s) of the above copyright   *
24 dnl holders shall not be used in advertising or otherwise to promote the     *
25 dnl sale, use or other dealings in this Software without prior written       *
26 dnl authorization.                                                           *
27 dnl***************************************************************************
28 dnl
29 dnl Author: Thomas E. Dickey 1995-on
30 dnl
31 dnl $Id: aclocal.m4,v 1.700 2014/06/21 21:50:00 tom Exp $
32 dnl Macros used in NCURSES auto-configuration script.
33 dnl
34 dnl These macros are maintained separately from NCURSES.  The copyright on
35 dnl this file applies to the aggregation of macros and does not affect use of
36 dnl these macros in other applications.
37 dnl
38 dnl See http://invisible-island.net/autoconf/ for additional information.
39 dnl
40 dnl ---------------------------------------------------------------------------
41 dnl ---------------------------------------------------------------------------
42 dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
43 dnl -------------------
44 dnl Inserted as requested by gettext 0.10.40
45 dnl File from /usr/share/aclocal
46 dnl codeset.m4
47 dnl ====================
48 dnl serial AM1
49 dnl
50 dnl From Bruno Haible.
51 AC_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
64 dnl ---------------------------------------------------------------------------
65 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
66 dnl ------------------
67 dnl Conditionally generate script according to whether we're using a given autoconf.
68 dnl
69 dnl $1 = version to compare against
70 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
71 dnl $3 = code to use if AC_ACVERSION is older than $1.
72 define([CF_ACVERSION_CHECK],
73 [
74 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
75 ifdef([m4_version_compare],
76 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
77 [CF_ACVERSION_COMPARE(
78 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
79 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
80 dnl ---------------------------------------------------------------------------
81 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
82 dnl --------------------
83 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
84 dnl                      MAJOR2, MINOR2, TERNARY2,
85 dnl                      PRINTABLE2, not FOUND, FOUND)
86 define([CF_ACVERSION_COMPARE],
87 [ifelse(builtin([eval], [$2 < $5]), 1,
88 [ifelse([$8], , ,[$8])],
89 [ifelse([$9], , ,[$9])])])dnl
90 dnl ---------------------------------------------------------------------------
91 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
92 dnl -------------------
93 dnl Construct the list of include-options for the C programs in the Ada95
94 dnl binding.
95 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
96 [
97 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
98 if test "$srcdir" != "."; then
99         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
100 fi
101 if test "$GCC" != yes; then
102         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
103 elif test "$includedir" != "/usr/include"; then
104         if test "$includedir" = '${prefix}/include' ; then
105                 if test x$prefix != x/usr ; then
106                         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
107                 fi
108         else
109                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
110         fi
111 fi
112 AC_SUBST(ACPPFLAGS)
113 ])dnl
114 dnl ---------------------------------------------------------------------------
115 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
116 dnl ---------------
117 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
118 AC_DEFUN([CF_ADD_ADAFLAGS],[
119         ADAFLAGS="$ADAFLAGS $1"
120         AC_SUBST(ADAFLAGS)
121 ])dnl
122 dnl ---------------------------------------------------------------------------
123 dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
124 dnl -------------
125 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
126 dnl The second parameter if given makes this macro verbose.
127 dnl
128 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
129 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
130 dnl confused by the quotes (which require backslashes to keep them usable).
131 AC_DEFUN([CF_ADD_CFLAGS],
132 [
133 cf_fix_cppflags=no
134 cf_new_cflags=
135 cf_new_cppflags=
136 cf_new_extra_cppflags=
137
138 for cf_add_cflags in $1
139 do
140 case $cf_fix_cppflags in
141 no)
142         case $cf_add_cflags in #(vi
143         -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
144                 case $cf_add_cflags in
145                 -D*)
146                         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
147
148                         test "${cf_add_cflags}" != "${cf_tst_cflags}" \
149                                 && test -z "${cf_tst_cflags}" \
150                                 && cf_fix_cppflags=yes
151
152                         if test $cf_fix_cppflags = yes ; then
153                                 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
154                                 continue
155                         elif test "${cf_tst_cflags}" = "\"'" ; then
156                                 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
157                                 continue
158                         fi
159                         ;;
160                 esac
161                 case "$CPPFLAGS" in
162                 *$cf_add_cflags) #(vi
163                         ;;
164                 *) #(vi
165                         case $cf_add_cflags in #(vi
166                         -D*)
167                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
168                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
169                                 ;;
170                         esac
171                         cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
172                         ;;
173                 esac
174                 ;;
175         *)
176                 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
177                 ;;
178         esac
179         ;;
180 yes)
181         cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
182
183         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
184
185         test "${cf_add_cflags}" != "${cf_tst_cflags}" \
186                 && test -z "${cf_tst_cflags}" \
187                 && cf_fix_cppflags=no
188         ;;
189 esac
190 done
191
192 if test -n "$cf_new_cflags" ; then
193         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
194         CFLAGS="$CFLAGS $cf_new_cflags"
195 fi
196
197 if test -n "$cf_new_cppflags" ; then
198         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
199         CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
200 fi
201
202 if test -n "$cf_new_extra_cppflags" ; then
203         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
204         EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
205 fi
206
207 AC_SUBST(EXTRA_CPPFLAGS)
208
209 ])dnl
210 dnl ---------------------------------------------------------------------------
211 dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
212 dnl -------------
213 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
214 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
215 dnl but old versions (and some misinstalled ones) need that.  To make things
216 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
217 dnl the include-path).
218 AC_DEFUN([CF_ADD_INCDIR],
219 [
220 if test -n "$1" ; then
221   for cf_add_incdir in $1
222   do
223         while test $cf_add_incdir != /usr/include
224         do
225           if test -d $cf_add_incdir
226           then
227                 cf_have_incdir=no
228                 if test -n "$CFLAGS$CPPFLAGS" ; then
229                   # a loop is needed to ensure we can add subdirs of existing dirs
230                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
231                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
232                           cf_have_incdir=yes; break
233                         fi
234                   done
235                 fi
236
237                 if test "$cf_have_incdir" = no ; then
238                   if test "$cf_add_incdir" = /usr/local/include ; then
239                         if test "$GCC" = yes
240                         then
241                           cf_save_CPPFLAGS=$CPPFLAGS
242                           CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
243                           AC_TRY_COMPILE([#include <stdio.h>],
244                                   [printf("Hello")],
245                                   [],
246                                   [cf_have_incdir=yes])
247                           CPPFLAGS=$cf_save_CPPFLAGS
248                         fi
249                   fi
250                 fi
251
252                 if test "$cf_have_incdir" = no ; then
253                   CF_VERBOSE(adding $cf_add_incdir to include-path)
254                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
255
256                   cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
257                   test "$cf_top_incdir" = "$cf_add_incdir" && break
258                   cf_add_incdir="$cf_top_incdir"
259                 else
260                   break
261                 fi
262           fi
263         done
264   done
265 fi
266 ])dnl
267 dnl ---------------------------------------------------------------------------
268 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
269 dnl ----------
270 dnl Add a library, used to enforce consistency.
271 dnl
272 dnl $1 = library to add, without the "-l"
273 dnl $2 = variable to update (default $LIBS)
274 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
275 dnl ---------------------------------------------------------------------------
276 dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
277 dnl -------------
278 dnl     Adds to the library-path
279 dnl
280 dnl     Some machines have trouble with multiple -L options.
281 dnl
282 dnl $1 is the (list of) directory(s) to add
283 dnl $2 is the optional name of the variable to update (default LDFLAGS)
284 dnl
285 AC_DEFUN([CF_ADD_LIBDIR],
286 [
287 if test -n "$1" ; then
288   for cf_add_libdir in $1
289   do
290     if test $cf_add_libdir = /usr/lib ; then
291       :
292     elif test -d $cf_add_libdir
293     then
294       cf_have_libdir=no
295       if test -n "$LDFLAGS$LIBS" ; then
296         # a loop is needed to ensure we can add subdirs of existing dirs
297         for cf_test_libdir in $LDFLAGS $LIBS ; do
298           if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
299             cf_have_libdir=yes; break
300           fi
301         done
302       fi
303       if test "$cf_have_libdir" = no ; then
304         CF_VERBOSE(adding $cf_add_libdir to library-path)
305         ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
306       fi
307     fi
308   done
309 fi
310 ])dnl
311 dnl ---------------------------------------------------------------------------
312 dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
313 dnl -----------
314 dnl Add one or more libraries, used to enforce consistency.
315 dnl
316 dnl $1 = libraries to add, with the "-l", etc.
317 dnl $2 = variable to update (default $LIBS)
318 AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
319 dnl ---------------------------------------------------------------------------
320 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
321 dnl ------------------
322 dnl Append to a search-list for a nonstandard header/lib-file
323 dnl     $1 = the variable to return as result
324 dnl     $2 = the package name
325 dnl     $3 = the subdirectory, e.g., bin, include or lib
326 dnl $4 = the directory under which we will test for subdirectories
327 dnl $5 = a directory that we do not want $4 to match
328 AC_DEFUN([CF_ADD_SUBDIR_PATH],
329 [
330 test "x$4" != "x$5" && \
331 test -d "$4" && \
332 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
333         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
334         test -d $4/$3 &&          $1="[$]$1 $4/$3"
335         test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
336         test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
337         test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
338         test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
339 }
340 ])dnl
341 dnl ---------------------------------------------------------------------------
342 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
343 dnl --------------
344 dnl Allow user to disable a normally-on option.
345 AC_DEFUN([CF_ARG_DISABLE],
346 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
347 dnl ---------------------------------------------------------------------------
348 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
349 dnl -------------
350 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
351 dnl values.
352 dnl
353 dnl Parameters:
354 dnl $1 = option name
355 dnl $2 = help-string
356 dnl $3 = action to perform if option is not default
357 dnl $4 = action if perform if option is default
358 dnl $5 = default option value (either 'yes' or 'no')
359 AC_DEFUN([CF_ARG_OPTION],
360 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
361   if test "$enableval" != "$5" ; then
362 ifelse([$3],,[    :]dnl
363 ,[    $3]) ifelse([$4],,,[
364   else
365     $4])
366   fi],[enableval=$5 ifelse([$4],,,[
367   $4
368 ])dnl
369   ])])dnl
370 dnl ---------------------------------------------------------------------------
371 dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
372 dnl -----------
373 dnl Check for suitable "ar" (archiver) options for updating an archive.
374 AC_DEFUN([CF_AR_FLAGS],[
375 AC_REQUIRE([CF_PROG_AR])
376
377 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
378         cf_cv_ar_flags=unknown
379         for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
380         do
381
382                 # check if $ARFLAGS already contains this choice
383                 if test "x$ARFLAGS" != "x" ; then
384                         cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
385                         if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
386                                 cf_cv_ar_flags=
387                                 break
388                         fi
389                 fi
390
391                 rm -f conftest.$ac_cv_objext
392                 rm -f conftest.a
393
394                 cat >conftest.$ac_ext <<EOF
395 #line __oline__ "configure"
396 int     testdata[[3]] = { 123, 456, 789 };
397 EOF
398                 if AC_TRY_EVAL(ac_compile) ; then
399                         echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
400                         $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
401                         if test -f conftest.a ; then
402                                 cf_cv_ar_flags=$cf_ar_flags
403                                 break
404                         fi
405                 else
406                         CF_VERBOSE(cannot compile test-program)
407                         break
408                 fi
409         done
410         rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
411 ])
412
413 if test -n "$ARFLAGS" ; then
414         if test -n "$cf_cv_ar_flags" ; then
415                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
416         fi
417 else
418         ARFLAGS=$cf_cv_ar_flags
419 fi
420
421 AC_SUBST(ARFLAGS)
422 ])
423 dnl ---------------------------------------------------------------------------
424 dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50
425 dnl -----------------
426 dnl Check if awk can handle big strings using printf.  Some older versions of
427 dnl awk choke on large strings passed via "%s".
428 dnl
429 dnl $1 = desired string size
430 dnl $2 = variable to set with result
431 AC_DEFUN([CF_AWK_BIG_PRINTF],
432 [
433         case x$AWK in #(vi
434         x)
435                 eval $2=no
436                 ;;
437         *) #(vi
438                 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
439                         | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
440                         eval $2=yes
441                 else
442                         eval $2=no
443                 fi
444                 ;;
445         esac
446 ])dnl
447 dnl ---------------------------------------------------------------------------
448 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
449 dnl ------------
450 dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
451 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
452 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
453 dnl
454 dnl Treat the configuration-variable specially here, since we're directly
455 dnl substituting its value (i.e., 1/0).
456 dnl
457 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
458 AC_DEFUN([CF_BOOL_DECL],
459 [
460 AC_MSG_CHECKING(if we should include stdbool.h)
461
462 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
463         AC_TRY_COMPILE([],[bool foo = false],
464                 [cf_cv_header_stdbool_h=0],
465                 [AC_TRY_COMPILE([
466 #ifndef __BEOS__
467 #include <stdbool.h>
468 #endif
469 ],[bool foo = false],
470                         [cf_cv_header_stdbool_h=1],
471                         [cf_cv_header_stdbool_h=0])])])
472
473 if test "$cf_cv_header_stdbool_h" = 1
474 then    AC_MSG_RESULT(yes)
475 else    AC_MSG_RESULT(no)
476 fi
477
478 AC_MSG_CHECKING([for builtin bool type])
479
480 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
481         AC_TRY_COMPILE([
482 #include <stdio.h>
483 #include <sys/types.h>
484 ],[bool x = false],
485                 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
486                 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
487         ])
488
489 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
490 then    AC_MSG_RESULT(yes)
491 else    AC_MSG_RESULT(no)
492 fi
493 ])dnl
494 dnl ---------------------------------------------------------------------------
495 dnl CF_BOOL_SIZE version: 13 updated: 2013/04/13 18:03:21
496 dnl ------------
497 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
498 dnl Don't bother looking for bool.h, since it's been deprecated.
499 dnl
500 dnl If the current compiler is C rather than C++, we get the bool definition
501 dnl from <stdbool.h>.
502 AC_DEFUN([CF_BOOL_SIZE],
503 [
504 AC_MSG_CHECKING([for size of bool])
505 AC_CACHE_VAL(cf_cv_type_of_bool,[
506         rm -f cf_test.out
507         AC_TRY_RUN([
508 #include <stdlib.h>
509 #include <stdio.h>
510
511 #if defined(__cplusplus)
512
513 #ifdef HAVE_GXX_BUILTIN_H
514 #include <g++/builtin.h>
515 #elif HAVE_GPP_BUILTIN_H
516 #include <gpp/builtin.h>
517 #elif HAVE_BUILTIN_H
518 #include <builtin.h>
519 #endif
520
521 #else
522
523 #if $cf_cv_header_stdbool_h
524 #include <stdbool.h>
525 #endif
526
527 #endif
528
529 int main()
530 {
531         FILE *fp = fopen("cf_test.out", "w");
532         if (fp != 0) {
533                 bool x = true;
534                 if ((bool)(-x) >= 0)
535                         fputs("unsigned ", fp);
536                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
537                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
538                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
539                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
540                 fclose(fp);
541         }
542         ${cf_cv_main_return:-return}(0);
543 }
544                 ],
545                 [cf_cv_type_of_bool=`cat cf_test.out`
546                  if test -z "$cf_cv_type_of_bool"; then
547                    cf_cv_type_of_bool=unknown
548                  fi],
549                 [cf_cv_type_of_bool=unknown],
550                 [cf_cv_type_of_bool=unknown])
551         ])
552         rm -f cf_test.out
553 AC_MSG_RESULT($cf_cv_type_of_bool)
554 if test "$cf_cv_type_of_bool" = unknown ; then
555         case .$NCURSES_BOOL in #(vi
556         .auto|.) NCURSES_BOOL=unsigned;;
557         esac
558         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
559         cf_cv_type_of_bool=$NCURSES_BOOL
560 fi
561 ])dnl
562 dnl ---------------------------------------------------------------------------
563 dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
564 dnl -----------
565 dnl If we're cross-compiling, allow the user to override the tools and their
566 dnl options.  The configure script is oriented toward identifying the host
567 dnl compiler, etc., but we need a build compiler to generate parts of the
568 dnl source.
569 dnl
570 dnl $1 = default for $CPPFLAGS
571 dnl $2 = default for $LIBS
572 AC_DEFUN([CF_BUILD_CC],[
573 CF_ACVERSION_CHECK(2.52,,
574         [AC_REQUIRE([CF_PROG_EXT])])
575 if test "$cross_compiling" = yes ; then
576
577         # defaults that we might want to override
578         : ${BUILD_CFLAGS:=''}
579         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
580         : ${BUILD_LDFLAGS:=''}
581         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
582         : ${BUILD_EXEEXT:='$x'}
583         : ${BUILD_OBJEXT:='o'}
584
585         AC_ARG_WITH(build-cc,
586                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
587                 [BUILD_CC="$withval"],
588                 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
589         AC_MSG_CHECKING(for native build C compiler)
590         AC_MSG_RESULT($BUILD_CC)
591
592         AC_MSG_CHECKING(for native build C preprocessor)
593         AC_ARG_WITH(build-cpp,
594                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
595                 [BUILD_CPP="$withval"],
596                 [BUILD_CPP='${BUILD_CC} -E'])
597         AC_MSG_RESULT($BUILD_CPP)
598
599         AC_MSG_CHECKING(for native build C flags)
600         AC_ARG_WITH(build-cflags,
601                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
602                 [BUILD_CFLAGS="$withval"])
603         AC_MSG_RESULT($BUILD_CFLAGS)
604
605         AC_MSG_CHECKING(for native build C preprocessor-flags)
606         AC_ARG_WITH(build-cppflags,
607                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
608                 [BUILD_CPPFLAGS="$withval"])
609         AC_MSG_RESULT($BUILD_CPPFLAGS)
610
611         AC_MSG_CHECKING(for native build linker-flags)
612         AC_ARG_WITH(build-ldflags,
613                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
614                 [BUILD_LDFLAGS="$withval"])
615         AC_MSG_RESULT($BUILD_LDFLAGS)
616
617         AC_MSG_CHECKING(for native build linker-libraries)
618         AC_ARG_WITH(build-libs,
619                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
620                 [BUILD_LIBS="$withval"])
621         AC_MSG_RESULT($BUILD_LIBS)
622
623         # this assumes we're on Unix.
624         BUILD_EXEEXT=
625         BUILD_OBJEXT=o
626
627         : ${BUILD_CC:='${CC}'}
628
629         if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
630                 AC_MSG_ERROR([Cross-build requires two compilers.
631 Use --with-build-cc to specify the native compiler.])
632         fi
633
634 else
635         : ${BUILD_CC:='${CC}'}
636         : ${BUILD_CPP:='${CPP}'}
637         : ${BUILD_CFLAGS:='${CFLAGS}'}
638         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
639         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
640         : ${BUILD_LIBS:='${LIBS}'}
641         : ${BUILD_EXEEXT:='$x'}
642         : ${BUILD_OBJEXT:='o'}
643 fi
644
645 AC_SUBST(BUILD_CC)
646 AC_SUBST(BUILD_CPP)
647 AC_SUBST(BUILD_CFLAGS)
648 AC_SUBST(BUILD_CPPFLAGS)
649 AC_SUBST(BUILD_LDFLAGS)
650 AC_SUBST(BUILD_LIBS)
651 AC_SUBST(BUILD_EXEEXT)
652 AC_SUBST(BUILD_OBJEXT)
653 ])dnl
654 dnl ---------------------------------------------------------------------------
655 dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
656 dnl ---------------
657 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
658 dnl into CC.  This will not help with broken scripts that wrap the compiler with
659 dnl options, but eliminates a more common category of user confusion.
660 AC_DEFUN([CF_CC_ENV_FLAGS],
661 [
662 # This should have been defined by AC_PROG_CC
663 : ${CC:=cc}
664
665 AC_MSG_CHECKING(\$CC variable)
666 case "$CC" in #(vi
667 *[[\ \  ]]-[[IUD]]*)
668         AC_MSG_RESULT(broken)
669         AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
670         # humor him...
671         cf_flags=`echo "$CC" | sed -e 's/^[[^   ]]*[[   ]]//'`
672         CC=`echo "$CC" | sed -e 's/[[   ]].*//'`
673         CF_ADD_CFLAGS($cf_flags)
674         ;;
675 *)
676         AC_MSG_RESULT(ok)
677         ;;
678 esac
679 ])dnl
680 dnl ---------------------------------------------------------------------------
681 dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05
682 dnl ---------------
683 dnl Determine the default configuration into which we'll install ncurses.  This
684 dnl can be overridden by the user's command-line options.  There's two items to
685 dnl look for:
686 dnl     1. the prefix (e.g., /usr)
687 dnl     2. the header files (e.g., /usr/include/ncurses)
688 dnl We'll look for a previous installation of ncurses and use the same defaults.
689 dnl
690 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
691 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
692 dnl programs from a vendor's.
693 AC_DEFUN([CF_CFG_DEFAULTS],
694 [
695 AC_MSG_CHECKING(for prefix)
696 if test "x$prefix" = "xNONE" ; then
697         case "$cf_cv_system_name" in
698                 # non-vendor systems don't have a conflict
699         openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
700                 prefix=/usr
701                 ;;
702         *)      prefix=$ac_default_prefix
703                 ;;
704         esac
705 fi
706 AC_MSG_RESULT($prefix)
707
708 if test "x$prefix" = "xNONE" ; then
709 AC_MSG_CHECKING(for default include-directory)
710 test -n "$verbose" && echo 1>&AC_FD_MSG
711 for cf_symbol in \
712         $includedir \
713         $includedir/ncurses \
714         $prefix/include \
715         $prefix/include/ncurses \
716         /usr/local/include \
717         /usr/local/include/ncurses \
718         /usr/include \
719         /usr/include/ncurses
720 do
721         cf_dir=`eval echo $cf_symbol`
722         if test -f $cf_dir/curses.h ; then
723         if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
724                 includedir="$cf_symbol"
725                 test -n "$verbose"  && echo $ac_n "     found " 1>&AC_FD_MSG
726                 break
727         fi
728         fi
729         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
730 done
731 AC_MSG_RESULT($includedir)
732 fi
733 ])dnl
734 dnl ---------------------------------------------------------------------------
735 dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13
736 dnl ----------
737 dnl Check if the terminal-capability database functions are available.  If not,
738 dnl ncurses has a much-reduced version.
739 AC_DEFUN([CF_CGETENT],[
740 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
741 AC_TRY_LINK([
742 #include <stdlib.h>],[
743         char temp[128];
744         char *buf = temp;
745         char *db_array = temp;
746         cgetent(&buf, &db_array, "vt100");
747         cgetcap(buf, "tc", '=');
748         cgetmatch(buf, "tc");
749         ],
750         [cf_cv_cgetent=yes],
751         [cf_cv_cgetent=no])
752 ])
753
754 if test "$cf_cv_cgetent" = yes
755 then
756         AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
757 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
758 AC_TRY_LINK([
759 #include <stdlib.h>],[
760         char temp[128];
761         char *buf = temp;
762 #ifndef _NETBSD_SOURCE                  /* given, since April 2004 in stdlib.h */
763         const char *db_array = temp;
764         cgetent(&buf, &db_array, "vt100");
765 #endif
766         cgetcap(buf, "tc", '=');
767         cgetmatch(buf, "tc");
768         ],
769         [cf_cv_cgetent_const=yes],
770         [cf_cv_cgetent_const=no])
771 ])
772         if test "$cf_cv_cgetent_const" = yes
773         then
774                 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
775         fi
776 fi
777 ])dnl
778 dnl ---------------------------------------------------------------------------
779 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
780 dnl --------------
781 dnl Check if we're accidentally using a cache from a different machine.
782 dnl Derive the system name, as a check for reusing the autoconf cache.
783 dnl
784 dnl If we've packaged config.guess and config.sub, run that (since it does a
785 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
786 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
787 dnl which is useful in cross-compiles.
788 dnl
789 dnl Note: we would use $ac_config_sub, but that is one of the places where
790 dnl autoconf 2.5x broke compatibility with autoconf 2.13
791 AC_DEFUN([CF_CHECK_CACHE],
792 [
793 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
794         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
795         system_name="$host_os"
796 else
797         system_name="`(uname -s -r) 2>/dev/null`"
798         if test -z "$system_name" ; then
799                 system_name="`(hostname) 2>/dev/null`"
800         fi
801 fi
802 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
803 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
804
805 test -z "$system_name" && system_name="$cf_cv_system_name"
806 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
807
808 if test ".$system_name" != ".$cf_cv_system_name" ; then
809         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
810         AC_MSG_ERROR("Please remove config.cache and try again.")
811 fi
812 ])dnl
813 dnl ---------------------------------------------------------------------------
814 dnl CF_CHECK_ERRNO version: 11 updated: 2010/05/26 05:38:42
815 dnl --------------
816 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
817 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
818 dnl ourselves.
819 dnl
820 dnl $1 = the name to check
821 dnl $2 = the assumed type
822 AC_DEFUN([CF_CHECK_ERRNO],
823 [
824 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
825     AC_TRY_COMPILE([
826 #ifdef HAVE_STDLIB_H
827 #include <stdlib.h>
828 #endif
829 #include <stdio.h>
830 #include <sys/types.h>
831 #include <errno.h> ],
832     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
833     [cf_cv_dcl_$1=yes],
834     [cf_cv_dcl_$1=no])
835 ])
836
837 if test "$cf_cv_dcl_$1" = no ; then
838     CF_UPPER(cf_result,decl_$1)
839     AC_DEFINE_UNQUOTED($cf_result)
840 fi
841
842 # It's possible (for near-UNIX clones) that the data doesn't exist
843 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
844 ])dnl
845 dnl ---------------------------------------------------------------------------
846 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
847 dnl --------------------
848 dnl Check for existence of external data in the current set of libraries.  If
849 dnl we can modify it, it's real enough.
850 dnl $1 = the name to check
851 dnl $2 = its type
852 AC_DEFUN([CF_CHECK_EXTERN_DATA],
853 [
854 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
855     AC_TRY_LINK([
856 #undef $1
857 extern $2 $1;
858 ],
859     [$1 = 2],
860     [cf_cv_have_$1=yes],
861     [cf_cv_have_$1=no])
862 ])
863
864 if test "$cf_cv_have_$1" = yes ; then
865     CF_UPPER(cf_result,have_$1)
866     AC_DEFINE_UNQUOTED($cf_result)
867 fi
868
869 ])dnl
870 dnl ---------------------------------------------------------------------------
871 dnl CF_CHECK_GPM_WGETCH version: 2 updated: 2010/08/14 18:25:37
872 dnl -------------------
873 dnl Check if GPM is already linked with curses.  If so - and if the linkage
874 dnl is not "weak" - warn about this because it can create problems linking
875 dnl applications with ncurses.
876 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
877 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
878
879 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
880 cf_cv_check_gpm_wgetch=unknown
881 if test "$cross_compiling" != yes ; then
882
883 cat >conftest.$ac_ext <<CF_EOF
884 #include <gpm.h>
885 int main()
886 {
887         Gpm_Wgetch();
888         ${cf_cv_main_return:-return}(0);
889 }
890 CF_EOF
891
892         cf_save_LIBS="$LIBS"
893         # This only works if we can look at the symbol table.  If a shared
894         # library is stripped for install, we cannot use that.  So we're forced
895         # to rely on the static library, noting that some packagers may not
896         # include it.
897         LIBS="-static -lgpm -dynamic $LIBS"
898         if AC_TRY_EVAL(ac_compile) ; then
899                 if AC_TRY_EVAL(ac_link) ; then
900                         cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
901                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
902                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
903                 fi
904         fi
905         rm -rf conftest*
906         LIBS="$cf_save_LIBS"
907 fi
908 ])
909
910 if test "$cf_cv_check_gpm_wgetch" != yes ; then
911         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
912 fi
913 ])])dnl
914 dnl ---------------------------------------------------------------------------
915 dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
916 dnl ------------------------
917 dnl Show the version of libtool
918 dnl
919 dnl Save the version in a cache variable - this is not entirely a good thing,
920 dnl but the version string from libtool is very ugly, and for bug reports it
921 dnl might be useful to have the original string.
922 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
923 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
924 then
925         AC_MSG_CHECKING(version of $LIBTOOL)
926         CF_LIBTOOL_VERSION
927         AC_MSG_RESULT($cf_cv_libtool_version)
928         if test -z "$cf_cv_libtool_version" ; then
929                 AC_MSG_ERROR(This is not GNU libtool)
930         fi
931 else
932         AC_MSG_ERROR(GNU libtool has not been found)
933 fi
934 ])dnl
935 dnl ---------------------------------------------------------------------------
936 dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05
937 dnl ----------------
938 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
939 AC_DEFUN([CF_CHECK_WCHAR_H],[
940 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
941 AC_TRY_COMPILE(
942 [
943 #include <stdlib.h>
944 #include <wchar.h>
945 ],[
946         wint_t foo = 0;
947         int bar = iswpunct(foo)],
948         [cf_cv_wchar_h_okay=yes],
949         [cf_cv_wchar_h_okay=no])])
950
951 if test $cf_cv_wchar_h_okay = no
952 then
953         CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
954 fi
955 ])dnl
956 dnl ---------------------------------------------------------------------------
957 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
958 dnl -----------------
959 dnl Check if the given compiler is really clang.  clang's C driver defines
960 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
961 dnl not ignore some gcc options.
962 dnl
963 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
964 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
965 dnl the wrappers for gcc and g++ warnings.
966 dnl
967 dnl $1 = GCC (default) or GXX
968 dnl $2 = CLANG_COMPILER (default)
969 dnl $3 = CFLAGS (default) or CXXFLAGS
970 AC_DEFUN([CF_CLANG_COMPILER],[
971 ifelse([$2],,CLANG_COMPILER,[$2])=no
972
973 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
974         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
975         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
976         ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
977         AC_TRY_COMPILE([],[
978 #ifdef __clang__
979 #else
980 make an error
981 #endif
982 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
983 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
984 ],[])
985         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
986         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
987 fi
988 ])
989 dnl ---------------------------------------------------------------------------
990 dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13
991 dnl -----------------
992 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
993 dnl is a late feature for the standard and is not in some recent compilers
994 dnl (1999/9/11).
995 AC_DEFUN([CF_CPP_PARAM_INIT],
996 [
997 if test -n "$CXX"; then
998 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
999         AC_LANG_SAVE
1000         AC_LANG_CPLUSPLUS
1001         AC_TRY_RUN([
1002 class TEST {
1003 private:
1004         int value;
1005 public:
1006         TEST(int x = 1);
1007         ~TEST();
1008 };
1009
1010 TEST::TEST(int x = 1)   // some compilers do not like second initializer
1011 {
1012         value = x;
1013 }
1014 int main() { }
1015 ],
1016         [cf_cv_cpp_param_init=yes],
1017         [cf_cv_cpp_param_init=no],
1018         [cf_cv_cpp_param_init=unknown])
1019         AC_LANG_RESTORE
1020 ])
1021 fi
1022 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1023 ])dnl
1024 dnl ---------------------------------------------------------------------------
1025 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1026 dnl ------------------
1027 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
1028 dnl not be supported in g++ before 3.0
1029 AC_DEFUN([CF_CPP_STATIC_CAST],
1030 [
1031 if test -n "$CXX"; then
1032
1033 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1034         AC_LANG_SAVE
1035         AC_LANG_CPLUSPLUS
1036
1037         AC_TRY_COMPILE([
1038 class NCursesPanel
1039 {
1040 public:
1041   NCursesPanel(int nlines,
1042                int ncols,
1043                int begin_y = 0,
1044                int begin_x = 0)
1045   {
1046   }
1047   NCursesPanel();
1048   ~NCursesPanel();
1049 };
1050
1051 template<class T> class NCursesUserPanel : public NCursesPanel
1052 {
1053 public:
1054   NCursesUserPanel (int nlines,
1055                     int ncols,
1056                     int begin_y = 0,
1057                     int begin_x = 0,
1058                     const T* p_UserData = static_cast<T*>(0))
1059     : NCursesPanel (nlines, ncols, begin_y, begin_x)
1060   {
1061   };
1062   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1063   {
1064   };
1065
1066   virtual ~NCursesUserPanel() {};
1067 };
1068 ],[
1069         const char* p_UserData = static_cast<char*>(0)],
1070         [cf_cv_cpp_static_cast=yes],
1071         [cf_cv_cpp_static_cast=no])
1072
1073         AC_LANG_RESTORE
1074 ])
1075
1076 fi
1077
1078 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1079 ])dnl
1080 dnl ---------------------------------------------------------------------------
1081 dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34
1082 dnl ---------------
1083 dnl Setup special archiver flags for given compilers.
1084 AC_DEFUN([CF_CXX_AR_FLAGS],[
1085         CXX_AR='$(AR)'
1086         CXX_ARFLAGS='$(ARFLAGS)'
1087         case $cf_cv_system_name in #(vi
1088         irix*) #(vi
1089             if test "$GXX" != yes ; then
1090                 CXX_AR='$(CXX)'
1091                 CXX_ARFLAGS='-ar -o'
1092             fi
1093             ;;
1094         sco3.2v5*) #(vi
1095             CXXLDFLAGS="-u main"
1096             ;;
1097         solaris2*)
1098             if test "$GXX" != yes ; then
1099                 CXX_AR='$(CXX)'
1100                 CXX_ARFLAGS='-xar -o'
1101             fi
1102             ;;
1103         esac
1104         AC_SUBST(CXXLDFLAGS)
1105         AC_SUBST(CXX_AR)
1106         AC_SUBST(CXX_ARFLAGS)
1107 ])dnl
1108 dnl ---------------------------------------------------------------------------
1109 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1110 dnl -------------------------
1111 dnl For c++, check if iostream uses "std::" namespace.
1112 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1113 AC_CHECK_HEADERS(iostream)
1114 if test x"$ac_cv_header_iostream" = xyes ; then
1115         AC_MSG_CHECKING(if iostream uses std-namespace)
1116         AC_TRY_COMPILE([
1117 #include <iostream>
1118 using std::endl;
1119 using std::cerr;],[
1120 cerr << "testing" << endl;
1121 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1122         AC_MSG_RESULT($cf_iostream_namespace)
1123         if test "$cf_iostream_namespace" = yes ; then
1124                 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1125         fi
1126 fi
1127 ])dnl
1128 dnl ---------------------------------------------------------------------------
1129 dnl CF_C_INLINE version: 4 updated: 2012/06/16 14:55:39
1130 dnl -----------
1131 dnl Check if the C compiler supports "inline".
1132 dnl $1 is the name of a shell variable to set if inline is supported
1133 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1134 AC_DEFUN([CF_C_INLINE],[
1135 AC_C_INLINE
1136 $1=
1137 if test "$ac_cv_c_inline" != no ; then
1138   $1=inline
1139   if test "$INTEL_COMPILER" = yes
1140   then
1141     :
1142   elif test "$CLANG_COMPILER" = yes
1143   then
1144     :
1145   elif test "$GCC" = yes
1146   then
1147     AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1148       cf_save_CFLAGS=$CFLAGS
1149       CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1150       AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1151       [${cf_cv_main_return:-return} foo()],
1152       [cf_cv_gcc_inline=yes],
1153       [cf_cv_gcc_inline=no])
1154       CFLAGS=$cf_save_CFLAGS
1155     ])
1156     if test "$cf_cv_gcc_inline" = yes ; then
1157         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1158     fi
1159   fi
1160 fi
1161 AC_SUBST($1)
1162 ])dnl
1163 dnl ---------------------------------------------------------------------------
1164 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1165 dnl ----------
1166 dnl "dirname" is not portable, so we fake it with a shell script.
1167 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1168 dnl ---------------------------------------------------------------------------
1169 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
1170 dnl ---------------
1171 AC_DEFUN([CF_DIRS_TO_MAKE],
1172 [
1173 DIRS_TO_MAKE="lib"
1174 for cf_item in $cf_list_models
1175 do
1176         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1177         for cf_item2 in $DIRS_TO_MAKE
1178         do
1179                 test $cf_item2 = $cf_subdir && break
1180         done
1181         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1182 done
1183 for cf_dir in $DIRS_TO_MAKE
1184 do
1185         test ! -d $cf_dir && mkdir $cf_dir
1186 done
1187 AC_SUBST(DIRS_TO_MAKE)
1188 ])dnl
1189 dnl ---------------------------------------------------------------------------
1190 dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
1191 dnl ---------------
1192 dnl You can always use "make -n" to see the actual options, but it's hard to
1193 dnl pick out/analyze warning messages when the compile-line is long.
1194 dnl
1195 dnl Sets:
1196 dnl     ECHO_LT - symbol to control if libtool is verbose
1197 dnl     ECHO_LD - symbol to prefix "cc -o" lines
1198 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1199 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
1200 dnl     ECHO_CC - symbol to put before any "cc" line
1201 dnl
1202 AC_DEFUN([CF_DISABLE_ECHO],[
1203 AC_MSG_CHECKING(if you want to see long compiling messages)
1204 CF_ARG_DISABLE(echo,
1205         [  --disable-echo          do not display "compiling" commands],
1206         [
1207     ECHO_LT='--silent'
1208     ECHO_LD='@echo linking [$]@;'
1209     RULE_CC='@echo compiling [$]<'
1210     SHOW_CC='@echo compiling [$]@'
1211     ECHO_CC='@'
1212 ],[
1213     ECHO_LT=''
1214     ECHO_LD=''
1215     RULE_CC=''
1216     SHOW_CC=''
1217     ECHO_CC=''
1218 ])
1219 AC_MSG_RESULT($enableval)
1220 AC_SUBST(ECHO_LT)
1221 AC_SUBST(ECHO_LD)
1222 AC_SUBST(RULE_CC)
1223 AC_SUBST(SHOW_CC)
1224 AC_SUBST(ECHO_CC)
1225 ])dnl
1226 dnl ---------------------------------------------------------------------------
1227 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1228 dnl ------------------------
1229 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1230 AC_MSG_CHECKING(if we want to use GNAT projects)
1231 CF_ARG_DISABLE(gnat-projects,
1232         [  --disable-gnat-projects test: disable GNAT projects even if usable],
1233         [enable_gnat_projects=no],
1234         [enable_gnat_projects=yes])
1235 AC_MSG_RESULT($enable_gnat_projects)
1236 ])dnl
1237 dnl ---------------------------------------------------------------------------
1238 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1239 dnl ----------------
1240 dnl Combine no-leak checks with the libraries or tools that are used for the
1241 dnl checks.
1242 AC_DEFUN([CF_DISABLE_LEAKS],[
1243
1244 AC_REQUIRE([CF_WITH_DMALLOC])
1245 AC_REQUIRE([CF_WITH_DBMALLOC])
1246 AC_REQUIRE([CF_WITH_VALGRIND])
1247
1248 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1249 AC_ARG_ENABLE(leaks,
1250         [  --disable-leaks         test: free permanent memory, analyze leaks],
1251         [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1252         : ${with_no_leaks:=no})
1253 AC_MSG_RESULT($with_no_leaks)
1254
1255 if test "$with_no_leaks" = yes ; then
1256         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1257         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1258 fi
1259 ])dnl
1260 dnl ---------------------------------------------------------------------------
1261 dnl CF_DISABLE_LIBTOOL_VERSION version: 1 updated: 2010/05/15 15:45:59
1262 dnl --------------------------
1263 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1264 dnl the older "-version-info" feature.  The newer feature allows us to use
1265 dnl version numbering on shared libraries which make them compatible with
1266 dnl various systems.
1267 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1268 [
1269 AC_MSG_CHECKING(if libtool -version-number should be used)
1270 CF_ARG_DISABLE(libtool-version,
1271         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
1272         [cf_libtool_version=no],
1273         [cf_libtool_version=yes])
1274 AC_MSG_RESULT($cf_libtool_version)
1275
1276 if test "$cf_libtool_version" = yes ; then
1277         LIBTOOL_VERSION="-version-number"
1278 else
1279         LIBTOOL_VERSION="-version-info"
1280 fi
1281
1282 AC_SUBST(LIBTOOL_VERSION)
1283 ])dnl
1284 dnl ---------------------------------------------------------------------------
1285 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1286 dnl ---------------------
1287 dnl The rpath-hack makes it simpler to build programs, particularly with the
1288 dnl *BSD ports which may have essential libraries in unusual places.  But it
1289 dnl can interfere with building an executable for the base system.  Use this
1290 dnl option in that case.
1291 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1292 [
1293 AC_MSG_CHECKING(if rpath-hack should be disabled)
1294 CF_ARG_DISABLE(rpath-hack,
1295         [  --disable-rpath-hack    don't add rpath options for additional libraries],
1296         [cf_disable_rpath_hack=yes],
1297         [cf_disable_rpath_hack=no])
1298 AC_MSG_RESULT($cf_disable_rpath_hack)
1299 if test "$cf_disable_rpath_hack" = no ; then
1300         CF_RPATH_HACK
1301 fi
1302 ])
1303 dnl ---------------------------------------------------------------------------
1304 dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
1305 dnl ------------------
1306 dnl This is the "--enable-pc-files" option, which is available if there is a
1307 dnl pkg-config configuration on the local machine.
1308 AC_DEFUN([CF_ENABLE_PC_FILES],[
1309 AC_REQUIRE([CF_PKG_CONFIG])
1310 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
1311
1312 if test "$PKG_CONFIG" != none ; then
1313         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
1314         AC_ARG_ENABLE(pc-files,
1315                 [  --enable-pc-files       generate and install .pc files for pkg-config],
1316                 [enable_pc_files=$enableval],
1317                 [enable_pc_files=no])
1318         AC_MSG_RESULT($enable_pc_files)
1319         if test "$enable_pc_files" != no
1320         then
1321                 CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
1322         fi
1323 else
1324         enable_pc_files=no
1325 fi
1326 ])dnl
1327 dnl ---------------------------------------------------------------------------
1328 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
1329 dnl ---------------
1330 dnl Check if the rpath option should be used, setting cache variable
1331 dnl cf_cv_enable_rpath if so.
1332 AC_DEFUN([CF_ENABLE_RPATH],
1333 [
1334 AC_MSG_CHECKING(if rpath option should be used)
1335 AC_ARG_ENABLE(rpath,
1336 [  --enable-rpath          use rpath option when generating shared libraries],
1337 [cf_cv_enable_rpath=$enableval],
1338 [cf_cv_enable_rpath=no])
1339 AC_MSG_RESULT($cf_cv_enable_rpath)
1340 ])dnl
1341 dnl ---------------------------------------------------------------------------
1342 dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12
1343 dnl ----------------------
1344 dnl On a few platforms, the compiler and/or loader nags with untruthful
1345 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1346 dnl and implying that most uses of the recommended alternatives are correct.
1347 dnl
1348 dnl Factually speaking, no one has actually counted the number of uses of these
1349 dnl functions versus the total of incorrect uses.  Samples of a few thousand
1350 dnl instances are meaningless compared to the hundreds of millions of lines of
1351 dnl existing C code.
1352 dnl
1353 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1354 dnl platforms, in implementations of varying quality.  Likewise, snprintf is
1355 dnl standard - but evolved through phases, and older implementations are likely
1356 dnl to yield surprising results, as documented in manpages on various systems.
1357 AC_DEFUN([CF_ENABLE_STRING_HACKS],
1358 [
1359 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1360 AC_ARG_ENABLE(string-hacks,
1361         [  --enable-string-hacks   work around bogus compiler/loader warnings],
1362         [with_string_hacks=$enableval],
1363         [with_string_hacks=no])
1364 AC_MSG_RESULT($with_string_hacks)
1365
1366 if test "x$with_string_hacks" = "xyes"; then
1367         AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1368         AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1369         AC_CHECK_FUNCS( strlcat strlcpy snprintf )
1370 fi
1371 ])dnl
1372 dnl ---------------------------------------------------------------------------
1373 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1374 dnl --------
1375 dnl Check if 'errno' is declared in <errno.h>
1376 AC_DEFUN([CF_ERRNO],
1377 [
1378 CF_CHECK_ERRNO(errno)
1379 ])dnl
1380 dnl ---------------------------------------------------------------------------
1381 dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07
1382 dnl ---------------
1383 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1384 dnl math.h and builtin.h, only for ncurses
1385 AC_DEFUN([CF_ETIP_DEFINES],
1386 [
1387 AC_MSG_CHECKING(for special defines needed for etip.h)
1388 cf_save_CXXFLAGS="$CXXFLAGS"
1389 cf_result="none"
1390
1391 # etip.h includes ncurses.h which includes ncurses_dll.h
1392 # But ncurses_dll.h is generated - fix here.
1393 test -d include || mkdir include
1394 test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h
1395
1396 for cf_math in "" MATH_H
1397 do
1398 for cf_excp in "" MATH_EXCEPTION
1399 do
1400         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
1401         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1402         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1403 AC_TRY_COMPILE([
1404 #include <etip.h.in>
1405 ],[],[
1406         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1407         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1408         cf_result="$cf_math $cf_excp"
1409         break 2
1410 ],[])
1411 done
1412 done
1413 AC_MSG_RESULT($cf_result)
1414 CXXFLAGS="$cf_save_CXXFLAGS"
1415 ])
1416 dnl ---------------------------------------------------------------------------
1417 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
1418 dnl ---------------
1419 dnl Find a library (specifically the linkage used in the code fragment),
1420 dnl searching for it if it is not already in the library path.
1421 dnl See also CF_ADD_SEARCHPATH.
1422 dnl
1423 dnl Parameters (4-on are optional):
1424 dnl     $1 = headers for library entrypoint
1425 dnl     $2 = code fragment for library entrypoint
1426 dnl     $3 = the library name without the "-l" option or ".so" suffix.
1427 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1428 dnl     $5 = action to perform if not successful
1429 dnl     $6 = module name, if not the same as the library name
1430 dnl     $7 = extra libraries
1431 dnl
1432 dnl Sets these variables:
1433 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1434 dnl     $cf_cv_header_path_$3 - include-directory if needed
1435 dnl     $cf_cv_library_path_$3 - library-directory if needed
1436 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1437 AC_DEFUN([CF_FIND_LINKAGE],[
1438
1439 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1440 # will be set on completion of the AC_TRY_LINK below.
1441 cf_cv_header_path_$3=
1442 cf_cv_library_path_$3=
1443
1444 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1445
1446 cf_save_LIBS="$LIBS"
1447
1448 AC_TRY_LINK([$1],[$2],[
1449         cf_cv_find_linkage_$3=yes
1450         cf_cv_header_path_$3=/usr/include
1451         cf_cv_library_path_$3=/usr/lib
1452 ],[
1453
1454 LIBS="-l$3 $7 $cf_save_LIBS"
1455
1456 AC_TRY_LINK([$1],[$2],[
1457         cf_cv_find_linkage_$3=yes
1458         cf_cv_header_path_$3=/usr/include
1459         cf_cv_library_path_$3=/usr/lib
1460         cf_cv_library_file_$3="-l$3"
1461 ],[
1462         cf_cv_find_linkage_$3=no
1463         LIBS="$cf_save_LIBS"
1464
1465     CF_VERBOSE(find linkage for $3 library)
1466     CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1467
1468     cf_save_CPPFLAGS="$CPPFLAGS"
1469     cf_test_CPPFLAGS="$CPPFLAGS"
1470
1471     CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1472     for cf_cv_header_path_$3 in $cf_search
1473     do
1474       if test -d $cf_cv_header_path_$3 ; then
1475         CF_VERBOSE(... testing $cf_cv_header_path_$3)
1476         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1477         AC_TRY_COMPILE([$1],[$2],[
1478             CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1479             cf_cv_find_linkage_$3=maybe
1480             cf_test_CPPFLAGS="$CPPFLAGS"
1481             break],[
1482             CPPFLAGS="$cf_save_CPPFLAGS"
1483             ])
1484       fi
1485     done
1486
1487     if test "$cf_cv_find_linkage_$3" = maybe ; then
1488
1489       CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1490
1491       cf_save_LIBS="$LIBS"
1492       cf_save_LDFLAGS="$LDFLAGS"
1493
1494       ifelse([$6],,,[
1495         CPPFLAGS="$cf_test_CPPFLAGS"
1496         LIBS="-l$3 $7 $cf_save_LIBS"
1497         AC_TRY_LINK([$1],[$2],[
1498             CF_VERBOSE(... found $3 library in system)
1499             cf_cv_find_linkage_$3=yes])
1500             CPPFLAGS="$cf_save_CPPFLAGS"
1501             LIBS="$cf_save_LIBS"
1502             ])
1503
1504       if test "$cf_cv_find_linkage_$3" != yes ; then
1505         CF_LIBRARY_PATH(cf_search,$3)
1506         for cf_cv_library_path_$3 in $cf_search
1507         do
1508           if test -d $cf_cv_library_path_$3 ; then
1509             CF_VERBOSE(... testing $cf_cv_library_path_$3)
1510             CPPFLAGS="$cf_test_CPPFLAGS"
1511             LIBS="-l$3 $7 $cf_save_LIBS"
1512             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1513             AC_TRY_LINK([$1],[$2],[
1514                 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1515                 cf_cv_find_linkage_$3=yes
1516                 cf_cv_library_file_$3="-l$3"
1517                 break],[
1518                 CPPFLAGS="$cf_save_CPPFLAGS"
1519                 LIBS="$cf_save_LIBS"
1520                 LDFLAGS="$cf_save_LDFLAGS"
1521                 ])
1522           fi
1523         done
1524         CPPFLAGS="$cf_save_CPPFLAGS"
1525         LDFLAGS="$cf_save_LDFLAGS"
1526       fi
1527
1528     else
1529       cf_cv_find_linkage_$3=no
1530     fi
1531     ],$7)
1532 ])
1533
1534 LIBS="$cf_save_LIBS"
1535
1536 if test "$cf_cv_find_linkage_$3" = yes ; then
1537 ifelse([$4],,[
1538         CF_ADD_INCDIR($cf_cv_header_path_$3)
1539         CF_ADD_LIBDIR($cf_cv_library_path_$3)
1540         CF_ADD_LIB($3)
1541 ],[$4])
1542 else
1543 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1544 fi
1545 ])dnl
1546 dnl ---------------------------------------------------------------------------
1547 dnl CF_FIND_SUB_INCDIR version: 1 updated: 2014/04/12 16:47:01
1548 dnl ------------------
1549 dnl Find an include-directory with the given leaf-name.  This is useful for
1550 dnl example with FreeBSD ports, which use this convention to distinguish
1551 dnl different versions of the same port.
1552 AC_DEFUN([CF_FIND_SUB_INCDIR],[
1553         CF_SUBDIR_PATH(cf_search,$1,include)
1554         for cf_item in $cf_search
1555         do
1556                 case $cf_item in #(vi
1557                 */$1)
1558                         CF_ADD_INCDIR($cf_item)
1559                         ;;
1560                 esac
1561         done
1562 ])dnl
1563 dnl ---------------------------------------------------------------------------
1564 dnl CF_FIND_SUB_LIBDIR version: 1 updated: 2014/04/12 16:47:01
1565 dnl ------------------
1566 dnl Find a library-directory with the given leaf-name.  This is useful for
1567 dnl example with FreeBSD ports, which use this convention to distinguish
1568 dnl different versions of the same port.
1569 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
1570         CF_SUBDIR_PATH(cf_search,$1,lib)
1571         for cf_item in $cf_search
1572         do
1573                 case $cf_item in #(vi
1574                 */$1)
1575                         CF_ADD_LIBDIR($cf_item)
1576                         ;;
1577                 esac
1578         done
1579 ])dnl
1580 dnl ---------------------------------------------------------------------------
1581 dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
1582 dnl -----------------
1583 dnl make ADAFLAGS consistent with CFLAGS
1584 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1585         AC_MSG_CHECKING(optimization options for ADAFLAGS)
1586         case "$CFLAGS" in
1587         *-g*)
1588                 CF_ADD_ADAFLAGS(-g)
1589                 ;;
1590         esac
1591         case "$CFLAGS" in
1592         *-O*)
1593                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
1594                 CF_ADD_ADAFLAGS($cf_O_flag)
1595                 ;;
1596         esac
1597         AC_MSG_RESULT($ADAFLAGS)
1598 ])dnl
1599 dnl ---------------------------------------------------------------------------
1600 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
1601 dnl --------------
1602 dnl Forget that we saw the given tool.
1603 AC_DEFUN([CF_FORGET_TOOL],[
1604 unset ac_cv_prog_ac_ct_$1
1605 unset ac_ct_$1
1606 unset $1
1607 ])dnl
1608 dnl ---------------------------------------------------------------------------
1609 dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15
1610 dnl -------------
1611 dnl Test for dlsym() and related functions, as well as libdl.
1612 dnl
1613 dnl Sets
1614 dnl     $cf_have_dlsym
1615 dnl     $cf_have_libdl
1616 AC_DEFUN([CF_FUNC_DLSYM],[
1617 cf_have_dlsym=no
1618 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1619
1620 cf_have_libdl=no
1621 AC_CHECK_LIB(dl,dlsym,[
1622         cf_have_dlsym=yes
1623         cf_have_libdl=yes])])
1624
1625 if test "$cf_have_dlsym" = yes ; then
1626         test "$cf_have_libdl" = yes && CF_ADD_LIB(dl)
1627
1628         AC_MSG_CHECKING(whether able to link to dl*() functions)
1629         AC_TRY_LINK([#include <dlfcn.h>],[
1630                 void *obj;
1631                 if ((obj = dlopen("filename", 0)) != 0) {
1632                         if (dlsym(obj, "symbolname") == 0) {
1633                         dlclose(obj);
1634                         }
1635                 }],[
1636                 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
1637                 AC_MSG_ERROR(Cannot link test program for libdl)])
1638         AC_MSG_RESULT(ok)
1639 else
1640         AC_MSG_ERROR(Cannot find dlsym function)
1641 fi
1642 ])
1643 dnl ---------------------------------------------------------------------------
1644 dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20
1645 dnl ---------------
1646 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
1647 dnl is found, add our own version of memmove to the list of objects.
1648 AC_DEFUN([CF_FUNC_MEMMOVE],
1649 [
1650 AC_CHECK_FUNC(memmove,,[
1651 AC_CHECK_FUNC(bcopy,[
1652         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1653                 AC_TRY_RUN([
1654 int main() {
1655         static char data[] = "abcdefghijklmnopqrstuwwxyz";
1656         char temp[40];
1657         bcopy(data, temp, sizeof(data));
1658         bcopy(temp+10, temp, 15);
1659         bcopy(temp+5, temp+15, 10);
1660         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1661 }
1662                 ],
1663                 [cf_cv_good_bcopy=yes],
1664                 [cf_cv_good_bcopy=no],
1665                 [cf_cv_good_bcopy=unknown])
1666                 ])
1667         ],[cf_cv_good_bcopy=no])
1668         if test "$cf_cv_good_bcopy" = yes ; then
1669                 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
1670         else
1671                 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
1672         fi
1673 ])])dnl
1674 dnl ---------------------------------------------------------------------------
1675 dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13
1676 dnl -----------------
1677 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
1678 dnl AIX 4.x, provide a non-working version.
1679 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1680 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1681 AC_TRY_RUN([
1682 #include <stdio.h>
1683 #include <errno.h>
1684 #include <time.h>
1685
1686 #ifdef HAVE_SYS_TIME_H
1687 #include <sys/time.h>
1688 #endif
1689
1690 int main() {
1691         struct timespec ts1, ts2;
1692         int code;
1693         ts1.tv_sec  = 0;
1694         ts1.tv_nsec = 750000000;
1695         ts2.tv_sec  = 0;
1696         ts2.tv_nsec = 0;
1697         errno = 0;
1698         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1699         ${cf_cv_main_return:-return}(code != 0);
1700 }
1701 ],
1702         [cf_cv_func_nanosleep=yes],
1703         [cf_cv_func_nanosleep=no],
1704         [cf_cv_func_nanosleep=unknown])])
1705
1706 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
1707 ])
1708 dnl ---------------------------------------------------------------------------
1709 dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02
1710 dnl ---------------
1711 dnl Check for openpty() function, along with <pty.h> header.  It may need the
1712 dnl "util" library as well.
1713 AC_DEFUN([CF_FUNC_OPENPTY],
1714 [
1715 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1716 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1717     cf_save_LIBS="$LIBS"
1718     test $cf_cv_lib_util = yes && CF_ADD_LIB(util)
1719     for cf_header in pty.h libutil.h util.h
1720     do
1721     AC_TRY_LINK([
1722 #include <$cf_header>
1723 ],[
1724     int x = openpty((int *)0, (int *)0, (char *)0,
1725                    (struct termios *)0, (struct winsize *)0);
1726 ],[
1727         cf_cv_func_openpty=$cf_header
1728         break
1729 ],[
1730         cf_cv_func_openpty=no
1731 ])
1732     done
1733     LIBS="$cf_save_LIBS"
1734 ])
1735 ])dnl
1736 dnl ---------------------------------------------------------------------------
1737 dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07
1738 dnl ------------
1739 dnl See if the poll function really works.  Some platforms have poll(), but
1740 dnl it does not work for terminals or files.
1741 AC_DEFUN([CF_FUNC_POLL],[
1742 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1743 AC_TRY_RUN([
1744 #include <stdlib.h>
1745 #include <stdio.h>
1746 #include <unistd.h>
1747 #include <fcntl.h>
1748 #ifdef HAVE_POLL_H
1749 #include <poll.h>
1750 #else
1751 #include <sys/poll.h>
1752 #endif
1753 int main() {
1754         struct pollfd myfds;
1755         int ret;
1756
1757         /* check for Darwin bug with respect to "devices" */
1758         myfds.fd = open("/dev/null", 1);        /* O_WRONLY */
1759         if (myfds.fd < 0)
1760                 myfds.fd = 0;
1761         myfds.events = POLLIN;
1762         myfds.revents = 0;
1763
1764         ret = poll(&myfds, 1, 100);
1765
1766         if (ret < 0 || (myfds.revents & POLLNVAL)) {
1767                 ret = -1;
1768         } else {
1769                 int fd = 0;
1770                 if (!isatty(fd)) {
1771                         fd = open("/dev/tty", 2);       /* O_RDWR */
1772                 }
1773
1774                 if (fd >= 0) {
1775                         /* also check with standard input */
1776                         myfds.fd = fd;
1777                         myfds.events = POLLIN;
1778                         myfds.revents = 0;
1779                         ret = poll(&myfds, 1, 100);
1780                 } else {
1781                         ret = -1;
1782                 }
1783         }
1784         ${cf_cv_main_return:-return}(ret < 0);
1785 }],
1786         [cf_cv_working_poll=yes],
1787         [cf_cv_working_poll=no],
1788         [cf_cv_working_poll=unknown])])
1789 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
1790 ])dnl
1791 dnl ---------------------------------------------------------------------------
1792 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
1793 dnl ---------------
1794 dnl Some old/broken variations define tcgetattr() only as a macro in
1795 dnl termio(s).h
1796 AC_DEFUN([CF_FUNC_TERMIOS],[
1797 AC_REQUIRE([CF_STRUCT_TERMIOS])
1798 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1799 AC_TRY_LINK([
1800 #include <sys/types.h>
1801 #ifdef HAVE_UNISTD_H
1802 #include <unistd.h>
1803 #endif
1804 #ifdef HAVE_TERMIOS_H
1805 #include <termios.h>
1806 #define TTY struct termios
1807 #else
1808 #ifdef HAVE_TERMIO_H
1809 #include <termio.h>
1810 #define TTY struct termio
1811 #endif
1812 #endif
1813 ],[
1814 TTY foo;
1815 tcgetattr(1, &foo);],
1816 [cf_cv_have_tcgetattr=yes],
1817 [cf_cv_have_tcgetattr=no])])
1818 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
1819 ])dnl
1820 dnl ---------------------------------------------------------------------------
1821 dnl CF_FUNC_VSSCANF version: 4 updated: 2012/10/06 17:56:13
1822 dnl ---------------
1823 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1824 dnl versions of C.  It is in the GNU C library, and can often be simulated by
1825 dnl other functions.
1826 AC_DEFUN([CF_FUNC_VSSCANF],
1827 [
1828 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1829 AC_TRY_LINK([
1830 #include <stdarg.h>
1831 #include <stdio.h>],[
1832         va_list ap;
1833         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1834 AC_TRY_LINK([
1835 #include <stdarg.h>
1836 #include <stdio.h>],[
1837     FILE strbuf;
1838     char *str = "from";
1839
1840     strbuf._flag = _IOREAD;
1841     strbuf._ptr = strbuf._base = (unsigned char *) str;
1842     strbuf._cnt = strlen(str);
1843     strbuf._file = _NFILE;
1844     return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1845 AC_TRY_LINK([
1846 #include <stdarg.h>
1847 #include <stdio.h>],[
1848     FILE strbuf;
1849     char *str = "from";
1850
1851     strbuf._flag = _IOREAD;
1852     strbuf._ptr = strbuf._base = (unsigned char *) str;
1853     strbuf._cnt = strlen(str);
1854     strbuf._file = _NFILE;
1855     return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1856 cf_cv_func_vsscanf=no])])])])
1857
1858 case $cf_cv_func_vsscanf in #(vi
1859 vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; #(vi
1860 vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; #(vi
1861 _doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
1862 esac
1863
1864 ])dnl
1865 dnl ---------------------------------------------------------------------------
1866 dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
1867 dnl -----------------
1868 dnl Test for availability of useful gcc __attribute__ directives to quiet
1869 dnl compiler warnings.  Though useful, not all are supported -- and contrary
1870 dnl to documentation, unrecognized directives cause older compilers to barf.
1871 AC_DEFUN([CF_GCC_ATTRIBUTES],
1872 [
1873 if test "$GCC" = yes
1874 then
1875 cat > conftest.i <<EOF
1876 #ifndef GCC_PRINTF
1877 #define GCC_PRINTF 0
1878 #endif
1879 #ifndef GCC_SCANF
1880 #define GCC_SCANF 0
1881 #endif
1882 #ifndef GCC_NORETURN
1883 #define GCC_NORETURN /* nothing */
1884 #endif
1885 #ifndef GCC_UNUSED
1886 #define GCC_UNUSED /* nothing */
1887 #endif
1888 EOF
1889 if test "$GCC" = yes
1890 then
1891         AC_CHECKING([for $CC __attribute__ directives])
1892 cat > conftest.$ac_ext <<EOF
1893 #line __oline__ "${as_me:-configure}"
1894 #include "confdefs.h"
1895 #include "conftest.h"
1896 #include "conftest.i"
1897 #if     GCC_PRINTF
1898 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1899 #else
1900 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1901 #endif
1902 #if     GCC_SCANF
1903 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1904 #else
1905 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1906 #endif
1907 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1908 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1909 extern void foo(void) GCC_NORETURN;
1910 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1911 EOF
1912         cf_printf_attribute=no
1913         cf_scanf_attribute=no
1914         for cf_attribute in scanf printf unused noreturn
1915         do
1916                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1917                 cf_directive="__attribute__(($cf_attribute))"
1918                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1919
1920                 case $cf_attribute in #(vi
1921                 printf) #(vi
1922                         cf_printf_attribute=yes
1923                         cat >conftest.h <<EOF
1924 #define GCC_$cf_ATTRIBUTE 1
1925 EOF
1926                         ;;
1927                 scanf) #(vi
1928                         cf_scanf_attribute=yes
1929                         cat >conftest.h <<EOF
1930 #define GCC_$cf_ATTRIBUTE 1
1931 EOF
1932                         ;;
1933                 *) #(vi
1934                         cat >conftest.h <<EOF
1935 #define GCC_$cf_ATTRIBUTE $cf_directive
1936 EOF
1937                         ;;
1938                 esac
1939
1940                 if AC_TRY_EVAL(ac_compile); then
1941                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1942                         cat conftest.h >>confdefs.h
1943                         case $cf_attribute in #(vi
1944                         noreturn) #(vi
1945                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1946                                 ;;
1947                         printf) #(vi
1948                                 cf_value='/* nothing */'
1949                                 if test "$cf_printf_attribute" != no ; then
1950                                         cf_value='__attribute__((format(printf,fmt,var)))'
1951                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1952                                 fi
1953                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1954                                 ;;
1955                         scanf) #(vi
1956                                 cf_value='/* nothing */'
1957                                 if test "$cf_scanf_attribute" != no ; then
1958                                         cf_value='__attribute__((format(scanf,fmt,var)))'
1959                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1960                                 fi
1961                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1962                                 ;;
1963                         unused) #(vi
1964                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1965                                 ;;
1966                         esac
1967                 fi
1968         done
1969 else
1970         fgrep define conftest.i >>confdefs.h
1971 fi
1972 rm -rf conftest*
1973 fi
1974 ])dnl
1975 dnl ---------------------------------------------------------------------------
1976 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1977 dnl --------------
1978 dnl Find version of gcc
1979 AC_DEFUN([CF_GCC_VERSION],[
1980 AC_REQUIRE([AC_PROG_CC])
1981 GCC_VERSION=none
1982 if test "$GCC" = yes ; then
1983         AC_MSG_CHECKING(version of $CC)
1984         GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1985         test -z "$GCC_VERSION" && GCC_VERSION=unknown
1986         AC_MSG_RESULT($GCC_VERSION)
1987 fi
1988 ])dnl
1989 dnl ---------------------------------------------------------------------------
1990 dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35
1991 dnl ---------------
1992 dnl Check if the compiler supports useful warning options.  There's a few that
1993 dnl we don't use, simply because they're too noisy:
1994 dnl
1995 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1996 dnl     -Wredundant-decls (system headers make this too noisy)
1997 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
1998 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
1999 dnl             is enabled for ncurses using "--enable-const".
2000 dnl     -pedantic
2001 dnl
2002 dnl Parameter:
2003 dnl     $1 is an optional list of gcc warning flags that a particular
2004 dnl             application might want to use, e.g., "no-unused" for
2005 dnl             -Wno-unused
2006 dnl Special:
2007 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
2008 dnl
2009 AC_DEFUN([CF_GCC_WARNINGS],
2010 [
2011 AC_REQUIRE([CF_GCC_VERSION])
2012 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2013 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2014
2015 cat > conftest.$ac_ext <<EOF
2016 #line __oline__ "${as_me:-configure}"
2017 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2018 EOF
2019
2020 if test "$INTEL_COMPILER" = yes
2021 then
2022 # The "-wdXXX" options suppress warnings:
2023 # remark #1419: external declaration in primary source file
2024 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2025 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2026 # remark #193: zero used for undefined preprocessing identifier
2027 # remark #593: variable "curs_sb_left_arrow" was set but never used
2028 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2029 # remark #869: parameter "tw" was never referenced
2030 # remark #981: operands are evaluated in unspecified order
2031 # warning #279: controlling expression is constant
2032
2033         AC_CHECKING([for $CC warning options])
2034         cf_save_CFLAGS="$CFLAGS"
2035         EXTRA_CFLAGS="-Wall"
2036         for cf_opt in \
2037                 wd1419 \
2038                 wd1683 \
2039                 wd1684 \
2040                 wd193 \
2041                 wd593 \
2042                 wd279 \
2043                 wd810 \
2044                 wd869 \
2045                 wd981
2046         do
2047                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2048                 if AC_TRY_EVAL(ac_compile); then
2049                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2050                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2051                 fi
2052         done
2053         CFLAGS="$cf_save_CFLAGS"
2054
2055 elif test "$GCC" = yes
2056 then
2057         AC_CHECKING([for $CC warning options])
2058         cf_save_CFLAGS="$CFLAGS"
2059         EXTRA_CFLAGS=
2060         cf_warn_CONST=""
2061         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
2062         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
2063         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
2064         for cf_opt in W Wall \
2065                 Wbad-function-cast \
2066                 Wcast-align \
2067                 Wcast-qual \
2068                 Wdeclaration-after-statement \
2069                 Wextra \
2070                 Winline \
2071                 Wmissing-declarations \
2072                 Wmissing-prototypes \
2073                 Wnested-externs \
2074                 Wpointer-arith \
2075                 Wshadow \
2076                 Wstrict-prototypes \
2077                 Wundef $cf_gcc_warnings $cf_warn_CONST $1
2078         do
2079                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2080                 if AC_TRY_EVAL(ac_compile); then
2081                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2082                         case $cf_opt in #(vi
2083                         Wcast-qual) #(vi
2084                                 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
2085                                 ;;
2086                         Winline) #(vi
2087                                 case $GCC_VERSION in
2088                                 [[34]].*)
2089                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2090                                         continue;;
2091                                 esac
2092                                 ;;
2093                         Wpointer-arith) #(vi
2094                                 case $GCC_VERSION in
2095                                 [[12]].*)
2096                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2097                                         continue;;
2098                                 esac
2099                                 ;;
2100                         esac
2101                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2102                 fi
2103         done
2104         CFLAGS="$cf_save_CFLAGS"
2105 fi
2106 rm -rf conftest*
2107
2108 AC_SUBST(EXTRA_CFLAGS)
2109 ])dnl
2110 dnl ---------------------------------------------------------------------------
2111 dnl CF_GETOPT_HEADER version: 5 updated: 2012/10/06 16:39:58
2112 dnl ----------------
2113 dnl Check for getopt's variables which are commonly defined in stdlib.h,
2114 dnl unistd.h or (nonstandard) in getopt.h
2115 AC_DEFUN([CF_GETOPT_HEADER],
2116 [
2117 AC_HAVE_HEADERS(unistd.h getopt.h)
2118 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
2119 cf_cv_getopt_header=none
2120 for cf_header in stdio.h stdlib.h unistd.h getopt.h
2121 do
2122 AC_TRY_COMPILE([
2123 #include <$cf_header>],
2124 [int x = optind; char *y = optarg],
2125 [cf_cv_getopt_header=$cf_header
2126  break])
2127 done
2128 ])
2129 if test $cf_cv_getopt_header != none ; then
2130         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h])
2131 fi
2132 ])dnl
2133 dnl ---------------------------------------------------------------------------
2134 dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
2135 dnl ----------------
2136 AC_DEFUN([CF_GNAT_GENERICS],
2137 [
2138 AC_REQUIRE([CF_GNAT_VERSION])
2139
2140 AC_MSG_CHECKING(if GNAT supports generics)
2141 case $cf_gnat_version in #(vi
2142 3.[[1-9]]*|[[4-9]].*) #(vi
2143         cf_gnat_generics=yes
2144         ;;
2145 *)
2146         cf_gnat_generics=no
2147         ;;
2148 esac
2149 AC_MSG_RESULT($cf_gnat_generics)
2150
2151 if test "$cf_gnat_generics" = yes
2152 then
2153         cf_compile_generics=generics
2154         cf_generic_objects="\${GENOBJS}"
2155 else
2156         cf_compile_generics=
2157         cf_generic_objects=
2158 fi
2159
2160 AC_SUBST(cf_compile_generics)
2161 AC_SUBST(cf_generic_objects)
2162 ])dnl
2163 dnl ---------------------------------------------------------------------------
2164 dnl CF_GNAT_PROJECTS version: 7 updated: 2014/06/01 10:46:34
2165 dnl ----------------
2166 dnl GNAT projects are configured with ".gpr" project files.
2167 dnl GNAT libraries are a further development, using the project feature.
2168 AC_DEFUN([CF_GNAT_PROJECTS],
2169 [
2170 AC_REQUIRE([CF_GNAT_VERSION])
2171 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
2172
2173 cf_gnat_libraries=no
2174 cf_gnat_projects=no
2175
2176 if test "$enable_gnat_projects" != no ; then
2177 AC_MSG_CHECKING(if GNAT supports project files)
2178 case $cf_gnat_version in #(vi
2179 3.[[0-9]]*) #(vi
2180         ;;
2181 *)
2182         case $cf_cv_system_name in #(vi
2183         cygwin*|msys*) #(vi
2184                 ;;
2185         *)
2186                 mkdir conftest.src conftest.bin conftest.lib
2187                 cd conftest.src
2188                 rm -rf conftest* *~conftest*
2189                 cat >>library.gpr <<CF_EOF
2190 project Library is
2191   Kind := External ("LIB_KIND");
2192   for Library_Name use "ConfTest";
2193   for Object_Dir use ".";
2194   for Library_ALI_Dir use External("LIBRARY_DIR");
2195   for Library_Version use External ("SONAME");
2196   for Library_Kind use Kind;
2197   for Library_Dir use External("BUILD_DIR");
2198   Source_Dir := External ("SOURCE_DIR");
2199   for Source_Dirs use (Source_Dir);
2200 end Library;
2201 CF_EOF
2202                 cat >>confpackage.ads <<CF_EOF
2203 package ConfPackage is
2204    procedure conftest;
2205 end ConfPackage;
2206 CF_EOF
2207                 cat >>confpackage.adb <<CF_EOF
2208 with Text_IO;
2209 package body ConfPackage is
2210    procedure conftest is
2211    begin
2212       Text_IO.Put ("Hello World");
2213       Text_IO.New_Line;
2214    end conftest;
2215 end ConfPackage;
2216 CF_EOF
2217                 if ( $cf_ada_make $ADAFLAGS \
2218                                 -Plibrary.gpr \
2219                                 -XBUILD_DIR=`cd ../conftest.bin;pwd` \
2220                                 -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
2221                                 -XSOURCE_DIR=`pwd` \
2222                                 -XSONAME=libConfTest.so.1 \
2223                                 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
2224                         cf_gnat_projects=yes
2225                 fi
2226                 cd ..
2227                 if test -f conftest.lib/confpackage.ali
2228                 then
2229                         cf_gnat_libraries=yes
2230                 fi
2231                 rm -rf conftest* *~conftest*
2232                 ;;
2233         esac
2234         ;;
2235 esac
2236 AC_MSG_RESULT($cf_gnat_projects)
2237 fi # enable_gnat_projects
2238
2239 if test $cf_gnat_projects = yes
2240 then
2241         AC_MSG_CHECKING(if GNAT supports libraries)
2242         AC_MSG_RESULT($cf_gnat_libraries)
2243 fi
2244
2245 if test "$cf_gnat_projects" = yes
2246 then
2247         USE_OLD_MAKERULES="#"
2248         USE_GNAT_PROJECTS=""
2249 else
2250         USE_OLD_MAKERULES=""
2251         USE_GNAT_PROJECTS="#"
2252 fi
2253
2254 if test "$cf_gnat_libraries" = yes
2255 then
2256         USE_GNAT_LIBRARIES=""
2257 else
2258         USE_GNAT_LIBRARIES="#"
2259 fi
2260
2261 AC_SUBST(USE_OLD_MAKERULES)
2262 AC_SUBST(USE_GNAT_PROJECTS)
2263 AC_SUBST(USE_GNAT_LIBRARIES)
2264 ])dnl
2265 dnl ---------------------------------------------------------------------------
2266 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
2267 dnl --------------
2268 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
2269 dnl is noted that gnat may compile a tasking unit even for configurations which
2270 dnl fail at runtime.
2271 AC_DEFUN([CF_GNAT_SIGINT],[
2272 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
2273 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
2274
2275 package ConfTest is
2276
2277    pragma Warnings (Off);  --  the next pragma exists since 3.11p
2278    pragma Unreserve_All_Interrupts;
2279    pragma Warnings (On);
2280
2281    protected Process is
2282       procedure Stop;
2283       function Continue return Boolean;
2284       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
2285    private
2286       Done : Boolean := False;
2287    end Process;
2288
2289 end ConfTest;],
2290 [package body ConfTest is
2291    protected body Process is
2292       procedure Stop is
2293       begin
2294          Done := True;
2295       end Stop;
2296       function Continue return Boolean is
2297       begin
2298          return not Done;
2299       end Continue;
2300    end Process;
2301 end ConfTest;],
2302         [cf_cv_gnat_sigint=yes],
2303         [cf_cv_gnat_sigint=no])])
2304
2305 if test $cf_cv_gnat_sigint = yes ; then
2306         USE_GNAT_SIGINT=""
2307 else
2308         USE_GNAT_SIGINT="#"
2309 fi
2310 AC_SUBST(USE_GNAT_SIGINT)
2311 ])dnl
2312 dnl ---------------------------------------------------------------------------
2313 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
2314 dnl ----------------
2315 dnl Verify that a test program compiles/links with GNAT.
2316 dnl $cf_ada_make is set to the program that compiles/links
2317 dnl $ADAFLAGS may be set to the GNAT flags.
2318 dnl
2319 dnl $1 is the text of the spec
2320 dnl $2 is the text of the body
2321 dnl $3 is the shell command to execute if successful
2322 dnl $4 is the shell command to execute if not successful
2323 AC_DEFUN([CF_GNAT_TRY_LINK],
2324 [
2325 rm -rf conftest* *~conftest*
2326 cat >>conftest.ads <<CF_EOF
2327 $1
2328 CF_EOF
2329 cat >>conftest.adb <<CF_EOF
2330 $2
2331 CF_EOF
2332 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
2333 ifelse($3,,      :,[      $3])
2334 ifelse($4,,,[else
2335    $4])
2336 fi
2337 rm -rf conftest* *~conftest*
2338 ])dnl
2339 dnl ---------------------------------------------------------------------------
2340 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
2341 dnl ---------------
2342 dnl Verify that a test program compiles and runs with GNAT
2343 dnl $cf_ada_make is set to the program that compiles/links
2344 dnl $ADAFLAGS may be set to the GNAT flags.
2345 dnl
2346 dnl $1 is the text of the spec
2347 dnl $2 is the text of the body
2348 dnl $3 is the shell command to execute if successful
2349 dnl $4 is the shell command to execute if not successful
2350 AC_DEFUN([CF_GNAT_TRY_RUN],
2351 [
2352 rm -rf conftest* *~conftest*
2353 cat >>conftest.ads <<CF_EOF
2354 $1
2355 CF_EOF
2356 cat >>conftest.adb <<CF_EOF
2357 $2
2358 CF_EOF
2359 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
2360    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
2361 ifelse($3,,      :,[      $3])
2362 ifelse($4,,,[   else
2363       $4])
2364    fi
2365 ifelse($4,,,[else
2366    $4])
2367 fi
2368 rm -rf conftest* *~conftest*
2369 ])dnl
2370 dnl ---------------------------------------------------------------------------
2371 dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
2372 dnl ---------------
2373 dnl Verify version of GNAT.
2374 AC_DEFUN([CF_GNAT_VERSION],
2375 [
2376 AC_MSG_CHECKING(for gnat version)
2377 cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
2378         grep '[[0-9]].[[0-9]][[0-9]]*' |\
2379     sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
2380 AC_MSG_RESULT($cf_gnat_version)
2381
2382 case $cf_gnat_version in #(vi
2383 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
2384         cf_cv_prog_gnat_correct=yes
2385         ;;
2386 *)
2387         AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
2388         cf_cv_prog_gnat_correct=no
2389         ;;
2390 esac
2391 ])
2392 dnl ---------------------------------------------------------------------------
2393 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
2394 dnl -------------
2395 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
2396 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
2397 dnl (or misfeature) of glibc2, which breaks portability of many applications,
2398 dnl since it is interwoven with GNU extensions.
2399 dnl
2400 dnl Well, yes we could work around it...
2401 AC_DEFUN([CF_GNU_SOURCE],
2402 [
2403 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
2404 AC_TRY_COMPILE([#include <sys/types.h>],[
2405 #ifndef _XOPEN_SOURCE
2406 make an error
2407 #endif],
2408         [cf_cv_gnu_source=no],
2409         [cf_save="$CPPFLAGS"
2410          CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
2411          AC_TRY_COMPILE([#include <sys/types.h>],[
2412 #ifdef _XOPEN_SOURCE
2413 make an error
2414 #endif],
2415         [cf_cv_gnu_source=no],
2416         [cf_cv_gnu_source=yes])
2417         CPPFLAGS="$cf_save"
2418         ])
2419 ])
2420 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
2421 ])dnl
2422 dnl ---------------------------------------------------------------------------
2423 dnl CF_GPP_LIBRARY version: 11 updated: 2012/10/06 17:56:13
2424 dnl --------------
2425 dnl If we're trying to use g++, test if libg++ is installed (a rather common
2426 dnl problem :-).  If we have the compiler but no library, we'll be able to
2427 dnl configure, but won't be able to build the c++ demo program.
2428 AC_DEFUN([CF_GPP_LIBRARY],
2429 [
2430 cf_cxx_library=unknown
2431 case $cf_cv_system_name in #(vi
2432 os2*) #(vi
2433         cf_gpp_libname=gpp
2434         ;;
2435 *)
2436         cf_gpp_libname=g++
2437         ;;
2438 esac
2439 if test "$GXX" = yes; then
2440         AC_MSG_CHECKING([for lib$cf_gpp_libname])
2441         cf_save="$LIBS"
2442         CF_ADD_LIB($cf_gpp_libname)
2443         AC_TRY_LINK([
2444 #include <$cf_gpp_libname/builtin.h>
2445         ],
2446         [two_arg_error_handler_t foo2 = lib_error_handler],
2447         [cf_cxx_library=yes
2448          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
2449          if test "$cf_gpp_libname" = cpp ; then
2450             AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
2451          else
2452             AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
2453          fi],
2454         [AC_TRY_LINK([
2455 #include <builtin.h>
2456         ],
2457         [two_arg_error_handler_t foo2 = lib_error_handler],
2458         [cf_cxx_library=yes
2459          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
2460          AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
2461         [cf_cxx_library=no])])
2462         LIBS="$cf_save"
2463         AC_MSG_RESULT($cf_cxx_library)
2464 fi
2465 ])dnl
2466 dnl ---------------------------------------------------------------------------
2467 dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39
2468 dnl --------------
2469 dnl Check for version of g++
2470 AC_DEFUN([CF_GXX_VERSION],[
2471 AC_REQUIRE([AC_PROG_CPP])
2472 GXX_VERSION=none
2473 if test "$GXX" = yes; then
2474         AC_MSG_CHECKING(version of ${CXX:-g++})
2475         GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
2476         test -z "$GXX_VERSION" && GXX_VERSION=unknown
2477         AC_MSG_RESULT($GXX_VERSION)
2478 fi
2479 ])dnl
2480 dnl ---------------------------------------------------------------------------
2481 dnl CF_GXX_WARNINGS version: 8 updated: 2013/11/16 14:27:53
2482 dnl ---------------
2483 dnl Check if the compiler supports useful warning options.
2484 dnl
2485 dnl Most of gcc's options apply to g++, except:
2486 dnl     -Wbad-function-cast
2487 dnl     -Wmissing-declarations
2488 dnl     -Wnested-externs
2489 dnl
2490 dnl Omit a few (for now):
2491 dnl     -Winline
2492 dnl
2493 dnl Parameter:
2494 dnl     $1 is an optional list of g++ warning flags that a particular
2495 dnl             application might want to use, e.g., "no-unused" for
2496 dnl             -Wno-unused
2497 dnl Special:
2498 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
2499 dnl
2500 AC_DEFUN([CF_GXX_WARNINGS],
2501 [
2502
2503 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
2504 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
2505
2506 AC_REQUIRE([CF_GXX_VERSION])
2507
2508 AC_LANG_SAVE
2509 AC_LANG_CPLUSPLUS
2510
2511 cat > conftest.$ac_ext <<EOF
2512 #line __oline__ "configure"
2513 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2514 EOF
2515
2516 if test "$INTEL_CPLUSPLUS" = yes
2517 then
2518 # The "-wdXXX" options suppress warnings:
2519 # remark #1419: external declaration in primary source file
2520 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2521 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2522 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2523 # remark #193: zero used for undefined preprocessing identifier
2524 # remark #593: variable "curs_sb_left_arrow" was set but never used
2525 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2526 # remark #869: parameter "tw" was never referenced
2527 # remark #981: operands are evaluated in unspecified order
2528 # warning #269: invalid format string conversion
2529
2530         AC_CHECKING([for $CC warning options])
2531         cf_save_CXXFLAGS="$CXXFLAGS"
2532         EXTRA_CXXFLAGS="-Wall"
2533         for cf_opt in \
2534                 wd1419 \
2535                 wd1682 \
2536                 wd1683 \
2537                 wd1684 \
2538                 wd193 \
2539                 wd279 \
2540                 wd593 \
2541                 wd810 \
2542                 wd869 \
2543                 wd981
2544         do
2545                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
2546                 if AC_TRY_EVAL(ac_compile); then
2547                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2548                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2549                 fi
2550         done
2551         CXXFLAGS="$cf_save_CXXFLAGS"
2552
2553 elif test "$GXX" = yes
2554 then
2555         AC_CHECKING([for $CXX warning options])
2556         cf_save_CXXFLAGS="$CXXFLAGS"
2557         EXTRA_CXXFLAGS="-W -Wall"
2558         cf_gxx_extra_warnings=""
2559         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
2560         case "$GCC_VERSION" in
2561         [[1-2]].*)
2562                 ;;
2563         *)
2564                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
2565                 ;;
2566         esac
2567         for cf_opt in \
2568                 Wabi \
2569                 fabi-version=0 \
2570                 Wextra \
2571                 Wignored-qualifiers \
2572                 Wlogical-op \
2573                 Woverloaded-virtual \
2574                 Wsign-promo \
2575                 Wsynth \
2576                 Wold-style-cast \
2577                 Wcast-align \
2578                 Wcast-qual \
2579                 Wpointer-arith \
2580                 Wshadow \
2581                 Wundef $cf_gxx_extra_warnings $1
2582         do
2583                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
2584                 if AC_TRY_EVAL(ac_compile); then
2585                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2586                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2587                 else
2588                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
2589                 fi
2590         done
2591         CXXFLAGS="$cf_save_CXXFLAGS"
2592 fi
2593
2594 rm -rf conftest*
2595 AC_LANG_RESTORE
2596 AC_SUBST(EXTRA_CXXFLAGS)
2597 ])dnl
2598 dnl ---------------------------------------------------------------------------
2599 dnl CF_HASHED_DB version: 5 updated: 2014/04/12 16:47:01
2600 dnl ------------
2601 dnl Look for an instance of the Berkeley hashed database.
2602 dnl
2603 dnl $1 = optional parameter, to specify install-prefix for the database.
2604 AC_DEFUN([CF_HASHED_DB],
2605 [
2606 ifelse([$1],,,[
2607 case $1 in #(vi
2608 yes|*able*) #(vi
2609     ;;
2610 *)
2611     if test -d "$1" ; then
2612         CF_ADD_INCDIR($1/include)
2613         CF_ADD_LIBDIR($1/lib)
2614         else
2615                 case "$1" in #(vi
2616                 ./*|../*|/*)
2617                         AC_MSG_WARN(no such directory $1)
2618                         ;; #(vi
2619                 *)
2620                         CF_FIND_SUB_INCDIR($1)
2621                         CF_FIND_SUB_LIBDIR($1)
2622                         ;;
2623                 esac
2624     fi
2625 esac
2626 ])
2627 AC_CHECK_HEADER(db.h,[
2628 CF_HASHED_DB_VERSION
2629 if test "$cf_cv_hashed_db_version" = unknown ; then
2630         AC_MSG_ERROR(Cannot determine version of db)
2631 else
2632         CF_HASHED_DB_LIBS
2633         if test "$cf_cv_hashed_db_libs" = unknown ; then
2634                 AC_MSG_ERROR(Cannot determine library for db)
2635         elif test "$cf_cv_hashed_db_libs" != default ; then
2636                 CF_ADD_LIB($cf_cv_hashed_db_libs)
2637         fi
2638 fi
2639 ],[
2640         AC_MSG_ERROR(Cannot find db.h)
2641 ])
2642 ])dnl
2643 dnl ---------------------------------------------------------------------------
2644 dnl CF_HASHED_DB_LIBS version: 9 updated: 2010/05/29 16:31:02
2645 dnl -----------------
2646 dnl Given that we have the header and version for hashed database, find the
2647 dnl library information.
2648 AC_DEFUN([CF_HASHED_DB_LIBS],
2649 [
2650 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
2651 cf_cv_hashed_db_libs=unknown
2652 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
2653 do
2654         cf_save_libs="$LIBS"
2655         if test -n "$cf_db_libs"; then
2656                 CF_ADD_LIB($cf_db_libs)
2657         fi
2658         CF_MSG_LOG(checking for library "$cf_db_libs")
2659         AC_TRY_LINK([
2660 $ac_includes_default
2661 #include <db.h>
2662 ],[
2663         char *path = "/tmp/foo";
2664 #ifdef DB_VERSION_MAJOR
2665 #if DB_VERSION_MAJOR >= 4
2666         DB *result = 0;
2667         db_create(&result, NULL, 0);
2668         result->open(result,
2669                 NULL,
2670                 path,
2671                 path,
2672                 DB_HASH,
2673                 DB_CREATE,
2674                 0644);
2675 #elif DB_VERSION_MAJOR >= 3
2676         DB *result = 0;
2677         db_create(&result, NULL, 0);
2678         result->open(result,
2679                 path,
2680                 path,
2681                 DB_HASH,
2682                 DB_CREATE,
2683                 0644);
2684 #elif DB_VERSION_MAJOR >= 2
2685         DB *result = 0;
2686         db_open(path,
2687                 DB_HASH,
2688                 DB_CREATE,
2689                 0644,
2690                 (DB_ENV *) 0,
2691                 (DB_INFO *) 0,
2692                 &result);
2693 #endif /* DB_VERSION_MAJOR */
2694 #else
2695         DB *result = dbopen(path,
2696                      2,
2697                      0644,
2698                      DB_HASH,
2699                      0);
2700 #endif
2701         ${cf_cv_main_return:-return}(result != 0)
2702 ],[
2703         if test -n "$cf_db_libs" ; then
2704                 cf_cv_hashed_db_libs=$cf_db_libs
2705         else
2706                 cf_cv_hashed_db_libs=default
2707         fi
2708         LIBS="$cf_save_libs"
2709         break
2710 ])
2711         LIBS="$cf_save_libs"
2712 done
2713 ])
2714 ])dnl
2715 dnl ---------------------------------------------------------------------------
2716 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
2717 dnl --------------------
2718 dnl Given that we have the header file for hashed database, find the version
2719 dnl information.
2720 AC_DEFUN([CF_HASHED_DB_VERSION],
2721 [
2722 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2723 cf_cv_hashed_db_version=unknown
2724
2725 for cf_db_version in 1 2 3 4 5 6
2726 do
2727         CF_MSG_LOG(checking for db version $cf_db_version)
2728         AC_TRY_COMPILE([
2729 $ac_includes_default
2730 #include <db.h>
2731
2732 #ifdef DB_VERSION_MAJOR
2733         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2734 #if $cf_db_version == DB_VERSION_MAJOR
2735         /* ok */
2736 #else
2737         make an error
2738 #endif
2739 #else
2740 #if $cf_db_version == 1
2741         /* ok: assuming this is DB 1.8.5 */
2742 #else
2743         make an error
2744 #endif
2745 #endif
2746 ],[DBT *foo = 0],[
2747         cf_cv_hashed_db_version=$cf_db_version
2748         break
2749         ])
2750 done
2751 ])
2752 ])dnl
2753 dnl ---------------------------------------------------------------------------
2754 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
2755 dnl --------------
2756 dnl Construct a search-list of directories for a nonstandard header-file
2757 dnl
2758 dnl Parameters
2759 dnl     $1 = the variable to return as result
2760 dnl     $2 = the package name
2761 AC_DEFUN([CF_HEADER_PATH],
2762 [
2763 $1=
2764
2765 # collect the current set of include-directories from compiler flags
2766 cf_header_path_list=""
2767 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2768         for cf_header_path in $CPPFLAGS $CFLAGS
2769         do
2770                 case $cf_header_path in #(vi
2771                 -I*)
2772                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2773                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2774                         cf_header_path_list="$cf_header_path_list [$]$1"
2775                         ;;
2776                 esac
2777         done
2778 fi
2779
2780 # add the variations for the package we are looking for
2781 CF_SUBDIR_PATH($1,$2,include)
2782
2783 test "$includedir" != NONE && \
2784 test "$includedir" != "/usr/include" && \
2785 test -d "$includedir" && {
2786         test -d $includedir &&    $1="[$]$1 $includedir"
2787         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2788 }
2789
2790 test "$oldincludedir" != NONE && \
2791 test "$oldincludedir" != "/usr/include" && \
2792 test -d "$oldincludedir" && {
2793         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
2794         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2795 }
2796
2797 $1="[$]$1 $cf_header_path_list"
2798 ])dnl
2799 dnl ---------------------------------------------------------------------------
2800 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2801 dnl ---------------
2802 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2803 AC_DEFUN([CF_HELP_MESSAGE],
2804 [AC_DIVERT_HELP([$1])dnl
2805 ])dnl
2806 dnl ---------------------------------------------------------------------------
2807 dnl CF_INCLUDE_DIRS version: 8 updated: 2013/10/12 16:45:09
2808 dnl ---------------
2809 dnl Construct the list of include-options according to whether we're building
2810 dnl in the source directory or using '--srcdir=DIR' option.  If we're building
2811 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2812 dnl since that usually breaks gcc's shadow-includes.
2813 AC_DEFUN([CF_INCLUDE_DIRS],
2814 [
2815 if test "$GCC" != yes; then
2816         CPPFLAGS="-I\${includedir} $CPPFLAGS"
2817 elif test "$includedir" != "/usr/include"; then
2818         if test "$includedir" = '${prefix}/include' ; then
2819                 if test x$prefix != x/usr ; then
2820                         CPPFLAGS="-I\${includedir} $CPPFLAGS"
2821                 fi
2822         else
2823                 CPPFLAGS="-I\${includedir} $CPPFLAGS"
2824         fi
2825 fi
2826 if test "$srcdir" != "."; then
2827         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2828 fi
2829 CPPFLAGS="-I. -I../include $CPPFLAGS"
2830 AC_SUBST(CPPFLAGS)
2831 ])dnl
2832 dnl ---------------------------------------------------------------------------
2833 dnl CF_INTEL_COMPILER version: 6 updated: 2014/03/17 13:13:07
2834 dnl -----------------
2835 dnl Check if the given compiler is really the Intel compiler for Linux.  It
2836 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2837 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2838 dnl
2839 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2840 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2841 dnl the wrappers for gcc and g++ warnings.
2842 dnl
2843 dnl $1 = GCC (default) or GXX
2844 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2845 dnl $3 = CFLAGS (default) or CXXFLAGS
2846 AC_DEFUN([CF_INTEL_COMPILER],[
2847 AC_REQUIRE([AC_CANONICAL_HOST])
2848 ifelse([$2],,INTEL_COMPILER,[$2])=no
2849
2850 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2851         case $host_os in
2852         linux*|gnu*)
2853                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2854                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2855                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2856                 AC_TRY_COMPILE([],[
2857 #ifdef __INTEL_COMPILER
2858 #else
2859 make an error
2860 #endif
2861 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2862 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2863 ],[])
2864                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2865                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2866                 ;;
2867         esac
2868 fi
2869 ])dnl
2870 dnl ---------------------------------------------------------------------------
2871 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
2872 dnl ----------
2873 dnl Check if we have either a function or macro for 'isascii()'.
2874 AC_DEFUN([CF_ISASCII],
2875 [
2876 AC_MSG_CHECKING(for isascii)
2877 AC_CACHE_VAL(cf_cv_have_isascii,[
2878         AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2879         [cf_cv_have_isascii=yes],
2880         [cf_cv_have_isascii=no])
2881 ])dnl
2882 AC_MSG_RESULT($cf_cv_have_isascii)
2883 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
2884 ])dnl
2885 dnl ---------------------------------------------------------------------------
2886 dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51
2887 dnl ------------
2888 dnl Add checks for large file support.
2889 AC_DEFUN([CF_LARGEFILE],[
2890 ifdef([AC_FUNC_FSEEKO],[
2891     AC_SYS_LARGEFILE
2892     if test "$enable_largefile" != no ; then
2893         AC_FUNC_FSEEKO
2894
2895         # Normally we would collect these definitions in the config.h,
2896         # but (like _XOPEN_SOURCE), some environments rely on having these
2897         # defined before any of the system headers are included.  Another
2898         # case comes up with C++, e.g., on AIX the compiler compiles the
2899         # header files by themselves before looking at the body files it is
2900         # told to compile.  For ncurses, those header files do not include
2901         # the config.h
2902         test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2903         test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2904         test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2905
2906         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2907                 AC_TRY_COMPILE([
2908 #include <sys/types.h>
2909 #include <dirent.h>
2910                 ],[
2911                 /* if transitional largefile support is setup, this is true */
2912                 extern struct dirent64 * readdir(DIR *);
2913                 struct dirent64 *x = readdir((DIR *)0);
2914                 struct dirent *y = readdir((DIR *)0);
2915                 int z = x - y;
2916                 ],
2917                 [cf_cv_struct_dirent64=yes],
2918                 [cf_cv_struct_dirent64=no])
2919         ])
2920         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
2921     fi
2922 ])
2923 ])
2924 dnl ---------------------------------------------------------------------------
2925 dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48
2926 dnl -----------------
2927 dnl Check for compiler/linker flags used to temporarily force usage of static
2928 dnl libraries.  This depends on the compiler and platform.  Use this to help
2929 dnl ensure that the linker picks up a given library based on its position in
2930 dnl the list of linker options and libraries.
2931 AC_DEFUN([CF_LDFLAGS_STATIC],[
2932
2933 if test "$GCC" = yes ; then
2934         case $cf_cv_system_name in #(
2935         OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)         #( vi
2936                 LDFLAGS_STATIC=
2937                 LDFLAGS_SHARED=
2938                 ;;
2939     *)  #( normally, except when broken
2940         LDFLAGS_STATIC=-static
2941         LDFLAGS_SHARED=-dynamic
2942         ;;
2943     esac
2944 else
2945         case $cf_cv_system_name in #(
2946         aix[[4-7]]*)    #( from ld manpage
2947                 LDFLAGS_STATIC=-bstatic
2948                 LDFLAGS_SHARED=-bdynamic
2949                 ;;
2950         hpux*)          #( from ld manpage for hpux10.20, hpux11.11
2951                 # We could also use just "archive" and "shared".
2952                 LDFLAGS_STATIC=-Wl,-a,archive_shared
2953                 LDFLAGS_SHARED=-Wl,-a,shared_archive
2954                 ;;
2955         irix*)          #( from ld manpage IRIX64
2956                 LDFLAGS_STATIC=-Bstatic
2957                 LDFLAGS_SHARED=-Bdynamic
2958                 ;;
2959         osf[[45]]*)     #( from ld manpage osf4.0d, osf5.1
2960                 # alternative "-oldstyle_liblookup" (not in cc manpage)
2961                 LDFLAGS_STATIC=-noso
2962                 LDFLAGS_SHARED=-so_archive
2963                 ;;
2964         solaris2*)
2965                 LDFLAGS_STATIC=-Bstatic
2966                 LDFLAGS_SHARED=-Bdynamic
2967                 ;;
2968         esac
2969 fi
2970
2971 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
2972 then
2973         AC_MSG_CHECKING(if linker supports switching between static/dynamic)
2974
2975         rm -f libconftest.a
2976         cat >conftest.$ac_ext <<EOF
2977 #line __oline__ "configure"
2978 #include <stdio.h>
2979 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
2980 EOF
2981         if AC_TRY_EVAL(ac_compile) ; then
2982                 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
2983                 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
2984         fi
2985         rm -f conftest.*
2986
2987         cf_save_LIBS="$LIBS"
2988
2989         LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
2990         AC_TRY_LINK([
2991 #line __oline__ "configure"
2992 #include <stdio.h>
2993 int cf_ldflags_static(FILE *fp);
2994 ],[
2995         return cf_ldflags_static(stdin);
2996 ],[
2997         # some linkers simply ignore the -dynamic
2998         case x`file conftest$ac_exeext 2>/dev/null` in #(vi
2999         *static*) # (vi
3000                 cf_ldflags_static=no
3001                 ;;
3002         *)
3003                 cf_ldflags_static=yes
3004                 ;;
3005         esac
3006 ],[cf_ldflags_static=no])
3007
3008         rm -f libconftest.*
3009         LIBS="$cf_save_LIBS"
3010
3011         AC_MSG_RESULT($cf_ldflags_static)
3012
3013         if test $cf_ldflags_static != yes
3014         then
3015                 LDFLAGS_STATIC=
3016                 LDFLAGS_SHARED=
3017         fi
3018 else
3019         LDFLAGS_STATIC=
3020         LDFLAGS_SHARED=
3021 fi
3022
3023 AC_SUBST(LDFLAGS_STATIC)
3024 AC_SUBST(LDFLAGS_SHARED)
3025 ])
3026 dnl ---------------------------------------------------------------------------
3027 dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
3028 dnl ---------------
3029 dnl For the given system and compiler, find the compiler flags to pass to the
3030 dnl loader to use the "rpath" feature.
3031 AC_DEFUN([CF_LD_RPATH_OPT],
3032 [
3033 AC_REQUIRE([CF_CHECK_CACHE])
3034
3035 LD_RPATH_OPT=
3036 AC_MSG_CHECKING(for an rpath option)
3037 case $cf_cv_system_name in #(vi
3038 irix*) #(vi
3039         if test "$GCC" = yes; then
3040                 LD_RPATH_OPT="-Wl,-rpath,"
3041         else
3042                 LD_RPATH_OPT="-rpath "
3043         fi
3044         ;;
3045 linux*|gnu*|k*bsd*-gnu) #(vi
3046         LD_RPATH_OPT="-Wl,-rpath,"
3047         ;;
3048 openbsd[[2-9]].*|mirbsd*) #(vi
3049         LD_RPATH_OPT="-Wl,-rpath,"
3050         ;;
3051 dragonfly*|freebsd*) #(vi
3052         LD_RPATH_OPT="-rpath "
3053         ;;
3054 netbsd*) #(vi
3055         LD_RPATH_OPT="-Wl,-rpath,"
3056         ;;
3057 osf*|mls+*) #(vi
3058         LD_RPATH_OPT="-rpath "
3059         ;;
3060 solaris2*) #(vi
3061         LD_RPATH_OPT="-R"
3062         ;;
3063 *)
3064         ;;
3065 esac
3066 AC_MSG_RESULT($LD_RPATH_OPT)
3067
3068 case "x$LD_RPATH_OPT" in #(vi
3069 x-R*)
3070         AC_MSG_CHECKING(if we need a space after rpath option)
3071         cf_save_LIBS="$LIBS"
3072         CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
3073         AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
3074         LIBS="$cf_save_LIBS"
3075         AC_MSG_RESULT($cf_rpath_space)
3076         test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
3077         ;;
3078 esac
3079 ])dnl
3080 dnl ---------------------------------------------------------------------------
3081 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
3082 dnl ---------------
3083 dnl Construct a search-list of directories for a nonstandard library-file
3084 dnl
3085 dnl Parameters
3086 dnl     $1 = the variable to return as result
3087 dnl     $2 = the package name
3088 AC_DEFUN([CF_LIBRARY_PATH],
3089 [
3090 $1=
3091 cf_library_path_list=""
3092 if test -n "${LDFLAGS}${LIBS}" ; then
3093         for cf_library_path in $LDFLAGS $LIBS
3094         do
3095                 case $cf_library_path in #(vi
3096                 -L*)
3097                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
3098                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
3099                         cf_library_path_list="$cf_library_path_list [$]$1"
3100                         ;;
3101                 esac
3102         done
3103 fi
3104
3105 CF_SUBDIR_PATH($1,$2,lib)
3106
3107 $1="$cf_library_path_list [$]$1"
3108 ])dnl
3109 dnl ---------------------------------------------------------------------------
3110 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
3111 dnl ------------------
3112 AC_DEFUN([CF_LIBTOOL_VERSION],[
3113 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
3114 then
3115         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.]].*//'`
3116 else
3117         cf_cv_libtool_version=
3118 fi
3119 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
3120 ])dnl
3121 dnl ---------------------------------------------------------------------------
3122 dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
3123 dnl -------------
3124 dnl Compute the library-prefix for the given host system
3125 dnl $1 = variable to set
3126 define([CF_LIB_PREFIX],
3127 [
3128         case $cf_cv_system_name in #(vi
3129         OS/2*|os2*) #(vi
3130         LIB_PREFIX=''
3131         ;;
3132         *)      LIB_PREFIX='lib'
3133         ;;
3134         esac
3135 ifelse($1,,,[$1=$LIB_PREFIX])
3136         AC_SUBST(LIB_PREFIX)
3137 ])dnl
3138 dnl ---------------------------------------------------------------------------
3139 dnl CF_LIB_RULES version: 74 updated: 2013/09/07 13:54:05
3140 dnl ------------
3141 dnl Append definitions and rules for the given models to the subdirectory
3142 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
3143 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
3144 dnl the corresponding makefile to list the models that we'll generate.
3145 dnl
3146 dnl For shared libraries, make a list of symbolic links to construct when
3147 dnl generating each library.  The convention used for Linux is the simplest
3148 dnl one:
3149 dnl     lib<name>.so    ->
3150 dnl     lib<name>.so.<major>    ->
3151 dnl     lib<name>.so.<maj>.<minor>
3152 dnl
3153 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
3154 AC_DEFUN([CF_LIB_RULES],
3155 [
3156 cf_prefix=$LIB_PREFIX
3157 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
3158
3159 case $cf_cv_shlib_version in #(vi
3160 cygdll|msysdll|mingw)
3161         TINFO_NAME=$TINFO_ARG_SUFFIX
3162         TINFO_SUFFIX=.dll
3163         ;;
3164 esac
3165
3166 if test -n "$TINFO_SUFFIX" ; then
3167         case $TINFO_SUFFIX in
3168         tw*)
3169                 TINFO_NAME="${TINFO_NAME}tw"
3170                 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^tw//'`
3171                 ;;
3172         t*)
3173                 TINFO_NAME="${TINFO_NAME}t"
3174                 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^t//'`
3175                 ;;
3176         w*)
3177                 TINFO_NAME="${TINFO_NAME}w"
3178                 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^w//'`
3179                 ;;
3180         esac
3181 fi
3182
3183 for cf_dir in $SRC_SUBDIRS
3184 do
3185         if test ! -d $srcdir/$cf_dir ; then
3186                 continue
3187         elif test -f $srcdir/$cf_dir/modules; then
3188
3189                 SHARED_LIB=
3190                 Libs_To_Make=
3191                 for cf_item in $cf_LIST_MODELS
3192                 do
3193                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
3194                         cf_libname=$cf_dir
3195                         test "$cf_dir" = c++ && cf_libname=ncurses++
3196                         if test $cf_item = shared ; then
3197                                 if test -n "${LIB_SUFFIX}"
3198                                 then
3199                                         cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
3200                                 else
3201                                         cf_shared_suffix="$cf_suffix"
3202                                 fi
3203                                 if test "$cf_cv_do_symlinks" = yes ; then
3204                                         cf_version_name=
3205
3206                                         case "$cf_cv_shlib_version" in #(vi
3207                                         rel) #(vi
3208                                                 cf_version_name=REL_VERSION
3209                                                 ;;
3210                                         abi)
3211                                                 cf_version_name=ABI_VERSION
3212                                                 ;;
3213                                         esac
3214
3215                                         if test -n "$cf_version_name"
3216                                         then
3217                                                 case "$cf_cv_system_name" in #(vi
3218                                                 darwin*)
3219                                                         # "w", etc?
3220                                                         cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
3221                                                         ;; #(vi
3222                                                 *)
3223                                                         cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
3224                                                         ;;
3225                                                 esac
3226                                         fi
3227                                         if test -n "${LIB_SUFFIX}"
3228                                         then
3229                                                 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
3230                                         else
3231                                                 cf_shared_suffix="$cf_suffix"
3232                                         fi
3233                                 fi
3234                                 # cygwin needs import library, and has unique naming convention
3235                                 # use autodetected ${cf_prefix} for import lib and static lib, but
3236                                 # use 'cyg' prefix for shared lib.
3237                                 case $cf_cv_shlib_version in #(vi
3238                                 cygdll) #(vi
3239                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3240                                         Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}"
3241                                         continue
3242                                         ;;
3243                                 msysdll) #(vi
3244                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3245                                         Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}"
3246                                         continue
3247                                         ;;
3248                                 mingw)
3249                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3250                                         Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}"
3251                                         continue
3252                                         ;;
3253                                 esac
3254                         fi
3255                         Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}"
3256                 done
3257
3258                 if test $cf_dir = ncurses ; then
3259                         cf_subsets="$LIB_SUBSETS"
3260                         cf_r_parts="$cf_subsets"
3261                         cf_liblist="$Libs_To_Make"
3262
3263                         while test -n "$cf_r_parts"
3264                         do
3265                                 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
3266                                 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
3267                                 if test "$cf_l_parts" != "$cf_r_parts" ; then
3268                                         cf_item=
3269                                         case $cf_l_parts in #(vi
3270                                         *termlib*) #(vi
3271                                                 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
3272                                                 ;;
3273                                         *ticlib*)
3274                                                 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
3275                                                 ;;
3276                                         *)
3277                                                 break
3278                                                 ;;
3279                                         esac
3280                                         if test -n "$cf_item"; then
3281                                                 Libs_To_Make="$cf_item $Libs_To_Make"
3282                                         fi
3283                                 else
3284                                         break
3285                                 fi
3286                         done
3287                 else
3288                         cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
3289                 fi
3290
3291                 if test $cf_dir = c++; then
3292                         if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
3293                                 cf_list=
3294                                 for cf_item in $Libs_To_Make
3295                                 do
3296                                         case $cf_item in
3297                                         *.a)
3298                                                 ;;
3299                                         *)
3300                                                 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
3301                                                 ;;
3302                                         esac
3303                                         for cf_test in $cf_list
3304                                         do
3305                                                 if test "$cf_test" = "$cf_item"
3306                                                 then
3307                                                         cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
3308                                                         cf_item=
3309                                                         break
3310                                                 fi
3311                                         done
3312                                         test -n "$cf_item" && cf_list="$cf_list $cf_item"
3313                                 done
3314                                 Libs_To_Make="$cf_list"
3315                         fi
3316                 fi
3317
3318                 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
3319                     -e "s%@SHARED_LIB@%$SHARED_LIB%" \
3320                         $cf_dir/Makefile >$cf_dir/Makefile.out
3321                 mv $cf_dir/Makefile.out $cf_dir/Makefile
3322
3323                 $AWK -f $srcdir/mk-0th.awk \
3324                         libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
3325                         $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3326
3327                 for cf_subset in $cf_subsets
3328                 do
3329                         cf_subdirs=
3330                         for cf_item in $cf_LIST_MODELS
3331                         do
3332
3333                         echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
3334                         CF_UPPER(cf_ITEM,$cf_item)
3335
3336                         CXX_MODEL=$cf_ITEM
3337                         if test "$CXX_MODEL" = SHARED; then
3338                                 case $cf_cv_shlib_version in #(vi
3339                                 cygdll|msysdll|mingw) #(vi
3340                                         test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
3341                                         with_shared_cxx=yes
3342                                         ;;
3343                                 *)
3344                                         test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
3345                                         ;;
3346                                 esac
3347                         fi
3348
3349                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
3350                         CF_OBJ_SUBDIR($cf_item,cf_subdir)
3351
3352                         # Test for case where we build libtinfo with a different name.
3353                         cf_libname=$cf_dir
3354                         if test $cf_dir = ncurses ; then
3355                                 case $cf_subset in
3356                                 *base*)
3357                                         cf_libname=${cf_libname}$LIB_SUFFIX
3358                                         ;;
3359                                 *termlib*)
3360                                         cf_libname=$TINFO_LIB_SUFFIX
3361                                         ;;
3362                                 ticlib*)
3363                                         cf_libname=$TICS_LIB_SUFFIX
3364                                         ;;
3365                                 esac
3366                         elif test $cf_dir = c++ ; then
3367                                 cf_libname=ncurses++$LIB_SUFFIX
3368                         else
3369                                 cf_libname=${cf_libname}$LIB_SUFFIX
3370                         fi
3371                         if test -n "${DFT_ARG_SUFFIX}" ; then
3372                                 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
3373                                 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
3374                         fi
3375
3376                         # These dependencies really are for development, not
3377                         # builds, but they are useful in porting, too.
3378                         cf_depend="../include/ncurses_cfg.h"
3379                         if test "$srcdir" = "."; then
3380                                 cf_reldir="."
3381                         else
3382                                 cf_reldir="\${srcdir}"
3383                         fi
3384
3385                         if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
3386                                 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
3387                         elif test -f $srcdir/$cf_dir/curses.priv.h; then
3388                                 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
3389                         fi
3390
3391                         cf_dir_suffix=
3392                         old_cf_suffix="$cf_suffix"
3393                         if test "$cf_cv_shlib_version_infix" = yes ; then
3394                         if test -n "$LIB_SUFFIX" ; then
3395                                 case $LIB_SUFFIX in
3396                                 tw*)
3397                                         cf_libname=`echo $cf_libname | sed 's/tw$//'`
3398                                         cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
3399                                         cf_dir_suffix=tw
3400                                         ;;
3401                                 t*)
3402                                         cf_libname=`echo $cf_libname | sed 's/t$//'`
3403                                         cf_suffix=`echo $cf_suffix | sed 's/^t//'`
3404                                         cf_dir_suffix=t
3405                                         ;;
3406                                 w*)
3407                                         cf_libname=`echo $cf_libname | sed 's/w$//'`
3408                                         cf_suffix=`echo $cf_suffix | sed 's/^w//'`
3409                                         cf_dir_suffix=w
3410                                         ;;
3411                                 esac
3412                         fi
3413                         fi
3414
3415                         $AWK -f $srcdir/mk-1st.awk \
3416                                 name=${cf_libname}${cf_dir_suffix} \
3417                                 traces=$LIB_TRACING \
3418                                 MODEL=$cf_ITEM \
3419                                 CXX_MODEL=$CXX_MODEL \
3420                                 model=$cf_subdir \
3421                                 prefix=$cf_prefix \
3422                                 suffix=$cf_suffix \
3423                                 subset=$cf_subset \
3424                                 driver=$cf_cv_term_driver \
3425                                 SymLink="$LN_S" \
3426                                 TermlibRoot=$TINFO_NAME \
3427                                 TermlibSuffix=$TINFO_SUFFIX \
3428                                 ShlibVer=$cf_cv_shlib_version \
3429                                 ShlibVerInfix=$cf_cv_shlib_version_infix \
3430                                 ReLink=${cf_cv_do_relink:-no} \
3431                                 DoLinks=$cf_cv_do_symlinks \
3432                                 rmSoLocs=$cf_cv_rm_so_locs \
3433                                 ldconfig="$LDCONFIG" \
3434                                 overwrite=$WITH_OVERWRITE \
3435                                 depend="$cf_depend" \
3436                                 host="$host" \
3437                                 libtool_version="$LIBTOOL_VERSION" \
3438                                 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3439
3440                         cf_suffix="$old_cf_suffix"
3441
3442                         for cf_subdir2 in $cf_subdirs lib
3443                         do
3444                                 test $cf_subdir = $cf_subdir2 && break
3445                         done
3446                         test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
3447                         $AWK -f $srcdir/mk-2nd.awk \
3448                                 name=$cf_dir \
3449                                 traces=$LIB_TRACING \
3450                                 MODEL=$cf_ITEM \
3451                                 model=$cf_subdir \
3452                                 subset=$cf_subset \
3453                                 srcdir=$srcdir \
3454                                 echo=$WITH_ECHO \
3455                                 crenames=$cf_cv_prog_CC_c_o \
3456                                 cxxrenames=$cf_cv_prog_CXX_c_o \
3457                                 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3458                         cf_subdirs="$cf_subdirs $cf_subdir"
3459                         done
3460                 done
3461         fi
3462
3463         echo '  cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile
3464 done
3465
3466 for cf_dir in $SRC_SUBDIRS
3467 do
3468         if test ! -d $srcdir/$cf_dir ; then
3469                 continue
3470         fi
3471
3472         if test -f $cf_dir/Makefile ; then
3473                 case "$cf_dir" in
3474                 Ada95) #(vi
3475                         echo 'libs \' >> Makefile
3476                         echo 'install.libs \' >> Makefile
3477                         echo 'uninstall.libs ::' >> Makefile
3478                         echo '  cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile
3479                         ;;
3480                 esac
3481         fi
3482
3483         if test -f $srcdir/$cf_dir/modules; then
3484                 echo >> Makefile
3485                 if test -f $srcdir/$cf_dir/headers; then
3486 cat >> Makefile <<CF_EOF
3487 install.includes \\
3488 uninstall.includes \\
3489 CF_EOF
3490                 fi
3491 if test "$cf_dir" != "c++" ; then
3492 echo 'lint \' >> Makefile
3493 fi
3494 cat >> Makefile <<CF_EOF
3495 libs \\
3496 lintlib \\
3497 install.libs \\
3498 uninstall.libs \\
3499 install.$cf_dir \\
3500 uninstall.$cf_dir ::
3501         cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
3502 CF_EOF
3503         elif test -f $srcdir/$cf_dir/headers; then
3504 cat >> Makefile <<CF_EOF
3505
3506 libs \\
3507 install.libs \\
3508 uninstall.libs \\
3509 install.includes \\
3510 uninstall.includes ::
3511         cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
3512 CF_EOF
3513 fi
3514 done
3515
3516 if test "x$cf_with_db_install" = xyes; then
3517 cat >> Makefile <<CF_EOF
3518
3519 install.libs uninstall.libs \\
3520 install.data uninstall.data ::
3521 $MAKE_TERMINFO  cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
3522 CF_EOF
3523 fi
3524
3525 if test "x$cf_with_manpages" = xyes; then
3526 cat >> Makefile <<CF_EOF
3527
3528 install.man \\
3529 uninstall.man ::
3530         cd man && \${MAKE} \${TOP_MFLAGS} \[$]@
3531 CF_EOF
3532 fi
3533
3534 cat >> Makefile <<CF_EOF
3535
3536 distclean ::
3537         rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
3538         rm -f headers.sh headers.sed mk_shared_lib.sh
3539         rm -f edit_man.* man_alias.*
3540         rm -rf \${DIRS_TO_MAKE}
3541 CF_EOF
3542
3543 # Special case: tack's manpage lives in its own directory.
3544 if test "x$cf_with_manpages" = xyes; then
3545 if test -d tack ; then
3546 if test -f $srcdir/$tack.h; then
3547 cat >> Makefile <<CF_EOF
3548
3549 install.man \\
3550 uninstall.man ::
3551         cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@
3552 CF_EOF
3553 fi
3554 fi
3555 fi
3556
3557 dnl If we're installing into a subdirectory of /usr/include, etc., we should
3558 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
3559 dnl anything, and will make it more standardized.  It's awkward to decide this
3560 dnl at configuration because of quoting, so we'll simply make all headers
3561 dnl installed via a script that can do the right thing.
3562
3563 rm -f headers.sed headers.sh
3564
3565 dnl ( generating this script makes the makefiles a little tidier :-)
3566 echo creating headers.sh
3567 cat >headers.sh <<CF_EOF
3568 #! /bin/sh
3569 # This shell script is generated by the 'configure' script.  It is invoked in a
3570 # subdirectory of the build tree.  It generates a sed-script in the parent
3571 # directory that is used to adjust includes for header files that reside in a
3572 # subdirectory of /usr/include, etc.
3573 PRG=""
3574 while test \[$]# != 3
3575 do
3576 PRG="\$PRG \[$]1"; shift
3577 done
3578 DST=\[$]1
3579 REF=\[$]2
3580 SRC=\[$]3
3581 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
3582 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
3583 echo installing \$SRC in \$DST
3584 CF_EOF
3585
3586 if test $WITH_CURSES_H = yes; then
3587         cat >>headers.sh <<CF_EOF
3588 case \$DST in
3589 /*/include/*)
3590         END=\`basename \$DST\`
3591         for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
3592         do
3593                 NAME=\`basename \$i\`
3594                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
3595         done
3596         ;;
3597 *)
3598         echo "" >> \$TMPSED
3599         ;;
3600 esac
3601 CF_EOF
3602
3603 else
3604         cat >>headers.sh <<CF_EOF
3605 case \$DST in
3606 /*/include/*)
3607         END=\`basename \$DST\`
3608         for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
3609         do
3610                 NAME=\`basename \$i\`
3611                 if test "\$NAME" = "curses.h"
3612                 then
3613                         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
3614                         NAME=ncurses.h
3615                 fi
3616                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
3617         done
3618         ;;
3619 *)
3620         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
3621         ;;
3622 esac
3623 CF_EOF
3624 fi
3625 cat >>headers.sh <<CF_EOF
3626 rm -f \$TMPSRC
3627 sed -f \$TMPSED \$SRC > \$TMPSRC
3628 NAME=\`basename \$SRC\`
3629 CF_EOF
3630 if test $WITH_CURSES_H != yes; then
3631         cat >>headers.sh <<CF_EOF
3632 test "\$NAME" = "curses.h" && NAME=ncurses.h
3633 CF_EOF
3634 fi
3635 cat >>headers.sh <<CF_EOF
3636 # Just in case someone gzip'd manpages, remove the conflicting copy.
3637 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
3638
3639 eval \$PRG \$TMPSRC \$DST/\$NAME
3640 rm -f \$TMPSRC \$TMPSED
3641 CF_EOF
3642
3643 chmod 0755 headers.sh
3644
3645 for cf_dir in $SRC_SUBDIRS
3646 do
3647         if test ! -d $srcdir/$cf_dir ; then
3648                 continue
3649         fi
3650
3651         if test -f $srcdir/$cf_dir/headers; then
3652                 $AWK -f $srcdir/mk-hdr.awk \
3653                         subset="$LIB_SUBSETS" \
3654                         compat="$WITH_CURSES_H" \
3655                         $srcdir/$cf_dir/headers >>$cf_dir/Makefile
3656         fi
3657
3658         if test -f $srcdir/$cf_dir/modules; then
3659                 if test "$cf_dir" != "c++" ; then
3660                         cat >>$cf_dir/Makefile <<"CF_EOF"
3661 depend : ${AUTO_SRC}
3662         makedepend -- ${CPPFLAGS} -- ${C_SRC}
3663
3664 # DO NOT DELETE THIS LINE -- make depend depends on it.
3665 CF_EOF
3666                 fi
3667         fi
3668 done
3669 AC_SUBST(Libs_To_Make)
3670 ])dnl
3671 dnl ---------------------------------------------------------------------------
3672 dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
3673 dnl -------------
3674 dnl Find the and soname for the given shared library.  Set the cache variable
3675 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
3676 dnl variable to "unknown".
3677 dnl
3678 dnl $1 = headers
3679 dnl $2 = code
3680 dnl $3 = library name
3681 AC_DEFUN([CF_LIB_SONAME],
3682 [
3683 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
3684
3685 cf_cv_$3_soname=unknown
3686 if test "$cross_compiling" != yes ; then
3687 cat >conftest.$ac_ext <<CF_EOF
3688 $1
3689 int main()
3690 {
3691 $2
3692         ${cf_cv_main_return:-return}(0);
3693 }
3694 CF_EOF
3695 cf_save_LIBS="$LIBS"
3696         CF_ADD_LIB($3)
3697         if AC_TRY_EVAL(ac_compile) ; then
3698                 if AC_TRY_EVAL(ac_link) ; then
3699                         cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
3700                         test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
3701                 fi
3702         fi
3703 rm -rf conftest*
3704 LIBS="$cf_save_LIBS"
3705 fi
3706 ])
3707 ])
3708 dnl ---------------------------------------------------------------------------
3709 dnl CF_LIB_SUFFIX version: 23 updated: 2014/06/21 17:47:12
3710 dnl -------------
3711 dnl Compute the library file-suffix from the given model name
3712 dnl $1 = model name
3713 dnl $2 = variable to set (the nominal library suffix)
3714 dnl $3 = dependency variable to set (actual filename)
3715 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3716 AC_DEFUN([CF_LIB_SUFFIX],
3717 [
3718         case X$1 in #(vi
3719         Xlibtool) #(vi