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