]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 5.9 - patch 20150214
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2014,2015 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.734 2015/01/22 01:13:38 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: 11 updated: 2014/07/22 05:32:57
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 "x${cf_add_cflags}" != "x${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 "x${cf_add_cflags}" != "x${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: 2 updated: 2014/07/13 14:33:27
313 dnl -----------
314 dnl Add one or more libraries, used to enforce consistency.  Libraries are
315 dnl prepended to an existing list, since their dependencies are assumed to
316 dnl already exist in the list.
317 dnl
318 dnl $1 = libraries to add, with the "-l", etc.
319 dnl $2 = variable to update (default $LIBS)
320 AC_DEFUN([CF_ADD_LIBS],[
321 cf_add_libs="$1"
322 # Filter out duplicates - this happens with badly-designed ".pc" files...
323 for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
324 do
325         for cf_add_2lib in $cf_add_libs
326         do
327                 if test "x$cf_add_1lib" = "x$cf_add_2lib"
328                 then
329                         cf_add_1lib=
330                         break
331                 fi
332         done
333         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
334 done
335 ifelse($2,,LIBS,[$2])="$cf_add_libs"
336 ])dnl
337 dnl ---------------------------------------------------------------------------
338 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
339 dnl ------------------
340 dnl Append to a search-list for a nonstandard header/lib-file
341 dnl     $1 = the variable to return as result
342 dnl     $2 = the package name
343 dnl     $3 = the subdirectory, e.g., bin, include or lib
344 dnl $4 = the directory under which we will test for subdirectories
345 dnl $5 = a directory that we do not want $4 to match
346 AC_DEFUN([CF_ADD_SUBDIR_PATH],
347 [
348 test "x$4" != "x$5" && \
349 test -d "$4" && \
350 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
351         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
352         test -d $4/$3 &&          $1="[$]$1 $4/$3"
353         test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
354         test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
355         test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
356         test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
357 }
358 ])dnl
359 dnl ---------------------------------------------------------------------------
360 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
361 dnl --------------
362 dnl Allow user to disable a normally-on option.
363 AC_DEFUN([CF_ARG_DISABLE],
364 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
365 dnl ---------------------------------------------------------------------------
366 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
367 dnl -------------
368 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
369 dnl values.
370 dnl
371 dnl Parameters:
372 dnl $1 = option name
373 dnl $2 = help-string
374 dnl $3 = action to perform if option is not default
375 dnl $4 = action if perform if option is default
376 dnl $5 = default option value (either 'yes' or 'no')
377 AC_DEFUN([CF_ARG_OPTION],
378 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
379   if test "$enableval" != "$5" ; then
380 ifelse([$3],,[    :]dnl
381 ,[    $3]) ifelse([$4],,,[
382   else
383     $4])
384   fi],[enableval=$5 ifelse([$4],,,[
385   $4
386 ])dnl
387   ])])dnl
388 dnl ---------------------------------------------------------------------------
389 dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
390 dnl -----------
391 dnl Check for suitable "ar" (archiver) options for updating an archive.
392 AC_DEFUN([CF_AR_FLAGS],[
393 AC_REQUIRE([CF_PROG_AR])
394
395 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
396         cf_cv_ar_flags=unknown
397         for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
398         do
399
400                 # check if $ARFLAGS already contains this choice
401                 if test "x$ARFLAGS" != "x" ; then
402                         cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
403                         if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
404                                 cf_cv_ar_flags=
405                                 break
406                         fi
407                 fi
408
409                 rm -f conftest.$ac_cv_objext
410                 rm -f conftest.a
411
412                 cat >conftest.$ac_ext <<EOF
413 #line __oline__ "configure"
414 int     testdata[[3]] = { 123, 456, 789 };
415 EOF
416                 if AC_TRY_EVAL(ac_compile) ; then
417                         echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
418                         $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
419                         if test -f conftest.a ; then
420                                 cf_cv_ar_flags=$cf_ar_flags
421                                 break
422                         fi
423                 else
424                         CF_VERBOSE(cannot compile test-program)
425                         break
426                 fi
427         done
428         rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
429 ])
430
431 if test -n "$ARFLAGS" ; then
432         if test -n "$cf_cv_ar_flags" ; then
433                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
434         fi
435 else
436         ARFLAGS=$cf_cv_ar_flags
437 fi
438
439 AC_SUBST(ARFLAGS)
440 ])
441 dnl ---------------------------------------------------------------------------
442 dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50
443 dnl -----------------
444 dnl Check if awk can handle big strings using printf.  Some older versions of
445 dnl awk choke on large strings passed via "%s".
446 dnl
447 dnl $1 = desired string size
448 dnl $2 = variable to set with result
449 AC_DEFUN([CF_AWK_BIG_PRINTF],
450 [
451         case x$AWK in #(vi
452         x)
453                 eval $2=no
454                 ;;
455         *) #(vi
456                 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
457                         | $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
458                         eval $2=yes
459                 else
460                         eval $2=no
461                 fi
462                 ;;
463         esac
464 ])dnl
465 dnl ---------------------------------------------------------------------------
466 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
467 dnl ------------
468 dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
469 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
470 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
471 dnl
472 dnl Treat the configuration-variable specially here, since we're directly
473 dnl substituting its value (i.e., 1/0).
474 dnl
475 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
476 AC_DEFUN([CF_BOOL_DECL],
477 [
478 AC_MSG_CHECKING(if we should include stdbool.h)
479
480 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
481         AC_TRY_COMPILE([],[bool foo = false],
482                 [cf_cv_header_stdbool_h=0],
483                 [AC_TRY_COMPILE([
484 #ifndef __BEOS__
485 #include <stdbool.h>
486 #endif
487 ],[bool foo = false],
488                         [cf_cv_header_stdbool_h=1],
489                         [cf_cv_header_stdbool_h=0])])])
490
491 if test "$cf_cv_header_stdbool_h" = 1
492 then    AC_MSG_RESULT(yes)
493 else    AC_MSG_RESULT(no)
494 fi
495
496 AC_MSG_CHECKING([for builtin bool type])
497
498 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
499         AC_TRY_COMPILE([
500 #include <stdio.h>
501 #include <sys/types.h>
502 ],[bool x = false],
503                 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
504                 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
505         ])
506
507 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
508 then    AC_MSG_RESULT(yes)
509 else    AC_MSG_RESULT(no)
510 fi
511 ])dnl
512 dnl ---------------------------------------------------------------------------
513 dnl CF_BOOL_SIZE version: 13 updated: 2013/04/13 18:03:21
514 dnl ------------
515 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
516 dnl Don't bother looking for bool.h, since it's been deprecated.
517 dnl
518 dnl If the current compiler is C rather than C++, we get the bool definition
519 dnl from <stdbool.h>.
520 AC_DEFUN([CF_BOOL_SIZE],
521 [
522 AC_MSG_CHECKING([for size of bool])
523 AC_CACHE_VAL(cf_cv_type_of_bool,[
524         rm -f cf_test.out
525         AC_TRY_RUN([
526 #include <stdlib.h>
527 #include <stdio.h>
528
529 #if defined(__cplusplus)
530
531 #ifdef HAVE_GXX_BUILTIN_H
532 #include <g++/builtin.h>
533 #elif HAVE_GPP_BUILTIN_H
534 #include <gpp/builtin.h>
535 #elif HAVE_BUILTIN_H
536 #include <builtin.h>
537 #endif
538
539 #else
540
541 #if $cf_cv_header_stdbool_h
542 #include <stdbool.h>
543 #endif
544
545 #endif
546
547 int main()
548 {
549         FILE *fp = fopen("cf_test.out", "w");
550         if (fp != 0) {
551                 bool x = true;
552                 if ((bool)(-x) >= 0)
553                         fputs("unsigned ", fp);
554                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
555                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
556                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
557                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
558                 fclose(fp);
559         }
560         ${cf_cv_main_return:-return}(0);
561 }
562                 ],
563                 [cf_cv_type_of_bool=`cat cf_test.out`
564                  if test -z "$cf_cv_type_of_bool"; then
565                    cf_cv_type_of_bool=unknown
566                  fi],
567                 [cf_cv_type_of_bool=unknown],
568                 [cf_cv_type_of_bool=unknown])
569         ])
570         rm -f cf_test.out
571 AC_MSG_RESULT($cf_cv_type_of_bool)
572 if test "$cf_cv_type_of_bool" = unknown ; then
573         case .$NCURSES_BOOL in #(vi
574         .auto|.) NCURSES_BOOL=unsigned;;
575         esac
576         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
577         cf_cv_type_of_bool=$NCURSES_BOOL
578 fi
579 ])dnl
580 dnl ---------------------------------------------------------------------------
581 dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
582 dnl -----------
583 dnl If we're cross-compiling, allow the user to override the tools and their
584 dnl options.  The configure script is oriented toward identifying the host
585 dnl compiler, etc., but we need a build compiler to generate parts of the
586 dnl source.
587 dnl
588 dnl $1 = default for $CPPFLAGS
589 dnl $2 = default for $LIBS
590 AC_DEFUN([CF_BUILD_CC],[
591 CF_ACVERSION_CHECK(2.52,,
592         [AC_REQUIRE([CF_PROG_EXT])])
593 if test "$cross_compiling" = yes ; then
594
595         # defaults that we might want to override
596         : ${BUILD_CFLAGS:=''}
597         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
598         : ${BUILD_LDFLAGS:=''}
599         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
600         : ${BUILD_EXEEXT:='$x'}
601         : ${BUILD_OBJEXT:='o'}
602
603         AC_ARG_WITH(build-cc,
604                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
605                 [BUILD_CC="$withval"],
606                 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
607         AC_MSG_CHECKING(for native build C compiler)
608         AC_MSG_RESULT($BUILD_CC)
609
610         AC_MSG_CHECKING(for native build C preprocessor)
611         AC_ARG_WITH(build-cpp,
612                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
613                 [BUILD_CPP="$withval"],
614                 [BUILD_CPP='${BUILD_CC} -E'])
615         AC_MSG_RESULT($BUILD_CPP)
616
617         AC_MSG_CHECKING(for native build C flags)
618         AC_ARG_WITH(build-cflags,
619                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
620                 [BUILD_CFLAGS="$withval"])
621         AC_MSG_RESULT($BUILD_CFLAGS)
622
623         AC_MSG_CHECKING(for native build C preprocessor-flags)
624         AC_ARG_WITH(build-cppflags,
625                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
626                 [BUILD_CPPFLAGS="$withval"])
627         AC_MSG_RESULT($BUILD_CPPFLAGS)
628
629         AC_MSG_CHECKING(for native build linker-flags)
630         AC_ARG_WITH(build-ldflags,
631                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
632                 [BUILD_LDFLAGS="$withval"])
633         AC_MSG_RESULT($BUILD_LDFLAGS)
634
635         AC_MSG_CHECKING(for native build linker-libraries)
636         AC_ARG_WITH(build-libs,
637                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
638                 [BUILD_LIBS="$withval"])
639         AC_MSG_RESULT($BUILD_LIBS)
640
641         # this assumes we're on Unix.
642         BUILD_EXEEXT=
643         BUILD_OBJEXT=o
644
645         : ${BUILD_CC:='${CC}'}
646
647         if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
648                 AC_MSG_ERROR([Cross-build requires two compilers.
649 Use --with-build-cc to specify the native compiler.])
650         fi
651
652 else
653         : ${BUILD_CC:='${CC}'}
654         : ${BUILD_CPP:='${CPP}'}
655         : ${BUILD_CFLAGS:='${CFLAGS}'}
656         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
657         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
658         : ${BUILD_LIBS:='${LIBS}'}
659         : ${BUILD_EXEEXT:='$x'}
660         : ${BUILD_OBJEXT:='o'}
661 fi
662
663 AC_SUBST(BUILD_CC)
664 AC_SUBST(BUILD_CPP)
665 AC_SUBST(BUILD_CFLAGS)
666 AC_SUBST(BUILD_CPPFLAGS)
667 AC_SUBST(BUILD_LDFLAGS)
668 AC_SUBST(BUILD_LIBS)
669 AC_SUBST(BUILD_EXEEXT)
670 AC_SUBST(BUILD_OBJEXT)
671 ])dnl
672 dnl ---------------------------------------------------------------------------
673 dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
674 dnl ---------------
675 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
676 dnl into CC.  This will not help with broken scripts that wrap the compiler with
677 dnl options, but eliminates a more common category of user confusion.
678 AC_DEFUN([CF_CC_ENV_FLAGS],
679 [
680 # This should have been defined by AC_PROG_CC
681 : ${CC:=cc}
682
683 AC_MSG_CHECKING(\$CC variable)
684 case "$CC" in #(vi
685 *[[\ \  ]]-[[IUD]]*)
686         AC_MSG_RESULT(broken)
687         AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
688         # humor him...
689         cf_flags=`echo "$CC" | sed -e 's/^[[^   ]]*[[   ]]//'`
690         CC=`echo "$CC" | sed -e 's/[[   ]].*//'`
691         CF_ADD_CFLAGS($cf_flags)
692         ;;
693 *)
694         AC_MSG_RESULT(ok)
695         ;;
696 esac
697 ])dnl
698 dnl ---------------------------------------------------------------------------
699 dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05
700 dnl ---------------
701 dnl Determine the default configuration into which we'll install ncurses.  This
702 dnl can be overridden by the user's command-line options.  There's two items to
703 dnl look for:
704 dnl     1. the prefix (e.g., /usr)
705 dnl     2. the header files (e.g., /usr/include/ncurses)
706 dnl We'll look for a previous installation of ncurses and use the same defaults.
707 dnl
708 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
709 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
710 dnl programs from a vendor's.
711 AC_DEFUN([CF_CFG_DEFAULTS],
712 [
713 AC_MSG_CHECKING(for prefix)
714 if test "x$prefix" = "xNONE" ; then
715         case "$cf_cv_system_name" in
716                 # non-vendor systems don't have a conflict
717         openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
718                 prefix=/usr
719                 ;;
720         *)      prefix=$ac_default_prefix
721                 ;;
722         esac
723 fi
724 AC_MSG_RESULT($prefix)
725
726 if test "x$prefix" = "xNONE" ; then
727 AC_MSG_CHECKING(for default include-directory)
728 test -n "$verbose" && echo 1>&AC_FD_MSG
729 for cf_symbol in \
730         $includedir \
731         $includedir/ncurses \
732         $prefix/include \
733         $prefix/include/ncurses \
734         /usr/local/include \
735         /usr/local/include/ncurses \
736         /usr/include \
737         /usr/include/ncurses
738 do
739         cf_dir=`eval echo $cf_symbol`
740         if test -f $cf_dir/curses.h ; then
741         if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
742                 includedir="$cf_symbol"
743                 test -n "$verbose"  && echo $ac_n "     found " 1>&AC_FD_MSG
744                 break
745         fi
746         fi
747         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
748 done
749 AC_MSG_RESULT($includedir)
750 fi
751 ])dnl
752 dnl ---------------------------------------------------------------------------
753 dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13
754 dnl ----------
755 dnl Check if the terminal-capability database functions are available.  If not,
756 dnl ncurses has a much-reduced version.
757 AC_DEFUN([CF_CGETENT],[
758 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
759 AC_TRY_LINK([
760 #include <stdlib.h>],[
761         char temp[128];
762         char *buf = temp;
763         char *db_array = temp;
764         cgetent(&buf, &db_array, "vt100");
765         cgetcap(buf, "tc", '=');
766         cgetmatch(buf, "tc");
767         ],
768         [cf_cv_cgetent=yes],
769         [cf_cv_cgetent=no])
770 ])
771
772 if test "$cf_cv_cgetent" = yes
773 then
774         AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
775 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
776 AC_TRY_LINK([
777 #include <stdlib.h>],[
778         char temp[128];
779         char *buf = temp;
780 #ifndef _NETBSD_SOURCE                  /* given, since April 2004 in stdlib.h */
781         const char *db_array = temp;
782         cgetent(&buf, &db_array, "vt100");
783 #endif
784         cgetcap(buf, "tc", '=');
785         cgetmatch(buf, "tc");
786         ],
787         [cf_cv_cgetent_const=yes],
788         [cf_cv_cgetent_const=no])
789 ])
790         if test "$cf_cv_cgetent_const" = yes
791         then
792                 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
793         fi
794 fi
795 ])dnl
796 dnl ---------------------------------------------------------------------------
797 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
798 dnl --------------
799 dnl Check if we're accidentally using a cache from a different machine.
800 dnl Derive the system name, as a check for reusing the autoconf cache.
801 dnl
802 dnl If we've packaged config.guess and config.sub, run that (since it does a
803 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
804 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
805 dnl which is useful in cross-compiles.
806 dnl
807 dnl Note: we would use $ac_config_sub, but that is one of the places where
808 dnl autoconf 2.5x broke compatibility with autoconf 2.13
809 AC_DEFUN([CF_CHECK_CACHE],
810 [
811 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
812         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
813         system_name="$host_os"
814 else
815         system_name="`(uname -s -r) 2>/dev/null`"
816         if test -z "$system_name" ; then
817                 system_name="`(hostname) 2>/dev/null`"
818         fi
819 fi
820 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
821 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
822
823 test -z "$system_name" && system_name="$cf_cv_system_name"
824 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
825
826 if test ".$system_name" != ".$cf_cv_system_name" ; then
827         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
828         AC_MSG_ERROR("Please remove config.cache and try again.")
829 fi
830 ])dnl
831 dnl ---------------------------------------------------------------------------
832 dnl CF_CHECK_ERRNO version: 11 updated: 2010/05/26 05:38:42
833 dnl --------------
834 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
835 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
836 dnl ourselves.
837 dnl
838 dnl $1 = the name to check
839 dnl $2 = the assumed type
840 AC_DEFUN([CF_CHECK_ERRNO],
841 [
842 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
843     AC_TRY_COMPILE([
844 #ifdef HAVE_STDLIB_H
845 #include <stdlib.h>
846 #endif
847 #include <stdio.h>
848 #include <sys/types.h>
849 #include <errno.h> ],
850     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
851     [cf_cv_dcl_$1=yes],
852     [cf_cv_dcl_$1=no])
853 ])
854
855 if test "$cf_cv_dcl_$1" = no ; then
856     CF_UPPER(cf_result,decl_$1)
857     AC_DEFINE_UNQUOTED($cf_result)
858 fi
859
860 # It's possible (for near-UNIX clones) that the data doesn't exist
861 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
862 ])dnl
863 dnl ---------------------------------------------------------------------------
864 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
865 dnl --------------------
866 dnl Check for existence of external data in the current set of libraries.  If
867 dnl we can modify it, it's real enough.
868 dnl $1 = the name to check
869 dnl $2 = its type
870 AC_DEFUN([CF_CHECK_EXTERN_DATA],
871 [
872 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
873     AC_TRY_LINK([
874 #undef $1
875 extern $2 $1;
876 ],
877     [$1 = 2],
878     [cf_cv_have_$1=yes],
879     [cf_cv_have_$1=no])
880 ])
881
882 if test "$cf_cv_have_$1" = yes ; then
883     CF_UPPER(cf_result,have_$1)
884     AC_DEFINE_UNQUOTED($cf_result)
885 fi
886
887 ])dnl
888 dnl ---------------------------------------------------------------------------
889 dnl CF_CHECK_GPM_WGETCH version: 2 updated: 2010/08/14 18:25:37
890 dnl -------------------
891 dnl Check if GPM is already linked with curses.  If so - and if the linkage
892 dnl is not "weak" - warn about this because it can create problems linking
893 dnl applications with ncurses.
894 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
895 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
896
897 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
898 cf_cv_check_gpm_wgetch=unknown
899 if test "$cross_compiling" != yes ; then
900
901 cat >conftest.$ac_ext <<CF_EOF
902 #include <gpm.h>
903 int main()
904 {
905         Gpm_Wgetch();
906         ${cf_cv_main_return:-return}(0);
907 }
908 CF_EOF
909
910         cf_save_LIBS="$LIBS"
911         # This only works if we can look at the symbol table.  If a shared
912         # library is stripped for install, we cannot use that.  So we're forced
913         # to rely on the static library, noting that some packagers may not
914         # include it.
915         LIBS="-static -lgpm -dynamic $LIBS"
916         if AC_TRY_EVAL(ac_compile) ; then
917                 if AC_TRY_EVAL(ac_link) ; then
918                         cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
919                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
920                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
921                 fi
922         fi
923         rm -rf conftest*
924         LIBS="$cf_save_LIBS"
925 fi
926 ])
927
928 if test "$cf_cv_check_gpm_wgetch" != yes ; then
929         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
930 fi
931 ])])dnl
932 dnl ---------------------------------------------------------------------------
933 dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
934 dnl ------------------------
935 dnl Show the version of libtool
936 dnl
937 dnl Save the version in a cache variable - this is not entirely a good thing,
938 dnl but the version string from libtool is very ugly, and for bug reports it
939 dnl might be useful to have the original string.
940 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
941 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
942 then
943         AC_MSG_CHECKING(version of $LIBTOOL)
944         CF_LIBTOOL_VERSION
945         AC_MSG_RESULT($cf_cv_libtool_version)
946         if test -z "$cf_cv_libtool_version" ; then
947                 AC_MSG_ERROR(This is not GNU libtool)
948         fi
949 else
950         AC_MSG_ERROR(GNU libtool has not been found)
951 fi
952 ])dnl
953 dnl ---------------------------------------------------------------------------
954 dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05
955 dnl ----------------
956 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
957 AC_DEFUN([CF_CHECK_WCHAR_H],[
958 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
959 AC_TRY_COMPILE(
960 [
961 #include <stdlib.h>
962 #include <wchar.h>
963 ],[
964         wint_t foo = 0;
965         int bar = iswpunct(foo)],
966         [cf_cv_wchar_h_okay=yes],
967         [cf_cv_wchar_h_okay=no])])
968
969 if test $cf_cv_wchar_h_okay = no
970 then
971         CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
972 fi
973 ])dnl
974 dnl ---------------------------------------------------------------------------
975 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
976 dnl -----------------
977 dnl Check if the given compiler is really clang.  clang's C driver defines
978 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
979 dnl not ignore some gcc options.
980 dnl
981 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
982 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
983 dnl the wrappers for gcc and g++ warnings.
984 dnl
985 dnl $1 = GCC (default) or GXX
986 dnl $2 = CLANG_COMPILER (default)
987 dnl $3 = CFLAGS (default) or CXXFLAGS
988 AC_DEFUN([CF_CLANG_COMPILER],[
989 ifelse([$2],,CLANG_COMPILER,[$2])=no
990
991 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
992         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
993         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
994         ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
995         AC_TRY_COMPILE([],[
996 #ifdef __clang__
997 #else
998 make an error
999 #endif
1000 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1001 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
1002 ],[])
1003         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1004         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1005 fi
1006 ])
1007 dnl ---------------------------------------------------------------------------
1008 dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13
1009 dnl -----------------
1010 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
1011 dnl is a late feature for the standard and is not in some recent compilers
1012 dnl (1999/9/11).
1013 AC_DEFUN([CF_CPP_PARAM_INIT],
1014 [
1015 if test -n "$CXX"; then
1016 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1017         AC_LANG_SAVE
1018         AC_LANG_CPLUSPLUS
1019         AC_TRY_RUN([
1020 class TEST {
1021 private:
1022         int value;
1023 public:
1024         TEST(int x = 1);
1025         ~TEST();
1026 };
1027
1028 TEST::TEST(int x = 1)   // some compilers do not like second initializer
1029 {
1030         value = x;
1031 }
1032 int main() { }
1033 ],
1034         [cf_cv_cpp_param_init=yes],
1035         [cf_cv_cpp_param_init=no],
1036         [cf_cv_cpp_param_init=unknown])
1037         AC_LANG_RESTORE
1038 ])
1039 fi
1040 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1041 ])dnl
1042 dnl ---------------------------------------------------------------------------
1043 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1044 dnl ------------------
1045 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
1046 dnl not be supported in g++ before 3.0
1047 AC_DEFUN([CF_CPP_STATIC_CAST],
1048 [
1049 if test -n "$CXX"; then
1050
1051 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1052         AC_LANG_SAVE
1053         AC_LANG_CPLUSPLUS
1054
1055         AC_TRY_COMPILE([
1056 class NCursesPanel
1057 {
1058 public:
1059   NCursesPanel(int nlines,
1060                int ncols,
1061                int begin_y = 0,
1062                int begin_x = 0)
1063   {
1064   }
1065   NCursesPanel();
1066   ~NCursesPanel();
1067 };
1068
1069 template<class T> class NCursesUserPanel : public NCursesPanel
1070 {
1071 public:
1072   NCursesUserPanel (int nlines,
1073                     int ncols,
1074                     int begin_y = 0,
1075                     int begin_x = 0,
1076                     const T* p_UserData = static_cast<T*>(0))
1077     : NCursesPanel (nlines, ncols, begin_y, begin_x)
1078   {
1079   };
1080   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1081   {
1082   };
1083
1084   virtual ~NCursesUserPanel() {};
1085 };
1086 ],[
1087         const char* p_UserData = static_cast<char*>(0)],
1088         [cf_cv_cpp_static_cast=yes],
1089         [cf_cv_cpp_static_cast=no])
1090
1091         AC_LANG_RESTORE
1092 ])
1093
1094 fi
1095
1096 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1097 ])dnl
1098 dnl ---------------------------------------------------------------------------
1099 dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34
1100 dnl ---------------
1101 dnl Setup special archiver flags for given compilers.
1102 AC_DEFUN([CF_CXX_AR_FLAGS],[
1103         CXX_AR='$(AR)'
1104         CXX_ARFLAGS='$(ARFLAGS)'
1105         case $cf_cv_system_name in #(vi
1106         irix*) #(vi
1107             if test "$GXX" != yes ; then
1108                 CXX_AR='$(CXX)'
1109                 CXX_ARFLAGS='-ar -o'
1110             fi
1111             ;;
1112         sco3.2v5*) #(vi
1113             CXXLDFLAGS="-u main"
1114             ;;
1115         solaris2*)
1116             if test "$GXX" != yes ; then
1117                 CXX_AR='$(CXX)'
1118                 CXX_ARFLAGS='-xar -o'
1119             fi
1120             ;;
1121         esac
1122         AC_SUBST(CXXLDFLAGS)
1123         AC_SUBST(CXX_AR)
1124         AC_SUBST(CXX_ARFLAGS)
1125 ])dnl
1126 dnl ---------------------------------------------------------------------------
1127 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1128 dnl -------------------------
1129 dnl For c++, check if iostream uses "std::" namespace.
1130 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1131 AC_CHECK_HEADERS(iostream)
1132 if test x"$ac_cv_header_iostream" = xyes ; then
1133         AC_MSG_CHECKING(if iostream uses std-namespace)
1134         AC_TRY_COMPILE([
1135 #include <iostream>
1136 using std::endl;
1137 using std::cerr;],[
1138 cerr << "testing" << endl;
1139 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1140         AC_MSG_RESULT($cf_iostream_namespace)
1141         if test "$cf_iostream_namespace" = yes ; then
1142                 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1143         fi
1144 fi
1145 ])dnl
1146 dnl ---------------------------------------------------------------------------
1147 dnl CF_C_INLINE version: 4 updated: 2012/06/16 14:55:39
1148 dnl -----------
1149 dnl Check if the C compiler supports "inline".
1150 dnl $1 is the name of a shell variable to set if inline is supported
1151 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1152 AC_DEFUN([CF_C_INLINE],[
1153 AC_C_INLINE
1154 $1=
1155 if test "$ac_cv_c_inline" != no ; then
1156   $1=inline
1157   if test "$INTEL_COMPILER" = yes
1158   then
1159     :
1160   elif test "$CLANG_COMPILER" = yes
1161   then
1162     :
1163   elif test "$GCC" = yes
1164   then
1165     AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1166       cf_save_CFLAGS=$CFLAGS
1167       CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1168       AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1169       [${cf_cv_main_return:-return} foo()],
1170       [cf_cv_gcc_inline=yes],
1171       [cf_cv_gcc_inline=no])
1172       CFLAGS=$cf_save_CFLAGS
1173     ])
1174     if test "$cf_cv_gcc_inline" = yes ; then
1175         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1176     fi
1177   fi
1178 fi
1179 AC_SUBST($1)
1180 ])dnl
1181 dnl ---------------------------------------------------------------------------
1182 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1183 dnl ----------
1184 dnl "dirname" is not portable, so we fake it with a shell script.
1185 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1186 dnl ---------------------------------------------------------------------------
1187 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
1188 dnl ---------------
1189 AC_DEFUN([CF_DIRS_TO_MAKE],
1190 [
1191 DIRS_TO_MAKE="lib"
1192 for cf_item in $cf_list_models
1193 do
1194         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1195         for cf_item2 in $DIRS_TO_MAKE
1196         do
1197                 test $cf_item2 = $cf_subdir && break
1198         done
1199         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1200 done
1201 for cf_dir in $DIRS_TO_MAKE
1202 do
1203         test ! -d $cf_dir && mkdir $cf_dir
1204 done
1205 AC_SUBST(DIRS_TO_MAKE)
1206 ])dnl
1207 dnl ---------------------------------------------------------------------------
1208 dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
1209 dnl ---------------
1210 dnl You can always use "make -n" to see the actual options, but it's hard to
1211 dnl pick out/analyze warning messages when the compile-line is long.
1212 dnl
1213 dnl Sets:
1214 dnl     ECHO_LT - symbol to control if libtool is verbose
1215 dnl     ECHO_LD - symbol to prefix "cc -o" lines
1216 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1217 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
1218 dnl     ECHO_CC - symbol to put before any "cc" line
1219 dnl
1220 AC_DEFUN([CF_DISABLE_ECHO],[
1221 AC_MSG_CHECKING(if you want to see long compiling messages)
1222 CF_ARG_DISABLE(echo,
1223         [  --disable-echo          do not display "compiling" commands],
1224         [
1225     ECHO_LT='--silent'
1226     ECHO_LD='@echo linking [$]@;'
1227     RULE_CC='@echo compiling [$]<'
1228     SHOW_CC='@echo compiling [$]@'
1229     ECHO_CC='@'
1230 ],[
1231     ECHO_LT=''
1232     ECHO_LD=''
1233     RULE_CC=''
1234     SHOW_CC=''
1235     ECHO_CC=''
1236 ])
1237 AC_MSG_RESULT($enableval)
1238 AC_SUBST(ECHO_LT)
1239 AC_SUBST(ECHO_LD)
1240 AC_SUBST(RULE_CC)
1241 AC_SUBST(SHOW_CC)
1242 AC_SUBST(ECHO_CC)
1243 ])dnl
1244 dnl ---------------------------------------------------------------------------
1245 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1246 dnl ------------------------
1247 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1248 AC_MSG_CHECKING(if we want to use GNAT projects)
1249 CF_ARG_DISABLE(gnat-projects,
1250         [  --disable-gnat-projects test: disable GNAT projects even if usable],
1251         [enable_gnat_projects=no],
1252         [enable_gnat_projects=yes])
1253 AC_MSG_RESULT($enable_gnat_projects)
1254 ])dnl
1255 dnl ---------------------------------------------------------------------------
1256 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1257 dnl ----------------
1258 dnl Combine no-leak checks with the libraries or tools that are used for the
1259 dnl checks.
1260 AC_DEFUN([CF_DISABLE_LEAKS],[
1261
1262 AC_REQUIRE([CF_WITH_DMALLOC])
1263 AC_REQUIRE([CF_WITH_DBMALLOC])
1264 AC_REQUIRE([CF_WITH_VALGRIND])
1265
1266 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1267 AC_ARG_ENABLE(leaks,
1268         [  --disable-leaks         test: free permanent memory, analyze leaks],
1269         [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1270         : ${with_no_leaks:=no})
1271 AC_MSG_RESULT($with_no_leaks)
1272
1273 if test "$with_no_leaks" = yes ; then
1274         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1275         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1276 fi
1277 ])dnl
1278 dnl ---------------------------------------------------------------------------
1279 dnl CF_DISABLE_LIBTOOL_VERSION version: 2 updated: 2014/11/15 19:05:29
1280 dnl --------------------------
1281 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1282 dnl the older "-version-info" feature.  The newer feature allows us to use
1283 dnl version numbering on shared libraries which make them compatible with
1284 dnl various systems.
1285 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1286 [
1287 AC_MSG_CHECKING(if libtool -version-number should be used)
1288 CF_ARG_DISABLE(libtool-version,
1289         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
1290         [cf_libtool_version=no],
1291         [cf_libtool_version=yes])
1292 AC_MSG_RESULT($cf_libtool_version)
1293
1294 if test "$cf_libtool_version" = yes ; then
1295         LIBTOOL_VERSION="-version-number"
1296 else
1297         LIBTOOL_VERSION="-version-info"
1298         case "x$VERSION" in #(vi
1299         x) #(vi
1300                 AC_MSG_WARN(VERSION was not set)
1301                 ;;
1302         x*.*.*)
1303                 ABI_VERSION="$VERSION"
1304                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1305                 ;;
1306         x*:*:*)
1307                 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
1308                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1309                 ;;
1310         *)
1311                 AC_MSG_WARN(unexpected VERSION value: $VERSION)
1312                 ;;
1313         esac
1314 fi
1315
1316 AC_SUBST(ABI_VERSION)
1317 AC_SUBST(LIBTOOL_VERSION)
1318 ])dnl
1319 dnl ---------------------------------------------------------------------------
1320 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1321 dnl ---------------------
1322 dnl The rpath-hack makes it simpler to build programs, particularly with the
1323 dnl *BSD ports which may have essential libraries in unusual places.  But it
1324 dnl can interfere with building an executable for the base system.  Use this
1325 dnl option in that case.
1326 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1327 [
1328 AC_MSG_CHECKING(if rpath-hack should be disabled)
1329 CF_ARG_DISABLE(rpath-hack,
1330         [  --disable-rpath-hack    don't add rpath options for additional libraries],
1331         [cf_disable_rpath_hack=yes],
1332         [cf_disable_rpath_hack=no])
1333 AC_MSG_RESULT($cf_disable_rpath_hack)
1334 if test "$cf_disable_rpath_hack" = no ; then
1335         CF_RPATH_HACK
1336 fi
1337 ])
1338 dnl ---------------------------------------------------------------------------
1339 dnl CF_ENABLE_PC_FILES version: 11 updated: 2015/01/10 17:03:43
1340 dnl ------------------
1341 dnl This is the "--enable-pc-files" option, which is available if there is a
1342 dnl pkg-config configuration on the local machine.
1343 AC_DEFUN([CF_ENABLE_PC_FILES],[
1344 AC_REQUIRE([CF_PKG_CONFIG])
1345 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
1346
1347 if test "x$PKG_CONFIG" != xnone
1348 then
1349         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
1350 else
1351         AC_MSG_CHECKING(if we should install .pc files)
1352 fi
1353
1354 AC_ARG_ENABLE(pc-files,
1355         [  --enable-pc-files       generate and install .pc files for pkg-config],
1356         [enable_pc_files=$enableval],
1357         [enable_pc_files=no])
1358 AC_MSG_RESULT($enable_pc_files)
1359
1360 if test "x$enable_pc_files" != xno
1361 then
1362         case "x$PKG_CONFIG_LIBDIR" in #(vi
1363         xno|xyes) #(vi
1364                 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
1365                 MAKE_PC_FILES="#"
1366                 ;;
1367         *)
1368                 CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
1369                 MAKE_PC_FILES=
1370                 ;;
1371         esac
1372 else
1373         MAKE_PC_FILES="#"
1374 fi
1375 AC_SUBST(MAKE_PC_FILES)
1376 ])dnl
1377 dnl ---------------------------------------------------------------------------
1378 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
1379 dnl ---------------
1380 dnl Check if the rpath option should be used, setting cache variable
1381 dnl cf_cv_enable_rpath if so.
1382 AC_DEFUN([CF_ENABLE_RPATH],
1383 [
1384 AC_MSG_CHECKING(if rpath option should be used)
1385 AC_ARG_ENABLE(rpath,
1386 [  --enable-rpath          use rpath option when generating shared libraries],
1387 [cf_cv_enable_rpath=$enableval],
1388 [cf_cv_enable_rpath=no])
1389 AC_MSG_RESULT($cf_cv_enable_rpath)
1390 ])dnl
1391 dnl ---------------------------------------------------------------------------
1392 dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12
1393 dnl ----------------------
1394 dnl On a few platforms, the compiler and/or loader nags with untruthful
1395 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1396 dnl and implying that most uses of the recommended alternatives are correct.
1397 dnl
1398 dnl Factually speaking, no one has actually counted the number of uses of these
1399 dnl functions versus the total of incorrect uses.  Samples of a few thousand
1400 dnl instances are meaningless compared to the hundreds of millions of lines of
1401 dnl existing C code.
1402 dnl
1403 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1404 dnl platforms, in implementations of varying quality.  Likewise, snprintf is
1405 dnl standard - but evolved through phases, and older implementations are likely
1406 dnl to yield surprising results, as documented in manpages on various systems.
1407 AC_DEFUN([CF_ENABLE_STRING_HACKS],
1408 [
1409 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1410 AC_ARG_ENABLE(string-hacks,
1411         [  --enable-string-hacks   work around bogus compiler/loader warnings],
1412         [with_string_hacks=$enableval],
1413         [with_string_hacks=no])
1414 AC_MSG_RESULT($with_string_hacks)
1415
1416 if test "x$with_string_hacks" = "xyes"; then
1417         AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1418         AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1419         AC_CHECK_FUNCS( strlcat strlcpy snprintf )
1420 fi
1421 ])dnl
1422 dnl ---------------------------------------------------------------------------
1423 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1424 dnl --------
1425 dnl Check if 'errno' is declared in <errno.h>
1426 AC_DEFUN([CF_ERRNO],
1427 [
1428 CF_CHECK_ERRNO(errno)
1429 ])dnl
1430 dnl ---------------------------------------------------------------------------
1431 dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07
1432 dnl ---------------
1433 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1434 dnl math.h and builtin.h, only for ncurses
1435 AC_DEFUN([CF_ETIP_DEFINES],
1436 [
1437 AC_MSG_CHECKING(for special defines needed for etip.h)
1438 cf_save_CXXFLAGS="$CXXFLAGS"
1439 cf_result="none"
1440
1441 # etip.h includes ncurses.h which includes ncurses_dll.h
1442 # But ncurses_dll.h is generated - fix here.
1443 test -d include || mkdir include
1444 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
1445
1446 for cf_math in "" MATH_H
1447 do
1448 for cf_excp in "" MATH_EXCEPTION
1449 do
1450         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
1451         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1452         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1453 AC_TRY_COMPILE([
1454 #include <etip.h.in>
1455 ],[],[
1456         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1457         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1458         cf_result="$cf_math $cf_excp"
1459         break 2
1460 ],[])
1461 done
1462 done
1463 AC_MSG_RESULT($cf_result)
1464 CXXFLAGS="$cf_save_CXXFLAGS"
1465 ])
1466 dnl ---------------------------------------------------------------------------
1467 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
1468 dnl ---------------
1469 dnl Find a library (specifically the linkage used in the code fragment),
1470 dnl searching for it if it is not already in the library path.
1471 dnl See also CF_ADD_SEARCHPATH.
1472 dnl
1473 dnl Parameters (4-on are optional):
1474 dnl     $1 = headers for library entrypoint
1475 dnl     $2 = code fragment for library entrypoint
1476 dnl     $3 = the library name without the "-l" option or ".so" suffix.
1477 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1478 dnl     $5 = action to perform if not successful
1479 dnl     $6 = module name, if not the same as the library name
1480 dnl     $7 = extra libraries
1481 dnl
1482 dnl Sets these variables:
1483 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1484 dnl     $cf_cv_header_path_$3 - include-directory if needed
1485 dnl     $cf_cv_library_path_$3 - library-directory if needed
1486 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1487 AC_DEFUN([CF_FIND_LINKAGE],[
1488
1489 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1490 # will be set on completion of the AC_TRY_LINK below.
1491 cf_cv_header_path_$3=
1492 cf_cv_library_path_$3=
1493
1494 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1495
1496 cf_save_LIBS="$LIBS"
1497
1498 AC_TRY_LINK([$1],[$2],[
1499         cf_cv_find_linkage_$3=yes
1500         cf_cv_header_path_$3=/usr/include
1501         cf_cv_library_path_$3=/usr/lib
1502 ],[
1503
1504 LIBS="-l$3 $7 $cf_save_LIBS"
1505
1506 AC_TRY_LINK([$1],[$2],[
1507         cf_cv_find_linkage_$3=yes
1508         cf_cv_header_path_$3=/usr/include
1509         cf_cv_library_path_$3=/usr/lib
1510         cf_cv_library_file_$3="-l$3"
1511 ],[
1512         cf_cv_find_linkage_$3=no
1513         LIBS="$cf_save_LIBS"
1514
1515     CF_VERBOSE(find linkage for $3 library)
1516     CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1517
1518     cf_save_CPPFLAGS="$CPPFLAGS"
1519     cf_test_CPPFLAGS="$CPPFLAGS"
1520
1521     CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1522     for cf_cv_header_path_$3 in $cf_search
1523     do
1524       if test -d $cf_cv_header_path_$3 ; then
1525         CF_VERBOSE(... testing $cf_cv_header_path_$3)
1526         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1527         AC_TRY_COMPILE([$1],[$2],[
1528             CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1529             cf_cv_find_linkage_$3=maybe
1530             cf_test_CPPFLAGS="$CPPFLAGS"
1531             break],[
1532             CPPFLAGS="$cf_save_CPPFLAGS"
1533             ])
1534       fi
1535     done
1536
1537     if test "$cf_cv_find_linkage_$3" = maybe ; then
1538
1539       CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1540
1541       cf_save_LIBS="$LIBS"
1542       cf_save_LDFLAGS="$LDFLAGS"
1543
1544       ifelse([$6],,,[
1545         CPPFLAGS="$cf_test_CPPFLAGS"
1546         LIBS="-l$3 $7 $cf_save_LIBS"
1547         AC_TRY_LINK([$1],[$2],[
1548             CF_VERBOSE(... found $3 library in system)
1549             cf_cv_find_linkage_$3=yes])
1550             CPPFLAGS="$cf_save_CPPFLAGS"
1551             LIBS="$cf_save_LIBS"
1552             ])
1553
1554       if test "$cf_cv_find_linkage_$3" != yes ; then
1555         CF_LIBRARY_PATH(cf_search,$3)
1556         for cf_cv_library_path_$3 in $cf_search
1557         do
1558           if test -d $cf_cv_library_path_$3 ; then
1559             CF_VERBOSE(... testing $cf_cv_library_path_$3)
1560             CPPFLAGS="$cf_test_CPPFLAGS"
1561             LIBS="-l$3 $7 $cf_save_LIBS"
1562             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1563             AC_TRY_LINK([$1],[$2],[
1564                 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1565                 cf_cv_find_linkage_$3=yes
1566                 cf_cv_library_file_$3="-l$3"
1567                 break],[
1568                 CPPFLAGS="$cf_save_CPPFLAGS"
1569                 LIBS="$cf_save_LIBS"
1570                 LDFLAGS="$cf_save_LDFLAGS"
1571                 ])
1572           fi
1573         done
1574         CPPFLAGS="$cf_save_CPPFLAGS"
1575         LDFLAGS="$cf_save_LDFLAGS"
1576       fi
1577
1578     else
1579       cf_cv_find_linkage_$3=no
1580     fi
1581     ],$7)
1582 ])
1583
1584 LIBS="$cf_save_LIBS"
1585
1586 if test "$cf_cv_find_linkage_$3" = yes ; then
1587 ifelse([$4],,[
1588         CF_ADD_INCDIR($cf_cv_header_path_$3)
1589         CF_ADD_LIBDIR($cf_cv_library_path_$3)
1590         CF_ADD_LIB($3)
1591 ],[$4])
1592 else
1593 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1594 fi
1595 ])dnl
1596 dnl ---------------------------------------------------------------------------
1597 dnl CF_FIND_SUB_INCDIR version: 1 updated: 2014/04/12 16:47:01
1598 dnl ------------------
1599 dnl Find an include-directory with the given leaf-name.  This is useful for
1600 dnl example with FreeBSD ports, which use this convention to distinguish
1601 dnl different versions of the same port.
1602 AC_DEFUN([CF_FIND_SUB_INCDIR],[
1603         CF_SUBDIR_PATH(cf_search,$1,include)
1604         for cf_item in $cf_search
1605         do
1606                 case $cf_item in #(vi
1607                 */$1)
1608                         CF_ADD_INCDIR($cf_item)
1609                         ;;
1610                 esac
1611         done
1612 ])dnl
1613 dnl ---------------------------------------------------------------------------
1614 dnl CF_FIND_SUB_LIBDIR version: 1 updated: 2014/04/12 16:47:01
1615 dnl ------------------
1616 dnl Find a library-directory with the given leaf-name.  This is useful for
1617 dnl example with FreeBSD ports, which use this convention to distinguish
1618 dnl different versions of the same port.
1619 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
1620         CF_SUBDIR_PATH(cf_search,$1,lib)
1621         for cf_item in $cf_search
1622         do
1623                 case $cf_item in #(vi
1624                 */$1)
1625                         CF_ADD_LIBDIR($cf_item)
1626                         ;;
1627                 esac
1628         done
1629 ])dnl
1630 dnl ---------------------------------------------------------------------------
1631 dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
1632 dnl -----------------
1633 dnl make ADAFLAGS consistent with CFLAGS
1634 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
1635         AC_MSG_CHECKING(optimization options for ADAFLAGS)
1636         case "$CFLAGS" in
1637         *-g*)
1638                 CF_ADD_ADAFLAGS(-g)
1639                 ;;
1640         esac
1641         case "$CFLAGS" in
1642         *-O*)
1643                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
1644                 CF_ADD_ADAFLAGS($cf_O_flag)
1645                 ;;
1646         esac
1647         AC_MSG_RESULT($ADAFLAGS)
1648 ])dnl
1649 dnl ---------------------------------------------------------------------------
1650 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
1651 dnl --------------
1652 dnl Forget that we saw the given tool.
1653 AC_DEFUN([CF_FORGET_TOOL],[
1654 unset ac_cv_prog_ac_ct_$1
1655 unset ac_ct_$1
1656 unset $1
1657 ])dnl
1658 dnl ---------------------------------------------------------------------------
1659 dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15
1660 dnl -------------
1661 dnl Test for dlsym() and related functions, as well as libdl.
1662 dnl
1663 dnl Sets
1664 dnl     $cf_have_dlsym
1665 dnl     $cf_have_libdl
1666 AC_DEFUN([CF_FUNC_DLSYM],[
1667 cf_have_dlsym=no
1668 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1669
1670 cf_have_libdl=no
1671 AC_CHECK_LIB(dl,dlsym,[
1672         cf_have_dlsym=yes
1673         cf_have_libdl=yes])])
1674
1675 if test "$cf_have_dlsym" = yes ; then
1676         test "$cf_have_libdl" = yes && CF_ADD_LIB(dl)
1677
1678         AC_MSG_CHECKING(whether able to link to dl*() functions)
1679         AC_TRY_LINK([#include <dlfcn.h>],[
1680                 void *obj;
1681                 if ((obj = dlopen("filename", 0)) != 0) {
1682                         if (dlsym(obj, "symbolname") == 0) {
1683                         dlclose(obj);
1684                         }
1685                 }],[
1686                 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
1687                 AC_MSG_ERROR(Cannot link test program for libdl)])
1688         AC_MSG_RESULT(ok)
1689 else
1690         AC_MSG_ERROR(Cannot find dlsym function)
1691 fi
1692 ])
1693 dnl ---------------------------------------------------------------------------
1694 dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20
1695 dnl ---------------
1696 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
1697 dnl is found, add our own version of memmove to the list of objects.
1698 AC_DEFUN([CF_FUNC_MEMMOVE],
1699 [
1700 AC_CHECK_FUNC(memmove,,[
1701 AC_CHECK_FUNC(bcopy,[
1702         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1703                 AC_TRY_RUN([
1704 int main() {
1705         static char data[] = "abcdefghijklmnopqrstuwwxyz";
1706         char temp[40];
1707         bcopy(data, temp, sizeof(data));
1708         bcopy(temp+10, temp, 15);
1709         bcopy(temp+5, temp+15, 10);
1710         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1711 }
1712                 ],
1713                 [cf_cv_good_bcopy=yes],
1714                 [cf_cv_good_bcopy=no],
1715                 [cf_cv_good_bcopy=unknown])
1716                 ])
1717         ],[cf_cv_good_bcopy=no])
1718         if test "$cf_cv_good_bcopy" = yes ; then
1719                 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
1720         else
1721                 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
1722         fi
1723 ])])dnl
1724 dnl ---------------------------------------------------------------------------
1725 dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13
1726 dnl -----------------
1727 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
1728 dnl AIX 4.x, provide a non-working version.
1729 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1730 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1731 AC_TRY_RUN([
1732 #include <stdio.h>
1733 #include <errno.h>
1734 #include <time.h>
1735
1736 #ifdef HAVE_SYS_TIME_H
1737 #include <sys/time.h>
1738 #endif
1739
1740 int main() {
1741         struct timespec ts1, ts2;
1742         int code;
1743         ts1.tv_sec  = 0;
1744         ts1.tv_nsec = 750000000;
1745         ts2.tv_sec  = 0;
1746         ts2.tv_nsec = 0;
1747         errno = 0;
1748         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1749         ${cf_cv_main_return:-return}(code != 0);
1750 }
1751 ],
1752         [cf_cv_func_nanosleep=yes],
1753         [cf_cv_func_nanosleep=no],
1754         [cf_cv_func_nanosleep=unknown])])
1755
1756 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
1757 ])
1758 dnl ---------------------------------------------------------------------------
1759 dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02
1760 dnl ---------------
1761 dnl Check for openpty() function, along with <pty.h> header.  It may need the
1762 dnl "util" library as well.
1763 AC_DEFUN([CF_FUNC_OPENPTY],
1764 [
1765 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1766 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1767     cf_save_LIBS="$LIBS"
1768     test $cf_cv_lib_util = yes && CF_ADD_LIB(util)
1769     for cf_header in pty.h libutil.h util.h
1770     do
1771     AC_TRY_LINK([
1772 #include <$cf_header>
1773 ],[
1774     int x = openpty((int *)0, (int *)0, (char *)0,
1775                    (struct termios *)0, (struct winsize *)0);
1776 ],[
1777         cf_cv_func_openpty=$cf_header
1778         break
1779 ],[
1780         cf_cv_func_openpty=no
1781 ])
1782     done
1783     LIBS="$cf_save_LIBS"
1784 ])
1785 ])dnl
1786 dnl ---------------------------------------------------------------------------
1787 dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07
1788 dnl ------------
1789 dnl See if the poll function really works.  Some platforms have poll(), but
1790 dnl it does not work for terminals or files.
1791 AC_DEFUN([CF_FUNC_POLL],[
1792 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1793 AC_TRY_RUN([
1794 #include <stdlib.h>
1795 #include <stdio.h>
1796 #include <unistd.h>
1797 #include <fcntl.h>
1798 #ifdef HAVE_POLL_H
1799 #include <poll.h>
1800 #else
1801 #include <sys/poll.h>
1802 #endif
1803 int main() {
1804         struct pollfd myfds;
1805         int ret;
1806
1807         /* check for Darwin bug with respect to "devices" */
1808         myfds.fd = open("/dev/null", 1);        /* O_WRONLY */
1809         if (myfds.fd < 0)
1810                 myfds.fd = 0;
1811         myfds.events = POLLIN;
1812         myfds.revents = 0;
1813
1814         ret = poll(&myfds, 1, 100);
1815
1816         if (ret < 0 || (myfds.revents & POLLNVAL)) {
1817                 ret = -1;
1818         } else {
1819                 int fd = 0;
1820                 if (!isatty(fd)) {
1821                         fd = open("/dev/tty", 2);       /* O_RDWR */
1822                 }
1823
1824                 if (fd >= 0) {
1825                         /* also check with standard input */
1826                         myfds.fd = fd;
1827                         myfds.events = POLLIN;
1828                         myfds.revents = 0;
1829                         ret = poll(&myfds, 1, 100);
1830                 } else {
1831                         ret = -1;
1832                 }
1833         }
1834         ${cf_cv_main_return:-return}(ret < 0);
1835 }],
1836         [cf_cv_working_poll=yes],
1837         [cf_cv_working_poll=no],
1838         [cf_cv_working_poll=unknown])])
1839 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
1840 ])dnl
1841 dnl ---------------------------------------------------------------------------
1842 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
1843 dnl ---------------
1844 dnl Some old/broken variations define tcgetattr() only as a macro in
1845 dnl termio(s).h
1846 AC_DEFUN([CF_FUNC_TERMIOS],[
1847 AC_REQUIRE([CF_STRUCT_TERMIOS])
1848 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1849 AC_TRY_LINK([
1850 #include <sys/types.h>
1851 #ifdef HAVE_UNISTD_H
1852 #include <unistd.h>
1853 #endif
1854 #ifdef HAVE_TERMIOS_H
1855 #include <termios.h>
1856 #define TTY struct termios
1857 #else
1858 #ifdef HAVE_TERMIO_H
1859 #include <termio.h>
1860 #define TTY struct termio
1861 #endif
1862 #endif
1863 ],[
1864 TTY foo;
1865 tcgetattr(1, &foo);],
1866 [cf_cv_have_tcgetattr=yes],
1867 [cf_cv_have_tcgetattr=no])])
1868 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
1869 ])dnl
1870 dnl ---------------------------------------------------------------------------
1871 dnl CF_FUNC_VSSCANF version: 4 updated: 2012/10/06 17:56:13
1872 dnl ---------------
1873 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1874 dnl versions of C.  It is in the GNU C library, and can often be simulated by
1875 dnl other functions.
1876 AC_DEFUN([CF_FUNC_VSSCANF],
1877 [
1878 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1879 AC_TRY_LINK([
1880 #include <stdarg.h>
1881 #include <stdio.h>],[
1882         va_list ap;
1883         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1884 AC_TRY_LINK([
1885 #include <stdarg.h>
1886 #include <stdio.h>],[
1887     FILE strbuf;
1888     char *str = "from";
1889
1890     strbuf._flag = _IOREAD;
1891     strbuf._ptr = strbuf._base = (unsigned char *) str;
1892     strbuf._cnt = strlen(str);
1893     strbuf._file = _NFILE;
1894     return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1895 AC_TRY_LINK([
1896 #include <stdarg.h>
1897 #include <stdio.h>],[
1898     FILE strbuf;
1899     char *str = "from";
1900
1901     strbuf._flag = _IOREAD;
1902     strbuf._ptr = strbuf._base = (unsigned char *) str;
1903     strbuf._cnt = strlen(str);
1904     strbuf._file = _NFILE;
1905     return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1906 cf_cv_func_vsscanf=no])])])])
1907
1908 case $cf_cv_func_vsscanf in #(vi
1909 vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; #(vi
1910 vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; #(vi
1911 _doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
1912 esac
1913
1914 ])dnl
1915 dnl ---------------------------------------------------------------------------
1916 dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
1917 dnl -----------------
1918 dnl Test for availability of useful gcc __attribute__ directives to quiet
1919 dnl compiler warnings.  Though useful, not all are supported -- and contrary
1920 dnl to documentation, unrecognized directives cause older compilers to barf.
1921 AC_DEFUN([CF_GCC_ATTRIBUTES],
1922 [
1923 if test "$GCC" = yes
1924 then
1925 cat > conftest.i <<EOF
1926 #ifndef GCC_PRINTF
1927 #define GCC_PRINTF 0
1928 #endif
1929 #ifndef GCC_SCANF
1930 #define GCC_SCANF 0
1931 #endif
1932 #ifndef GCC_NORETURN
1933 #define GCC_NORETURN /* nothing */
1934 #endif
1935 #ifndef GCC_UNUSED
1936 #define GCC_UNUSED /* nothing */
1937 #endif
1938 EOF
1939 if test "$GCC" = yes
1940 then
1941         AC_CHECKING([for $CC __attribute__ directives])
1942 cat > conftest.$ac_ext <<EOF
1943 #line __oline__ "${as_me:-configure}"
1944 #include "confdefs.h"
1945 #include "conftest.h"
1946 #include "conftest.i"
1947 #if     GCC_PRINTF
1948 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1949 #else
1950 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1951 #endif
1952 #if     GCC_SCANF
1953 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1954 #else
1955 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1956 #endif
1957 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1958 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1959 extern void foo(void) GCC_NORETURN;
1960 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1961 EOF
1962         cf_printf_attribute=no
1963         cf_scanf_attribute=no
1964         for cf_attribute in scanf printf unused noreturn
1965         do
1966                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1967                 cf_directive="__attribute__(($cf_attribute))"
1968                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1969
1970                 case $cf_attribute in #(vi
1971                 printf) #(vi
1972                         cf_printf_attribute=yes
1973                         cat >conftest.h <<EOF
1974 #define GCC_$cf_ATTRIBUTE 1
1975 EOF
1976                         ;;
1977                 scanf) #(vi
1978                         cf_scanf_attribute=yes
1979                         cat >conftest.h <<EOF
1980 #define GCC_$cf_ATTRIBUTE 1
1981 EOF
1982                         ;;
1983                 *) #(vi
1984                         cat >conftest.h <<EOF
1985 #define GCC_$cf_ATTRIBUTE $cf_directive
1986 EOF
1987                         ;;
1988                 esac
1989
1990                 if AC_TRY_EVAL(ac_compile); then
1991                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1992                         cat conftest.h >>confdefs.h
1993                         case $cf_attribute in #(vi
1994                         noreturn) #(vi
1995                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1996                                 ;;
1997                         printf) #(vi
1998                                 cf_value='/* nothing */'
1999                                 if test "$cf_printf_attribute" != no ; then
2000                                         cf_value='__attribute__((format(printf,fmt,var)))'
2001                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2002                                 fi
2003                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2004                                 ;;
2005                         scanf) #(vi
2006                                 cf_value='/* nothing */'
2007                                 if test "$cf_scanf_attribute" != no ; then
2008                                         cf_value='__attribute__((format(scanf,fmt,var)))'
2009                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2010                                 fi
2011                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2012                                 ;;
2013                         unused) #(vi
2014                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2015                                 ;;
2016                         esac
2017                 fi
2018         done
2019 else
2020         fgrep define conftest.i >>confdefs.h
2021 fi
2022 rm -rf conftest*
2023 fi
2024 ])dnl
2025 dnl ---------------------------------------------------------------------------
2026 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
2027 dnl --------------
2028 dnl Find version of gcc
2029 AC_DEFUN([CF_GCC_VERSION],[
2030 AC_REQUIRE([AC_PROG_CC])
2031 GCC_VERSION=none
2032 if test "$GCC" = yes ; then
2033         AC_MSG_CHECKING(version of $CC)
2034         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.]].*//'`"
2035         test -z "$GCC_VERSION" && GCC_VERSION=unknown
2036         AC_MSG_RESULT($GCC_VERSION)
2037 fi
2038 ])dnl
2039 dnl ---------------------------------------------------------------------------
2040 dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35
2041 dnl ---------------
2042 dnl Check if the compiler supports useful warning options.  There's a few that
2043 dnl we don't use, simply because they're too noisy:
2044 dnl
2045 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2046 dnl     -Wredundant-decls (system headers make this too noisy)
2047 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
2048 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
2049 dnl             is enabled for ncurses using "--enable-const".
2050 dnl     -pedantic
2051 dnl
2052 dnl Parameter:
2053 dnl     $1 is an optional list of gcc warning flags that a particular
2054 dnl             application might want to use, e.g., "no-unused" for
2055 dnl             -Wno-unused
2056 dnl Special:
2057 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
2058 dnl
2059 AC_DEFUN([CF_GCC_WARNINGS],
2060 [
2061 AC_REQUIRE([CF_GCC_VERSION])
2062 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2063 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2064
2065 cat > conftest.$ac_ext <<EOF
2066 #line __oline__ "${as_me:-configure}"
2067 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2068 EOF
2069
2070 if test "$INTEL_COMPILER" = yes
2071 then
2072 # The "-wdXXX" options suppress warnings:
2073 # remark #1419: external declaration in primary source file
2074 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2075 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2076 # remark #193: zero used for undefined preprocessing identifier
2077 # remark #593: variable "curs_sb_left_arrow" was set but never used
2078 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2079 # remark #869: parameter "tw" was never referenced
2080 # remark #981: operands are evaluated in unspecified order
2081 # warning #279: controlling expression is constant
2082
2083         AC_CHECKING([for $CC warning options])
2084         cf_save_CFLAGS="$CFLAGS"
2085         EXTRA_CFLAGS="-Wall"
2086         for cf_opt in \
2087                 wd1419 \
2088                 wd1683 \
2089                 wd1684 \
2090                 wd193 \
2091                 wd593 \
2092                 wd279 \
2093                 wd810 \
2094                 wd869 \
2095                 wd981
2096         do
2097                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2098                 if AC_TRY_EVAL(ac_compile); then
2099                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2100                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2101                 fi
2102         done
2103         CFLAGS="$cf_save_CFLAGS"
2104
2105 elif test "$GCC" = yes
2106 then
2107         AC_CHECKING([for $CC warning options])
2108         cf_save_CFLAGS="$CFLAGS"
2109         EXTRA_CFLAGS=
2110         cf_warn_CONST=""
2111         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
2112         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
2113         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
2114         for cf_opt in W Wall \
2115                 Wbad-function-cast \
2116                 Wcast-align \
2117                 Wcast-qual \
2118                 Wdeclaration-after-statement \
2119                 Wextra \
2120                 Winline \
2121                 Wmissing-declarations \
2122                 Wmissing-prototypes \
2123                 Wnested-externs \
2124                 Wpointer-arith \
2125                 Wshadow \
2126                 Wstrict-prototypes \
2127                 Wundef $cf_gcc_warnings $cf_warn_CONST $1
2128         do
2129                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2130                 if AC_TRY_EVAL(ac_compile); then
2131                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2132                         case $cf_opt in #(vi
2133                         Wcast-qual) #(vi
2134                                 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
2135                                 ;;
2136                         Winline) #(vi
2137                                 case $GCC_VERSION in
2138                                 [[34]].*)
2139                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2140                                         continue;;
2141                                 esac
2142                                 ;;
2143                         Wpointer-arith) #(vi
2144                                 case $GCC_VERSION in
2145                                 [[12]].*)
2146                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2147                                         continue;;
2148                                 esac
2149                                 ;;
2150                         esac
2151                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2152                 fi
2153         done
2154         CFLAGS="$cf_save_CFLAGS"
2155 fi
2156 rm -rf conftest*
2157
2158 AC_SUBST(EXTRA_CFLAGS)
2159 ])dnl
2160 dnl ---------------------------------------------------------------------------
2161 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
2162 dnl ----------------
2163 dnl Check for getopt's variables which are commonly defined in stdlib.h,
2164 dnl unistd.h or (nonstandard) in getopt.h
2165 AC_DEFUN([CF_GETOPT_HEADER],
2166 [
2167 AC_HAVE_HEADERS(unistd.h getopt.h)
2168 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
2169 cf_cv_getopt_header=none
2170 for cf_header in stdio.h stdlib.h unistd.h getopt.h
2171 do
2172 AC_TRY_COMPILE([
2173 #include <$cf_header>],
2174 [int x = optind; char *y = optarg],
2175 [cf_cv_getopt_header=$cf_header
2176  break])
2177 done
2178 ])
2179 if test $cf_cv_getopt_header != none ; then
2180         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
2181 fi
2182 if test $cf_cv_getopt_header = getopt.h ; then
2183         AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
2184 fi
2185 ])dnl
2186 dnl ---------------------------------------------------------------------------
2187 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
2188 dnl -----------------
2189 AC_DEFUN([CF_GNATPREP_OPT_T],[
2190 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
2191 cf_cv_gnatprep_opt_t=no
2192 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
2193 ])
2194 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
2195 AC_SUBST(GNATPREP_OPTS)
2196 ])dnl
2197 dnl ---------------------------------------------------------------------------
2198 dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
2199 dnl ----------------
2200 AC_DEFUN([CF_GNAT_GENERICS],
2201 [
2202 AC_REQUIRE([CF_GNAT_VERSION])
2203
2204 AC_MSG_CHECKING(if GNAT supports generics)
2205 case $cf_gnat_version in #(vi
2206 3.[[1-9]]*|[[4-9]].*) #(vi
2207         cf_gnat_generics=yes
2208         ;;
2209 *)
2210         cf_gnat_generics=no
2211         ;;
2212 esac
2213 AC_MSG_RESULT($cf_gnat_generics)
2214
2215 if test "$cf_gnat_generics" = yes
2216 then
2217         cf_compile_generics=generics
2218         cf_generic_objects="\${GENOBJS}"
2219 else
2220         cf_compile_generics=
2221         cf_generic_objects=
2222 fi
2223
2224 AC_SUBST(cf_compile_generics)
2225 AC_SUBST(cf_generic_objects)
2226 ])dnl
2227 dnl ---------------------------------------------------------------------------
2228 dnl CF_GNAT_PROJECTS version: 7 updated: 2014/06/01 10:46:34
2229 dnl ----------------
2230 dnl GNAT projects are configured with ".gpr" project files.
2231 dnl GNAT libraries are a further development, using the project feature.
2232 AC_DEFUN([CF_GNAT_PROJECTS],
2233 [
2234 AC_REQUIRE([CF_GNAT_VERSION])
2235 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
2236
2237 cf_gnat_libraries=no
2238 cf_gnat_projects=no
2239
2240 if test "$enable_gnat_projects" != no ; then
2241 AC_MSG_CHECKING(if GNAT supports project files)
2242 case $cf_gnat_version in #(vi
2243 3.[[0-9]]*) #(vi
2244         ;;
2245 *)
2246         case $cf_cv_system_name in #(vi
2247         cygwin*|msys*) #(vi
2248                 ;;
2249         *)
2250                 mkdir conftest.src conftest.bin conftest.lib
2251                 cd conftest.src
2252                 rm -rf conftest* *~conftest*
2253                 cat >>library.gpr <<CF_EOF
2254 project Library is
2255   Kind := External ("LIB_KIND");
2256   for Library_Name use "ConfTest";
2257   for Object_Dir use ".";
2258   for Library_ALI_Dir use External("LIBRARY_DIR");
2259   for Library_Version use External ("SONAME");
2260   for Library_Kind use Kind;
2261   for Library_Dir use External("BUILD_DIR");
2262   Source_Dir := External ("SOURCE_DIR");
2263   for Source_Dirs use (Source_Dir);
2264 end Library;
2265 CF_EOF
2266                 cat >>confpackage.ads <<CF_EOF
2267 package ConfPackage is
2268    procedure conftest;
2269 end ConfPackage;
2270 CF_EOF
2271                 cat >>confpackage.adb <<CF_EOF
2272 with Text_IO;
2273 package body ConfPackage is
2274    procedure conftest is
2275    begin
2276       Text_IO.Put ("Hello World");
2277       Text_IO.New_Line;
2278    end conftest;
2279 end ConfPackage;
2280 CF_EOF
2281                 if ( $cf_ada_make $ADAFLAGS \
2282                                 -Plibrary.gpr \
2283                                 -XBUILD_DIR=`cd ../conftest.bin;pwd` \
2284                                 -XLIBRARY_DIR=`cd ../conftest.lib;pwd` \
2285                                 -XSOURCE_DIR=`pwd` \
2286                                 -XSONAME=libConfTest.so.1 \
2287                                 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
2288                         cf_gnat_projects=yes
2289                 fi
2290                 cd ..
2291                 if test -f conftest.lib/confpackage.ali
2292                 then
2293                         cf_gnat_libraries=yes
2294                 fi
2295                 rm -rf conftest* *~conftest*
2296                 ;;
2297         esac
2298         ;;
2299 esac
2300 AC_MSG_RESULT($cf_gnat_projects)
2301 fi # enable_gnat_projects
2302
2303 if test $cf_gnat_projects = yes
2304 then
2305         AC_MSG_CHECKING(if GNAT supports libraries)
2306         AC_MSG_RESULT($cf_gnat_libraries)
2307 fi
2308
2309 if test "$cf_gnat_projects" = yes
2310 then
2311         USE_OLD_MAKERULES="#"
2312         USE_GNAT_PROJECTS=""
2313 else
2314         USE_OLD_MAKERULES=""
2315         USE_GNAT_PROJECTS="#"
2316 fi
2317
2318 if test "$cf_gnat_libraries" = yes
2319 then
2320         USE_GNAT_LIBRARIES=""
2321 else
2322         USE_GNAT_LIBRARIES="#"
2323 fi
2324
2325 AC_SUBST(USE_OLD_MAKERULES)
2326 AC_SUBST(USE_GNAT_PROJECTS)
2327 AC_SUBST(USE_GNAT_LIBRARIES)
2328 ])dnl
2329 dnl ---------------------------------------------------------------------------
2330 dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
2331 dnl --------------
2332 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
2333 dnl is noted that gnat may compile a tasking unit even for configurations which
2334 dnl fail at runtime.
2335 AC_DEFUN([CF_GNAT_SIGINT],[
2336 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
2337 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
2338
2339 package ConfTest is
2340
2341    pragma Warnings (Off);  --  the next pragma exists since 3.11p
2342    pragma Unreserve_All_Interrupts;
2343    pragma Warnings (On);
2344
2345    protected Process is
2346       procedure Stop;
2347       function Continue return Boolean;
2348       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
2349    private
2350       Done : Boolean := False;
2351    end Process;
2352
2353 end ConfTest;],
2354 [package body ConfTest is
2355    protected body Process is
2356       procedure Stop is
2357       begin
2358          Done := True;
2359       end Stop;
2360       function Continue return Boolean is
2361       begin
2362          return not Done;
2363       end Continue;
2364    end Process;
2365 end ConfTest;],
2366         [cf_cv_gnat_sigint=yes],
2367         [cf_cv_gnat_sigint=no])])
2368
2369 if test $cf_cv_gnat_sigint = yes ; then
2370         USE_GNAT_SIGINT=""
2371 else
2372         USE_GNAT_SIGINT="#"
2373 fi
2374 AC_SUBST(USE_GNAT_SIGINT)
2375 ])dnl
2376 dnl ---------------------------------------------------------------------------
2377 dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
2378 dnl ----------------
2379 dnl Verify that a test program compiles/links with GNAT.
2380 dnl $cf_ada_make is set to the program that compiles/links
2381 dnl $ADAFLAGS may be set to the GNAT flags.
2382 dnl
2383 dnl $1 is the text of the spec
2384 dnl $2 is the text of the body
2385 dnl $3 is the shell command to execute if successful
2386 dnl $4 is the shell command to execute if not successful
2387 AC_DEFUN([CF_GNAT_TRY_LINK],
2388 [
2389 rm -rf conftest* *~conftest*
2390 cat >>conftest.ads <<CF_EOF
2391 $1
2392 CF_EOF
2393 cat >>conftest.adb <<CF_EOF
2394 $2
2395 CF_EOF
2396 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
2397 ifelse($3,,      :,[      $3])
2398 ifelse($4,,,[else
2399    $4])
2400 fi
2401 rm -rf conftest* *~conftest*
2402 ])dnl
2403 dnl ---------------------------------------------------------------------------
2404 dnl CF_GNAT_TRY_RUN version: 5 updated: 2011/03/19 14:47:45
2405 dnl ---------------
2406 dnl Verify that a test program compiles and runs with GNAT
2407 dnl $cf_ada_make is set to the program that compiles/links
2408 dnl $ADAFLAGS may be set to the GNAT flags.
2409 dnl
2410 dnl $1 is the text of the spec
2411 dnl $2 is the text of the body
2412 dnl $3 is the shell command to execute if successful
2413 dnl $4 is the shell command to execute if not successful
2414 AC_DEFUN([CF_GNAT_TRY_RUN],
2415 [
2416 rm -rf conftest* *~conftest*
2417 cat >>conftest.ads <<CF_EOF
2418 $1
2419 CF_EOF
2420 cat >>conftest.adb <<CF_EOF
2421 $2
2422 CF_EOF
2423 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
2424    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
2425 ifelse($3,,      :,[      $3])
2426 ifelse($4,,,[   else
2427       $4])
2428    fi
2429 ifelse($4,,,[else
2430    $4])
2431 fi
2432 rm -rf conftest* *~conftest*
2433 ])dnl
2434 dnl ---------------------------------------------------------------------------
2435 dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
2436 dnl ---------------
2437 dnl Verify version of GNAT.
2438 AC_DEFUN([CF_GNAT_VERSION],
2439 [
2440 AC_MSG_CHECKING(for gnat version)
2441 cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
2442         grep '[[0-9]].[[0-9]][[0-9]]*' |\
2443     sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
2444 AC_MSG_RESULT($cf_gnat_version)
2445
2446 case $cf_gnat_version in #(vi
2447 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
2448         cf_cv_prog_gnat_correct=yes
2449         ;;
2450 *)
2451         AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
2452         cf_cv_prog_gnat_correct=no
2453         ;;
2454 esac
2455 ])
2456 dnl ---------------------------------------------------------------------------
2457 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
2458 dnl -------------
2459 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
2460 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
2461 dnl (or misfeature) of glibc2, which breaks portability of many applications,
2462 dnl since it is interwoven with GNU extensions.
2463 dnl
2464 dnl Well, yes we could work around it...
2465 AC_DEFUN([CF_GNU_SOURCE],
2466 [
2467 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
2468 AC_TRY_COMPILE([#include <sys/types.h>],[
2469 #ifndef _XOPEN_SOURCE
2470 make an error
2471 #endif],
2472         [cf_cv_gnu_source=no],
2473         [cf_save="$CPPFLAGS"
2474          CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
2475          AC_TRY_COMPILE([#include <sys/types.h>],[
2476 #ifdef _XOPEN_SOURCE
2477 make an error
2478 #endif],
2479         [cf_cv_gnu_source=no],
2480         [cf_cv_gnu_source=yes])
2481         CPPFLAGS="$cf_save"
2482         ])
2483 ])
2484 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
2485 ])dnl
2486 dnl ---------------------------------------------------------------------------
2487 dnl CF_GPP_LIBRARY version: 11 updated: 2012/10/06 17:56:13
2488 dnl --------------
2489 dnl If we're trying to use g++, test if libg++ is installed (a rather common
2490 dnl problem :-).  If we have the compiler but no library, we'll be able to
2491 dnl configure, but won't be able to build the c++ demo program.
2492 AC_DEFUN([CF_GPP_LIBRARY],
2493 [
2494 cf_cxx_library=unknown
2495 case $cf_cv_system_name in #(vi
2496 os2*) #(vi
2497         cf_gpp_libname=gpp
2498         ;;
2499 *)
2500         cf_gpp_libname=g++
2501         ;;
2502 esac
2503 if test "$GXX" = yes; then
2504         AC_MSG_CHECKING([for lib$cf_gpp_libname])
2505         cf_save="$LIBS"
2506         CF_ADD_LIB($cf_gpp_libname)
2507         AC_TRY_LINK([
2508 #include <$cf_gpp_libname/builtin.h>
2509         ],
2510         [two_arg_error_handler_t foo2 = lib_error_handler],
2511         [cf_cxx_library=yes
2512          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
2513          if test "$cf_gpp_libname" = cpp ; then
2514             AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
2515          else
2516             AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
2517          fi],
2518         [AC_TRY_LINK([
2519 #include <builtin.h>
2520         ],
2521         [two_arg_error_handler_t foo2 = lib_error_handler],
2522         [cf_cxx_library=yes
2523          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
2524          AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
2525         [cf_cxx_library=no])])
2526         LIBS="$cf_save"
2527         AC_MSG_RESULT($cf_cxx_library)
2528 fi
2529 ])dnl
2530 dnl ---------------------------------------------------------------------------
2531 dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39
2532 dnl --------------
2533 dnl Check for version of g++
2534 AC_DEFUN([CF_GXX_VERSION],[
2535 AC_REQUIRE([AC_PROG_CPP])
2536 GXX_VERSION=none
2537 if test "$GXX" = yes; then
2538         AC_MSG_CHECKING(version of ${CXX:-g++})
2539         GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
2540         test -z "$GXX_VERSION" && GXX_VERSION=unknown
2541         AC_MSG_RESULT($GXX_VERSION)
2542 fi
2543 ])dnl
2544 dnl ---------------------------------------------------------------------------
2545 dnl CF_GXX_WARNINGS version: 8 updated: 2013/11/16 14:27:53
2546 dnl ---------------
2547 dnl Check if the compiler supports useful warning options.
2548 dnl
2549 dnl Most of gcc's options apply to g++, except:
2550 dnl     -Wbad-function-cast
2551 dnl     -Wmissing-declarations
2552 dnl     -Wnested-externs
2553 dnl
2554 dnl Omit a few (for now):
2555 dnl     -Winline
2556 dnl
2557 dnl Parameter:
2558 dnl     $1 is an optional list of g++ warning flags that a particular
2559 dnl             application might want to use, e.g., "no-unused" for
2560 dnl             -Wno-unused
2561 dnl Special:
2562 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
2563 dnl
2564 AC_DEFUN([CF_GXX_WARNINGS],
2565 [
2566
2567 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
2568 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
2569
2570 AC_REQUIRE([CF_GXX_VERSION])
2571
2572 AC_LANG_SAVE
2573 AC_LANG_CPLUSPLUS
2574
2575 cat > conftest.$ac_ext <<EOF
2576 #line __oline__ "configure"
2577 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2578 EOF
2579
2580 if test "$INTEL_CPLUSPLUS" = yes
2581 then
2582 # The "-wdXXX" options suppress warnings:
2583 # remark #1419: external declaration in primary source file
2584 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2585 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2586 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2587 # remark #193: zero used for undefined preprocessing identifier
2588 # remark #593: variable "curs_sb_left_arrow" was set but never used
2589 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2590 # remark #869: parameter "tw" was never referenced
2591 # remark #981: operands are evaluated in unspecified order
2592 # warning #269: invalid format string conversion
2593
2594         AC_CHECKING([for $CC warning options])
2595         cf_save_CXXFLAGS="$CXXFLAGS"
2596         EXTRA_CXXFLAGS="-Wall"
2597         for cf_opt in \
2598                 wd1419 \
2599                 wd1682 \
2600                 wd1683 \
2601                 wd1684 \
2602                 wd193 \
2603                 wd279 \
2604                 wd593 \
2605                 wd810 \
2606                 wd869 \
2607                 wd981
2608         do
2609                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
2610                 if AC_TRY_EVAL(ac_compile); then
2611                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2612                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2613                 fi
2614         done
2615         CXXFLAGS="$cf_save_CXXFLAGS"
2616
2617 elif test "$GXX" = yes
2618 then
2619         AC_CHECKING([for $CXX warning options])
2620         cf_save_CXXFLAGS="$CXXFLAGS"
2621         EXTRA_CXXFLAGS="-W -Wall"
2622         cf_gxx_extra_warnings=""
2623         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
2624         case "$GCC_VERSION" in
2625         [[1-2]].*)
2626                 ;;
2627         *)
2628                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
2629                 ;;
2630         esac
2631         for cf_opt in \
2632                 Wabi \
2633                 fabi-version=0 \
2634                 Wextra \
2635                 Wignored-qualifiers \
2636                 Wlogical-op \
2637                 Woverloaded-virtual \
2638                 Wsign-promo \
2639                 Wsynth \
2640                 Wold-style-cast \
2641                 Wcast-align \
2642                 Wcast-qual \
2643                 Wpointer-arith \
2644                 Wshadow \
2645                 Wundef $cf_gxx_extra_warnings $1
2646         do
2647                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
2648                 if AC_TRY_EVAL(ac_compile); then
2649                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2650                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2651                 else
2652                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
2653                 fi
2654         done
2655         CXXFLAGS="$cf_save_CXXFLAGS"
2656 fi
2657
2658 rm -rf conftest*
2659 AC_LANG_RESTORE
2660 AC_SUBST(EXTRA_CXXFLAGS)
2661 ])dnl
2662 dnl ---------------------------------------------------------------------------
2663 dnl CF_HASHED_DB version: 5 updated: 2014/04/12 16:47:01
2664 dnl ------------
2665 dnl Look for an instance of the Berkeley hashed database.
2666 dnl
2667 dnl $1 = optional parameter, to specify install-prefix for the database.
2668 AC_DEFUN([CF_HASHED_DB],
2669 [
2670 ifelse([$1],,,[
2671 case $1 in #(vi
2672 yes|*able*) #(vi
2673     ;;
2674 *)
2675     if test -d "$1" ; then
2676         CF_ADD_INCDIR($1/include)
2677         CF_ADD_LIBDIR($1/lib)
2678         else
2679                 case "$1" in #(vi
2680                 ./*|../*|/*)
2681                         AC_MSG_WARN(no such directory $1)
2682                         ;; #(vi
2683                 *)
2684                         CF_FIND_SUB_INCDIR($1)
2685                         CF_FIND_SUB_LIBDIR($1)
2686                         ;;
2687                 esac
2688     fi
2689 esac
2690 ])
2691 AC_CHECK_HEADER(db.h,[
2692 CF_HASHED_DB_VERSION
2693 if test "$cf_cv_hashed_db_version" = unknown ; then
2694         AC_MSG_ERROR(Cannot determine version of db)
2695 else
2696         CF_HASHED_DB_LIBS
2697         if test "$cf_cv_hashed_db_libs" = unknown ; then
2698                 AC_MSG_ERROR(Cannot determine library for db)
2699         elif test "$cf_cv_hashed_db_libs" != default ; then
2700                 CF_ADD_LIB($cf_cv_hashed_db_libs)
2701         fi
2702 fi
2703 ],[
2704         AC_MSG_ERROR(Cannot find db.h)
2705 ])
2706 ])dnl
2707 dnl ---------------------------------------------------------------------------
2708 dnl CF_HASHED_DB_LIBS version: 9 updated: 2010/05/29 16:31:02
2709 dnl -----------------
2710 dnl Given that we have the header and version for hashed database, find the
2711 dnl library information.
2712 AC_DEFUN([CF_HASHED_DB_LIBS],
2713 [
2714 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
2715 cf_cv_hashed_db_libs=unknown
2716 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
2717 do
2718         cf_save_libs="$LIBS"
2719         if test -n "$cf_db_libs"; then
2720                 CF_ADD_LIB($cf_db_libs)
2721         fi
2722         CF_MSG_LOG(checking for library "$cf_db_libs")
2723         AC_TRY_LINK([
2724 $ac_includes_default
2725 #include <db.h>
2726 ],[
2727         char *path = "/tmp/foo";
2728 #ifdef DB_VERSION_MAJOR
2729 #if DB_VERSION_MAJOR >= 4
2730         DB *result = 0;
2731         db_create(&result, NULL, 0);
2732         result->open(result,
2733                 NULL,
2734                 path,
2735                 path,
2736                 DB_HASH,
2737                 DB_CREATE,
2738                 0644);
2739 #elif DB_VERSION_MAJOR >= 3
2740         DB *result = 0;
2741         db_create(&result, NULL, 0);
2742         result->open(result,
2743                 path,
2744                 path,
2745                 DB_HASH,
2746                 DB_CREATE,
2747                 0644);
2748 #elif DB_VERSION_MAJOR >= 2
2749         DB *result = 0;
2750         db_open(path,
2751                 DB_HASH,
2752                 DB_CREATE,
2753                 0644,
2754                 (DB_ENV *) 0,
2755                 (DB_INFO *) 0,
2756                 &result);
2757 #endif /* DB_VERSION_MAJOR */
2758 #else
2759         DB *result = dbopen(path,
2760                      2,
2761                      0644,
2762                      DB_HASH,
2763                      0);
2764 #endif
2765         ${cf_cv_main_return:-return}(result != 0)
2766 ],[
2767         if test -n "$cf_db_libs" ; then
2768                 cf_cv_hashed_db_libs=$cf_db_libs
2769         else
2770                 cf_cv_hashed_db_libs=default
2771         fi
2772         LIBS="$cf_save_libs"
2773         break
2774 ])
2775         LIBS="$cf_save_libs"
2776 done
2777 ])
2778 ])dnl
2779 dnl ---------------------------------------------------------------------------
2780 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
2781 dnl --------------------
2782 dnl Given that we have the header file for hashed database, find the version
2783 dnl information.
2784 AC_DEFUN([CF_HASHED_DB_VERSION],
2785 [
2786 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2787 cf_cv_hashed_db_version=unknown
2788
2789 for cf_db_version in 1 2 3 4 5 6
2790 do
2791         CF_MSG_LOG(checking for db version $cf_db_version)
2792         AC_TRY_COMPILE([
2793 $ac_includes_default
2794 #include <db.h>
2795
2796 #ifdef DB_VERSION_MAJOR
2797         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2798 #if $cf_db_version == DB_VERSION_MAJOR
2799         /* ok */
2800 #else
2801         make an error
2802 #endif
2803 #else
2804 #if $cf_db_version == 1
2805         /* ok: assuming this is DB 1.8.5 */
2806 #else
2807         make an error
2808 #endif
2809 #endif
2810 ],[DBT *foo = 0],[
2811         cf_cv_hashed_db_version=$cf_db_version
2812         break
2813         ])
2814 done
2815 ])
2816 ])dnl
2817 dnl ---------------------------------------------------------------------------
2818 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
2819 dnl --------------
2820 dnl Construct a search-list of directories for a nonstandard header-file
2821 dnl
2822 dnl Parameters
2823 dnl     $1 = the variable to return as result
2824 dnl     $2 = the package name
2825 AC_DEFUN([CF_HEADER_PATH],
2826 [
2827 $1=
2828
2829 # collect the current set of include-directories from compiler flags
2830 cf_header_path_list=""
2831 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2832         for cf_header_path in $CPPFLAGS $CFLAGS
2833         do
2834                 case $cf_header_path in #(vi
2835                 -I*)
2836                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2837                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2838                         cf_header_path_list="$cf_header_path_list [$]$1"
2839                         ;;
2840                 esac
2841         done
2842 fi
2843
2844 # add the variations for the package we are looking for
2845 CF_SUBDIR_PATH($1,$2,include)
2846
2847 test "$includedir" != NONE && \
2848 test "$includedir" != "/usr/include" && \
2849 test -d "$includedir" && {
2850         test -d $includedir &&    $1="[$]$1 $includedir"
2851         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2852 }
2853
2854 test "$oldincludedir" != NONE && \
2855 test "$oldincludedir" != "/usr/include" && \
2856 test -d "$oldincludedir" && {
2857         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
2858         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2859 }
2860
2861 $1="[$]$1 $cf_header_path_list"
2862 ])dnl
2863 dnl ---------------------------------------------------------------------------
2864 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2865 dnl ---------------
2866 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2867 AC_DEFUN([CF_HELP_MESSAGE],
2868 [AC_DIVERT_HELP([$1])dnl
2869 ])dnl
2870 dnl ---------------------------------------------------------------------------
2871 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
2872 dnl ---------------
2873 dnl Construct the list of include-options according to whether we're building
2874 dnl in the source directory or using '--srcdir=DIR' option.
2875 AC_DEFUN([CF_INCLUDE_DIRS],
2876 [
2877 if test "$srcdir" != "."; then
2878         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2879 fi
2880 CPPFLAGS="-I../include $CPPFLAGS"
2881 if test "$srcdir" != "."; then
2882         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
2883 fi
2884 CPPFLAGS="-I. $CPPFLAGS"
2885 AC_SUBST(CPPFLAGS)
2886 ])dnl
2887 dnl ---------------------------------------------------------------------------
2888 dnl CF_INTEL_COMPILER version: 6 updated: 2014/03/17 13:13:07
2889 dnl -----------------
2890 dnl Check if the given compiler is really the Intel compiler for Linux.  It
2891 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2892 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2893 dnl
2894 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2895 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2896 dnl the wrappers for gcc and g++ warnings.
2897 dnl
2898 dnl $1 = GCC (default) or GXX
2899 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2900 dnl $3 = CFLAGS (default) or CXXFLAGS
2901 AC_DEFUN([CF_INTEL_COMPILER],[
2902 AC_REQUIRE([AC_CANONICAL_HOST])
2903 ifelse([$2],,INTEL_COMPILER,[$2])=no
2904
2905 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2906         case $host_os in
2907         linux*|gnu*)
2908                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2909                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2910                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2911                 AC_TRY_COMPILE([],[
2912 #ifdef __INTEL_COMPILER
2913 #else
2914 make an error
2915 #endif
2916 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2917 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2918 ],[])
2919                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2920                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2921                 ;;
2922         esac
2923 fi
2924 ])dnl
2925 dnl ---------------------------------------------------------------------------
2926 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
2927 dnl ----------
2928 dnl Check if we have either a function or macro for 'isascii()'.
2929 AC_DEFUN([CF_ISASCII],
2930 [
2931 AC_MSG_CHECKING(for isascii)
2932 AC_CACHE_VAL(cf_cv_have_isascii,[
2933         AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2934         [cf_cv_have_isascii=yes],
2935         [cf_cv_have_isascii=no])
2936 ])dnl
2937 AC_MSG_RESULT($cf_cv_have_isascii)
2938 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
2939 ])dnl
2940 dnl ---------------------------------------------------------------------------
2941 dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51
2942 dnl ------------
2943 dnl Add checks for large file support.
2944 AC_DEFUN([CF_LARGEFILE],[
2945 ifdef([AC_FUNC_FSEEKO],[
2946     AC_SYS_LARGEFILE
2947     if test "$enable_largefile" != no ; then
2948         AC_FUNC_FSEEKO
2949
2950         # Normally we would collect these definitions in the config.h,
2951         # but (like _XOPEN_SOURCE), some environments rely on having these
2952         # defined before any of the system headers are included.  Another
2953         # case comes up with C++, e.g., on AIX the compiler compiles the
2954         # header files by themselves before looking at the body files it is
2955         # told to compile.  For ncurses, those header files do not include
2956         # the config.h
2957         test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2958         test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2959         test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2960
2961         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2962                 AC_TRY_COMPILE([
2963 #include <sys/types.h>
2964 #include <dirent.h>
2965                 ],[
2966                 /* if transitional largefile support is setup, this is true */
2967                 extern struct dirent64 * readdir(DIR *);
2968                 struct dirent64 *x = readdir((DIR *)0);
2969                 struct dirent *y = readdir((DIR *)0);
2970                 int z = x - y;
2971                 ],
2972                 [cf_cv_struct_dirent64=yes],
2973                 [cf_cv_struct_dirent64=no])
2974         ])
2975         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
2976     fi
2977 ])
2978 ])
2979 dnl ---------------------------------------------------------------------------
2980 dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48
2981 dnl -----------------
2982 dnl Check for compiler/linker flags used to temporarily force usage of static
2983 dnl libraries.  This depends on the compiler and platform.  Use this to help
2984 dnl ensure that the linker picks up a given library based on its position in
2985 dnl the list of linker options and libraries.
2986 AC_DEFUN([CF_LDFLAGS_STATIC],[
2987
2988 if test "$GCC" = yes ; then
2989         case $cf_cv_system_name in #(
2990         OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)         #( vi
2991                 LDFLAGS_STATIC=
2992                 LDFLAGS_SHARED=
2993                 ;;
2994     *)  #( normally, except when broken
2995         LDFLAGS_STATIC=-static
2996         LDFLAGS_SHARED=-dynamic
2997         ;;
2998     esac
2999 else
3000         case $cf_cv_system_name in #(
3001         aix[[4-7]]*)    #( from ld manpage
3002                 LDFLAGS_STATIC=-bstatic
3003                 LDFLAGS_SHARED=-bdynamic
3004                 ;;
3005         hpux*)          #( from ld manpage for hpux10.20, hpux11.11
3006                 # We could also use just "archive" and "shared".
3007                 LDFLAGS_STATIC=-Wl,-a,archive_shared
3008                 LDFLAGS_SHARED=-Wl,-a,shared_archive
3009                 ;;
3010         irix*)          #( from ld manpage IRIX64
3011                 LDFLAGS_STATIC=-Bstatic
3012                 LDFLAGS_SHARED=-Bdynamic
3013                 ;;
3014         osf[[45]]*)     #( from ld manpage osf4.0d, osf5.1
3015                 # alternative "-oldstyle_liblookup" (not in cc manpage)
3016                 LDFLAGS_STATIC=-noso
3017                 LDFLAGS_SHARED=-so_archive
3018                 ;;
3019         solaris2*)
3020                 LDFLAGS_STATIC=-Bstatic
3021                 LDFLAGS_SHARED=-Bdynamic
3022                 ;;
3023         esac
3024 fi
3025
3026 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
3027 then
3028         AC_MSG_CHECKING(if linker supports switching between static/dynamic)
3029
3030         rm -f libconftest.a
3031         cat >conftest.$ac_ext <<EOF
3032 #line __oline__ "configure"
3033 #include <stdio.h>
3034 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
3035 EOF
3036         if AC_TRY_EVAL(ac_compile) ; then
3037                 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
3038                 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
3039         fi
3040         rm -f conftest.*
3041
3042         cf_save_LIBS="$LIBS"
3043
3044         LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
3045         AC_TRY_LINK([
3046 #line __oline__ "configure"
3047 #include <stdio.h>
3048 int cf_ldflags_static(FILE *fp);
3049 ],[
3050         return cf_ldflags_static(stdin);
3051 ],[
3052         # some linkers simply ignore the -dynamic
3053         case x`file conftest$ac_exeext 2>/dev/null` in #(vi
3054         *static*) # (vi
3055                 cf_ldflags_static=no
3056                 ;;
3057         *)
3058                 cf_ldflags_static=yes
3059                 ;;
3060         esac
3061 ],[cf_ldflags_static=no])
3062
3063         rm -f libconftest.*
3064         LIBS="$cf_save_LIBS"
3065
3066         AC_MSG_RESULT($cf_ldflags_static)
3067
3068         if test $cf_ldflags_static != yes
3069         then
3070                 LDFLAGS_STATIC=
3071                 LDFLAGS_SHARED=
3072         fi
3073 else
3074         LDFLAGS_STATIC=
3075         LDFLAGS_SHARED=
3076 fi
3077
3078 AC_SUBST(LDFLAGS_STATIC)
3079 AC_SUBST(LDFLAGS_SHARED)
3080 ])
3081 dnl ---------------------------------------------------------------------------
3082 dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
3083 dnl ---------------
3084 dnl For the given system and compiler, find the compiler flags to pass to the
3085 dnl loader to use the "rpath" feature.
3086 AC_DEFUN([CF_LD_RPATH_OPT],
3087 [
3088 AC_REQUIRE([CF_CHECK_CACHE])
3089
3090 LD_RPATH_OPT=
3091 AC_MSG_CHECKING(for an rpath option)
3092 case $cf_cv_system_name in #(vi
3093 irix*) #(vi
3094         if test "$GCC" = yes; then
3095                 LD_RPATH_OPT="-Wl,-rpath,"
3096         else
3097                 LD_RPATH_OPT="-rpath "
3098         fi
3099         ;;
3100 linux*|gnu*|k*bsd*-gnu) #(vi
3101         LD_RPATH_OPT="-Wl,-rpath,"
3102         ;;
3103 openbsd[[2-9]].*|mirbsd*) #(vi
3104         LD_RPATH_OPT="-Wl,-rpath,"
3105         ;;
3106 dragonfly*|freebsd*) #(vi
3107         LD_RPATH_OPT="-rpath "
3108         ;;
3109 netbsd*) #(vi
3110         LD_RPATH_OPT="-Wl,-rpath,"
3111         ;;
3112 osf*|mls+*) #(vi
3113         LD_RPATH_OPT="-rpath "
3114         ;;
3115 solaris2*) #(vi
3116         LD_RPATH_OPT="-R"
3117         ;;
3118 *)
3119         ;;
3120 esac
3121 AC_MSG_RESULT($LD_RPATH_OPT)
3122
3123 case "x$LD_RPATH_OPT" in #(vi
3124 x-R*)
3125         AC_MSG_CHECKING(if we need a space after rpath option)
3126         cf_save_LIBS="$LIBS"
3127         CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
3128         AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
3129         LIBS="$cf_save_LIBS"
3130         AC_MSG_RESULT($cf_rpath_space)
3131         test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
3132         ;;
3133 esac
3134 ])dnl
3135 dnl ---------------------------------------------------------------------------
3136 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
3137 dnl ---------------
3138 dnl Construct a search-list of directories for a nonstandard library-file
3139 dnl
3140 dnl Parameters
3141 dnl     $1 = the variable to return as result
3142 dnl     $2 = the package name
3143 AC_DEFUN([CF_LIBRARY_PATH],
3144 [
3145 $1=
3146 cf_library_path_list=""
3147 if test -n "${LDFLAGS}${LIBS}" ; then
3148         for cf_library_path in $LDFLAGS $LIBS
3149         do
3150                 case $cf_library_path in #(vi
3151                 -L*)
3152                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
3153                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
3154                         cf_library_path_list="$cf_library_path_list [$]$1"
3155                         ;;
3156                 esac
3157         done
3158 fi
3159
3160 CF_SUBDIR_PATH($1,$2,lib)
3161
3162 $1="$cf_library_path_list [$]$1"
3163 ])dnl
3164 dnl ---------------------------------------------------------------------------
3165 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
3166 dnl ------------------
3167 AC_DEFUN([CF_LIBTOOL_VERSION],[
3168 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
3169 then
3170         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.]].*//'`
3171 else
3172         cf_cv_libtool_version=
3173 fi
3174 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
3175 ])dnl
3176 dnl ---------------------------------------------------------------------------
3177 dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
3178 dnl -------------
3179 dnl Compute the library-prefix for the given host system
3180 dnl $1 = variable to set
3181 define([CF_LIB_PREFIX],
3182 [
3183         case $cf_cv_system_name in #(vi
3184         OS/2*|os2*) #(vi
3185         LIB_PREFIX=''
3186         ;;
3187         *)      LIB_PREFIX='lib'
3188         ;;
3189         esac
3190 ifelse($1,,,[$1=$LIB_PREFIX])
3191         AC_SUBST(LIB_PREFIX)
3192 ])dnl
3193 dnl ---------------------------------------------------------------------------
3194 dnl CF_LIB_RULES version: 78 updated: 2015/01/21 20:10:54
3195 dnl ------------
3196 dnl Append definitions and rules for the given models to the subdirectory
3197 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
3198 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
3199 dnl the corresponding makefile to list the models that we'll generate.
3200 dnl
3201 dnl For shared libraries, make a list of symbolic links to construct when
3202 dnl generating each library.  The convention used for Linux is the simplest
3203 dnl one:
3204 dnl     lib<name>.so    ->
3205 dnl     lib<name>.so.<major>    ->
3206 dnl     lib<name>.so.<maj>.<minor>
3207 dnl
3208 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
3209 AC_DEFUN([CF_LIB_RULES],
3210 [
3211 cf_prefix=$LIB_PREFIX
3212 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
3213
3214 case $cf_cv_shlib_version in #(vi
3215 cygdll|msysdll|mingw)
3216         TINFO_NAME=$TINFO_ARG_SUFFIX
3217         TINFO_SUFFIX=.dll
3218         ;;
3219 esac
3220
3221 if test -n "$TINFO_SUFFIX" ; then
3222         case $TINFO_SUFFIX in
3223         tw*)
3224                 TINFO_NAME="${TINFO_NAME}tw"
3225                 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^tw//'`
3226                 ;;
3227         t*)
3228                 TINFO_NAME="${TINFO_NAME}t"
3229                 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^t//'`
3230                 ;;
3231         w*)
3232                 TINFO_NAME="${TINFO_NAME}w"
3233                 TINFO_SUFFIX=`echo $TINFO_SUFFIX | sed 's/^w//'`
3234                 ;;
3235         esac
3236 fi
3237
3238 for cf_dir in $SRC_SUBDIRS
3239 do
3240         if test ! -d $srcdir/$cf_dir ; then
3241                 continue
3242         elif test -f $srcdir/$cf_dir/modules; then
3243
3244                 SHARED_LIB=
3245                 Libs_To_Make=
3246
3247                 cf_sed_options=
3248                 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
3249                 then
3250                         cf_sed_options="$cf_sed_options -e \"s/NCURSES\\([[WT]]\\+\\)\?_/NCURSES\\1${cf_cv_abi_version}_/g\""
3251                 fi
3252
3253                 if test "x$WILDCARD_SYMS" = xno
3254                 then
3255                         cf_sed_options="$cf_sed_options -e \"s/_\*;//g\""
3256                 fi
3257
3258                 if test "x$cf_sed_options" != "x"
3259                 then
3260                         cat >>$cf_dir/Makefile <<CF_EOF
3261
3262 # Generated by CF_LIB_RULES
3263 resulting.map: $UNALTERED_SYMS
3264         sed $cf_sed_options < $UNALTERED_SYMS >\[$]@
3265
3266 clean::
3267         rm -f resulting.map
3268 CF_EOF
3269                 fi
3270
3271                 for cf_item in $cf_LIST_MODELS
3272                 do
3273                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
3274                         cf_libname=$cf_dir
3275                         test "$cf_dir" = c++ && cf_libname=ncurses++
3276                         if test $cf_item = shared ; then
3277                                 if test -n "${LIB_SUFFIX}"
3278                                 then
3279                                         cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
3280                                 else
3281                                         cf_shared_suffix="$cf_suffix"
3282                                 fi
3283                                 if test "$cf_cv_do_symlinks" = yes ; then
3284                                         cf_version_name=
3285
3286                                         case "$cf_cv_shlib_version" in #(vi
3287                                         rel) #(vi
3288                                                 cf_version_name=REL_VERSION
3289                                                 ;;
3290                                         abi)
3291                                                 cf_version_name=ABI_VERSION
3292                                                 ;;
3293                                         esac
3294
3295                                         if test -n "$cf_version_name"
3296                                         then
3297                                                 case "$cf_cv_system_name" in #(vi
3298                                                 darwin*)
3299                                                         # "w", etc?
3300                                                         cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
3301                                                         ;; #(vi
3302                                                 *)
3303                                                         cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
3304                                                         ;;
3305                                                 esac
3306                                         fi
3307                                         if test -n "${LIB_SUFFIX}"
3308                                         then
3309                                                 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
3310                                         else
3311                                                 cf_shared_suffix="$cf_suffix"
3312                                         fi
3313                                 fi
3314                                 # cygwin needs import library, and has unique naming convention
3315                                 # use autodetected ${cf_prefix} for import lib and static lib, but
3316                                 # use 'cyg' prefix for shared lib.
3317                                 case $cf_cv_shlib_version in #(vi
3318                                 cygdll) #(vi
3319                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3320                                         Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}"
3321                                         continue
3322                                         ;;
3323                                 msysdll) #(vi
3324                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3325                                         Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}"
3326                                         continue
3327                                         ;;
3328                                 mingw)
3329                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
3330                                         Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}"
3331                                         continue
3332                                         ;;
3333                                 esac
3334                         fi
3335                         Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}"
3336                 done
3337
3338                 if test $cf_dir = ncurses ; then
3339                         cf_subsets="$LIB_SUBSETS"
3340                         cf_r_parts="$cf_subsets"
3341                         cf_liblist="$Libs_To_Make"
3342
3343                         while test -n "$cf_r_parts"
3344                         do
3345                                 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
3346                                 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
3347                                 if test "$cf_l_parts" != "$cf_r_parts" ; then
3348                                         cf_item=
3349                                         case $cf_l_parts in #(vi
3350                                         *termlib*) #(vi
3351                                                 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
3352                                                 ;;
3353                                         *ticlib*)
3354                                                 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
3355                                                 ;;
3356                                         *)
3357                                                 break
3358                                                 ;;
3359                                         esac
3360                                         if test -n "$cf_item"; then
3361                                                 Libs_To_Make="$cf_item $Libs_To_Make"
3362                                         fi
3363                                 else
3364                                         break
3365                                 fi
3366                         done
3367                 else
3368                         cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
3369                 fi
3370
3371                 if test $cf_dir = c++; then
3372                         if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
3373                                 cf_list=
3374                                 for cf_item in $Libs_To_Make
3375                                 do
3376                                         case $cf_item in
3377                                         *.a)
3378                                                 ;;
3379                                         *)
3380                                                 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
3381                                                 ;;
3382                                         esac
3383                                         for cf_test in $cf_list
3384                                         do
3385                                                 if test "$cf_test" = "$cf_item"
3386                                                 then
3387                                                         cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
3388                                                         cf_item=
3389                                                         break
3390                                                 fi
3391                                         done
3392                                         test -n "$cf_item" && cf_list="$cf_list $cf_item"
3393                                 done
3394                                 Libs_To_Make="$cf_list"
3395                         fi
3396                 fi
3397
3398                 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
3399                     -e "s%@SHARED_LIB@%$SHARED_LIB%" \
3400                         $cf_dir/Makefile >$cf_dir/Makefile.out
3401                 mv $cf_dir/Makefile.out $cf_dir/Makefile
3402
3403                 $AWK -f $srcdir/mk-0th.awk \
3404                         libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
3405                         $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3406
3407                 for cf_subset in $cf_subsets
3408                 do
3409                         cf_subdirs=
3410                         for cf_item in $cf_LIST_MODELS
3411                         do
3412
3413                         echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
3414                         CF_UPPER(cf_ITEM,$cf_item)
3415
3416                         CXX_MODEL=$cf_ITEM
3417                         if test "$CXX_MODEL" = SHARED; then
3418                                 case $cf_cv_shlib_version in #(vi
3419                                 cygdll|msysdll|mingw) #(vi
3420                                         test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
3421                                         with_shared_cxx=yes
3422                                         ;;
3423                                 *)
3424                                         test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
3425                                         ;;
3426                                 esac
3427                         fi
3428
3429                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
3430                         CF_OBJ_SUBDIR($cf_item,cf_subdir)
3431
3432                         # Test for case where we build libtinfo with a different name.
3433                         cf_libname=$cf_dir
3434                         if test $cf_dir = ncurses ; then
3435                                 case $cf_subset in
3436                                 *base*)
3437                                         cf_libname=${cf_libname}$LIB_SUFFIX
3438                                         ;;
3439                                 *termlib*)
3440                                         cf_libname=$TINFO_LIB_SUFFIX
3441                                         ;;
3442                                 ticlib*)
3443                                         cf_libname=$TICS_LIB_SUFFIX
3444                                         ;;
3445                                 esac
3446                         elif test $cf_dir = c++ ; then
3447                                 cf_libname=ncurses++$LIB_SUFFIX
3448                         else
3449                                 cf_libname=${cf_libname}$LIB_SUFFIX
3450                         fi
3451                         if test -n "${DFT_ARG_SUFFIX}" ; then
3452                                 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
3453                                 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
3454                         fi
3455
3456                         # These dependencies really are for development, not
3457                         # builds, but they are useful in porting, too.
3458                         cf_depend="../include/ncurses_cfg.h"
3459                         if test "$srcdir" = "."; then
3460                                 cf_reldir="."
3461                         else
3462                                 cf_reldir="\${srcdir}"
3463                         fi
3464
3465                         if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
3466                                 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
3467                         elif test -f $srcdir/$cf_dir/curses.priv.h; then
3468                                 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
3469                         fi
3470
3471                         cf_dir_suffix=
3472                         old_cf_suffix="$cf_suffix"
3473                         if test "$cf_cv_shlib_version_infix" = yes ; then
3474                         if test -n "$LIB_SUFFIX" ; then
3475                                 case $LIB_SUFFIX in
3476                                 tw*)
3477                                         cf_libname=`echo $cf_libname | sed 's/tw$//'`
3478                                         cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
3479                                         cf_dir_suffix=tw
3480                                         ;;
3481                                 t*)
3482                                         cf_libname=`echo $cf_libname | sed 's/t$//'`
3483                                         cf_suffix=`echo $cf_suffix | sed 's/^t//'`
3484                                         cf_dir_suffix=t
3485                                         ;;
3486                                 w*)
3487                                         cf_libname=`echo $cf_libname | sed 's/w$//'`
3488                                         cf_suffix=`echo $cf_suffix | sed 's/^w//'`
3489                                         cf_dir_suffix=w
3490                                         ;;
3491                                 esac
3492                         fi
3493                         fi
3494
3495                         $AWK -f $srcdir/mk-1st.awk \
3496                                 name=${cf_libname}${cf_dir_suffix} \
3497                                 traces=$LIB_TRACING \
3498                                 MODEL=$cf_ITEM \
3499                                 CXX_MODEL=$CXX_MODEL \
3500                                 model=$cf_subdir \
3501                                 prefix=$cf_prefix \
3502                                 suffix=$cf_suffix \
3503                                 subset=$cf_subset \
3504                                 driver=$cf_cv_term_driver \
3505                                 SymLink="$LN_S" \
3506                                 TermlibRoot=$TINFO_NAME \
3507                                 TermlibSuffix=$TINFO_SUFFIX \
3508                                 ShlibVer=$cf_cv_shlib_version \
3509                                 ShlibVerInfix=$cf_cv_shlib_version_infix \
3510                                 ReLink=${cf_cv_do_relink:-no} \
3511                                 DoLinks=$cf_cv_do_symlinks \
3512                                 rmSoLocs=$cf_cv_rm_so_locs \
3513                                 ldconfig="$LDCONFIG" \
3514                                 overwrite=$WITH_OVERWRITE \
3515                                 depend="$cf_depend" \
3516                                 host="$host" \
3517                                 libtool_version="$LIBTOOL_VERSION" \
3518                                 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3519
3520                         cf_suffix="$old_cf_suffix"
3521
3522                         for cf_subdir2 in $cf_subdirs lib
3523                         do
3524                                 test $cf_subdir = $cf_subdir2 && break
3525                         done
3526                         test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
3527                         $AWK -f $srcdir/mk-2nd.awk \
3528                                 name=$cf_dir \
3529                                 traces=$LIB_TRACING \
3530                                 MODEL=$cf_ITEM \
3531                                 model=$cf_subdir \
3532                                 subset=$cf_subset \
3533                                 srcdir=$srcdir \
3534                                 echo=$WITH_ECHO \
3535                                 crenames=$cf_cv_prog_CC_c_o \
3536                                 cxxrenames=$cf_cv_prog_CXX_c_o \
3537                                 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
3538                         cf_subdirs="$cf_subdirs $cf_subdir"
3539                         done
3540                 done
3541         fi
3542
3543         echo '  cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile
3544 done
3545
3546 for cf_dir in $SRC_SUBDIRS
3547 do
3548         if test ! -d $srcdir/$cf_dir ; then
3549                 continue
3550         fi
3551
3552         if test -f $cf_dir/Makefile ; then
3553                 case "$cf_dir" in
3554                 Ada95) #(vi
3555                         echo 'libs \' >> Makefile
3556                         echo 'install.libs \' >> Makefile
3557                         echo 'uninstall.libs ::' >> Makefile
3558                         echo '  cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile
3559                         ;;
3560                 esac
3561         fi
3562
3563         if test -f $srcdir/$cf_dir/modules; then
3564                 echo >> Makefile
3565                 if test -f $srcdir/$cf_dir/headers; then
3566 cat >> Makefile <<CF_EOF
3567 install.includes \\
3568 uninstall.includes \\
3569 CF_EOF
3570                 fi
3571 if test "$cf_dir" != "c++" ; then
3572 echo 'lint \' >> Makefile
3573 fi
3574 cat >> Makefile <<CF_EOF
3575 libs \\
3576 lintlib \\
3577 install.libs \\
3578 uninstall.libs \\
3579 install.$cf_dir \\
3580 uninstall.$cf_dir ::
3581         cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
3582 CF_EOF
3583         elif test -f $srcdir/$cf_dir/headers; then
3584 cat >> Makefile <<CF_EOF
3585
3586 libs \\
3587 install.libs \\
3588 uninstall.libs \\
3589 install.includes \\
3590 uninstall.includes ::
3591         cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
3592 CF_EOF
3593 fi
3594 done
3595
3596 if test "x$cf_with_db_install" = xyes; then
3597 cat >> Makefile <<CF_EOF
3598
3599 install.libs uninstall.libs \\
3600 install.data uninstall.data ::
3601 $MAKE_TERMINFO  cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
3602 CF_EOF
3603 else
3604 cat >> Makefile <<CF_EOF
3605
3606 install.libs uninstall.libs ::
3607         cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
3608 CF_EOF
3609 fi
3610
3611 if test "x$cf_with_manpages" = xyes; then
3612 cat >> Makefile <<CF_EOF
3613
3614 install.man \\
3615 uninstall.man ::
3616         cd man && \${MAKE} \${TOP_MFLAGS} \[$]@
3617 CF_EOF
3618 fi
3619
3620 cat >> Makefile <<CF_EOF
3621
3622 distclean ::
3623         rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
3624         rm -f headers.sh headers.sed mk_shared_lib.sh
3625         rm -f edit_man.* man_alias.*
3626         rm -rf \${DIRS_TO_MAKE}
3627 CF_EOF
3628
3629 # Special case: tack's manpage lives in its own directory.
3630 if test "x$cf_with_manpages" = xyes; then
3631 if test -d tack ; then
3632 if test -f $srcdir/$tack.h; then
3633 cat >> Makefile <<CF_EOF
3634
3635 install.man \\
3636 uninstall.man ::
3637         cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@
3638 CF_EOF
3639 fi
3640 fi
3641 fi
3642
3643 dnl If we're installing into a subdirectory of /usr/include, etc., we should
3644 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
3645 dnl anything, and will make it more standardized.  It's awkward to decide this
3646 dnl at configuration because of quoting, so we'll simply make all headers
3647 dnl installed via a script that can do the right thing.
3648
3649 rm -f headers.sed headers.sh
3650
3651 dnl ( generating this script makes the makefiles a little tidier :-)
3652 echo creating headers.sh
3653 cat >headers.sh <<CF_EOF
3654 #! /bin/sh
3655 # This shell script is generated by the 'configure' script.  It is invoked in a
3656 # subdirectory of the build tree.  It generates a sed-script in the parent
3657 # directory that is used to adjust includes for header files that reside in a
3658 # subdirectory of /usr/include, etc.
3659 PRG=""
3660 while test \[$]# != 3
3661 do
3662 PRG="\$PRG \[$]1"; shift
3663 done
3664 DST=\[$]1
3665 REF=\[$]2
3666 SRC=\[$]3
3667 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
3668 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
3669 echo installing \$SRC in \$DST
3670 CF_EOF
3671
3672 if test $WITH_CURSES_H = yes; then
3673         cat >>headers.sh <<CF_EOF
3674 case \$DST in
3675 /*/include/*)
3676         END=\`basename \$DST\`
3677         for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
3678         do
3679                 NAME=\`basename \$i\`
3680                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
3681         done
3682         ;;
3683 *)
3684         echo "" >> \$TMPSED
3685         ;;
3686 esac
3687 CF_EOF
3688
3689 else
3690         cat >>headers.sh <<CF_EOF
3691 case \$DST in
3692 /*/include/*)
3693         END=\`basename \$DST\`
3694         for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
3695         do
3696                 NAME=\`basename \$i\`
3697                 if test "\$NAME" = "curses.h"
3698                 then
3699                         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
3700                         NAME=ncurses.h
3701                 fi
3702                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
3703         done
3704         ;;
3705 *)
3706         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
3707         ;;
3708 esac
3709 CF_EOF
3710 fi
3711 cat >>headers.sh <<CF_EOF
3712 rm -f \$TMPSRC
3713 sed -f \$TMPSED \$SRC > \$TMPSRC
3714 NAME=\`basename \$SRC\`
3715 CF_EOF
3716 if test $WITH_CURSES_H != yes; then
3717         cat >>headers.sh <<CF_EOF
3718 test "\$NAME" = "curses.h" && NAME=ncurses.h
3719 CF_EOF
3720 fi
3721 cat >>headers.sh <<CF_EOF
3722 # Just in case someone gzip'd manpages, remove the conflicting copy.
3723 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
3724
3725 eval \$PRG \$TMPSRC \$DST/\$NAME
3726 rm -f \$TMPSRC \$TMPSED
3727 CF_EOF
3728
3729 chmod 0755 headers.sh
3730
3731 for cf_dir in $SRC_SUBDIRS
3732 do
3733         if test ! -d $srcdir/$cf_dir ; then
3734                 continue
3735         fi
3736
3737         if test -f $srcdir/$cf_dir/headers; then
3738                 $AWK -f $srcdir/mk-hdr.awk \
3739                         subset="$LIB_SUBSETS" \
3740                         compat="$WITH_CURSES_H" \
3741                         $srcdir/$cf_dir/headers >>$cf_dir/Makefile
3742         fi
3743
3744         if test -f $srcdir/$cf_dir/modules; then
3745                 if test "$cf_dir" != "c++" ; then
3746                         cat >>$cf_dir/Makefile <<"CF_EOF"
3747 depend : ${AUTO_SRC}
3748         makedepend -- ${CPPFLAGS} -- ${C_SRC}
3749
3750 # DO NOT DELETE THIS LINE -- make depend depends on it.
3751 CF_EOF
3752                 fi
3753         fi
3754 done
3755 AC_SUBST(Libs_To_Make)
3756 ])dnl
3757 dnl ---------------------------------------------------------------------------
3758 dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
3759 dnl -------------
3760 dnl Find the and soname for the given shared library.  Set the cache variable
3761 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
3762 dnl variable to "unknown".
3763 dnl
3764 dnl $1 = headers
3765 dnl $2 = code
3766 dnl $3 = library name
3767 AC_DEFUN([CF_LIB_SONAME],
3768 [
3769 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
3770
3771 cf_cv_$3_soname=unknown
3772 if test "$cross_compiling" != yes ; then
3773 cat >conftest.$ac_ext <<CF_EOF
3774 $1
3775 int main()
3776 {
3777 $2
3778         ${cf_cv_main_return:-return}(0);
3779 }
3780 CF_EOF
3781 cf_save_LIBS="$LIBS"
3782         CF_ADD_LIB($3)
3783         if AC_TRY_EVAL(ac_compile) ; then
3784                 if AC_TRY_EVAL(ac_link) ; then
3785                         cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
3786                         test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
3787                 fi
3788         fi
3789 rm -rf conftest*
3790 LIBS="$cf_save_LIBS"
3791 fi
3792 ])
3793 ])
3794 dnl ---------------------------------------------------------------------------
3795 dnl CF_LIB_SUFFIX version: 23 updated: 2014/06/21 17:47:12
3796 dnl -------------
3797 dnl Compute the library file-suffix from the given model name
3798 dnl $1 = model name
3799 dnl $2 = variable to set (the nominal library suffix)
3800 dnl $3 = dependency variable to set (actual filename)
3801 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3802 AC_DEFUN([CF_LIB_SUFFIX],
3803 [
3804         case X$1 in #(vi
3805         Xlibtool) #(vi
3806                 $2='.la'
3807                 $3=[$]$2
3808                 ;;
3809         Xdebug) #(vi
3810                 $2='_g.a'
3811                 $3=[$]$2
3812                 ;;
3813         Xprofile) #(vi
3814                 $2='_p.a'
3815                 $3=[$]$2
3816                 ;;
3817         Xshared) #(vi
3818                 case $cf_cv_system_name in
3819                 aix[[5-7]]*) #(vi
3820                         $2='.so'
3821                         $3=[$]$2
3822                         ;;
3823                 cygwin*|msys*|mingw*) #(vi
3824                         $2='.dll'
3825                         $3='.dll.a'
3826                         ;;
3827                 darwin*) #(vi
3828                         $2='.dylib'
3829                         $3=[$]$2
3830                         ;;
3831                 hpux*) #(vi
3832                         case $target in
3833                         ia64*) #(vi
3834                                 $2='.so'
3835                                 $3=[$]$2
3836                                 ;;
3837                         *) #(vi
3838                                 $2='.sl'
3839                                 $3=[$]$2
3840                                 ;;
3841                         esac
3842                         ;;
3843                 *) #(vi
3844                         $2='.so'
3845                         $3=[$]$2
3846                         ;;
3847                 esac
3848                 ;;
3849         *)
3850                 $2='.a'
3851                 $3=[$]$2
3852                 ;;
3853         esac
3854         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3855         test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
3856 ])dnl
3857 dnl ---------------------------------------------------------------------------
3858 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
3859 dnl -----------
3860 dnl Compute the string to append to -library from the given model name
3861 dnl $1 = model name
3862 dnl $2 = variable to set
3863 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3864 AC_DEFUN([CF_LIB_TYPE],
3865 [
3866         case $1 in
3867         libtool) $2=''   ;;
3868         normal)  $2=''   ;;
3869         debug)   $2='_g' ;;
3870         profile) $2='_p' ;;
3871         shared)  $2=''   ;;
3872         esac
3873         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3874 ])dnl
3875 dnl ---------------------------------------------------------------------------
3876 dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
3877 dnl ----------------
3878 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
3879 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
3880 dnl have to provide wrappers for global tables to ensure they're linked
3881 dnl properly.
3882 AC_DEFUN([CF_LINK_DATAONLY],
3883 [
3884 AC_MSG_CHECKING([if data-only library module links])
3885 AC_CACHE_VAL(cf_cv_link_dataonly,[
3886         rm -f conftest.a
3887         cat >conftest.$ac_ext <<EOF
3888 #line __oline__ "configure"
3889 int     testdata[[3]] = { 123, 456, 789 };
3890 EOF
3891         if AC_TRY_EVAL(ac_compile) ; then
3892                 mv conftest.o data.o && \
3893                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
3894         fi
3895         rm -f conftest.$ac_ext data.o
3896         cat >conftest.$ac_ext <<EOF
3897 #line __oline__ "configure"
3898 int     testfunc()
3899 {
3900 #if defined(NeXT)
3901         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
3902 #else
3903         extern int testdata[[3]];
3904         return testdata[[0]] == 123
3905            &&  testdata[[1]] == 456
3906            &&  testdata[[2]] == 789;
3907 #endif
3908 }
3909 EOF
3910         if AC_TRY_EVAL(ac_compile); then
3911                 mv conftest.o func.o && \
3912                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
3913         fi
3914         rm -f conftest.$ac_ext func.o
3915         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
3916         cf_saveLIBS="$LIBS"
3917         LIBS="conftest.a $LIBS"
3918         AC_TRY_RUN([
3919         int main()
3920         {
3921                 extern int testfunc();
3922                 ${cf_cv_main_return:-return} (!testfunc());
3923         }
3924         ],
3925         [cf_cv_link_dataonly=yes],
3926         [cf_cv_link_dataonly=no],
3927         [cf_cv_link_dataonly=unknown])
3928         LIBS="$cf_saveLIBS"
3929         ])
3930 AC_MSG_RESULT($cf_cv_link_dataonly)
3931
3932 if test "$cf_cv_link_dataonly" = no ; then
3933         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
3934         BROKEN_LINKER=1
3935 fi
3936
3937 ])dnl
3938 dnl ---------------------------------------------------------------------------
3939 dnl CF_LINK_FUNCS version: 8 updated: 2012/10/06 17:56:13
3940 dnl -------------
3941 dnl Most Unix systems have both link and symlink, a few don't have symlink.
3942 dnl A few non-Unix systems implement symlink, but not link.
3943 dnl A few non-systems implement neither (or have nonfunctional versions).
3944 AC_DEFUN([CF_LINK_FUNCS],
3945 [
3946 AC_CHECK_FUNCS( \
3947         remove \
3948         unlink )
3949
3950 if test "$cross_compiling" = yes ; then
3951         AC_CHECK_FUNCS( \
3952                 link \
3953                 symlink )
3954 else
3955         AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
3956                 cf_cv_link_funcs=
3957                 for cf_func in link symlink ; do
3958                         AC_TRY_RUN([
3959 #include <sys/types.h>
3960 #include <sys/stat.h>
3961 #ifdef HAVE_UNISTD_H
3962 #include <unistd.h>
3963 #endif
3964 int main()
3965 {
3966         int fail = 0;
3967         char *src = "config.log";
3968         char *dst = "conftest.chk";
3969         struct stat src_sb;
3970         struct stat dst_sb;
3971
3972         stat(src, &src_sb);
3973         fail = ($cf_func("config.log", "conftest.chk") < 0)
3974             || (stat(dst, &dst_sb) < 0)
3975             || (dst_sb.st_mtime != src_sb.st_mtime);
3976 #ifdef HAVE_UNLINK
3977         unlink(dst);
3978 #else
3979         remove(dst);
3980 #endif
3981         ${cf_cv_main_return:-return} (fail);
3982 }
3983                         ],[
3984                         cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
3985                         eval 'ac_cv_func_'$cf_func'=yes'],[
3986                         eval 'ac_cv_func_'$cf_func'=no'],[
3987                         eval 'ac_cv_func_'$cf_func'=error'])
3988                 done
3989                 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
3990         ])
3991         test "$ac_cv_func_link"    = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
3992         test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
3993 fi
3994 ])dnl
3995 dnl ---------------------------------------------------------------------------
3996 dnl CF_MAKEFLAGS version: 15 updated: 2014/05/10 16:43:23
3997 dnl ------------
3998 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
3999 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
4000 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
4001 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
4002 AC_DEFUN([CF_MAKEFLAGS],
4003 [
4004 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
4005         cf_cv_makeflags=''
4006         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
4007         do
4008                 cat >cf_makeflags.tmp <<CF_EOF
4009 SHELL = /bin/sh
4010 all :
4011         @ echo '.$cf_option'
4012 CF_EOF
4013                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[   ]]*$,,'`
4014                 case "$cf_result" in
4015                 .*k|.*kw)
4016                         cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
4017                         case "$cf_result" in
4018                         .*CC=*) cf_cv_makeflags=
4019                                 ;;
4020                         *)      cf_cv_makeflags=$cf_option
4021                                 ;;
4022                         esac
4023                         break
4024                         ;;
4025                 .-)     ;;
4026                 *)      echo "given option \"$cf_option\", no match \"$cf_result\""
4027                         ;;
4028                 esac
4029         done
4030         rm -f cf_makeflags.tmp
4031 ])
4032
4033 AC_SUBST(cf_cv_makeflags)
4034 ])dnl
4035 dnl ---------------------------------------------------------------------------
4036 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
4037 dnl ------------
4038 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
4039 dnl a monocase filesystem.
4040 AC_DEFUN([CF_MAKE_TAGS],[
4041 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
4042
4043 AC_CHECK_PROGS(CTAGS, exctags ctags)
4044 AC_CHECK_PROGS(ETAGS, exetags etags)
4045
4046 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
4047
4048 if test "$cf_cv_mixedcase" = yes ; then
4049         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
4050 else
4051         MAKE_UPPER_TAGS=no
4052 fi
4053
4054 if test "$MAKE_UPPER_TAGS" = yes ; then
4055         MAKE_UPPER_TAGS=
4056 else
4057         MAKE_UPPER_TAGS="#"
4058 fi
4059
4060 if test "$MAKE_LOWER_TAGS" = yes ; then
4061         MAKE_LOWER_TAGS=
4062 else
4063         MAKE_LOWER_TAGS="#"
4064 fi
4065
4066 AC_SUBST(CTAGS)
4067 AC_SUBST(ETAGS)
4068
4069 AC_SUBST(MAKE_UPPER_TAGS)
4070 AC_SUBST(MAKE_LOWER_TAGS)
4071 ])dnl
4072 dnl ---------------------------------------------------------------------------
4073 dnl CF_MANPAGE_FORMAT version: 9 updated: 2010/10/23 16:10:30
4074 dnl -----------------
4075 dnl Option to allow user to override automatic configuration of manpage format.
4076 dnl There are several special cases:
4077 dnl
4078 dnl     gzip - man checks for, can display gzip'd files
4079 dnl     compress - man checks for, can display compressed files
4080 dnl     BSDI - files in the cat-directories are suffixed ".0"
4081 dnl     formatted - installer should format (put files in cat-directory)
4082 dnl     catonly - installer should only format, e.g., for a turnkey system.
4083 dnl
4084 dnl There are other configurations which this macro does not test, e.g., HPUX's
4085 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
4086 dnl convention would not match our use).
4087 AC_DEFUN([CF_MANPAGE_FORMAT],
4088 [
4089 AC_REQUIRE([CF_PATHSEP])
4090 AC_MSG_CHECKING(format of man-pages)
4091
4092 AC_ARG_WITH(manpage-format,
4093         [  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
4094                           optionally formatted/catonly, e.g., gzip,formatted],
4095         [MANPAGE_FORMAT=$withval],
4096         [MANPAGE_FORMAT=unknown])
4097
4098 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
4099 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
4100
4101 cf_unknown=
4102
4103 case $MANPAGE_FORMAT in
4104 unknown)
4105   if test -z "$MANPATH" ; then
4106     MANPATH="/usr/man:/usr/share/man"
4107   fi
4108
4109   # look for the 'date' man-page (it's most likely to be installed!)
4110   MANPAGE_FORMAT=
4111   cf_preform=no
4112   cf_catonly=yes
4113   cf_example=date
4114
4115   IFS="${IFS:-  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
4116   for cf_dir in $MANPATH; do
4117     test -z "$cf_dir" && cf_dir=/usr/man
4118     for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
4119     do
4120       cf_test=`echo $cf_name | sed -e 's/*//'`
4121       if test "x$cf_test" = "x$cf_name" ; then
4122
4123         case "$cf_name" in
4124         *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
4125         *.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
4126         *.0)    MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
4127         *)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
4128         esac
4129
4130         case "$cf_name" in
4131         $cf_dir/man*)
4132           cf_catonly=no
4133           ;;
4134         $cf_dir/cat*)
4135           cf_preform=yes
4136           ;;
4137         esac
4138         break
4139       fi
4140
4141       # if we found a match in either man* or cat*, stop looking
4142       if test -n "$MANPAGE_FORMAT" ; then
4143         cf_found=no
4144         test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
4145         test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
4146         case "$cf_name" in
4147         $cf_dir/cat*)
4148           cf_found=yes
4149           ;;
4150         esac
4151         test $cf_found=yes && break
4152       fi
4153     done
4154     # only check the first directory in $MANPATH where we find manpages
4155     if test -n "$MANPAGE_FORMAT" ; then
4156        break
4157     fi
4158   done
4159   # if we did not find the example, just assume it is normal
4160   test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
4161   IFS="$ac_save_ifs"
4162   ;;
4163 *)
4164   for cf_option in $MANPAGE_FORMAT; do
4165      case $cf_option in #(vi
4166      gzip|compress|BSDI|normal|formatted|catonly)
4167        ;;
4168      *)
4169        cf_unknown="$cf_unknown $cf_option"
4170        ;;
4171      esac
4172   done
4173   ;;
4174 esac
4175
4176 AC_MSG_RESULT($MANPAGE_FORMAT)
4177 if test -n "$cf_unknown" ; then
4178   AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
4179 fi
4180 ])dnl
4181 dnl ---------------------------------------------------------------------------
4182 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
4183 dnl ------------------
4184 dnl The Debian people have their own naming convention for manpages.  This
4185 dnl option lets us override the name of the file containing renaming, or
4186 dnl disable it altogether.
4187 AC_DEFUN([CF_MANPAGE_RENAMES],
4188 [
4189 AC_MSG_CHECKING(for manpage renaming)
4190
4191 AC_ARG_WITH(manpage-renames,
4192         [  --with-manpage-renames  specify manpage-renaming],
4193         [MANPAGE_RENAMES=$withval],
4194         [MANPAGE_RENAMES=yes])
4195
4196 case ".$MANPAGE_RENAMES" in #(vi
4197 .no) #(vi
4198   ;;
4199 .|.yes)
4200   # Debian 'man' program?
4201   if test -f /etc/debian_version ; then
4202     MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
4203   else
4204     MANPAGE_RENAMES=no
4205   fi
4206   ;;
4207 esac
4208
4209 if test "$MANPAGE_RENAMES" != no ; then
4210   if test -f $srcdir/man/$MANPAGE_RENAMES ; then
4211     MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
4212   elif test ! -f $MANPAGE_RENAMES ; then
4213     AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
4214   fi
4215
4216   test ! -d man && mkdir man
4217
4218   # Construct a sed-script to perform renaming within man-pages
4219   if test -n "$MANPAGE_RENAMES" ; then
4220     test ! -d man && mkdir man
4221     sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
4222   fi
4223 fi
4224
4225 AC_MSG_RESULT($MANPAGE_RENAMES)
4226 AC_SUBST(MANPAGE_RENAMES)
4227 ])dnl
4228 dnl ---------------------------------------------------------------------------
4229 dnl CF_MANPAGE_SYMLINKS version: 5 updated: 2010/07/24 17:12:40
4230 dnl -------------------
4231 dnl Some people expect each tool to make all aliases for manpages in the
4232 dnl man-directory.  This accommodates the older, less-capable implementations
4233 dnl of 'man', and is optional.
4234 AC_DEFUN([CF_MANPAGE_SYMLINKS],
4235 [
4236 AC_MSG_CHECKING(if manpage aliases will be installed)
4237
4238 AC_ARG_WITH(manpage-aliases,
4239         [  --with-manpage-aliases  specify manpage-aliases using .so],
4240         [MANPAGE_ALIASES=$withval],
4241         [MANPAGE_ALIASES=yes])
4242
4243 AC_MSG_RESULT($MANPAGE_ALIASES)
4244
4245 case "x$LN_S" in #(vi
4246 xln*) #(vi
4247         cf_use_symlinks=yes
4248         ;;
4249 *)
4250         cf_use_symlinks=no
4251         ;;
4252 esac
4253
4254 MANPAGE_SYMLINKS=no
4255 if test "$MANPAGE_ALIASES" = yes ; then
4256 AC_MSG_CHECKING(if manpage symlinks should be used)
4257
4258 AC_ARG_WITH(manpage-symlinks,
4259         [  --with-manpage-symlinks specify manpage-aliases using symlinks],
4260         [MANPAGE_SYMLINKS=$withval],
4261         [MANPAGE_SYMLINKS=$cf_use_symlinks])
4262
4263 if test "$$cf_use_symlinks" = no; then
4264 if test "$MANPAGE_SYMLINKS" = yes ; then
4265         AC_MSG_WARN(cannot make symlinks, will use .so files)
4266         MANPAGE_SYMLINKS=no
4267 fi
4268 fi
4269
4270 AC_MSG_RESULT($MANPAGE_SYMLINKS)
4271 fi
4272
4273 ])dnl
4274 dnl ---------------------------------------------------------------------------
4275 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
4276 dnl --------------
4277 dnl This option causes manpages to be run through tbl(1) to generate tables
4278 dnl correctly.
4279 AC_DEFUN([CF_MANPAGE_TBL],
4280 [
4281 AC_MSG_CHECKING(for manpage tbl)
4282
4283 AC_ARG_WITH(manpage-tbl,
4284         [  --with-manpage-tbl      specify manpage processing with tbl],
4285         [MANPAGE_TBL=$withval],
4286         [MANPAGE_TBL=no])
4287
4288 AC_MSG_RESULT($MANPAGE_TBL)
4289 ])dnl
4290 dnl ---------------------------------------------------------------------------
4291 dnl CF_MAN_PAGES version: 43 updated: 2013/02/09 12:53:45
4292 dnl ------------
4293 dnl Try to determine if the man-pages on the system are compressed, and if
4294 dnl so, what format is used.  Use this information to construct a script that
4295 dnl will install man-pages.
4296 AC_DEFUN([CF_MAN_PAGES],
4297 [
4298 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
4299 CF_MANPAGE_FORMAT
4300 CF_MANPAGE_RENAMES
4301 CF_MANPAGE_SYMLINKS
4302 CF_MANPAGE_TBL
4303
4304   if test "$prefix" = "NONE" ; then
4305      cf_prefix="$ac_default_prefix"
4306   else
4307      cf_prefix="$prefix"
4308   fi
4309
4310   case "$MANPAGE_FORMAT" in # (vi
4311   *catonly*) # (vi
4312     cf_format=yes
4313     cf_inboth=no
4314     ;;
4315   *formatted*) # (vi
4316     cf_format=yes
4317     cf_inboth=yes
4318     ;;
4319   *)
4320     cf_format=no
4321     cf_inboth=no
4322     ;;
4323   esac
4324
4325 test ! -d man && mkdir man
4326
4327 cf_so_strip=
4328 cf_compress=
4329 case "$MANPAGE_FORMAT" in #(vi
4330 *compress*) #(vi
4331         cf_so_strip="Z"
4332         cf_compress=compress
4333   ;;
4334 *gzip*)
4335         cf_so_strip="gz"
4336         cf_compress=gzip
4337   ;;
4338 esac
4339
4340 cf_edit_man=./edit_man.sh
4341 cf_man_alias=`pwd`/man_alias.sed
4342
4343 cat >$cf_edit_man <<CF_EOF
4344 #! /bin/sh
4345 # this script is generated by the configure-script CF_MAN_PAGES macro.
4346
4347 prefix="$cf_prefix"
4348 datarootdir="$datarootdir"
4349 datadir="$datadir"
4350
4351 NCURSES_MAJOR="$NCURSES_MAJOR"
4352 NCURSES_MINOR="$NCURSES_MINOR"
4353 NCURSES_PATCH="$NCURSES_PATCH"
4354
4355 NCURSES_OSPEED="$NCURSES_OSPEED"
4356 TERMINFO="$TERMINFO"
4357
4358 INSTALL="$INSTALL"
4359 INSTALL_DATA="$INSTALL_DATA"
4360
4361 transform="$program_transform_name"
4362
4363 TMP=\${TMPDIR:=/tmp}/man\$\$
4364 trap "rm -f \$TMP" 0 1 2 5 15
4365
4366 form=\[$]1
4367 shift || exit 1
4368
4369 verb=\[$]1
4370 shift || exit 1
4371
4372 mandir=\[$]1
4373 shift || exit 1
4374
4375 srcdir=\[$]1
4376 top_srcdir=\[$]srcdir/..
4377 shift || exit 1
4378
4379 if test "\$form" = normal ; then
4380         if test "$cf_format" = yes ; then
4381         if test "$cf_inboth" = no ; then
4382                 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
4383                 exit $?
4384         fi
4385         fi
4386         cf_subdir=\$mandir/man
4387         cf_tables=$MANPAGE_TBL
4388 else
4389         cf_subdir=\$mandir/cat
4390         cf_tables=yes
4391 fi
4392
4393 # process the list of source-files
4394 for i in \[$]* ; do
4395 case \$i in #(vi
4396 *.orig|*.rej) ;; #(vi
4397 *.[[0-9]]*)
4398         section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
4399         if test \$verb = installing ; then
4400         if test ! -d \$cf_subdir\${section} ; then
4401                 mkdir -p \$cf_subdir\$section
4402         fi
4403         fi
4404
4405         # replace variables in man page
4406         if test ! -f $cf_man_alias ; then
4407 cat >>$cf_man_alias <<-CF_EOF2
4408                 s,@DATADIR@,\$datadir,g
4409                 s,@TERMINFO@,\${TERMINFO:="no default value"},g
4410                 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
4411                 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
4412                 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
4413                 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
4414                 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
4415 CF_EOF
4416         ifelse($1,,,[
4417         for cf_name in $1
4418         do
4419                 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4420                 cf_name=`echo $cf_name|sed "$program_transform_name"`
4421 cat >>$cf_edit_man <<-CF_EOF
4422                 s,@$cf_NAME@,$cf_name,g
4423 CF_EOF
4424         done
4425         ])
4426 cat >>$cf_edit_man <<CF_EOF
4427 CF_EOF2
4428                 echo "...made $cf_man_alias"
4429         fi
4430
4431         aliases=
4432         cf_source=\`basename \$i\`
4433         inalias=\$cf_source
4434         test ! -f \$inalias && inalias="\$srcdir/\$inalias"
4435         if test ! -f \$inalias ; then
4436                 echo .. skipped \$cf_source
4437                 continue
4438         fi
4439 CF_EOF
4440
4441 if test "$MANPAGE_ALIASES" != no ; then
4442 cat >>$cf_edit_man <<CF_EOF
4443         nCurses=ignore.3x
4444         test $with_curses_h = yes && nCurses=ncurses.3x
4445         aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u; test \$inalias = \$nCurses && echo curses\`
4446 CF_EOF
4447 fi
4448
4449 if test "$MANPAGE_RENAMES" = no ; then
4450 cat >>$cf_edit_man <<CF_EOF
4451         # perform program transformations for section 1 man pages
4452         if test \$section = 1 ; then
4453                 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
4454         else
4455                 cf_target=\$cf_subdir\${section}/\$cf_source
4456         fi
4457 CF_EOF
4458 else
4459 cat >>$cf_edit_man <<CF_EOF
4460         cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
4461         if test -z "\$cf_target" ; then
4462                 echo '? missing rename for '\$cf_source
4463                 cf_target="\$cf_source"
4464         fi
4465         cf_target="\$cf_subdir\${section}/\${cf_target}"
4466
4467 CF_EOF
4468 fi
4469
4470 cat >>$cf_edit_man <<CF_EOF
4471         sed     -f $cf_man_alias \\
4472 CF_EOF
4473
4474 if test -f $MANPAGE_RENAMES ; then
4475 cat >>$cf_edit_man <<CF_EOF
4476                 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
4477 CF_EOF
4478 else
4479 cat >>$cf_edit_man <<CF_EOF
4480                 < \$i >\$TMP
4481 CF_EOF
4482 fi
4483
4484 cat >>$cf_edit_man <<CF_EOF
4485 if test \$cf_tables = yes ; then
4486         tbl \$TMP >\$TMP.out
4487         mv \$TMP.out \$TMP
4488 fi
4489 CF_EOF
4490
4491 if test $with_overwrite != yes ; then
4492 cat >>$cf_edit_man <<CF_EOF
4493         sed -e "/\#[    ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
4494         mv \$TMP.out \$TMP
4495 CF_EOF
4496 fi
4497
4498 if test $with_curses_h != yes ; then
4499 cat >>$cf_edit_man <<CF_EOF
4500         sed -e "/\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
4501         mv \$TMP.out \$TMP
4502 CF_EOF
4503 fi
4504
4505 cat >>$cf_edit_man <<CF_EOF
4506         if test \$form = format ; then
4507                 nroff -man \$TMP >\$TMP.out
4508                 mv \$TMP.out \$TMP
4509         fi
4510 CF_EOF
4511
4512 if test -n "$cf_compress" ; then
4513 cat >>$cf_edit_man <<CF_EOF
4514         if test \$verb = installing ; then
4515         if ( $cf_compress -f \$TMP )
4516         then
4517                 mv \$TMP.$cf_so_strip \$TMP
4518         fi
4519         fi
4520         cf_target="\$cf_target.$cf_so_strip"
4521 CF_EOF
4522 fi
4523
4524 case "$MANPAGE_FORMAT" in #(vi
4525 *BSDI*)
4526 cat >>$cf_edit_man <<CF_EOF
4527         if test \$form = format ; then
4528                 # BSDI installs only .0 suffixes in the cat directories
4529                 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
4530         fi
4531 CF_EOF
4532   ;;
4533 esac
4534
4535 cat >>$cf_edit_man <<CF_EOF
4536         suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
4537         if test \$verb = installing ; then
4538                 echo \$verb \$cf_target
4539                 \$INSTALL_DATA \$TMP \$cf_target
4540                 test -d \$cf_subdir\${section} &&
4541                 test -n "\$aliases" && (
4542                         cd \$cf_subdir\${section} && (
4543                                 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
4544                                 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
4545                                 cf_target=\`basename \$cf_target\`
4546                                 for cf_alias in \$aliases
4547                                 do
4548                                         if test \$section = 1 ; then
4549                                                 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
4550                                         fi
4551
4552                                         if test "$MANPAGE_SYMLINKS" = yes ; then
4553                                                 if test -f \$cf_alias\${suffix} ; then
4554                                                         if ( cmp -s \$cf_target \$cf_alias\${suffix} )
4555                                                         then
4556                                                                 continue
4557                                                         fi
4558                                                 fi
4559                                                 echo .. \$verb alias \$cf_alias\${suffix}
4560 CF_EOF
4561 case "x$LN_S" in #(vi
4562 *-f) #(vi
4563 cat >>$cf_edit_man <<CF_EOF
4564                                                 $LN_S \$cf_target \$cf_alias\${suffix}
4565 CF_EOF
4566         ;;
4567 *)
4568 cat >>$cf_edit_man <<CF_EOF
4569                                                 rm -f \$cf_alias\${suffix}
4570                                                 $LN_S \$cf_target \$cf_alias\${suffix}
4571 CF_EOF
4572         ;;
4573 esac
4574 cat >>$cf_edit_man <<CF_EOF
4575                                         elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
4576                                                 echo ".so \$cf_source" >\$TMP
4577 CF_EOF
4578 if test -n "$cf_compress" ; then
4579 cat >>$cf_edit_man <<CF_EOF
4580                                                 if test -n "$cf_so_strip" ; then
4581                                                         $cf_compress -f \$TMP
4582                                                         mv \$TMP.$cf_so_strip \$TMP
4583                                                 fi
4584 CF_EOF
4585 fi
4586 cat >>$cf_edit_man <<CF_EOF
4587                                                 echo .. \$verb alias \$cf_alias\${suffix}
4588                                                 rm -f \$cf_alias\${suffix}
4589                                                 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
4590                                         fi
4591                                 done
4592                         )
4593                 )
4594         elif test \$verb = removing ; then
4595                 test -f \$cf_target && (
4596                         echo \$verb \$cf_target
4597                         rm -f \$cf_target
4598                 )
4599                 test -d \$cf_subdir\${section} &&
4600                 test -n "\$aliases" && (
4601                         cd \$cf_subdir\${section} && (
4602                                 for cf_alias in \$aliases
4603                                 do
4604                                         if test \$section = 1 ; then
4605                                                 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
4606                                         fi
4607
4608                                         echo .. \$verb alias \$cf_alias\${suffix}
4609                                         rm -f \$cf_alias\${suffix}
4610                                 done
4611                         )
4612                 )
4613         else
4614 #               echo ".hy 0"
4615                 cat \$TMP
4616         fi
4617         ;;
4618 esac
4619 done
4620
4621 if test $cf_inboth = yes ; then
4622 if test \$form != format ; then
4623         sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
4624 fi
4625 fi
4626
4627 exit 0
4628 CF_EOF
4629 chmod 755 $cf_edit_man
4630
4631 ])dnl
4632 dnl ---------------------------------------------------------------------------
4633 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
4634 dnl -----------
4635 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
4636 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
4637 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
4638 AC_DEFUN([CF_MATH_LIB],
4639 [
4640 AC_CACHE_CHECK(if -lm needed for math functions,
4641         cf_cv_need_libm,[
4642         AC_TRY_LINK([
4643         #include <stdio.h>
4644         #include <math.h>
4645         ],
4646         [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
4647         [cf_cv_need_libm=no],
4648         [cf_cv_need_libm=yes])])
4649 if test "$cf_cv_need_libm" = yes
4650 then
4651 ifelse($1,,[
4652         CF_ADD_LIB(m)
4653 ],[$1=-lm])
4654 fi
4655 ])
4656 dnl ---------------------------------------------------------------------------
4657 dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05
4658 dnl ----------------------
4659 dnl Check if the file-system supports mixed-case filenames.  If we're able to
4660 dnl create a lowercase name and see it as uppercase, it doesn't support that.
4661 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
4662 [
4663 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
4664 if test "$cross_compiling" = yes ; then
4665         case $target_alias in #(vi
4666         *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
4667                 cf_cv_mixedcase=no
4668                 ;;
4669         *)
4670                 cf_cv_mixedcase=yes
4671                 ;;
4672         esac
4673 else
4674         rm -f conftest CONFTEST
4675         echo test >conftest
4676         if test -f CONFTEST ; then
4677                 cf_cv_mixedcase=no
4678         else
4679                 cf_cv_mixedcase=yes
4680         fi
4681         rm -f conftest CONFTEST
4682 fi
4683 ])
4684 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
4685 ])dnl
4686 dnl ---------------------------------------------------------------------------
4687 dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
4688 dnl ----------
4689 dnl Check for a working mkstemp.  This creates two files, checks that they are
4690 dnl successfully created and distinct (AmigaOS apparently fails on the last).
4691 AC_DEFUN([CF_MKSTEMP],[
4692 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
4693 rm -rf conftest*
4694 AC_TRY_RUN([
4695 #include <sys/types.h>
4696 #include <stdlib.h>
4697 #include <stdio.h>
4698 #include <string.h>
4699 #include <sys/stat.h>
4700 int main()
4701 {
4702         char *tmpl = "conftestXXXXXX";
4703         char name[2][80];
4704         int n;
4705         int result = 0;
4706         int fd;
4707         struct stat sb;
4708
4709         umask(077);
4710         for (n = 0; n < 2; ++n) {
4711                 strcpy(name[n], tmpl);
4712                 if ((fd = mkstemp(name[n])) >= 0) {
4713                         if (!strcmp(name[n], tmpl)
4714                          || stat(name[n], &sb) != 0
4715                          || (sb.st_mode & S_IFMT) != S_IFREG
4716                          || (sb.st_mode & 077) != 0) {
4717                                 result = 1;
4718                         }
4719                         close(fd);
4720                 }
4721         }
4722         if (result == 0
4723          && !strcmp(name[0], name[1]))
4724                 result = 1;
4725         ${cf_cv_main_return:-return}(result);
4726 }
4727 ],[cf_cv_func_mkstemp=yes
4728 ],[cf_cv_func_mkstemp=no
4729 ],[cf_cv_func_mkstemp=maybe])
4730 ])
4731 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
4732         AC_CHECK_FUNC(mkstemp)
4733 fi
4734 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
4735         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
4736 fi
4737 ])dnl
4738 dnl ---------------------------------------------------------------------------
4739 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
4740 dnl ----------
4741 dnl Write a debug message to config.log, along with the line number in the
4742 dnl configure script.
4743 AC_DEFUN([CF_MSG_LOG],[
4744 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
4745 ])dnl
4746 dnl ---------------------------------------------------------------------------
4747 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
4748 dnl ----------------
4749 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
4750 dnl warn about this.
4751 AC_DEFUN([CF_NCURSES_ABI_6],[
4752 if test "${with_abi_version+set}" != set; then
4753         case $cf_cv_rel_version in
4754         5.*)
4755                 cf_cv_rel_version=6.0
4756                 cf_cv_abi_version=6
4757                 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
4758                 ;;
4759         esac
4760 fi
4761 ])dnl
4762 dnl ---------------------------------------------------------------------------
4763 dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
4764 dnl ------------------
4765 dnl see CF_WITH_NO_LEAKS
4766 AC_DEFUN([CF_NO_LEAKS_OPTION],[
4767 AC_MSG_CHECKING(if you want to use $1 for testing)
4768 AC_ARG_WITH($1,
4769         [$2],
4770         [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
4771          $4
4772 ])
4773         : ${with_cflags:=-g}
4774         : ${with_no_leaks:=yes}
4775          with_$1=yes],
4776         [with_$1=])
4777 AC_MSG_RESULT(${with_$1:-no})
4778
4779 case .$with_cflags in #(vi
4780 .*-g*)
4781         case .$CFLAGS in #(vi
4782         .*-g*) #(vi
4783                 ;;
4784         *)
4785                 CF_ADD_CFLAGS([-g])
4786                 ;;
4787         esac
4788         ;;
4789 esac
4790 ])dnl
4791 dnl ---------------------------------------------------------------------------
4792 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
4793 dnl ----------------
4794 dnl Check if the given variable is a number.  If not, report an error.
4795 dnl $1 is the variable
4796 dnl $2 is the message
4797 AC_DEFUN([CF_NUMBER_SYNTAX],[
4798 if test -n "$1" ; then
4799   case $1 in #(vi
4800   [[0-9]]*) #(vi
4801         ;;
4802   *)
4803         AC_MSG_ERROR($2 is not a number: $1)
4804         ;;
4805   esac
4806 else
4807   AC_MSG_ERROR($2 value is empty)
4808 fi
4809 ])dnl
4810 dnl ---------------------------------------------------------------------------
4811 dnl CF_OBJ_SUBDIR version: 6 updated: 2013/09/07 14:06:10
4812 dnl -------------
4813 dnl Compute the object-directory name from the given model name
4814 AC_DEFUN([CF_OBJ_SUBDIR],
4815 [
4816         case $1 in
4817         libtool) $2='obj_lo'  ;;
4818         normal)  $2='objects' ;;
4819         debug)   $2='obj_g' ;;
4820         profile) $2='obj_p' ;;
4821         shared)
4822                 case $cf_cv_system_name in #(vi
4823                 cygwin|msys) #(vi
4824                         $2='objects' ;;
4825                 *)
4826                         $2='obj_s' ;;
4827                 esac
4828         esac
4829 ])dnl
4830 dnl ---------------------------------------------------------------------------
4831 dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12
4832 dnl ----------
4833 dnl Provide a value for the $PATH and similar separator (or amend the value
4834 dnl as provided in autoconf 2.5x).
4835 AC_DEFUN([CF_PATHSEP],
4836 [
4837         AC_MSG_CHECKING(for PATH separator)
4838         case $cf_cv_system_name in
4839         os2*)   PATH_SEPARATOR=';'  ;;
4840         *)      ${PATH_SEPARATOR:=':'}  ;;
4841         esac
4842 ifelse([$1],,,[$1=$PATH_SEPARATOR])
4843         AC_SUBST(PATH_SEPARATOR)
4844         AC_MSG_RESULT($PATH_SEPARATOR)
4845 ])dnl
4846 dnl ---------------------------------------------------------------------------
4847 dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
4848 dnl --------------
4849 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
4850 dnl begins with one of the prefix/exec_prefix variables, and then again if the
4851 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
4852 dnl delayed evaluation of those symbols.
4853 AC_DEFUN([CF_PATH_SYNTAX],[
4854 if test "x$prefix" != xNONE; then
4855   cf_path_syntax="$prefix"
4856 else
4857   cf_path_syntax="$ac_default_prefix"
4858 fi
4859
4860 case ".[$]$1" in #(vi
4861 .\[$]\(*\)*|.\'*\'*) #(vi
4862   ;;
4863 ..|./*|.\\*) #(vi
4864   ;;
4865 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
4866   ;;
4867 .\[$]{*prefix}*|.\[$]{*dir}*) #(vi
4868   eval $1="[$]$1"
4869   case ".[$]$1" in #(vi
4870   .NONE/*)
4871     $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4872     ;;
4873   esac
4874   ;; #(vi
4875 .no|.NONE/*)
4876   $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4877   ;;
4878 *)
4879   ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
4880   ;;
4881 esac
4882 ])dnl
4883 dnl ---------------------------------------------------------------------------
4884 dnl CF_PKG_CONFIG version: 8 updated: 2014/12/13 18:48:46
4885 dnl -------------
4886 dnl Check for the package-config program, unless disabled by command-line.
4887 AC_DEFUN([CF_PKG_CONFIG],
4888 [
4889 AC_MSG_CHECKING(if you want to use pkg-config)
4890 AC_ARG_WITH(pkg-config,
4891         [  --with-pkg-config{=path} enable/disable use of pkg-config],
4892         [cf_pkg_config=$withval],
4893         [cf_pkg_config=yes])
4894 AC_MSG_RESULT($cf_pkg_config)
4895
4896 case $cf_pkg_config in #(vi
4897 no) #(vi
4898         PKG_CONFIG=none
4899         ;;
4900 yes) #(vi
4901         CF_ACVERSION_CHECK(2.52,
4902                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
4903                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
4904         ;;
4905 *)
4906         PKG_CONFIG=$withval
4907         ;;
4908 esac
4909
4910 test -z "$PKG_CONFIG" && PKG_CONFIG=none
4911 if test "$PKG_CONFIG" != none ; then
4912         CF_PATH_SYNTAX(PKG_CONFIG)
4913 else
4914         AC_MSG_WARN(pkg-config is not installed)
4915 fi
4916
4917 AC_SUBST(PKG_CONFIG)
4918 ])dnl
4919 dnl ---------------------------------------------------------------------------
4920 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
4921 dnl -----------------
4922 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
4923 dnl
4924 dnl     POSIX.1-1990                            _POSIX_SOURCE
4925 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
4926 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
4927 dnl             Bindings Option
4928 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
4929 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
4930 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
4931 dnl
4932 dnl Parameters:
4933 dnl     $1 is the nominal value for _POSIX_C_SOURCE
4934 AC_DEFUN([CF_POSIX_C_SOURCE],
4935 [
4936 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
4937
4938 cf_save_CFLAGS="$CFLAGS"
4939 cf_save_CPPFLAGS="$CPPFLAGS"
4940
4941 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4942 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4943
4944 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4945         CF_MSG_LOG(if the symbol is already defined go no further)
4946         AC_TRY_COMPILE([#include <sys/types.h>],[
4947 #ifndef _POSIX_C_SOURCE
4948 make an error
4949 #endif],
4950         [cf_cv_posix_c_source=no],
4951         [cf_want_posix_source=no
4952          case .$cf_POSIX_C_SOURCE in #(vi
4953          .[[12]]??*) #(vi
4954                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4955                 ;;
4956          .2) #(vi
4957                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4958                 cf_want_posix_source=yes
4959                 ;;
4960          .*)
4961                 cf_want_posix_source=yes
4962                 ;;
4963          esac
4964          if test "$cf_want_posix_source" = yes ; then
4965                 AC_TRY_COMPILE([#include <sys/types.h>],[
4966 #ifdef _POSIX_SOURCE
4967 make an error
4968 #endif],[],
4969                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4970          fi
4971          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4972          CFLAGS="$cf_trim_CFLAGS"
4973          CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
4974          CF_MSG_LOG(if the second compile does not leave our definition intact error)
4975          AC_TRY_COMPILE([#include <sys/types.h>],[
4976 #ifndef _POSIX_C_SOURCE
4977 make an error
4978 #endif],,
4979          [cf_cv_posix_c_source=no])
4980          CFLAGS="$cf_save_CFLAGS"
4981          CPPFLAGS="$cf_save_CPPFLAGS"
4982         ])
4983 ])
4984
4985 if test "$cf_cv_posix_c_source" != no ; then
4986         CFLAGS="$cf_trim_CFLAGS"
4987         CPPFLAGS="$cf_trim_CPPFLAGS"
4988         CF_ADD_CFLAGS($cf_cv_posix_c_source)
4989 fi
4990
4991 ])dnl
4992 dnl ---------------------------------------------------------------------------
4993 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
4994 dnl ------------
4995 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
4996 dnl
4997 dnl $1 = symbol to test
4998 dnl $2 = value (if any) to use for a predefinition
4999 AC_DEFUN([CF_PREDEFINE],
5000 [
5001 AC_MSG_CHECKING(if we must define $1)
5002 AC_TRY_COMPILE([#include <sys/types.h>
5003 ],[
5004 #ifndef $1
5005 make an error
5006 #endif],[cf_result=no],[cf_result=yes])
5007 AC_MSG_RESULT($cf_result)
5008
5009 if test "$cf_result" = yes ; then
5010         CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
5011 elif test "x$2" != "x" ; then
5012         AC_MSG_CHECKING(checking for compatible value versus $2)
5013         AC_TRY_COMPILE([#include <sys/types.h>
5014 ],[
5015 #if $1-$2 < 0
5016 make an error
5017 #endif],[cf_result=yes],[cf_result=no])
5018         AC_MSG_RESULT($cf_result)
5019         if test "$cf_result" = no ; then
5020                 # perhaps we can override it - try...
5021                 CPPFLAGS="$CPPFLAGS -D$1=$2"
5022         fi
5023 fi
5024 ])dnl
5025 dnl ---------------------------------------------------------------------------
5026 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
5027 dnl ------------
5028 dnl Append definitions and rules for the given programs to the subdirectory
5029 dnl Makefiles, and the recursion rule for the top-level Makefile.
5030 dnl
5031 dnl parameters
5032 dnl     $1 = script to run
5033 dnl     $2 = list of subdirectories
5034 dnl
5035 dnl variables
5036 dnl     $AWK
5037 AC_DEFUN([CF_PRG_RULES],
5038 [
5039 for cf_dir in $2
5040 do
5041         if test ! -d $srcdir/$cf_dir; then
5042                 continue
5043         elif test -f $srcdir/$cf_dir/programs; then
5044                 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
5045         fi
5046 done
5047
5048 ])dnl
5049 dnl ---------------------------------------------------------------------------
5050 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
5051 dnl ----------
5052 dnl Check for archiver "ar".
5053 AC_DEFUN([CF_PROG_AR],[
5054 AC_CHECK_TOOL(AR, ar, ar)
5055 ])
5056 dnl ---------------------------------------------------------------------------
5057 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
5058 dnl -----------
5059 dnl Check for awk, ensure that the check found something.
5060 AC_DEFUN([CF_PROG_AWK],
5061 [
5062 AC_PROG_AWK
5063 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
5064 ])dnl
5065 dnl ---------------------------------------------------------------------------
5066 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
5067 dnl ----------
5068 dnl standard check for CC, plus followup sanity checks
5069 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
5070 AC_DEFUN([CF_PROG_CC],[
5071 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
5072 CF_GCC_VERSION
5073 CF_ACVERSION_CHECK(2.52,
5074         [AC_PROG_CC_STDC],
5075         [CF_ANSI_CC_REQD])
5076 CF_CC_ENV_FLAGS
5077 ])dnl
5078 dnl ---------------------------------------------------------------------------
5079 dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
5080 dnl --------------
5081 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
5082 dnl the output file can be renamed, and allows for a shell variable that can
5083 dnl be used later.  The parameter is either CC or CXX.  The result is the
5084 dnl cache variable:
5085 dnl     $cf_cv_prog_CC_c_o
5086 dnl     $cf_cv_prog_CXX_c_o
5087 AC_DEFUN([CF_PROG_CC_C_O],
5088 [AC_REQUIRE([AC_PROG_CC])dnl
5089 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
5090 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
5091 [
5092 cat > conftest.$ac_ext <<CF_EOF
5093 #include <stdio.h>
5094 int main()
5095 {
5096         ${cf_cv_main_return:-return}(0);
5097 }
5098 CF_EOF
5099 # We do the test twice because some compilers refuse to overwrite an
5100 # existing .o file with -o, though they will create one.
5101 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
5102 if AC_TRY_EVAL(ac_try) &&
5103   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
5104 then
5105   eval cf_cv_prog_$1_c_o=yes
5106 else
5107   eval cf_cv_prog_$1_c_o=no
5108 fi
5109 rm -rf conftest*
5110 ])dnl
5111 if test $cf_cv_prog_$1_c_o = yes; then
5112   AC_MSG_RESULT([yes])
5113 else
5114   AC_MSG_RESULT([no])
5115 fi
5116 ])dnl
5117 dnl ---------------------------------------------------------------------------
5118 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
5119 dnl -------------
5120 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
5121 dnl This macro adds a check to ensure the script found something.
5122 AC_DEFUN([CF_PROG_EGREP],
5123 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
5124    [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
5125     then ac_cv_prog_egrep='grep -E'
5126     else ac_cv_prog_egrep='egrep'
5127     fi])
5128  EGREP=$ac_cv_prog_egrep
5129  AC_SUBST([EGREP])
5130 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
5131 ])dnl
5132 dnl ---------------------------------------------------------------------------
5133 dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47
5134 dnl ------------
5135 dnl Check for gnatmake, ensure that it is complete.
5136 AC_DEFUN([CF_PROG_GNAT],[
5137 cf_ada_make=gnatmake
5138 AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
5139 if test "$ac_cv_prog_gnat_exists" = no; then
5140    cf_ada_make=
5141    cf_cv_prog_gnat_correct=no
5142 else
5143    CF_GNAT_VERSION
5144    AC_CHECK_PROG(M4_exists, m4, yes, no)
5145    if test "$ac_cv_prog_M4_exists" = no; then
5146       cf_cv_prog_gnat_correct=no
5147       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
5148    fi
5149    if test "$cf_cv_prog_gnat_correct" = yes; then
5150       AC_MSG_CHECKING(if GNAT works)
5151       CF_GNAT_TRY_RUN([procedure conftest;],
5152 [with Text_IO;
5153 with GNAT.OS_Lib;
5154 procedure conftest is
5155 begin
5156    Text_IO.Put ("Hello World");
5157    Text_IO.New_Line;
5158    GNAT.OS_Lib.OS_Exit (0);
5159 end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
5160       AC_MSG_RESULT($cf_cv_prog_gnat_correct)
5161    fi
5162 fi
5163
5164 AC_SUBST(cf_ada_make)
5165 ])dnl
5166 dnl ---------------------------------------------------------------------------
5167 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
5168 dnl ---------------
5169 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
5170 dnl misc/tabset install won't work properly.  Usually this happens only when
5171 dnl using the fallback mkinstalldirs script
5172 AC_DEFUN([CF_PROG_INSTALL],
5173 [AC_PROG_INSTALL
5174 case $INSTALL in
5175 /*)
5176   ;;
5177 *)
5178   CF_DIRNAME(cf_dir,$INSTALL)
5179   test -z "$cf_dir" && cf_dir=.
5180   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
5181   ;;
5182 esac
5183 ])dnl
5184 dnl ---------------------------------------------------------------------------
5185 dnl CF_PROG_LDCONFIG version: 3 updated: 2011/06/04 20:09:13
5186 dnl ----------------
5187 dnl Check for ldconfig, needed to fixup shared libraries that would be built
5188 dnl and then used in the install.
5189 AC_DEFUN([CF_PROG_LDCONFIG],[
5190 if test "$cross_compiling" = yes ; then
5191   LDCONFIG=:
5192 else
5193 case "$cf_cv_system_name" in #(vi
5194 dragonfly*|mirbsd*|freebsd*) #(vi
5195   test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
5196   ;;
5197 *) LDPATH=$PATH:/sbin:/usr/sbin
5198   AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
5199   ;;
5200 esac
5201 fi
5202 AC_SUBST(LDCONFIG)
5203 ])dnl
5204 dnl ---------------------------------------------------------------------------
5205 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
5206 dnl ------------
5207 AC_DEFUN([CF_PROG_LINT],
5208 [
5209 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
5210 AC_SUBST(LINT_OPTS)
5211 ])dnl
5212 dnl ---------------------------------------------------------------------------
5213 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
5214 dnl ------------
5215 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
5216 dnl option if it is supported.
5217 AC_DEFUN([CF_PROG_LN_S],[
5218 AC_PROG_LN_S
5219 AC_MSG_CHECKING(if $LN_S -f options work)
5220
5221 rm -f conf$$.src conf$$dst
5222 echo >conf$$.dst
5223 echo first >conf$$.src
5224 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
5225         cf_prog_ln_sf=yes
5226 else
5227         cf_prog_ln_sf=no
5228 fi
5229 rm -f conf$$.dst conf$$src
5230 AC_MSG_RESULT($cf_prog_ln_sf)
5231
5232 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
5233 ])dnl
5234 dnl ---------------------------------------------------------------------------
5235 dnl CF_REGEX version: 10 updated: 2012/10/04 20:12:20
5236 dnl --------
5237 dnl Attempt to determine if we've got one of the flavors of regular-expression
5238 dnl code that we can support.
5239 AC_DEFUN([CF_REGEX],
5240 [
5241
5242 cf_regex_func=no
5243
5244 cf_regex_libs="regex re"
5245 case $host_os in #(vi
5246 mingw*)
5247         cf_regex_libs="gnurx $cf_regex_libs"
5248         ;;
5249 esac
5250
5251 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
5252         for cf_regex_lib in $cf_regex_libs
5253         do
5254                 AC_CHECK_LIB($cf_regex_lib,regcomp,[
5255                                 CF_ADD_LIB($cf_regex_lib)
5256                                 cf_regex_func=regcomp
5257                                 break])
5258         done
5259 ])
5260
5261 if test "$cf_regex_func" = no ; then
5262         AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
5263                 AC_CHECK_LIB(gen,compile,[
5264                                 CF_ADD_LIB(gen)
5265                                 cf_regex_func=compile])])
5266 fi
5267
5268 if test "$cf_regex_func" = no ; then
5269         AC_MSG_WARN(cannot find regular expression library)
5270 fi
5271
5272 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
5273
5274 cf_cv_regex_hdrs=no
5275 case $cf_regex_func in #(vi
5276 compile) #(vi
5277         for cf_regex_hdr in regexp.h regexpr.h
5278         do
5279                 AC_TRY_LINK([#include <$cf_regex_hdr>],[
5280                         char *p = compile("", "", "", 0);
5281                         int x = step("", "");
5282                 ],[
5283                         cf_cv_regex_hdrs=$cf_regex_hdr
5284                         break
5285                 ])
5286         done
5287         ;;
5288 *)
5289         for cf_regex_hdr in regex.h
5290         do
5291                 AC_TRY_LINK([#include <sys/types.h>
5292 #include <$cf_regex_hdr>],[
5293                         regex_t *p;
5294                         int x = regcomp(p, "", 0);
5295                         int y = regexec(p, "", 0, 0, 0);
5296                         regfree(p);
5297                 ],[
5298                         cf_cv_regex_hdrs=$cf_regex_hdr
5299                         break
5300                 ])
5301         done
5302         ;;
5303 esac
5304
5305 ])
5306
5307 case $cf_cv_regex_hdrs in #(vi
5308     no)        AC_MSG_WARN(no regular expression header found) ;; #(vi
5309     regex.h)   AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;; #(vi
5310     regexp.h)  AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;; #(vi
5311     regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
5312 esac
5313 ])dnl
5314 dnl ---------------------------------------------------------------------------
5315 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
5316 dnl ----------------
5317 dnl Remove all -U and -D options that refer to the given symbol from a list
5318 dnl of C compiler options.  This works around the problem that not all
5319 dnl compilers process -U and -D options from left-to-right, so a -U option
5320 dnl cannot be used to cancel the effect of a preceding -D option.
5321 dnl
5322 dnl $1 = target (which could be the same as the source variable)
5323 dnl $2 = source (including '$')
5324 dnl $3 = symbol to remove
5325 define([CF_REMOVE_DEFINE],
5326 [
5327 $1=`echo "$2" | \
5328         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
5329                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
5330 ])dnl
5331 dnl ---------------------------------------------------------------------------
5332 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
5333 dnl -------------
5334 dnl Remove the given library from the symbol
5335 dnl
5336 dnl $1 = target (which could be the same as the source variable)
5337 dnl $2 = source (including '$')
5338 dnl $3 = library to remove
5339 define([CF_REMOVE_LIB],
5340 [
5341 # remove $3 library from $2
5342 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
5343 ])dnl
5344 dnl ---------------------------------------------------------------------------
5345 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
5346 dnl -------------
5347 AC_DEFUN([CF_RPATH_HACK],
5348 [
5349 AC_REQUIRE([CF_LD_RPATH_OPT])
5350 AC_MSG_CHECKING(for updated LDFLAGS)
5351 if test -n "$LD_RPATH_OPT" ; then
5352         AC_MSG_RESULT(maybe)
5353
5354         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
5355         cf_rpath_list="/usr/lib /lib"
5356         if test "$cf_ldd_prog" != no
5357         then
5358                 cf_rpath_oops=
5359
5360 AC_TRY_LINK([#include <stdio.h>],
5361                 [printf("Hello");],
5362                 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
5363                  cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[     ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
5364
5365                 # If we passed the link-test, but get a "not found" on a given library,
5366                 # this could be due to inept reconfiguration of gcc to make it only
5367                 # partly honor /usr/local/lib (or whatever).  Sometimes this behavior
5368                 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
5369                 # /usr/local libraries.
5370                 if test -n "$cf_rpath_oops"
5371                 then
5372                         for cf_rpath_src in $cf_rpath_oops
5373                         do
5374                                 for cf_rpath_dir in \
5375                                         /usr/local \
5376                                         /usr/pkg \
5377                                         /opt/sfw
5378                                 do
5379                                         if test -f $cf_rpath_dir/lib/$cf_rpath_src
5380                                         then
5381                                                 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
5382                                                 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
5383                                                 break
5384                                         fi
5385                                 done
5386                         done
5387                 fi
5388         fi
5389
5390         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
5391
5392         CF_RPATH_HACK_2(LDFLAGS)
5393         CF_RPATH_HACK_2(LIBS)
5394
5395         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
5396 else
5397         AC_MSG_RESULT(no)
5398 fi
5399 AC_SUBST(EXTRA_LDFLAGS)
5400 ])dnl
5401 dnl ---------------------------------------------------------------------------
5402 dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
5403 dnl ---------------
5404 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
5405 dnl EXTRA_LDFLAGS for each -L option found.
5406 dnl
5407 dnl $cf_rpath_list contains a list of directories to ignore.
5408 dnl
5409 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
5410 dnl      but LIBS often has misplaced -L options.
5411 AC_DEFUN([CF_RPATH_HACK_2],
5412 [
5413 CF_VERBOSE(...checking $1 [$]$1)
5414
5415 cf_rpath_dst=
5416 for cf_rpath_src in [$]$1
5417 do
5418         case $cf_rpath_src in #(vi
5419         -L*) #(vi
5420
5421                 # check if this refers to a directory which we will ignore
5422                 cf_rpath_skip=no
5423                 if test -n "$cf_rpath_list"
5424                 then
5425                         for cf_rpath_item in $cf_rpath_list
5426                         do
5427                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
5428                                 then
5429                                         cf_rpath_skip=yes
5430                                         break
5431                                 fi
5432                         done
5433                 fi
5434
5435                 if test "$cf_rpath_skip" = no
5436                 then
5437                         # transform the option
5438                         if test "$LD_RPATH_OPT" = "-R " ; then
5439                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
5440                         else
5441                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
5442                         fi
5443
5444                         # if we have not already added this, add it now
5445                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
5446                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
5447                         then
5448                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
5449                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
5450                         fi
5451                 fi
5452                 ;;
5453         esac
5454         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
5455 done
5456 $1=$cf_rpath_dst
5457
5458 CF_VERBOSE(...checked $1 [$]$1)
5459 AC_SUBST(EXTRA_LDFLAGS)
5460 ])dnl
5461 dnl ---------------------------------------------------------------------------
5462 dnl CF_SHARED_OPTS version: 86 updated: 2015/01/21 20:10:54
5463 dnl --------------
5464 dnl --------------
5465 dnl Attempt to determine the appropriate CC/LD options for creating a shared
5466 dnl library.
5467 dnl
5468 dnl Notes:
5469 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
5470 dnl the build-tree, i.e., by making use of the libraries that are compiled in
5471 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
5472 dnl shared library since that can lead to unexpected results at runtime.
5473 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
5474 dnl libraries are compiled in ../../lib
5475 dnl
5476 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
5477 dnl to install symbolic links to the rel/abi versions of shared libraries.
5478 dnl
5479 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
5480 dnl version when making symbolic links.
5481 dnl
5482 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
5483 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
5484 dnl (ex: libncurses.so.<ver>).
5485 dnl
5486 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
5487 AC_DEFUN([CF_SHARED_OPTS],
5488 [
5489         AC_REQUIRE([CF_LD_RPATH_OPT])
5490         RM_SHARED_OPTS=
5491         LOCAL_LDFLAGS=
5492         LOCAL_LDFLAGS2=
5493         LD_SHARED_OPTS=
5494         INSTALL_LIB="-m 644"
5495         : ${rel_builddir:=.}
5496
5497         shlibdir=$libdir
5498         AC_SUBST(shlibdir)
5499
5500         MAKE_DLLS="#"
5501         AC_SUBST(MAKE_DLLS)
5502
5503         cf_cv_do_symlinks=no
5504         cf_ld_rpath_opt=
5505         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
5506
5507         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
5508         AC_ARG_WITH(shlib-version,
5509         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
5510         [test -z "$withval" && withval=auto
5511         case $withval in #(vi
5512         yes) #(vi
5513                 cf_cv_shlib_version=auto
5514                 ;;
5515         rel|abi|auto|no) #(vi
5516                 cf_cv_shlib_version=$withval
5517                 ;;
5518         *)
5519                 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
5520                 ;;
5521         esac
5522         ],[cf_cv_shlib_version=auto])
5523         AC_MSG_RESULT($cf_cv_shlib_version)
5524
5525         cf_cv_rm_so_locs=no
5526         cf_try_cflags=
5527
5528         # Some less-capable ports of gcc support only -fpic
5529         CC_SHARED_OPTS=
5530         if test "$GCC" = yes
5531         then
5532                 AC_MSG_CHECKING(which $CC option to use)
5533                 cf_save_CFLAGS="$CFLAGS"
5534                 for CC_SHARED_OPTS in -fPIC -fpic ''
5535                 do
5536                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
5537                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
5538                 done
5539                 AC_MSG_RESULT($CC_SHARED_OPTS)
5540                 CFLAGS="$cf_save_CFLAGS"
5541         fi
5542
5543         cf_cv_shlib_version_infix=no
5544
5545         case $cf_cv_system_name in #(vi
5546         aix4.[3-9]*|aix[[5-7]]*) #(vi
5547                 if test "$GCC" = yes; then
5548                         CC_SHARED_OPTS=
5549                         MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
5550                 else
5551                         # CC_SHARED_OPTS='-qpic=large -G'
5552                         # perhaps "-bM:SRE -bnoentry -bexpall"
5553                         MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
5554                 fi
5555                 ;;
5556         beos*) #(vi
5557                 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
5558                 ;;
5559         cygwin*) #(vi
5560                 CC_SHARED_OPTS=
5561                 MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5562                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
5563                 cf_cv_shlib_version=cygdll
5564                 cf_cv_shlib_version_infix=cygdll
5565                 shlibdir=$bindir
5566                 MAKE_DLLS=
5567                 cat >mk_shared_lib.sh <<-CF_EOF
5568                 #!/bin/sh
5569                 SHARED_LIB=\[$]1
5570                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5571                 shift
5572                 cat <<-EOF
5573                 Linking shared library
5574                 ** SHARED_LIB \[$]SHARED_LIB
5575                 ** IMPORT_LIB \[$]IMPORT_LIB
5576 EOF
5577                 exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
5578 CF_EOF
5579                 chmod +x mk_shared_lib.sh
5580                 ;;
5581         msys*) #(vi
5582                 CC_SHARED_OPTS=
5583                 MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5584                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
5585                 cf_cv_shlib_version=msysdll
5586                 cf_cv_shlib_version_infix=msysdll
5587                 shlibdir=$bindir
5588                 MAKE_DLLS=
5589                 cat >mk_shared_lib.sh <<-CF_EOF
5590                 #!/bin/sh
5591                 SHARED_LIB=\[$]1
5592                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5593                 shift
5594                 cat <<-EOF
5595                 Linking shared library
5596                 ** SHARED_LIB \[$]SHARED_LIB
5597                 ** IMPORT_LIB \[$]IMPORT_LIB
5598 EOF
5599                 exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
5600 CF_EOF
5601                 chmod +x mk_shared_lib.sh
5602                 ;;
5603         darwin*) #(vi
5604                 cf_try_cflags="no-cpp-precomp"
5605                 CC_SHARED_OPTS="-dynamic"
5606                 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
5607                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
5608                 cf_cv_shlib_version_infix=yes
5609                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
5610                         cf_save_LDFLAGS=$LDFLAGS
5611                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
5612                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
5613                                 LDFLAGS=$cf_save_LDFLAGS])
5614                 if test $cf_cv_ldflags_search_paths_first = yes; then
5615                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
5616                 fi
5617                 ;;
5618         hpux[[7-8]]*) #(vi
5619                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
5620                 if test "$GCC" != yes; then
5621                         CC_SHARED_OPTS='+Z'
5622                 fi
5623                 MK_SHARED_LIB='${LD} -b -o $[@]'
5624                 INSTALL_LIB="-m 555"
5625                 ;;
5626         hpux*) #(vi
5627                 # (tested with gcc 2.7.2 -- I don't have c89)
5628                 if test "$GCC" = yes; then
5629                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
5630                 else
5631                         CC_SHARED_OPTS='+Z'
5632                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
5633                 fi
5634                 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
5635                 # HP-UX shared libraries must be executable, and should be
5636                 # readonly to exploit a quirk in the memory manager.
5637                 INSTALL_LIB="-m 555"
5638                 ;;
5639         interix*)
5640                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5641                 if test "$cf_cv_shlib_version" = rel; then
5642                         cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
5643                 else
5644                         cf_shared_soname='`basename $@`'
5645                 fi
5646                 CC_SHARED_OPTS=
5647                 MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
5648                 ;;
5649         irix*) #(vi
5650                 if test "$cf_cv_enable_rpath" = yes ; then
5651                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
5652                 fi
5653                 # tested with IRIX 5.2 and 'cc'.
5654                 if test "$GCC" != yes; then
5655                         CC_SHARED_OPTS='-KPIC'
5656                         MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
5657                 else
5658                         MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
5659                 fi
5660                 cf_cv_rm_so_locs=yes
5661                 ;;
5662         linux*|gnu*|k*bsd*-gnu) #(vi
5663                 if test "$DFT_LWR_MODEL" = "shared" ; then
5664                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
5665                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5666                 fi
5667                 if test "$cf_cv_enable_rpath" = yes ; then
5668                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
5669                 fi
5670                 CF_SHARED_SONAME
5671                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
5672                 ;;
5673         mingw*) #(vi
5674                 cf_cv_shlib_version=mingw
5675                 cf_cv_shlib_version_infix=mingw
5676                 shlibdir=$bindir
5677                 MAKE_DLLS=
5678                 if test "$DFT_LWR_MODEL" = "shared" ; then
5679                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
5680                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5681                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
5682                 fi
5683                 CC_SHARED_OPTS=
5684                 MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5685                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
5686                 cat >mk_shared_lib.sh <<-CF_EOF
5687                 #!/bin/sh
5688                 SHARED_LIB=\[$]1
5689                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5690                 shift
5691                 cat <<-EOF
5692                 Linking shared library
5693                 ** SHARED_LIB \[$]SHARED_LIB
5694                 ** IMPORT_LIB \[$]IMPORT_LIB
5695 EOF
5696                 exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
5697 CF_EOF
5698                 chmod +x mk_shared_lib.sh
5699                 ;;
5700         openbsd[[2-9]].*|mirbsd*) #(vi
5701                 if test "$DFT_LWR_MODEL" = "shared" ; then
5702                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
5703                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5704                 fi
5705                 if test "$cf_cv_enable_rpath" = yes ; then
5706                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
5707                 fi
5708                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5709                 CF_SHARED_SONAME
5710                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
5711                 ;;
5712         nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
5713                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5714                 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
5715                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5716                 ;;
5717         dragonfly*|freebsd*) #(vi
5718                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5719                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
5720                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
5721                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
5722                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
5723                 fi
5724                 CF_SHARED_SONAME
5725                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
5726                 ;;
5727         netbsd*) #(vi
5728                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5729                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
5730                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
5731                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5732                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
5733                         if test "$cf_cv_shlib_version" = auto; then
5734                         if test -f /usr/libexec/ld.elf_so; then
5735                                 cf_cv_shlib_version=abi
5736                         else
5737                                 cf_cv_shlib_version=rel
5738                         fi
5739                         fi
5740                         CF_SHARED_SONAME
5741                         MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
5742                 else
5743                         MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]'
5744                 fi
5745                 ;;
5746         osf*|mls+*) #(vi
5747                 # tested with OSF/1 V3.2 and 'cc'
5748                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
5749                 # link with shared libs).
5750                 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
5751                 case $host_os in #(vi
5752                 osf4*)
5753                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
5754                         ;;
5755                 esac
5756                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
5757                 if test "$DFT_LWR_MODEL" = "shared" ; then
5758                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
5759                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5760                 fi
5761                 cf_cv_rm_so_locs=yes
5762                 ;;
5763         sco3.2v5*)  # (also uw2* and UW7: hops 13-Apr-98
5764                 # tested with osr5.0.5
5765                 if test "$GCC" != yes; then
5766                         CC_SHARED_OPTS='-belf -KPIC'
5767                 fi
5768                 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
5769                 if test "$cf_cv_enable_rpath" = yes ; then
5770                         # only way is to set LD_RUN_PATH but no switch for it
5771                         RUN_PATH=$libdir
5772                 fi
5773                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5774                 LINK_PROGS='LD_RUN_PATH=${libdir}'
5775                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
5776                 ;;
5777         sunos4*) #(vi
5778                 # tested with SunOS 4.1.1 and gcc 2.7.0
5779                 if test "$GCC" != yes; then
5780                         CC_SHARED_OPTS='-KPIC'
5781                 fi
5782                 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
5783                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5784                 ;;
5785         solaris2*) #(vi
5786                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
5787                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
5788                 if test "$DFT_LWR_MODEL" = "shared" ; then
5789                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
5790                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5791                 fi
5792                 if test "$cf_cv_enable_rpath" = yes ; then
5793                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
5794                 fi
5795                 CF_SHARED_SONAME
5796                 if test "$GCC" != yes; then
5797                         cf_save_CFLAGS="$CFLAGS"
5798                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
5799                         do
5800                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
5801                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
5802                         done
5803                         CFLAGS="$cf_save_CFLAGS"
5804                         CC_SHARED_OPTS=$cf_shared_opts
5805                         MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
5806                 else
5807                         MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
5808                 fi
5809                 ;;
5810         sysv5uw7*|unix_sv*) #(vi
5811                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
5812                 if test "$GCC" != yes; then
5813                         CC_SHARED_OPTS='-KPIC'
5814                 fi
5815                 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
5816                 ;;
5817         *)
5818                 CC_SHARED_OPTS='unknown'
5819                 MK_SHARED_LIB='echo unknown'
5820                 ;;
5821         esac
5822
5823         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
5824         case "$cf_cv_shlib_version" in #(vi
5825         rel|abi)
5826                 case "$MK_SHARED_LIB" in #(vi
5827                 *'-o $[@]') #(vi
5828                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
5829                         ;;
5830                 *)
5831                         AC_MSG_WARN(ignored --with-shlib-version)
5832                         ;;
5833                 esac
5834                 ;;
5835         esac
5836
5837         if test -n "$cf_try_cflags"
5838         then
5839 cat > conftest.$ac_ext <<EOF
5840 #line __oline__ "${as_me:-configure}"
5841 #include <stdio.h>
5842 int main(int argc, char *argv[[]])
5843 {
5844         printf("hello\n");
5845         return (argv[[argc-1]] == 0) ;
5846 }
5847 EOF
5848                 cf_save_CFLAGS="$CFLAGS"
5849                 for cf_opt in $cf_try_cflags
5850                 do
5851                         CFLAGS="$cf_save_CFLAGS -$cf_opt"
5852                         AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
5853                         if AC_TRY_EVAL(ac_compile); then
5854                                 AC_MSG_RESULT(yes)
5855                                 cf_save_CFLAGS="$CFLAGS"
5856                         else
5857                                 AC_MSG_RESULT(no)
5858                         fi
5859                 done
5860                 CFLAGS="$cf_save_CFLAGS"
5861         fi
5862
5863
5864         # RPATH_LIST is a colon-separated list of directories
5865         test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
5866         test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
5867
5868         test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
5869
5870         CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
5871         CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
5872
5873         AC_SUBST(CC_SHARED_OPTS)
5874         AC_SUBST(LD_RPATH_OPT)
5875         AC_SUBST(LD_SHARED_OPTS)
5876         AC_SUBST(MK_SHARED_LIB)
5877         AC_SUBST(RM_SHARED_OPTS)
5878
5879         AC_SUBST(LINK_PROGS)
5880         AC_SUBST(LINK_TESTS)
5881
5882         AC_SUBST(EXTRA_LDFLAGS)
5883         AC_SUBST(LOCAL_LDFLAGS)
5884         AC_SUBST(LOCAL_LDFLAGS2)
5885
5886         AC_SUBST(INSTALL_LIB)
5887         AC_SUBST(RPATH_LIST)
5888 ])dnl
5889 dnl ---------------------------------------------------------------------------
5890 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
5891 dnl ----------------
5892 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
5893 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
5894 dnl option.
5895 dnl
5896 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
5897 dnl If missing, use "rel".
5898 define([CF_SHARED_SONAME],
5899 [
5900         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
5901         if test "$cf_cv_shlib_version" = rel; then
5902                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
5903         else
5904                 cf_cv_shared_soname='`basename $[@]`'
5905         fi
5906 ])
5907 dnl ---------------------------------------------------------------------------
5908 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
5909 dnl -----------
5910 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
5911 dnl programs need this test).
5912 dnl
5913 dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
5914 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
5915 dnl winsize declaration is left alone - we may revisit this if Apple choose to
5916 dnl break that part of the interface as well.
5917 AC_DEFUN([CF_SIGWINCH],
5918 [
5919 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
5920         AC_TRY_COMPILE([
5921 #include <sys/types.h>
5922 #include <sys/signal.h>
5923 ],[int x = SIGWINCH],
5924         [cf_cv_define_sigwinch=yes],
5925         [AC_TRY_COMPILE([
5926 #undef _XOPEN_SOURCE
5927 #undef _POSIX_SOURCE
5928 #undef _POSIX_C_SOURCE
5929 #include <sys/types.h>
5930 #include <sys/signal.h>
5931 ],[int x = SIGWINCH],
5932         [cf_cv_define_sigwinch=maybe],
5933         [cf_cv_define_sigwinch=no])
5934 ])
5935 ])
5936
5937 if test "$cf_cv_define_sigwinch" = maybe ; then
5938 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
5939 cf_cv_fixup_sigwinch=unknown
5940 cf_sigwinch=32
5941 while test $cf_sigwinch != 1
5942 do
5943         AC_TRY_COMPILE([
5944 #undef _XOPEN_SOURCE
5945 #undef _POSIX_SOURCE
5946 #undef _POSIX_C_SOURCE
5947 #include <sys/types.h>
5948 #include <sys/signal.h>
5949 ],[
5950 #if SIGWINCH != $cf_sigwinch
5951 make an error
5952 #endif
5953 int x = SIGWINCH],
5954         [cf_cv_fixup_sigwinch=$cf_sigwinch
5955          break])
5956
5957 cf_sigwinch=`expr $cf_sigwinch - 1`
5958 done
5959 ])
5960
5961         if test "$cf_cv_fixup_sigwinch" != unknown ; then
5962                 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
5963         fi
5964 fi
5965 ])dnl
5966 dnl ---------------------------------------------------------------------------
5967 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
5968 dnl ---------------
5969 dnl signal handler, but there are some gcc depedencies in that recommendation.
5970 dnl Try anyway.
5971 AC_DEFUN([CF_SIG_ATOMIC_T],
5972 [
5973 AC_MSG_CHECKING(for signal global datatype)
5974 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
5975         for cf_type in \
5976                 "volatile sig_atomic_t" \
5977                 "sig_atomic_t" \
5978                 "int"
5979         do
5980         AC_TRY_COMPILE([
5981 #include <sys/types.h>
5982 #include <signal.h>
5983 #include <stdio.h>
5984
5985 extern $cf_type x;
5986 $cf_type x;
5987 static void handler(int sig)
5988 {
5989         x = 5;
5990 }],
5991                 [signal(SIGINT, handler);
5992                  x = 1],
5993                 [cf_cv_sig_atomic_t=$cf_type],
5994                 [cf_cv_sig_atomic_t=no])
5995                 test "$cf_cv_sig_atomic_t" != no && break
5996         done
5997         ])
5998 AC_MSG_RESULT($cf_cv_sig_atomic_t)
5999 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
6000 ])dnl
6001 dnl ---------------------------------------------------------------------------
6002 dnl CF_SIZECHANGE version: 9 updated: 2012/10/06 11:17:15
6003 dnl -------------
6004 dnl Check for definitions & structures needed for window size-changing
6005 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
6006 AC_DEFUN([CF_SIZECHANGE],
6007 [
6008 AC_REQUIRE([CF_STRUCT_TERMIOS])
6009 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
6010     cf_cv_sizechange=unknown
6011     cf_save_CPPFLAGS="$CPPFLAGS"
6012
6013 for cf_opts in "" "NEED_PTEM_H"
6014 do
6015
6016     CPPFLAGS="$cf_save_CPPFLAGS"
6017     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
6018     AC_TRY_COMPILE([#include <sys/types.h>
6019 #ifdef HAVE_TERMIOS_H
6020 #include <termios.h>
6021 #else
6022 #ifdef HAVE_TERMIO_H
6023 #include <termio.h>
6024 #endif
6025 #endif
6026 #ifdef NEED_PTEM_H
6027 /* This is a workaround for SCO:  they neglected to define struct winsize in
6028  * termios.h -- it's only in termio.h and ptem.h
6029  */
6030 #include        <sys/stream.h>
6031 #include        <sys/ptem.h>
6032 #endif
6033 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
6034 #include <sys/ioctl.h>
6035 #endif
6036 ],[
6037 #ifdef TIOCGSIZE
6038         struct ttysize win;     /* FIXME: what system is this? */
6039         int y = win.ts_lines;
6040         int x = win.ts_cols;
6041 #else
6042 #ifdef TIOCGWINSZ
6043         struct winsize win;
6044         int y = win.ws_row;
6045         int x = win.ws_col;
6046 #else
6047         no TIOCGSIZE or TIOCGWINSZ
6048 #endif /* TIOCGWINSZ */
6049 #endif /* TIOCGSIZE */
6050         ],
6051         [cf_cv_sizechange=yes],
6052         [cf_cv_sizechange=no])
6053
6054         CPPFLAGS="$cf_save_CPPFLAGS"
6055         if test "$cf_cv_sizechange" = yes ; then
6056                 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
6057                 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
6058                 break
6059         fi
6060 done
6061 ])
6062 if test "$cf_cv_sizechange" != no ; then
6063         AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechar declarations are provided])
6064         case $cf_cv_sizechange in #(vi
6065         NEED*)
6066                 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
6067                 ;;
6068         esac
6069 fi
6070 ])dnl
6071 dnl ---------------------------------------------------------------------------
6072 dnl CF_SRC_MODULES version: 28 updated: 2014/09/20 20:16:32
6073 dnl --------------
6074 dnl For each parameter, test if the source-directory exists, and if it contains
6075 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
6076 dnl use in CF_LIB_RULES.
6077 dnl
6078 dnl This uses the configured value to make the lists SRC_SUBDIRS and
6079 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
6080 AC_DEFUN([CF_SRC_MODULES],
6081 [
6082 AC_MSG_CHECKING(for src modules)
6083
6084 # dependencies and linker-arguments for test-programs
6085 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
6086 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
6087 if test "$DFT_LWR_MODEL" = "libtool"; then
6088         TEST_ARGS="${TEST_DEPS}"
6089         TEST_ARG2="${TEST_DEP2}"
6090 else
6091         TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
6092         TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
6093 fi
6094
6095 PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}"
6096 cf_cv_src_modules=
6097 for cf_dir in $1
6098 do
6099         if test -f $srcdir/$cf_dir/modules; then
6100
6101                 # We may/may not have tack in the distribution, though the
6102                 # makefile is.
6103                 if test $cf_dir = tack ; then
6104                         if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
6105                                 continue
6106                         fi
6107                 fi
6108
6109                 if test -z "$cf_cv_src_modules"; then
6110                         cf_cv_src_modules=$cf_dir
6111                 else
6112                         cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
6113                 fi
6114
6115                 # Make the ncurses_cfg.h file record the library interface files as
6116                 # well.  These are header files that are the same name as their
6117                 # directory.  Ncurses is the only library that does not follow
6118                 # that pattern.
6119                 if test $cf_dir = tack ; then
6120                         continue
6121                 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
6122                         CF_UPPER(cf_have_include,$cf_dir)
6123                         AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
6124                         AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
6125                         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
6126                         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
6127                         if test "$DFT_LWR_MODEL" = "libtool"; then
6128                                 TEST_ARGS="${TEST_DEPS}"
6129                                 TEST_ARG2="${TEST_DEP2}"
6130                         else
6131                                 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
6132                                 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
6133                         fi
6134                         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}"
6135                 fi
6136         fi
6137 done
6138 AC_MSG_RESULT($cf_cv_src_modules)
6139
6140 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
6141 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
6142
6143 AC_SUBST(TEST_ARGS)
6144 AC_SUBST(TEST_DEPS)
6145
6146 AC_SUBST(TEST_ARG2)
6147 AC_SUBST(TEST_DEP2)
6148
6149 SRC_SUBDIRS=
6150 if test "x$cf_with_manpages" != xno ; then
6151         SRC_SUBDIRS="$SRC_SUBDIRS man"
6152 fi
6153 SRC_SUBDIRS="$SRC_SUBDIRS include"
6154 for cf_dir in $cf_cv_src_modules
6155 do
6156         SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
6157 done
6158 if test "x$cf_with_tests" != "xno" ; then
6159         SRC_SUBDIRS="$SRC_SUBDIRS test"
6160 fi
6161 # always make this, to install the ncurses-config script
6162 SRC_SUBDIRS="$SRC_SUBDIRS misc"
6163 if test "$cf_with_cxx_binding" != no; then
6164         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}"
6165         SRC_SUBDIRS="$SRC_SUBDIRS c++"
6166 fi
6167
6168 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
6169 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
6170
6171 AC_SUBST(PC_MODULES_TO_MAKE)
6172
6173 ADA_SUBDIRS=
6174 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then
6175         SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
6176         ADA_SUBDIRS="gen src"
6177         if test "x$cf_with_tests" != "xno" ; then
6178                 ADA_SUBDIRS="$ADA_SUBDIRS samples"
6179         fi
6180 fi
6181
6182 SUB_MAKEFILES=
6183 for cf_dir in $SRC_SUBDIRS
6184 do
6185         SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
6186 done
6187
6188 if test -n "$ADA_SUBDIRS"; then
6189         for cf_dir in $ADA_SUBDIRS
6190         do
6191                 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
6192         done
6193         AC_SUBST(ADA_SUBDIRS)
6194 fi
6195 ])dnl
6196 dnl ---------------------------------------------------------------------------
6197 dnl CF_STDCPP_LIBRARY version: 7 updated: 2010/05/29 16:31:02
6198 dnl -----------------
6199 dnl Check for -lstdc++, which is GNU's standard C++ library.
6200 AC_DEFUN([CF_STDCPP_LIBRARY],
6201 [
6202 if test -n "$GXX" ; then
6203 case $cf_cv_system_name in #(vi
6204 os2*) #(vi
6205         cf_stdcpp_libname=stdcpp
6206         ;;
6207 *)
6208         cf_stdcpp_libname=stdc++
6209         ;;
6210 esac
6211 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
6212         cf_save="$LIBS"
6213         CF_ADD_LIB($cf_stdcpp_libname)
6214 AC_TRY_LINK([
6215 #include <strstream.h>],[
6216 char buf[80];
6217 strstreambuf foo(buf, sizeof(buf))
6218 ],
6219         [cf_cv_libstdcpp=yes],
6220         [cf_cv_libstdcpp=no])
6221         LIBS="$cf_save"
6222 ])
6223 test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS)
6224 fi
6225 ])dnl
6226 dnl ---------------------------------------------------------------------------
6227 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
6228 dnl --------------
6229 dnl     Remove "-g" option from the compiler options
6230 AC_DEFUN([CF_STRIP_G_OPT],
6231 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
6232 dnl ---------------------------------------------------------------------------
6233 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
6234 dnl -------------------
6235 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
6236 dnl do this if we've found the sigaction function.
6237 AC_DEFUN([CF_STRUCT_SIGACTION],[
6238 AC_REQUIRE([CF_XOPEN_SOURCE])
6239
6240 if test "$ac_cv_func_sigaction" = yes; then
6241 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
6242 AC_TRY_COMPILE([
6243 #include <sys/types.h>
6244 #include <signal.h>],
6245         [struct sigaction act],
6246         [sigact_bad=no],
6247         [
6248 AC_TRY_COMPILE([
6249 #define _POSIX_SOURCE
6250 #include <sys/types.h>
6251 #include <signal.h>],
6252         [struct sigaction act],
6253         [sigact_bad=yes
6254          AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
6255          [sigact_bad=unknown])])
6256 AC_MSG_RESULT($sigact_bad)
6257 fi
6258 ])dnl
6259 dnl ---------------------------------------------------------------------------
6260 dnl CF_STRUCT_TERMIOS version: 7 updated: 2012/10/06 17:56:13
6261 dnl -----------------
6262 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
6263 AC_DEFUN([CF_STRUCT_TERMIOS],[
6264 AC_REQUIRE([CF_XOPEN_SOURCE])
6265
6266 AC_CHECK_HEADERS( \
6267 termio.h \
6268 termios.h \
6269 unistd.h \
6270 )
6271
6272 if test "$ISC" = yes ; then
6273         AC_CHECK_HEADERS( sys/termio.h )
6274 fi
6275 if test "$ac_cv_header_termios_h" = yes ; then
6276         case "$CFLAGS $CPPFLAGS" in
6277         *-D_POSIX_SOURCE*)
6278                 termios_bad=dunno ;;
6279         *)      termios_bad=maybe ;;
6280         esac
6281         if test "$termios_bad" = maybe ; then
6282         AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
6283         AC_TRY_COMPILE([#include <termios.h>],
6284                 [struct termios foo; int x = foo.c_iflag],
6285                 termios_bad=no, [
6286                 AC_TRY_COMPILE([
6287 #define _POSIX_SOURCE
6288 #include <termios.h>],
6289                         [struct termios foo; int x = foo.c_iflag],
6290                         termios_bad=unknown,
6291                         termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
6292                         ])
6293         AC_MSG_RESULT($termios_bad)
6294         fi
6295 fi
6296 ])dnl
6297 dnl ---------------------------------------------------------------------------
6298 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
6299 dnl --------------
6300 dnl Construct a search-list for a nonstandard header/lib-file
6301 dnl     $1 = the variable to return as result
6302 dnl     $2 = the package name
6303 dnl     $3 = the subdirectory, e.g., bin, include or lib
6304 AC_DEFUN([CF_SUBDIR_PATH],
6305 [
6306 $1=
6307
6308 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
6309
6310 for cf_subdir_prefix in \
6311         /usr \
6312         /usr/local \
6313         /usr/pkg \
6314         /opt \
6315         /opt/local \
6316         [$]HOME
6317 do
6318         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
6319 done
6320 ])dnl
6321 dnl ---------------------------------------------------------------------------
6322 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
6323 dnl -----------
6324 dnl     Shorthand macro for substituting things that the user may override
6325 dnl     with an environment variable.
6326 dnl
6327 dnl     $1 = condition to pass to "test"
6328 dnl     $2 = environment variable
6329 dnl     $3 = value if the test succeeds
6330 dnl     $4 = value if the test fails
6331 AC_DEFUN([CF_SUBST_IF],
6332 [
6333 if test $1 ; then
6334         $2=$3
6335 ifelse($4,,,[else
6336         $2=$4])
6337 fi
6338 AC_SUBST($2)
6339 ])dnl
6340 dnl ---------------------------------------------------------------------------
6341 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
6342 dnl ------------------------
6343 dnl Get the version-number for use in shared-library naming, etc.
6344 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
6345 [
6346 AC_REQUIRE([CF_PROG_EGREP])
6347 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
6348 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
6349 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
6350 cf_cv_abi_version=${NCURSES_MAJOR}
6351 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
6352 dnl Show the computed version, for logging
6353 cf_cv_timestamp=`date`
6354 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
6355 dnl We need these values in the generated headers
6356 AC_SUBST(NCURSES_MAJOR)
6357 AC_SUBST(NCURSES_MINOR)
6358 AC_SUBST(NCURSES_PATCH)
6359 dnl We need these values in the generated makefiles
6360 AC_SUBST(cf_cv_rel_version)
6361 AC_SUBST(cf_cv_abi_version)
6362 AC_SUBST(cf_cv_builtin_bool)
6363 AC_SUBST(cf_cv_header_stdbool_h)
6364 AC_SUBST(cf_cv_type_of_bool)dnl
6365 ])dnl
6366 dnl ---------------------------------------------------------------------------
6367 dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07
6368 dnl ------------------
6369 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
6370 dnl older SCO configurations.
6371 AC_DEFUN([CF_SYS_TIME_SELECT],
6372 [
6373 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
6374 AC_CACHE_VAL(cf_cv_sys_time_select,[
6375 AC_TRY_COMPILE([
6376 #include <sys/types.h>
6377 #ifdef HAVE_SYS_TIME_H
6378 #include <sys/time.h>
6379 #endif
6380 #ifdef HAVE_SYS_SELECT_H
6381 #include <sys/select.h>
6382 #endif
6383 ],[],[cf_cv_sys_time_select=yes],
6384      [cf_cv_sys_time_select=no])
6385      ])
6386 AC_MSG_RESULT($cf_cv_sys_time_select)
6387 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
6388 ])dnl
6389 dnl ---------------------------------------------------------------------------
6390 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
6391 dnl ---------------
6392 dnl Define a top_builddir symbol, for applications that need an absolute path.
6393 AC_DEFUN([CF_TOP_BUILDDIR],
6394 [
6395 top_builddir=ifelse($1,,`pwd`,$1)
6396 AC_SUBST(top_builddir)
6397 ])dnl
6398 dnl ---------------------------------------------------------------------------
6399 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
6400 dnl -------------------
6401 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
6402 dnl can define it successfully.
6403 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
6404 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
6405         AC_TRY_COMPILE([
6406 #include <stdlib.h>
6407 #include <string.h>
6408 #include <sys/types.h>
6409 ],[
6410 #ifndef _XOPEN_SOURCE
6411 make an error
6412 #endif],
6413         [cf_cv_xopen_source=no],
6414         [cf_save="$CPPFLAGS"
6415          CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6416          AC_TRY_COMPILE([
6417 #include <stdlib.h>
6418 #include <string.h>
6419 #include <sys/types.h>
6420 ],[
6421 #ifdef _XOPEN_SOURCE
6422 make an error
6423 #endif],
6424         [cf_cv_xopen_source=no],
6425         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
6426         CPPFLAGS="$cf_save"
6427         ])
6428 ])
6429
6430 if test "$cf_cv_xopen_source" != no ; then
6431         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
6432         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
6433         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
6434         CF_ADD_CFLAGS($cf_temp_xopen_source)
6435 fi
6436 ])
6437 dnl ---------------------------------------------------------------------------
6438 dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13
6439 dnl ----------------
6440 dnl Determine the type we should use for chtype (and attr_t, which is treated
6441 dnl as the same thing).  We want around 32 bits, so on most machines want a
6442 dnl long, but on newer 64-bit machines, probably want an int.  If we're using
6443 dnl wide characters, we have to have a type compatible with that, as well.
6444 AC_DEFUN([CF_TYPEOF_CHTYPE],
6445 [
6446 AC_MSG_CHECKING([for type of chtype])
6447 AC_CACHE_VAL(cf_cv_typeof_chtype,[
6448                 AC_TRY_RUN([
6449 #define WANT_BITS 31
6450 #include <stdio.h>
6451 int main()
6452 {
6453         FILE *fp = fopen("cf_test.out", "w");
6454         if (fp != 0) {
6455                 char *result = "long";
6456                 if (sizeof(unsigned long) > sizeof(unsigned int)) {
6457                         int n;
6458                         unsigned int x, y;
6459                         for (n = 0; n < WANT_BITS; n++) {
6460                                 x = (1 << n);
6461                                 y = (x >> n);
6462                                 if (y != 1 || x == 0) {
6463                                         x = 0;
6464                                         break;
6465                                 }
6466                         }
6467                         /*
6468                          * If x is nonzero, an int is big enough for the bits
6469                          * that we want.
6470                          */
6471                         result = (x != 0) ? "int" : "long";
6472                 }
6473                 fputs(result, fp);
6474                 fclose(fp);
6475         }
6476         ${cf_cv_main_return:-return}(0);
6477 }
6478                 ],
6479                 [cf_cv_typeof_chtype=`cat cf_test.out`],
6480                 [cf_cv_typeof_chtype=long],
6481                 [cf_cv_typeof_chtype=long])
6482                 rm -f cf_test.out
6483         ])
6484 AC_MSG_RESULT($cf_cv_typeof_chtype)
6485
6486 AC_SUBST(cf_cv_typeof_chtype)
6487 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
6488 ])dnl
6489 dnl ---------------------------------------------------------------------------
6490 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
6491 dnl -----------------
6492 dnl
6493 AC_DEFUN([CF_TYPE_SIGACTION],
6494 [
6495 AC_MSG_CHECKING([for type sigaction_t])
6496 AC_CACHE_VAL(cf_cv_type_sigaction,[
6497         AC_TRY_COMPILE([
6498 #include <signal.h>],
6499                 [sigaction_t x],
6500                 [cf_cv_type_sigaction=yes],
6501                 [cf_cv_type_sigaction=no])])
6502 AC_MSG_RESULT($cf_cv_type_sigaction)
6503 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
6504 ])dnl
6505 dnl ---------------------------------------------------------------------------
6506 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
6507 dnl --------------------
6508 dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
6509 dnl won't, but they're still there.
6510 AC_DEFUN([CF_UNSIGNED_LITERALS],
6511 [
6512 AC_MSG_CHECKING([if unsigned literals are legal])
6513 AC_CACHE_VAL(cf_cv_unsigned_literals,[
6514         AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
6515                 [cf_cv_unsigned_literals=yes],
6516                 [cf_cv_unsigned_literals=no])
6517         ])
6518 AC_MSG_RESULT($cf_cv_unsigned_literals)
6519 ])dnl
6520 dnl ---------------------------------------------------------------------------
6521 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
6522 dnl --------
6523 dnl Make an uppercase version of a variable
6524 dnl $1=uppercase($2)
6525 AC_DEFUN([CF_UPPER],
6526 [
6527 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
6528 ])dnl
6529 dnl ---------------------------------------------------------------------------
6530 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
6531 dnl -----------
6532 dnl Check for multibyte support, and if not found, utf8 compatibility library
6533 AC_DEFUN([CF_UTF8_LIB],
6534 [
6535 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
6536         cf_save_LIBS="$LIBS"
6537         AC_TRY_LINK([
6538 #include <stdlib.h>],[putwc(0,0);],
6539         [cf_cv_utf8_lib=yes],
6540         [CF_FIND_LINKAGE([
6541 #include <libutf8.h>],[putwc(0,0);],utf8,
6542                 [cf_cv_utf8_lib=add-on],
6543                 [cf_cv_utf8_lib=no])
6544 ])])
6545
6546 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
6547 # ncurses/ncursesw:
6548 if test "$cf_cv_utf8_lib" = "add-on" ; then
6549         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
6550         CF_ADD_INCDIR($cf_cv_header_path_utf8)
6551         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
6552         CF_ADD_LIBS($cf_cv_library_file_utf8)
6553 fi
6554 ])dnl
6555 dnl ---------------------------------------------------------------------------
6556 dnl CF_VA_COPY version: 3 updated: 2012/10/06 11:17:15
6557 dnl ----------
6558 dnl check for va_copy, part of stdarg.h
6559 dnl Also, workaround for glibc's __va_copy, by checking for both.
6560 AC_DEFUN([CF_VA_COPY],[
6561 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
6562 AC_TRY_LINK([
6563 #include <stdarg.h>
6564 ],[
6565         static va_list dst;
6566         static va_list src;
6567         va_copy(dst, src)],
6568         cf_cv_have_va_copy=yes,
6569         cf_cv_have_va_copy=no)])
6570
6571 test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
6572
6573 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
6574 AC_TRY_LINK([
6575 #include <stdarg.h>
6576 ],[
6577         static va_list dst;
6578         static va_list src;
6579         __va_copy(dst, src)],
6580         cf_cv_have___va_copy=yes,
6581         cf_cv_have___va_copy=no)])
6582
6583 test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
6584 ])
6585 dnl ---------------------------------------------------------------------------
6586 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
6587 dnl ----------
6588 dnl Use AC_VERBOSE w/o the warnings
6589 AC_DEFUN([CF_VERBOSE],
6590 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
6591 CF_MSG_LOG([$1])
6592 ])dnl
6593 dnl ---------------------------------------------------------------------------
6594 dnl CF_VERSION_INFO version: 6 updated: 2013/06/16 10:25:53
6595 dnl ---------------
6596 dnl Define several useful symbols derived from the VERSION file.  A separate
6597 dnl file is preferred to embedding the version numbers in various scripts.
6598 dnl (automake is a textbook-example of why the latter is a bad idea, but there
6599 dnl are others).
6600 dnl
6601 dnl The file contents are:
6602 dnl     libtool-version release-version patch-version
6603 dnl or
6604 dnl     release-version
6605 dnl where
6606 dnl     libtool-version (see ?) consists of 3 integers separated by '.'
6607 dnl     release-version consists of a major version and minor version
6608 dnl             separated by '.', optionally followed by a patch-version
6609 dnl             separated by '-'.  The minor version need not be an
6610 dnl             integer (but it is preferred).
6611 dnl     patch-version is an integer in the form yyyymmdd, so ifdef's and
6612 dnl             scripts can easily compare versions.
6613 dnl
6614 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
6615 dnl simply extracts the first field using 'cut -f1'.
6616 dnl
6617 dnl Optional parameters:
6618 dnl $1 = internal name for package
6619 dnl $2 = external name for package
6620 AC_DEFUN([CF_VERSION_INFO],
6621 [
6622 if test -f $srcdir/VERSION ; then
6623         AC_MSG_CHECKING(for package version)
6624
6625         # if there are not enough fields, cut returns the last one...
6626         cf_field1=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
6627         cf_field2=`sed -e '2,$d' $srcdir/VERSION|cut -f2`
6628         cf_field3=`sed -e '2,$d' $srcdir/VERSION|cut -f3`
6629
6630         # this is how CF_BUNDLED_INTL uses $VERSION:
6631         VERSION="$cf_field1"
6632
6633         VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
6634         test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
6635
6636         VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
6637         test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
6638
6639         AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
6640
6641         AC_MSG_CHECKING(for package patch date)
6642         VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
6643         case .$VERSION_PATCH in
6644         .)
6645                 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
6646                 ;;
6647         .[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
6648                 ;;
6649         *)
6650                 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
6651                 ;;
6652         esac
6653         AC_MSG_RESULT($VERSION_PATCH)
6654 else
6655         AC_MSG_ERROR(did not find $srcdir/VERSION)
6656 fi
6657
6658 # show the actual data that we have for versions:
6659 CF_VERBOSE(ABI VERSION $VERSION)
6660 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
6661 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
6662 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
6663
6664 AC_SUBST(VERSION)
6665 AC_SUBST(VERSION_MAJOR)
6666 AC_SUBST(VERSION_MINOR)
6667 AC_SUBST(VERSION_PATCH)
6668
6669 dnl if a package name is given, define its corresponding version info.  We
6670 dnl need the package name to ensure that the defined symbols are unique.
6671 ifelse($1,,,[
6672         cf_PACKAGE=$1
6673         PACKAGE=ifelse($2,,$1,$2)
6674         AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
6675         AC_SUBST(PACKAGE)
6676         CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
6677         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
6678         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
6679 ])
6680 ])dnl
6681 dnl ---------------------------------------------------------------------------
6682 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
6683 dnl -------------
6684 dnl Check if type wide-character type $1 is declared, and if so, which header
6685 dnl file is needed.  The second parameter is used to set a shell variable when
6686 dnl the type is not found.  The first parameter sets a shell variable for the
6687 dnl opposite sense.
6688 AC_DEFUN([CF_WCHAR_TYPE],
6689 [
6690 # This is needed on Tru64 5.0 to declare $1
6691 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
6692 AC_TRY_COMPILE([
6693 #include <stdlib.h>
6694 #include <stdarg.h>
6695 #include <stdio.h>
6696 #ifdef HAVE_LIBUTF8_H
6697 #include <libutf8.h>
6698 #endif],
6699         [$1 state],
6700         [cf_cv_$1=no],
6701         [AC_TRY_COMPILE([
6702 #include <stdlib.h>
6703 #include <stdarg.h>
6704 #include <stdio.h>
6705 #include <wchar.h>
6706 #ifdef HAVE_LIBUTF8_H
6707 #include <libutf8.h>
6708 #endif],
6709         [$1 value],
6710         [cf_cv_$1=yes],
6711         [cf_cv_$1=unknown])])])
6712
6713 if test "$cf_cv_$1" = yes ; then
6714         AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
6715         NEED_WCHAR_H=1
6716 fi
6717
6718 ifelse([$2],,,[
6719 # if we do not find $1 in either place, use substitution to provide a fallback.
6720 if test "$cf_cv_$1" = unknown ; then
6721         $2=1
6722 fi
6723 ])
6724 ifelse($3,,,[
6725 # if we find $1 in either place, use substitution to provide a fallback.
6726 if test "$cf_cv_$1" != unknown ; then
6727         $3=1
6728 fi
6729 ])
6730 ])dnl
6731 dnl ---------------------------------------------------------------------------
6732 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
6733 dnl ---------------
6734 dnl Check for compiler-support for weak symbols.
6735 dnl This works with "recent" gcc.
6736 AC_DEFUN([CF_WEAK_SYMBOLS],[
6737 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
6738
6739 AC_TRY_COMPILE([
6740 #include <stdio.h>],
6741 [
6742 #if defined(__GNUC__)
6743 #  if defined __USE_ISOC99
6744 #    define _cat_pragma(exp)    _Pragma(#exp)
6745 #    define _weak_pragma(exp)   _cat_pragma(weak name)
6746 #  else
6747 #    define _weak_pragma(exp)
6748 #  endif
6749 #  define _declare(name)        __extension__ extern __typeof__(name) name
6750 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
6751 #endif
6752
6753 weak_symbol(fopen);
6754 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
6755 ])
6756 ])dnl
6757 dnl ---------------------------------------------------------------------------
6758 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
6759 dnl -------------------
6760 dnl Allow library's ABI to be overridden.  Generally this happens when a
6761 dnl packager has incremented the ABI past that used in the original package,
6762 dnl and wishes to keep doing this.
6763 dnl
6764 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6765 dnl symbol.
6766 AC_DEFUN([CF_WITH_ABI_VERSION],[
6767 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
6768 AC_ARG_WITH(abi-version,
6769 [  --with-abi-version=XXX  override derived ABI version],
6770 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
6771  cf_cv_abi_version=$withval])
6772  CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
6773 ifelse($1,,,[
6774 $1_ABI=$cf_cv_abi_version
6775 ])
6776 ])dnl
6777 dnl ---------------------------------------------------------------------------
6778 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
6779 dnl --------------------
6780 dnl Command-line option to specify the Ada95 compiler.
6781 AC_DEFUN([CF_WITH_ADA_COMPILER],[
6782 AC_MSG_CHECKING(for ada-compiler)
6783 AC_ARG_WITH(ada-compiler,
6784         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
6785         [cf_ada_compiler=$withval],
6786         [cf_ada_compiler=gnatmake])
6787 AC_SUBST(cf_ada_compiler)
6788 AC_MSG_RESULT($cf_ada_compiler)
6789 ])dnl
6790 dnl ---------------------------------------------------------------------------
6791 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
6792 dnl -------------------
6793 dnl Command-line option to specify where Ada includes will install.
6794 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
6795 AC_MSG_CHECKING(for ada-include)
6796 CF_WITH_PATH(ada-include,
6797    [  --with-ada-include=DIR  Ada includes are in DIR],
6798    ADA_INCLUDE,
6799    PREFIX/share/ada/adainclude,
6800    [$]prefix/share/ada/adainclude)
6801 AC_SUBST(ADA_INCLUDE)
6802 AC_MSG_RESULT($ADA_INCLUDE)
6803 ])dnl
6804 dnl ---------------------------------------------------------------------------
6805 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
6806 dnl -------------------
6807 dnl Command-line option to specify where Ada objects will install.
6808 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
6809 AC_MSG_CHECKING(for ada-objects)
6810 CF_WITH_PATH(ada-objects,
6811    [  --with-ada-objects=DIR  Ada objects are in DIR],
6812    ADA_OBJECTS,
6813    PREFIX/lib/ada/adalib,
6814    [$]prefix/lib/ada/adalib)
6815 AC_SUBST(ADA_OBJECTS)
6816 AC_MSG_RESULT($ADA_OBJECTS)
6817 ])dnl
6818 dnl ---------------------------------------------------------------------------
6819 dnl CF_WITH_ADA_SHAREDLIB version: 4 updated: 2014/05/31 21:08:37
6820 dnl ---------------------
6821 dnl Command-line option to specify if an Ada95 shared-library should be built,
6822 dnl and optionally what its soname should be.
6823 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
6824 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
6825 AC_ARG_WITH(ada-sharedlib,
6826         [  --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
6827         [with_ada_sharedlib=$withval],
6828         [with_ada_sharedlib=no])
6829 AC_MSG_RESULT($with_ada_sharedlib)
6830
6831 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
6832 MAKE_ADA_SHAREDLIB="#"
6833
6834 if test "x$with_ada_sharedlib" != xno
6835 then
6836         MAKE_ADA_SHAREDLIB=
6837         if test "x$with_ada_sharedlib" != xyes
6838         then
6839                 ADA_SHAREDLIB="$with_ada_sharedlib"
6840         fi
6841 fi
6842
6843 AC_SUBST(ADA_SHAREDLIB)
6844 AC_SUBST(MAKE_ADA_SHAREDLIB)
6845 ])dnl
6846 dnl ---------------------------------------------------------------------------
6847 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
6848 dnl ----------------
6849 dnl Configure-option for dbmalloc.  The optional parameter is used to override
6850 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
6851 AC_DEFUN([CF_WITH_DBMALLOC],[
6852 CF_NO_LEAKS_OPTION(dbmalloc,
6853         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
6854         [USE_DBMALLOC])
6855
6856 if test "$with_dbmalloc" = yes ; then
6857         AC_CHECK_HEADER(dbmalloc.h,
6858                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
6859 fi
6860 ])dnl
6861 dnl ---------------------------------------------------------------------------
6862 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
6863 dnl ---------------
6864 dnl Configure-option for dmalloc.  The optional parameter is used to override
6865 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
6866 AC_DEFUN([CF_WITH_DMALLOC],[
6867 CF_NO_LEAKS_OPTION(dmalloc,
6868         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
6869         [USE_DMALLOC])
6870
6871 if test "$with_dmalloc" = yes ; then
6872         AC_CHECK_HEADER(dmalloc.h,
6873                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
6874 fi
6875 ])dnl
6876 dnl ---------------------------------------------------------------------------
6877 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
6878 dnl -------------------
6879 dnl Use this with libtool to specify the list of symbols that may be exported.
6880 dnl The input file contains one symbol per line; comments work with "#".
6881 dnl
6882 dnl $1 = basename of the ".sym" file (default $PACKAGE)
6883 AC_DEFUN([CF_WITH_EXPORT_SYMS],
6884 [
6885 AC_MSG_CHECKING(if exported-symbols file should be used)
6886 AC_ARG_WITH(export-syms,
6887         [  --with-export-syms=XXX  limit exported symbols using libtool],
6888         [with_export_syms=$withval],
6889         [with_export_syms=no])
6890 if test "x$with_export_syms" = xyes
6891 then
6892         with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
6893         AC_SUBST(PACKAGE)
6894 fi
6895 AC_MSG_RESULT($with_export_syms)
6896 if test "x$with_export_syms" != xno
6897 then
6898         EXPORT_SYMS="-export-symbols $with_export_syms"
6899         AC_SUBST(EXPORT_SYMS)
6900 fi
6901 ])dnl
6902 dnl ---------------------------------------------------------------------------
6903 dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13
6904 dnl -----------
6905 dnl
6906 dnl The option parameter (if neither yes/no) is assumed to be the name of
6907 dnl the gpm library, e.g., for dynamic loading.
6908 AC_DEFUN([CF_WITH_GPM],
6909 [
6910 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
6911 AC_ARG_WITH(gpm,
6912         [  --with-gpm              use Alessandro Rubini's GPM library],
6913         [with_gpm=$withval],
6914         [with_gpm=maybe])
6915 AC_MSG_RESULT($with_gpm)
6916
6917 if test "$with_gpm" != no ; then
6918         AC_CHECK_HEADER(gpm.h,[
6919                 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
6920                 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
6921                         CF_VERBOSE(assuming we really have GPM library)
6922                         AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
6923                 else
6924                         AC_CHECK_LIB(gpm,Gpm_Open,[:],[
6925                                 AC_MSG_ERROR(Cannot link with GPM library)
6926                 fi
6927                 with_gpm=yes
6928                 ])
6929         ],[
6930                 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
6931                 with_gpm=no
6932         ])
6933 fi
6934 ])
6935 dnl ---------------------------------------------------------------------------
6936 dnl CF_WITH_LIBTOOL version: 31 updated: 2014/11/15 19:05:29
6937 dnl ---------------
6938 dnl Provide a configure option to incorporate libtool.  Define several useful
6939 dnl symbols for the makefile rules.
6940 dnl
6941 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
6942 dnl macros from libtool.m4 which is in the aclocal directory of automake.
6943 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
6944 dnl But that still does not work properly since the macro is expanded outside
6945 dnl the CF_WITH_LIBTOOL macro:
6946 dnl
6947 dnl     #!/bin/sh
6948 dnl     ACLOCAL=`aclocal --print-ac-dir`
6949 dnl     if test -z "$ACLOCAL" ; then
6950 dnl             echo cannot find aclocal directory
6951 dnl             exit 1
6952 dnl     elif test ! -f $ACLOCAL/libtool.m4 ; then
6953 dnl             echo cannot find libtool.m4 file
6954 dnl             exit 1
6955 dnl     fi
6956 dnl
6957 dnl     LOCAL=aclocal.m4
6958 dnl     ORIG=aclocal.m4.orig
6959 dnl
6960 dnl     trap "mv $ORIG $LOCAL" 0 1 2 5 15
6961 dnl     rm -f $ORIG
6962 dnl     mv $LOCAL $ORIG
6963 dnl
6964 dnl     # sed the LIBTOOL= assignment to omit the current directory?
6965 dnl     sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
6966 dnl     cat $ORIG >>$LOCAL
6967 dnl
6968 dnl     autoconf-257 $*
6969 dnl
6970 AC_DEFUN([CF_WITH_LIBTOOL],
6971 [
6972 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
6973 ifdef([AC_PROG_LIBTOOL],,[
6974 LIBTOOL=
6975 ])
6976 # common library maintenance symbols that are convenient for libtool scripts:
6977 LIB_CREATE='${AR} -cr'
6978 LIB_OBJECT='${OBJECTS}'
6979 LIB_SUFFIX=.a
6980 LIB_PREP="$RANLIB"
6981
6982 # symbols used to prop libtool up to enable it to determine what it should be
6983 # doing:
6984 LIB_CLEAN=
6985 LIB_COMPILE=
6986 LIB_LINK='${CC}'
6987 LIB_INSTALL=
6988 LIB_UNINSTALL=
6989
6990 AC_MSG_CHECKING(if you want to build libraries with libtool)
6991 AC_ARG_WITH(libtool,
6992         [  --with-libtool          generate libraries with libtool],
6993         [with_libtool=$withval],
6994         [with_libtool=no])
6995 AC_MSG_RESULT($with_libtool)
6996 if test "$with_libtool" != "no"; then
6997 ifdef([AC_PROG_LIBTOOL],[
6998         # missing_content_AC_PROG_LIBTOOL{{
6999         AC_PROG_LIBTOOL
7000         # missing_content_AC_PROG_LIBTOOL}}
7001 ],[
7002         if test "$with_libtool" != "yes" ; then
7003                 CF_PATH_SYNTAX(with_libtool)
7004                 LIBTOOL=$with_libtool
7005         else
7006                 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
7007                 CF_LIBTOOL_VERSION
7008                 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
7009                 then
7010                         CF_FORGET_TOOL(LIBTOOL)
7011                         AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
7012                         CF_LIBTOOL_VERSION
7013                 fi
7014         fi
7015         if test -z "$LIBTOOL" ; then
7016                 AC_MSG_ERROR(Cannot find libtool)
7017         fi
7018 ])dnl
7019         LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
7020         LIB_OBJECT='${OBJECTS:.o=.lo}'
7021         LIB_SUFFIX=.la
7022         LIB_CLEAN='${LIBTOOL} --mode=clean'
7023         LIB_COMPILE='${LIBTOOL} --mode=compile'
7024         LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
7025         LIB_INSTALL='${LIBTOOL} --mode=install'
7026         LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
7027         LIB_PREP=:
7028
7029         CF_CHECK_LIBTOOL_VERSION
7030
7031         # special hack to add -no-undefined (which libtool should do for itself)
7032         LT_UNDEF=
7033         case "$cf_cv_system_name" in #(vi
7034         cygwin*|msys*|mingw32*|uwin*|aix[[4-7]]) #(vi
7035                 LT_UNDEF=-no-undefined
7036                 ;;
7037         esac
7038         AC_SUBST([LT_UNDEF])
7039
7040         # special hack to add --tag option for C++ compiler
7041         case $cf_cv_libtool_version in #(vi
7042         1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
7043                 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
7044                 LIBTOOL="$LIBTOOL --tag=CC"
7045                 ;;
7046         *)
7047                 LIBTOOL_CXX="$LIBTOOL"
7048                 ;;
7049         esac
7050 else
7051         LIBTOOL=""
7052         LIBTOOL_CXX=""
7053 fi
7054
7055 test -z "$LIBTOOL" && ECHO_LT=
7056
7057 AC_SUBST(LIBTOOL)
7058 AC_SUBST(LIBTOOL_CXX)
7059 AC_SUBST(LIBTOOL_OPTS)
7060
7061 AC_SUBST(LIB_CREATE)
7062 AC_SUBST(LIB_OBJECT)
7063 AC_SUBST(LIB_SUFFIX)
7064 AC_SUBST(LIB_PREP)
7065
7066 AC_SUBST(LIB_CLEAN)
7067 AC_SUBST(LIB_COMPILE)
7068 AC_SUBST(LIB_LINK)
7069 AC_SUBST(LIB_INSTALL)
7070 AC_SUBST(LIB_UNINSTALL)
7071
7072 ])dnl
7073 dnl ---------------------------------------------------------------------------
7074 dnl CF_WITH_LIBTOOL_OPTS version: 3 updated: 2014/11/02 16:11:49
7075 dnl --------------------
7076 dnl Allow user to pass additional libtool options into the library creation
7077 dnl and link steps.  The main use for this is to do something like
7078 dnl     ./configure --with-libtool-opts=-static
7079 dnl to get the same behavior as automake-flavored
7080 dnl     ./configure --enable-static
7081 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
7082 AC_MSG_CHECKING(for additional libtool options)
7083 AC_ARG_WITH(libtool-opts,
7084         [  --with-libtool-opts=XXX specify additional libtool options],
7085         [with_libtool_opts=$withval],
7086         [with_libtool_opts=no])
7087 AC_MSG_RESULT($with_libtool_opts)
7088
7089 case .$with_libtool_opts in
7090 .yes|.no|.)
7091         ;;
7092 *)
7093         LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
7094         ;;
7095 esac
7096
7097 AC_SUBST(LIBTOOL_OPTS)
7098 ])dnl
7099 dnl ---------------------------------------------------------------------------
7100 dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
7101 dnl ------------------
7102 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
7103 dnl "lib" prefix, e.g., because it used the dll naming convention.
7104 dnl
7105 dnl $1 = variable to set
7106 AC_DEFUN([CF_WITH_LIB_PREFIX],
7107 [
7108 AC_MSG_CHECKING(if you want to have a library-prefix)
7109 AC_ARG_WITH(lib-prefix,
7110         [  --with-lib-prefix       override library-prefix],
7111         [with_lib_prefix=$withval],
7112         [with_lib_prefix=auto])
7113 AC_MSG_RESULT($with_lib_prefix)
7114
7115 if test $with_lib_prefix = auto
7116 then
7117         CF_LIB_PREFIX($1)
7118 elif test $with_lib_prefix = no
7119 then
7120         LIB_PREFIX=
7121 else
7122         LIB_PREFIX=$with_lib_prefix
7123 fi
7124 ])dnl
7125 dnl ---------------------------------------------------------------------------
7126 dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
7127 dnl ------------
7128 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
7129 dnl defaulting to yes/no.
7130 dnl
7131 dnl $1 = option name
7132 dnl $2 = help-text
7133 dnl $3 = environment variable to set
7134 dnl $4 = default value, shown in the help-message, must be a constant
7135 dnl $5 = default value, if it's an expression & cannot be in the help-message
7136 dnl
7137 AC_DEFUN([CF_WITH_PATH],
7138 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
7139 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
7140 if ifelse([$5],,true,[test -n "$5"]) ; then
7141 CF_PATH_SYNTAX(withval)
7142 fi
7143 eval $3="$withval"
7144 AC_SUBST($3)dnl
7145 ])dnl
7146 dnl ---------------------------------------------------------------------------
7147 dnl CF_WITH_PATHLIST version: 9 updated: 2012/10/18 05:05:24
7148 dnl ----------------
7149 dnl Process an option specifying a list of colon-separated paths.
7150 dnl
7151 dnl $1 = option name
7152 dnl $2 = help-text
7153 dnl $3 = environment variable to set
7154 dnl $4 = default value, shown in the help-message, must be a constant
7155 dnl $5 = default value, if it's an expression & cannot be in the help-message
7156 dnl $6 = flag to tell if we want to define or substitute
7157 dnl
7158 AC_DEFUN([CF_WITH_PATHLIST],[
7159 AC_REQUIRE([CF_PATHSEP])
7160 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
7161 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
7162
7163 IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
7164 cf_dst_path=
7165 for cf_src_path in $withval
7166 do
7167   CF_PATH_SYNTAX(cf_src_path)
7168   test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
7169   cf_dst_path="${cf_dst_path}${cf_src_path}"
7170 done
7171 IFS="$ac_save_ifs"
7172
7173 ifelse($6,define,[
7174 # Strip single quotes from the value, e.g., when it was supplied as a literal
7175 # for $4 or $5.
7176 case $cf_dst_path in #(vi
7177 \'*)
7178   cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
7179   ;;
7180 esac
7181 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
7182 ])
7183
7184 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
7185 # so we have to check/work around.  We do prefer the result of "eval"...
7186 eval cf_dst_eval="$cf_dst_path"
7187 case "x$cf_dst_eval" in #(vi
7188 xNONE*) #(vi
7189         $3=$cf_dst_path
7190         ;;
7191 *)
7192         $3="$cf_dst_eval"
7193         ;;
7194 esac
7195 AC_SUBST($3)dnl
7196
7197 ])dnl
7198 dnl ---------------------------------------------------------------------------
7199 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 5 updated: 2015/01/21 20:10:54
7200 dnl -------------------------
7201 dnl Allow the choice of the pkg-config library directory to be overridden.
7202 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
7203 AC_MSG_CHECKING(for $PKG_CONFIG library directory)
7204 AC_ARG_WITH(pkg-config-libdir,
7205         [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
7206         [PKG_CONFIG_LIBDIR=$withval],
7207         [PKG_CONFIG_LIBDIR=yes])
7208
7209 case x$PKG_CONFIG_LIBDIR in #(vi
7210 x/*) #(vi
7211         ;;
7212 xyes) #(vi
7213         # Look for the library directory using the same prefix as the executable
7214         if test "x$PKG_CONFIG" = xnone
7215         then
7216                 cf_path=$prefix
7217         else
7218                 cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
7219         fi
7220
7221         # If you don't like using the default architecture, you have to specify the
7222         # intended library directory and corresponding compiler/linker options.
7223         #
7224         # This case allows for Debian's 2014-flavor of multiarch, along with the
7225         # most common variations before that point.  Some other variants spell the
7226         # directory differently, e.g., "pkg-config", and put it in unusual places.
7227         # pkg-config has always been poorly standardized, which is ironic...
7228         case x`(arch) 2>/dev/null` in #(vi
7229         *64) #(vi
7230                 cf_search_path="\
7231                         $cf_path/lib/*64-linux-gnu \
7232                         $cf_path/share \
7233                         $cf_path/lib64 \
7234                         $cf_path/lib32 \
7235                         $cf_path/lib"
7236                 ;;
7237         *)
7238                 cf_search_path="\
7239                         $cf_path/lib/*-linux-gnu \
7240                         $cf_path/share \
7241                         $cf_path/lib32 \
7242                         $cf_path/lib \
7243                         $cf_path/libdata"
7244                 ;;
7245         esac
7246
7247         CF_VERBOSE(list...)
7248         for cf_config in $cf_search_path
7249         do
7250                 CF_VERBOSE(checking $cf_config/pkgconfig)
7251                 if test -d $cf_config/pkgconfig
7252                 then
7253                         PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
7254                         AC_MSG_CHECKING(done)
7255                         break
7256                 fi
7257         done
7258         ;;
7259 *)
7260         ;;
7261 esac
7262
7263 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
7264
7265 AC_SUBST(PKG_CONFIG_LIBDIR)
7266 ])dnl
7267 dnl ---------------------------------------------------------------------------
7268 dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51
7269 dnl ---------------
7270 dnl Check for POSIX thread library.
7271 AC_DEFUN([CF_WITH_PTHREAD],
7272 [
7273 AC_MSG_CHECKING(if you want to link with the pthread library)
7274 AC_ARG_WITH(pthread,
7275     [  --with-pthread          use POSIX thread library],
7276     [with_pthread=$withval],
7277     [with_pthread=no])
7278 AC_MSG_RESULT($with_pthread)
7279
7280 if test "$with_pthread" != no ; then
7281     AC_CHECK_HEADER(pthread.h,[
7282         AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
7283
7284         for cf_lib_pthread in pthread c_r
7285         do
7286             AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
7287             cf_save_LIBS="$LIBS"
7288             CF_ADD_LIB($cf_lib_pthread)
7289             AC_TRY_LINK([
7290 #include <pthread.h>
7291 ],[
7292                 int rc = pthread_create(0,0,0,0);
7293                 int r2 = pthread_mutexattr_settype(0, 0);
7294 ],[with_pthread=yes],[with_pthread=no])
7295             LIBS="$cf_save_LIBS"
7296             AC_MSG_RESULT($with_pthread)
7297             test "$with_pthread" = yes && break
7298         done
7299
7300         if test "$with_pthread" = yes ; then
7301             CF_ADD_LIB($cf_lib_pthread)
7302             AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
7303         else
7304             AC_MSG_ERROR(Cannot link with pthread library)
7305         fi
7306     ])
7307 fi
7308 ])
7309 dnl ---------------------------------------------------------------------------
7310 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
7311 dnl -------------------
7312 dnl Allow library's release-version to be overridden.  Generally this happens when a
7313 dnl packager has incremented the release-version past that used in the original package,
7314 dnl and wishes to keep doing this.
7315 dnl
7316 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
7317 dnl and {package}_MINOR symbols
7318 dnl symbol.
7319 AC_DEFUN([CF_WITH_REL_VERSION],[
7320 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
7321 AC_ARG_WITH(rel-version,
7322 [  --with-rel-version=XXX  override derived release version],
7323 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
7324  cf_cv_rel_version=$withval])
7325 ifelse($1,,[
7326  CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
7327 ],[
7328  $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
7329  $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
7330  CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
7331  CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
7332 ])
7333 ])dnl
7334 dnl ---------------------------------------------------------------------------
7335 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
7336 dnl ----------------
7337 dnl If we can compile with sysmouse, make it available unless it is not wanted.
7338 AC_DEFUN([CF_WITH_SYSMOUSE],[
7339 # not everyone has "test -c"
7340 if test -c /dev/sysmouse 2>/dev/null ; then
7341 AC_MSG_CHECKING(if you want to use sysmouse)
7342 AC_ARG_WITH(sysmouse,
7343         [  --with-sysmouse         use sysmouse (FreeBSD console)],
7344         [cf_with_sysmouse=$withval],
7345         [cf_with_sysmouse=maybe])
7346         if test "$cf_with_sysmouse" != no ; then
7347         AC_TRY_COMPILE([
7348 #include <osreldate.h>
7349 #if (__FreeBSD_version >= 400017)
7350 #include <sys/consio.h>
7351 #include <sys/fbio.h>
7352 #else
7353 #include <machine/console.h>
7354 #endif
7355 ],[
7356         struct mouse_info the_mouse;
7357         ioctl(0, CONS_MOUSECTL, &the_mouse);
7358 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
7359         fi
7360 AC_MSG_RESULT($cf_with_sysmouse)
7361 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
7362 fi
7363 ])dnl
7364 dnl ---------------------------------------------------------------------------
7365 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
7366 dnl ---------------
7367 dnl For testing, override the derived host system-type which is used to decide
7368 dnl things such as the linker commands used to build shared libraries.  This is
7369 dnl normally chosen automatically based on the type of system which you are
7370 dnl building on.  We use it for testing the configure script.
7371 dnl
7372 dnl This is different from the --host option: it is used only for testing parts
7373 dnl of the configure script which would not be reachable with --host since that
7374 dnl relies on the build environment being real, rather than mocked up.
7375 AC_DEFUN([CF_WITH_SYSTYPE],[
7376 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
7377 AC_ARG_WITH(system-type,
7378         [  --with-system-type=XXX  test: override derived host system-type],
7379 [AC_MSG_WARN(overriding system type to $withval)
7380         cf_cv_system_name=$withval
7381         host_os=$withval
7382 ])
7383 ])dnl
7384 dnl ---------------------------------------------------------------------------
7385 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
7386 dnl ----------------
7387 AC_DEFUN([CF_WITH_VALGRIND],[
7388 CF_NO_LEAKS_OPTION(valgrind,
7389         [  --with-valgrind         test: use valgrind],
7390         [USE_VALGRIND])
7391 ])dnl
7392 dnl ---------------------------------------------------------------------------
7393 dnl CF_WITH_VERSIONED_SYMS version: 4 updated: 2015/01/21 20:10:54
7394 dnl ----------------------
7395 dnl Use this when building shared library with ELF, to markup symbols with the
7396 dnl version identifier from the given input file.  Generally that identifier is
7397 dnl the same as the SONAME at which the symbol was first introduced.
7398 dnl
7399 dnl $1 = basename of the ".map" file (default $PACKAGE)
7400 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
7401 [
7402 AC_MSG_CHECKING(if versioned-symbols file should be used)
7403 AC_ARG_WITH(versioned-syms,
7404         [  --with-versioned-syms=X markup versioned symbols using ld],
7405         [with_versioned_syms=$withval],
7406         [with_versioned_syms=no])
7407 if test "x$with_versioned_syms" = xyes
7408 then
7409         with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
7410         AC_SUBST(PACKAGE)
7411 fi
7412 AC_MSG_RESULT($with_versioned_syms)
7413
7414 RESULTING_SYMS=
7415 VERSIONED_SYMS=
7416 WILDCARD_SYMS=
7417
7418 if test "x$with_versioned_syms" != xno
7419 then
7420         RESULTING_SYMS=$with_versioned_syms
7421         case "x$MK_SHARED_LIB" in
7422         *-Wl,*) #(vi
7423                 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
7424                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
7425                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
7426                 ;;
7427         *-dy\ *) #(vi
7428                 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
7429                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
7430                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
7431                 ;;
7432         *)
7433                 AC_MSG_WARN(this system does not support versioned-symbols)
7434                 ;;
7435         esac
7436
7437         # Linux ld can selectively override scope, e.g., of symbols beginning with
7438         # "_" by first declaring some as global, and then using a wildcard to
7439         # declare the others as local.  Some other loaders cannot do this.  Check
7440         # by constructing a (very) simple shared library and inspecting its
7441         # symbols.
7442         if test "x$VERSIONED_SYMS" != "x"
7443         then
7444                 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
7445                 WILDCARD_SYMS=no
7446
7447                 # make sources
7448                 rm -f conftest.*
7449
7450                 cat >conftest.ver <<EOF
7451 module_1.0 {
7452 global:
7453         globalf1;
7454 local:
7455         localf1;
7456 };
7457 module_2.0 {
7458 global:
7459         globalf2;
7460 local:
7461         localf2;
7462         _*;
7463 } module_1.0;
7464 submodule_1.0 {
7465 global:
7466         subglobalf1;
7467         _ismissing;
7468 local:
7469         sublocalf1;
7470 };
7471 submodule_2.0 {
7472 global:
7473         subglobalf2;
7474 local:
7475         sublocalf2;
7476         _*;
7477 } submodule_1.0;
7478 EOF
7479                 cat >conftest.$ac_ext <<EOF
7480 #line __oline__ "configure"
7481 int     _ismissing(void) { return 1; }
7482 int     _localf1(void) { return 1; }
7483 int     _localf2(void) { return 2; }
7484 int     globalf1(void) { return 1; }
7485 int     globalf2(void) { return 2; }
7486 int     _sublocalf1(void) { return 1; }
7487 int     _sublocalf2(void) { return 2; }
7488 int     subglobalf1(void) { return 1; }
7489 int     subglobalf2(void) { return 2; }
7490 EOF
7491                 cat >conftest.mk <<EOF
7492 CC=${CC}
7493 CFLAGS=${CFLAGS}
7494 CPPFLAGS=${CPPFLAGS}
7495 LDFLAGS=${LDFLAGS}
7496 LIBS=${LIBS}
7497 VERSIONED_SYMS=${VERSIONED_SYMS}
7498 RESULTING_SYMS=conftest.ver
7499 MK_SHARED_LIB=${MK_SHARED_LIB}
7500 conftest.so: conftest.$ac_cv_objext
7501                 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
7502 EOF
7503
7504                 # compile source, make library
7505                 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
7506                 then
7507                         # test for missing symbol
7508                         cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[         ]]T[[   ]]'`
7509                         test -n "$cf_missing" && WILDCARD_SYMS=yes
7510                 fi
7511                 AC_MSG_RESULT($WILDCARD_SYMS)
7512                 rm -f conftest.*
7513         fi
7514 fi
7515 AC_SUBST(RESULTING_SYMS)
7516 AC_SUBST(VERSIONED_SYMS)
7517 AC_SUBST(WILDCARD_SYMS)
7518 ])dnl
7519 dnl ---------------------------------------------------------------------------
7520 dnl CF_XOPEN_SOURCE version: 48 updated: 2014/09/01 12:29:14
7521 dnl ---------------
7522 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
7523 dnl or adapt to the vendor's definitions to get equivalent functionality,
7524 dnl without losing the common non-POSIX features.
7525 dnl
7526 dnl Parameters:
7527 dnl     $1 is the nominal value for _XOPEN_SOURCE
7528 dnl     $2 is the nominal value for _POSIX_C_SOURCE
7529 AC_DEFUN([CF_XOPEN_SOURCE],[
7530 AC_REQUIRE([AC_CANONICAL_HOST])
7531
7532 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
7533 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
7534 cf_xopen_source=
7535
7536 case $host_os in #(vi
7537 aix[[4-7]]*) #(vi
7538         cf_xopen_source="-D_ALL_SOURCE"
7539         ;;
7540 cygwin|msys) #(vi
7541         cf_XOPEN_SOURCE=600
7542         ;;
7543 darwin[[0-8]].*) #(vi
7544         cf_xopen_source="-D_APPLE_C_SOURCE"
7545         ;;
7546 darwin*) #(vi
7547         cf_xopen_source="-D_DARWIN_C_SOURCE"
7548         cf_XOPEN_SOURCE=
7549         ;;
7550 freebsd*|dragonfly*) #(vi
7551         # 5.x headers associate
7552         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
7553         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
7554         cf_POSIX_C_SOURCE=200112L
7555         cf_XOPEN_SOURCE=600
7556         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
7557         ;;
7558 hpux11*) #(vi
7559         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
7560         ;;
7561 hpux*) #(vi
7562         cf_xopen_source="-D_HPUX_SOURCE"
7563         ;;
7564 irix[[56]].*) #(vi
7565         cf_xopen_source="-D_SGI_SOURCE"
7566         cf_XOPEN_SOURCE=
7567         ;;
7568 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
7569         CF_GNU_SOURCE
7570         ;;
7571 minix*) #(vi
7572         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
7573         ;;
7574 mirbsd*) #(vi
7575         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
7576         cf_XOPEN_SOURCE=
7577         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
7578         ;;
7579 netbsd*) #(vi
7580         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
7581         ;;
7582 openbsd[[4-9]]*) #(vi
7583         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
7584         cf_xopen_source="-D_BSD_SOURCE"
7585         cf_XOPEN_SOURCE=600
7586         ;;
7587 openbsd*) #(vi
7588         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
7589         ;;
7590 osf[[45]]*) #(vi
7591         cf_xopen_source="-D_OSF_SOURCE"
7592         ;;
7593 nto-qnx*) #(vi
7594         cf_xopen_source="-D_QNX_SOURCE"
7595         ;;
7596 sco*) #(vi
7597         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
7598         ;;
7599 solaris2.*) #(vi
7600         cf_xopen_source="-D__EXTENSIONS__"
7601         cf_cv_xopen_source=broken
7602         ;;
7603 sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
7604         cf_XOPEN_SOURCE=
7605         cf_POSIX_C_SOURCE=
7606         ;;
7607 *)
7608         CF_TRY_XOPEN_SOURCE
7609         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
7610         ;;
7611 esac
7612
7613 if test -n "$cf_xopen_source" ; then
7614         CF_ADD_CFLAGS($cf_xopen_source,true)
7615 fi
7616
7617 dnl In anything but the default case, we may have system-specific setting
7618 dnl which is still not guaranteed to provide all of the entrypoints that
7619 dnl _XOPEN_SOURCE would yield.
7620 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
7621         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
7622         AC_TRY_COMPILE([#include <stdlib.h>],[
7623 #ifndef _XOPEN_SOURCE
7624 make an error
7625 #endif],
7626         [cf_XOPEN_SOURCE_set=yes],
7627         [cf_XOPEN_SOURCE_set=no])
7628         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
7629         if test $cf_XOPEN_SOURCE_set = yes
7630         then
7631                 AC_TRY_COMPILE([#include <stdlib.h>],[
7632 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
7633 make an error
7634 #endif],
7635                 [cf_XOPEN_SOURCE_set_ok=yes],
7636                 [cf_XOPEN_SOURCE_set_ok=no])
7637                 if test $cf_XOPEN_SOURCE_set_ok = no
7638                 then
7639                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
7640                 fi
7641         else
7642                 CF_TRY_XOPEN_SOURCE
7643         fi
7644 fi
7645 ])