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