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