]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
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 ------------------
3764 dnl The Debian people have their own naming convention for manpages.  This
3765 dnl option lets us override the name of the file containing renaming, or
3766 dnl disable it altogether.
3767 AC_DEFUN([CF_MANPAGE_RENAMES],
3768 [
3769 AC_MSG_CHECKING(for manpage renaming)
3770
3771 AC_ARG_WITH(manpage-renames,
3772         [  --with-manpage-renames  specify manpage-renaming],
3773         [MANPAGE_RENAMES=$withval],
3774         [MANPAGE_RENAMES=yes])
3775
3776 case ".$MANPAGE_RENAMES" in #(vi
3777 .no) #(vi
3778   ;;
3779 .|.yes)
3780   # Debian 'man' program?
3781   if test -f /etc/debian_version ; then
3782     MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3783   else
3784     MANPAGE_RENAMES=no
3785   fi
3786   ;;
3787 esac
3788
3789 if test "$MANPAGE_RENAMES" != no ; then
3790   if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3791     MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3792   elif test ! -f $MANPAGE_RENAMES ; then
3793     AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3794   fi
3795
3796   test ! -d man && mkdir man
3797
3798   # Construct a sed-script to perform renaming within man-pages
3799   if test -n "$MANPAGE_RENAMES" ; then
3800     test ! -d man && mkdir man
3801     sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3802   fi
3803 fi
3804
3805 AC_MSG_RESULT($MANPAGE_RENAMES)
3806 AC_SUBST(MANPAGE_RENAMES)
3807 ])dnl
3808 dnl ---------------------------------------------------------------------------
3809 dnl CF_MANPAGE_SYMLINKS version: 5 updated: 2010/07/24 17:12:40
3810 dnl -------------------
3811 dnl Some people expect each tool to make all aliases for manpages in the
3812 dnl man-directory.  This accommodates the older, less-capable implementations
3813 dnl of 'man', and is optional.
3814 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3815 [
3816 AC_MSG_CHECKING(if manpage aliases will be installed)
3817
3818 AC_ARG_WITH(manpage-aliases,
3819         [  --with-manpage-aliases  specify manpage-aliases using .so],
3820         [MANPAGE_ALIASES=$withval],
3821         [MANPAGE_ALIASES=yes])
3822
3823 AC_MSG_RESULT($MANPAGE_ALIASES)
3824
3825 case "x$LN_S" in #(vi
3826 xln*) #(vi
3827         cf_use_symlinks=yes
3828         ;;
3829 *)
3830         cf_use_symlinks=no
3831         ;;
3832 esac
3833
3834 MANPAGE_SYMLINKS=no
3835 if test "$MANPAGE_ALIASES" = yes ; then
3836 AC_MSG_CHECKING(if manpage symlinks should be used)
3837
3838 AC_ARG_WITH(manpage-symlinks,
3839         [  --with-manpage-symlinks specify manpage-aliases using symlinks],
3840         [MANPAGE_SYMLINKS=$withval],
3841         [MANPAGE_SYMLINKS=$cf_use_symlinks])
3842
3843 if test "$$cf_use_symlinks" = no; then
3844 if test "$MANPAGE_SYMLINKS" = yes ; then
3845         AC_MSG_WARN(cannot make symlinks, will use .so files)
3846         MANPAGE_SYMLINKS=no
3847 fi
3848 fi
3849
3850 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3851 fi
3852
3853 ])dnl
3854 dnl ---------------------------------------------------------------------------
3855 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3856 dnl --------------
3857 dnl This option causes manpages to be run through tbl(1) to generate tables
3858 dnl correctly.
3859 AC_DEFUN([CF_MANPAGE_TBL],
3860 [
3861 AC_MSG_CHECKING(for manpage tbl)
3862
3863 AC_ARG_WITH(manpage-tbl,
3864         [  --with-manpage-tbl      specify manpage processing with tbl],
3865         [MANPAGE_TBL=$withval],
3866         [MANPAGE_TBL=no])
3867
3868 AC_MSG_RESULT($MANPAGE_TBL)
3869 ])dnl
3870 dnl ---------------------------------------------------------------------------
3871 dnl CF_MAN_PAGES version: 39 updated: 2010/10/23 15:44:18
3872 dnl ------------
3873 dnl Try to determine if the man-pages on the system are compressed, and if
3874 dnl so, what format is used.  Use this information to construct a script that
3875 dnl will install man-pages.
3876 AC_DEFUN([CF_MAN_PAGES],
3877 [
3878 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3879 CF_MANPAGE_FORMAT
3880 CF_MANPAGE_RENAMES
3881 CF_MANPAGE_SYMLINKS
3882 CF_MANPAGE_TBL
3883
3884   if test "$prefix" = "NONE" ; then
3885      cf_prefix="$ac_default_prefix"
3886   else
3887      cf_prefix="$prefix"
3888   fi
3889
3890   case "$MANPAGE_FORMAT" in # (vi
3891   *catonly*) # (vi
3892     cf_format=yes
3893     cf_inboth=no
3894     ;;
3895   *formatted*) # (vi
3896     cf_format=yes
3897     cf_inboth=yes
3898     ;;
3899   *)
3900     cf_format=no
3901     cf_inboth=no
3902     ;;
3903   esac
3904
3905 test ! -d man && mkdir man
3906
3907 cf_so_strip=
3908 cf_compress=
3909 case "$MANPAGE_FORMAT" in #(vi
3910 *compress*) #(vi
3911         cf_so_strip="Z"
3912         cf_compress=compress
3913   ;;
3914 *gzip*)
3915         cf_so_strip="gz"
3916         cf_compress=gzip
3917   ;;
3918 esac
3919
3920 cf_edit_man=./edit_man.sh
3921 cf_man_alias=`pwd`/man_alias.sed
3922
3923 cat >$cf_edit_man <<CF_EOF
3924 #! /bin/sh
3925 # this script is generated by the configure-script CF_MAN_PAGES macro.
3926
3927 prefix="$cf_prefix"
3928 datadir="$datadir"
3929
3930 NCURSES_MAJOR="$NCURSES_MAJOR"
3931 NCURSES_MINOR="$NCURSES_MINOR"
3932 NCURSES_PATCH="$NCURSES_PATCH"
3933
3934 NCURSES_OSPEED="$NCURSES_OSPEED"
3935 TERMINFO="$TERMINFO"
3936
3937 INSTALL="$INSTALL"
3938 INSTALL_DATA="$INSTALL_DATA"
3939
3940 transform="$program_transform_name"
3941
3942 TMP=\${TMPDIR:=/tmp}/man\$\$
3943 trap "rm -f \$TMP" 0 1 2 5 15
3944
3945 form=\[$]1
3946 shift || exit 1
3947
3948 verb=\[$]1
3949 shift || exit 1
3950
3951 mandir=\[$]1
3952 shift || exit 1
3953
3954 srcdir=\[$]1
3955 top_srcdir=\[$]srcdir/..
3956 shift || exit 1
3957
3958 if test "\$form" = normal ; then
3959         if test "$cf_format" = yes ; then
3960         if test "$cf_inboth" = no ; then
3961                 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3962                 exit $?
3963         fi
3964         fi
3965         cf_subdir=\$mandir/man
3966         cf_tables=$MANPAGE_TBL
3967 else
3968         cf_subdir=\$mandir/cat
3969         cf_tables=yes
3970 fi
3971
3972 # process the list of source-files
3973 for i in \[$]* ; do
3974 case \$i in #(vi
3975 *.orig|*.rej) ;; #(vi
3976 *.[[0-9]]*)
3977         section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3978         if test \$verb = installing ; then
3979         if test ! -d \$cf_subdir\${section} ; then
3980                 mkdir -p \$cf_subdir\$section
3981         fi
3982         fi
3983
3984         # replace variables in man page
3985         if test ! -f $cf_man_alias ; then
3986 cat >>$cf_man_alias <<-CF_EOF2
3987                 s,@DATADIR@,\$datadir,g
3988                 s,@TERMINFO@,\$TERMINFO,g
3989                 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3990                 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3991                 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3992                 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3993 CF_EOF
3994         ifelse($1,,,[
3995         for cf_name in $1
3996         do
3997                 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3998                 cf_name=`echo $cf_name|sed "$program_transform_name"`
3999 cat >>$cf_edit_man <<-CF_EOF
4000                 s,@$cf_NAME@,$cf_name,g
4001 CF_EOF
4002         done
4003         ])
4004 cat >>$cf_edit_man <<CF_EOF
4005 CF_EOF2
4006                 echo "...made $cf_man_alias"
4007         fi
4008
4009         aliases=
4010         cf_source=\`basename \$i\`
4011         inalias=\$cf_source
4012         test ! -f \$inalias && inalias="\$srcdir/\$inalias"
4013         if test ! -f \$inalias ; then
4014                 echo .. skipped \$cf_source
4015                 continue
4016         fi
4017 CF_EOF
4018
4019 if test "$MANPAGE_ALIASES" != no ; then
4020 cat >>$cf_edit_man <<CF_EOF
4021         aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
4022 CF_EOF
4023 fi
4024
4025 if test "$MANPAGE_RENAMES" = no ; then
4026 cat >>$cf_edit_man <<CF_EOF
4027         # perform program transformations for section 1 man pages
4028         if test \$section = 1 ; then
4029                 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
4030         else
4031                 cf_target=\$cf_subdir\${section}/\$cf_source
4032         fi
4033 CF_EOF
4034 else
4035 cat >>$cf_edit_man <<CF_EOF
4036         cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
4037         if test -z "\$cf_target" ; then
4038                 echo '? missing rename for '\$cf_source
4039                 cf_target="\$cf_source"
4040         fi
4041         cf_target="\$cf_subdir\${section}/\${cf_target}"
4042
4043 CF_EOF
4044 fi
4045
4046 cat >>$cf_edit_man <<CF_EOF
4047         sed     -f $cf_man_alias \\
4048 CF_EOF
4049
4050 if test -f $MANPAGE_RENAMES ; then
4051 cat >>$cf_edit_man <<CF_EOF
4052                 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
4053 CF_EOF
4054 else
4055 cat >>$cf_edit_man <<CF_EOF
4056                 < \$i >\$TMP
4057 CF_EOF
4058 fi
4059
4060 cat >>$cf_edit_man <<CF_EOF
4061 if test \$cf_tables = yes ; then
4062         tbl \$TMP >\$TMP.out
4063         mv \$TMP.out \$TMP
4064 fi
4065 CF_EOF
4066
4067 if test $with_curses_h != yes ; then
4068 cat >>$cf_edit_man <<CF_EOF
4069         sed -e "/\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
4070         mv \$TMP.out \$TMP
4071 CF_EOF
4072 fi
4073
4074 cat >>$cf_edit_man <<CF_EOF
4075         if test \$form = format ; then
4076                 nroff -man \$TMP >\$TMP.out
4077                 mv \$TMP.out \$TMP
4078         fi
4079 CF_EOF
4080
4081 if test -n "$cf_compress" ; then
4082 cat >>$cf_edit_man <<CF_EOF
4083         if test \$verb = installing ; then
4084         if ( $cf_compress -f \$TMP )
4085         then
4086                 mv \$TMP.$cf_so_strip \$TMP
4087         fi
4088         fi
4089         cf_target="\$cf_target.$cf_so_strip"
4090 CF_EOF
4091 fi
4092
4093 case "$MANPAGE_FORMAT" in #(vi
4094 *BSDI*)
4095 cat >>$cf_edit_man <<CF_EOF
4096         if test \$form = format ; then
4097                 # BSDI installs only .0 suffixes in the cat directories
4098                 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
4099         fi
4100 CF_EOF
4101   ;;
4102 esac
4103
4104 cat >>$cf_edit_man <<CF_EOF
4105         suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
4106         if test \$verb = installing ; then
4107                 echo \$verb \$cf_target
4108                 \$INSTALL_DATA \$TMP \$cf_target
4109                 test -d \$cf_subdir\${section} &&
4110                 test -n "\$aliases" && (
4111                         cd \$cf_subdir\${section} && (
4112                                 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
4113                                 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
4114                                 cf_target=\`basename \$cf_target\`
4115                                 for cf_alias in \$aliases
4116                                 do
4117                                         if test \$section = 1 ; then
4118                                                 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
4119                                         fi
4120
4121                                         if test "$MANPAGE_SYMLINKS" = yes ; then
4122                                                 if test -f \$cf_alias\${suffix} ; then
4123                                                         if ( cmp -s \$cf_target \$cf_alias\${suffix} )
4124                                                         then
4125                                                                 continue
4126                                                         fi
4127                                                 fi
4128                                                 echo .. \$verb alias \$cf_alias\${suffix}
4129 CF_EOF
4130 case "x$LN_S" in #(vi
4131 *-f) #(vi
4132 cat >>$cf_edit_man <<CF_EOF
4133                                                 $LN_S \$cf_target \$cf_alias\${suffix}
4134 CF_EOF
4135         ;;
4136 *)
4137 cat >>$cf_edit_man <<CF_EOF
4138                                                 rm -f \$cf_alias\${suffix}
4139                                                 $LN_S \$cf_target \$cf_alias\${suffix}
4140 CF_EOF
4141         ;;
4142 esac
4143 cat >>$cf_edit_man <<CF_EOF
4144                                         elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
4145                                                 echo ".so \$cf_source" >\$TMP
4146 CF_EOF
4147 if test -n "$cf_compress" ; then
4148 cat >>$cf_edit_man <<CF_EOF
4149                                                 if test -n "$cf_so_strip" ; then
4150                                                         $cf_compress -f \$TMP
4151                                                         mv \$TMP.$cf_so_strip \$TMP
4152                                                 fi
4153 CF_EOF
4154 fi
4155 cat >>$cf_edit_man <<CF_EOF
4156                                                 echo .. \$verb alias \$cf_alias\${suffix}
4157                                                 rm -f \$cf_alias\${suffix}
4158                                                 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
4159                                         fi
4160                                 done
4161                         )
4162                 )
4163         elif test \$verb = removing ; then
4164                 test -f \$cf_target && (
4165                         echo \$verb \$cf_target
4166                         rm -f \$cf_target
4167                 )
4168                 test -d \$cf_subdir\${section} &&
4169                 test -n "\$aliases" && (
4170                         cd \$cf_subdir\${section} && (
4171                                 for cf_alias in \$aliases
4172                                 do
4173                                         if test \$section = 1 ; then
4174                                                 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
4175                                         fi
4176
4177                                         echo .. \$verb alias \$cf_alias\${suffix}
4178                                         rm -f \$cf_alias\${suffix}
4179                                 done
4180                         )
4181                 )
4182         else
4183 #               echo ".hy 0"
4184                 cat \$TMP
4185         fi
4186         ;;
4187 esac
4188 done
4189
4190 if test $cf_inboth = yes ; then
4191 if test \$form != format ; then
4192         sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
4193 fi
4194 fi
4195
4196 exit 0
4197 CF_EOF
4198 chmod 755 $cf_edit_man
4199
4200 ])dnl
4201 dnl ---------------------------------------------------------------------------
4202 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
4203 dnl -----------
4204 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
4205 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
4206 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
4207 AC_DEFUN([CF_MATH_LIB],
4208 [
4209 AC_CACHE_CHECK(if -lm needed for math functions,
4210         cf_cv_need_libm,[
4211         AC_TRY_LINK([
4212         #include <stdio.h>
4213         #include <math.h>
4214         ],
4215         [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
4216         [cf_cv_need_libm=no],
4217         [cf_cv_need_libm=yes])])
4218 if test "$cf_cv_need_libm" = yes
4219 then
4220 ifelse($1,,[
4221         CF_ADD_LIB(m)
4222 ],[$1=-lm])
4223 fi
4224 ])
4225 dnl ---------------------------------------------------------------------------
4226 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
4227 dnl ----------------------
4228 dnl Check if the file-system supports mixed-case filenames.  If we're able to
4229 dnl create a lowercase name and see it as uppercase, it doesn't support that.
4230 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
4231 [
4232 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
4233 if test "$cross_compiling" = yes ; then
4234         case $target_alias in #(vi
4235         *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
4236                 cf_cv_mixedcase=no
4237                 ;;
4238         *)
4239                 cf_cv_mixedcase=yes
4240                 ;;
4241         esac
4242 else
4243         rm -f conftest CONFTEST
4244         echo test >conftest
4245         if test -f CONFTEST ; then
4246                 cf_cv_mixedcase=no
4247         else
4248                 cf_cv_mixedcase=yes
4249         fi
4250         rm -f conftest CONFTEST
4251 fi
4252 ])
4253 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
4254 ])dnl
4255 dnl ---------------------------------------------------------------------------
4256 dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
4257 dnl ----------
4258 dnl Check for a working mkstemp.  This creates two files, checks that they are
4259 dnl successfully created and distinct (AmigaOS apparently fails on the last).
4260 AC_DEFUN([CF_MKSTEMP],[
4261 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
4262 rm -rf conftest*
4263 AC_TRY_RUN([
4264 #include <sys/types.h>
4265 #include <stdlib.h>
4266 #include <stdio.h>
4267 #include <string.h>
4268 #include <sys/stat.h>
4269 int main()
4270 {
4271         char *tmpl = "conftestXXXXXX";
4272         char name[2][80];
4273         int n;
4274         int result = 0;
4275         int fd;
4276         struct stat sb;
4277
4278         umask(077);
4279         for (n = 0; n < 2; ++n) {
4280                 strcpy(name[n], tmpl);
4281                 if ((fd = mkstemp(name[n])) >= 0) {
4282                         if (!strcmp(name[n], tmpl)
4283                          || stat(name[n], &sb) != 0
4284                          || (sb.st_mode & S_IFMT) != S_IFREG
4285                          || (sb.st_mode & 077) != 0) {
4286                                 result = 1;
4287                         }
4288                         close(fd);
4289                 }
4290         }
4291         if (result == 0
4292          && !strcmp(name[0], name[1]))
4293                 result = 1;
4294         ${cf_cv_main_return:-return}(result);
4295 }
4296 ],[cf_cv_func_mkstemp=yes
4297 ],[cf_cv_func_mkstemp=no
4298 ],[AC_CHECK_FUNC(mkstemp)
4299 ])
4300 ])
4301 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
4302         AC_DEFINE(HAVE_MKSTEMP)
4303 fi
4304 ])dnl
4305 dnl ---------------------------------------------------------------------------
4306 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
4307 dnl ----------
4308 dnl Write a debug message to config.log, along with the line number in the
4309 dnl configure script.
4310 AC_DEFUN([CF_MSG_LOG],[
4311 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
4312 ])dnl
4313 dnl ---------------------------------------------------------------------------
4314 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
4315 dnl ----------------
4316 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
4317 dnl warn about this.
4318 AC_DEFUN([CF_NCURSES_ABI_6],[
4319 if test "${with_abi_version+set}" != set; then
4320         case $cf_cv_rel_version in
4321         5.*)
4322                 cf_cv_rel_version=6.0
4323                 cf_cv_abi_version=6
4324                 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
4325                 ;;
4326         esac
4327 fi
4328 ])dnl
4329 dnl ---------------------------------------------------------------------------
4330 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
4331 dnl ------------------
4332 dnl see CF_WITH_NO_LEAKS
4333 AC_DEFUN([CF_NO_LEAKS_OPTION],[
4334 AC_MSG_CHECKING(if you want to use $1 for testing)
4335 AC_ARG_WITH($1,
4336         [$2],
4337         [AC_DEFINE($3)ifelse([$4],,[
4338          $4
4339 ])
4340         : ${with_cflags:=-g}
4341         : ${with_no_leaks:=yes}
4342          with_$1=yes],
4343         [with_$1=])
4344 AC_MSG_RESULT(${with_$1:-no})
4345
4346 case .$with_cflags in #(vi
4347 .*-g*)
4348         case .$CFLAGS in #(vi
4349         .*-g*) #(vi
4350                 ;;
4351         *)
4352                 CF_ADD_CFLAGS([-g])
4353                 ;;
4354         esac
4355         ;;
4356 esac
4357 ])dnl
4358 dnl ---------------------------------------------------------------------------
4359 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
4360 dnl ----------------
4361 dnl Check if the given variable is a number.  If not, report an error.
4362 dnl $1 is the variable
4363 dnl $2 is the message
4364 AC_DEFUN([CF_NUMBER_SYNTAX],[
4365 if test -n "$1" ; then
4366   case $1 in #(vi
4367   [[0-9]]*) #(vi
4368         ;;
4369   *)
4370         AC_MSG_ERROR($2 is not a number: $1)
4371         ;;
4372   esac
4373 else
4374   AC_MSG_ERROR($2 value is empty)
4375 fi
4376 ])dnl
4377 dnl ---------------------------------------------------------------------------
4378 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
4379 dnl -------------
4380 dnl Compute the object-directory name from the given model name
4381 AC_DEFUN([CF_OBJ_SUBDIR],
4382 [
4383         case $1 in
4384         libtool) $2='obj_lo'  ;;
4385         normal)  $2='objects' ;;
4386         debug)   $2='obj_g' ;;
4387         profile) $2='obj_p' ;;
4388         shared)
4389                 case $cf_cv_system_name in #(vi
4390                 cygwin) #(vi
4391                         $2='objects' ;;
4392                 *)
4393                         $2='obj_s' ;;
4394                 esac
4395         esac
4396 ])dnl
4397 dnl ---------------------------------------------------------------------------
4398 dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
4399 dnl ----------
4400 dnl Provide a value for the $PATH and similar separator
4401 AC_DEFUN([CF_PATHSEP],
4402 [
4403         case $cf_cv_system_name in
4404         os2*)   PATH_SEPARATOR=';'  ;;
4405         *)      PATH_SEPARATOR=':'  ;;
4406         esac
4407 ifelse([$1],,,[$1=$PATH_SEPARATOR])
4408         AC_SUBST(PATH_SEPARATOR)
4409 ])dnl
4410 dnl ---------------------------------------------------------------------------
4411 dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
4412 dnl --------------
4413 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
4414 dnl begins with one of the prefix/exec_prefix variables, and then again if the
4415 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
4416 dnl delayed evaluation of those symbols.
4417 AC_DEFUN([CF_PATH_SYNTAX],[
4418 if test "x$prefix" != xNONE; then
4419   cf_path_syntax="$prefix"
4420 else
4421   cf_path_syntax="$ac_default_prefix"
4422 fi
4423
4424 case ".[$]$1" in #(vi
4425 .\[$]\(*\)*|.\'*\'*) #(vi
4426   ;;
4427 ..|./*|.\\*) #(vi
4428   ;;
4429 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
4430   ;;
4431 .\[$]{*prefix}*) #(vi
4432   eval $1="[$]$1"
4433   case ".[$]$1" in #(vi
4434   .NONE/*)
4435     $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4436     ;;
4437   esac
4438   ;; #(vi
4439 .no|.NONE/*)
4440   $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4441   ;;
4442 *)
4443   ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
4444   ;;
4445 esac
4446 ])dnl
4447 dnl ---------------------------------------------------------------------------
4448 dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
4449 dnl -------------
4450 dnl Check for the package-config program, unless disabled by command-line.
4451 AC_DEFUN([CF_PKG_CONFIG],
4452 [
4453 AC_MSG_CHECKING(if you want to use pkg-config)
4454 AC_ARG_WITH(pkg-config,
4455         [  --with-pkg-config{=path} enable/disable use of pkg-config],
4456         [cf_pkg_config=$withval],
4457         [cf_pkg_config=yes])
4458 AC_MSG_RESULT($cf_pkg_config)
4459
4460 case $cf_pkg_config in #(vi
4461 no) #(vi
4462         PKG_CONFIG=none
4463         ;;
4464 yes) #(vi
4465         CF_ACVERSION_CHECK(2.52,
4466                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
4467                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
4468         ;;
4469 *)
4470         PKG_CONFIG=$withval
4471         ;;
4472 esac
4473
4474 test -z "$PKG_CONFIG" && PKG_CONFIG=none
4475 if test "$PKG_CONFIG" != none ; then
4476         CF_PATH_SYNTAX(PKG_CONFIG)
4477 fi
4478
4479 AC_SUBST(PKG_CONFIG)
4480 ])dnl
4481 dnl ---------------------------------------------------------------------------
4482 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
4483 dnl -----------------
4484 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
4485 dnl
4486 dnl     POSIX.1-1990                            _POSIX_SOURCE
4487 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
4488 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
4489 dnl             Bindings Option
4490 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
4491 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
4492 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
4493 dnl
4494 dnl Parameters:
4495 dnl     $1 is the nominal value for _POSIX_C_SOURCE
4496 AC_DEFUN([CF_POSIX_C_SOURCE],
4497 [
4498 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
4499
4500 cf_save_CFLAGS="$CFLAGS"
4501 cf_save_CPPFLAGS="$CPPFLAGS"
4502
4503 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4504 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4505
4506 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4507         CF_MSG_LOG(if the symbol is already defined go no further)
4508         AC_TRY_COMPILE([#include <sys/types.h>],[
4509 #ifndef _POSIX_C_SOURCE
4510 make an error
4511 #endif],
4512         [cf_cv_posix_c_source=no],
4513         [cf_want_posix_source=no
4514          case .$cf_POSIX_C_SOURCE in #(vi
4515          .[[12]]??*) #(vi
4516                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4517                 ;;
4518          .2) #(vi
4519                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4520                 cf_want_posix_source=yes
4521                 ;;
4522          .*)
4523                 cf_want_posix_source=yes
4524                 ;;
4525          esac
4526          if test "$cf_want_posix_source" = yes ; then
4527                 AC_TRY_COMPILE([#include <sys/types.h>],[
4528 #ifdef _POSIX_SOURCE
4529 make an error
4530 #endif],[],
4531                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4532          fi
4533          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4534          CFLAGS="$cf_trim_CFLAGS"
4535          CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
4536          CF_MSG_LOG(if the second compile does not leave our definition intact error)
4537          AC_TRY_COMPILE([#include <sys/types.h>],[
4538 #ifndef _POSIX_C_SOURCE
4539 make an error
4540 #endif],,
4541          [cf_cv_posix_c_source=no])
4542          CFLAGS="$cf_save_CFLAGS"
4543          CPPFLAGS="$cf_save_CPPFLAGS"
4544         ])
4545 ])
4546
4547 if test "$cf_cv_posix_c_source" != no ; then
4548         CFLAGS="$cf_trim_CFLAGS"
4549         CPPFLAGS="$cf_trim_CPPFLAGS"
4550         CF_ADD_CFLAGS($cf_cv_posix_c_source)
4551 fi
4552
4553 ])dnl
4554 dnl ---------------------------------------------------------------------------
4555 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
4556 dnl ------------
4557 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
4558 dnl
4559 dnl $1 = symbol to test
4560 dnl $2 = value (if any) to use for a predefinition
4561 AC_DEFUN([CF_PREDEFINE],
4562 [
4563 AC_MSG_CHECKING(if we must define $1)
4564 AC_TRY_COMPILE([#include <sys/types.h>
4565 ],[
4566 #ifndef $1
4567 make an error
4568 #endif],[cf_result=no],[cf_result=yes])
4569 AC_MSG_RESULT($cf_result)
4570
4571 if test "$cf_result" = yes ; then
4572         CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
4573 elif test "x$2" != "x" ; then
4574         AC_MSG_CHECKING(checking for compatible value versus $2)
4575         AC_TRY_COMPILE([#include <sys/types.h>
4576 ],[
4577 #if $1-$2 < 0
4578 make an error
4579 #endif],[cf_result=yes],[cf_result=no])
4580         AC_MSG_RESULT($cf_result)
4581         if test "$cf_result" = no ; then
4582                 # perhaps we can override it - try...
4583                 CPPFLAGS="$CPPFLAGS -D$1=$2"
4584         fi
4585 fi
4586 ])dnl
4587 dnl ---------------------------------------------------------------------------
4588 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
4589 dnl ------------
4590 dnl Append definitions and rules for the given programs to the subdirectory
4591 dnl Makefiles, and the recursion rule for the top-level Makefile.
4592 dnl
4593 dnl parameters
4594 dnl     $1 = script to run
4595 dnl     $2 = list of subdirectories
4596 dnl
4597 dnl variables
4598 dnl     $AWK
4599 AC_DEFUN([CF_PRG_RULES],
4600 [
4601 for cf_dir in $2
4602 do
4603         if test ! -d $srcdir/$cf_dir; then
4604                 continue
4605         elif test -f $srcdir/$cf_dir/programs; then
4606                 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
4607         fi
4608 done
4609
4610 ])dnl
4611 dnl ---------------------------------------------------------------------------
4612 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4613 dnl ----------
4614 dnl Check for archiver "ar".
4615 AC_DEFUN([CF_PROG_AR],[
4616 AC_CHECK_TOOL(AR, ar, ar)
4617 ])
4618 dnl ---------------------------------------------------------------------------
4619 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
4620 dnl -----------
4621 dnl Check for awk, ensure that the check found something.
4622 AC_DEFUN([CF_PROG_AWK],
4623 [
4624 AC_PROG_AWK
4625 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
4626 ])dnl
4627 dnl ---------------------------------------------------------------------------
4628 dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
4629 dnl --------------
4630 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
4631 dnl the output file can be renamed, and allows for a shell variable that can
4632 dnl be used later.  The parameter is either CC or CXX.  The result is the
4633 dnl cache variable:
4634 dnl     $cf_cv_prog_CC_c_o
4635 dnl     $cf_cv_prog_CXX_c_o
4636 AC_DEFUN([CF_PROG_CC_C_O],
4637 [AC_REQUIRE([AC_PROG_CC])dnl
4638 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
4639 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
4640 [
4641 cat > conftest.$ac_ext <<CF_EOF
4642 #include <stdio.h>
4643 int main()
4644 {
4645         ${cf_cv_main_return:-return}(0);
4646 }
4647 CF_EOF
4648 # We do the test twice because some compilers refuse to overwrite an
4649 # existing .o file with -o, though they will create one.
4650 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
4651 if AC_TRY_EVAL(ac_try) &&
4652   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
4653 then
4654   eval cf_cv_prog_$1_c_o=yes
4655 else
4656   eval cf_cv_prog_$1_c_o=no
4657 fi
4658 rm -rf conftest*
4659 ])dnl
4660 if test $cf_cv_prog_$1_c_o = yes; then
4661   AC_MSG_RESULT([yes])
4662 else
4663   AC_MSG_RESULT([no])
4664 fi
4665 ])dnl
4666 dnl ---------------------------------------------------------------------------
4667 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
4668 dnl --------------
4669 dnl Check if C (preprocessor) -U and -D options are processed in the order
4670 dnl given rather than by type of option.  Some compilers insist on apply all
4671 dnl of the -U options after all of the -D options.  Others allow mixing them,
4672 dnl and may predefine symbols that conflict with those we define.
4673 AC_DEFUN([CF_PROG_CC_U_D],
4674 [
4675 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
4676         cf_save_CPPFLAGS="$CPPFLAGS"
4677         CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
4678         AC_TRY_COMPILE([],[
4679 #ifndef U_D_OPTIONS
4680 make an undefined-error
4681 #endif
4682 #ifdef  D_U_OPTIONS
4683 make a defined-error
4684 #endif
4685         ],[
4686         cf_cv_cc_u_d_options=yes],[
4687         cf_cv_cc_u_d_options=no])
4688         CPPFLAGS="$cf_save_CPPFLAGS"
4689 ])
4690 ])dnl
4691 dnl ---------------------------------------------------------------------------
4692 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4693 dnl -------------
4694 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4695 dnl This macro adds a check to ensure the script found something.
4696 AC_DEFUN([CF_PROG_EGREP],
4697 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4698    [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4699     then ac_cv_prog_egrep='grep -E'
4700     else ac_cv_prog_egrep='egrep'
4701     fi])
4702  EGREP=$ac_cv_prog_egrep
4703  AC_SUBST([EGREP])
4704 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4705 ])dnl
4706 dnl ---------------------------------------------------------------------------
4707 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4708 dnl -----------
4709 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4710 AC_DEFUN([CF_PROG_EXT],
4711 [
4712 AC_REQUIRE([CF_CHECK_CACHE])
4713 case $cf_cv_system_name in
4714 os2*)
4715     CFLAGS="$CFLAGS -Zmt"
4716     CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4717     CXXFLAGS="$CXXFLAGS -Zmt"
4718     # autoconf's macro sets -Zexe and suffix both, which conflict:w
4719     LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4720     ac_cv_exeext=.exe
4721     ;;
4722 esac
4723
4724 AC_EXEEXT
4725 AC_OBJEXT
4726
4727 PROG_EXT="$EXEEXT"
4728 AC_SUBST(PROG_EXT)
4729 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4730 ])dnl
4731 dnl ---------------------------------------------------------------------------
4732 dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18
4733 dnl ------------
4734 dnl Check for gnatmake, ensure that it is complete.
4735 AC_DEFUN([CF_PROG_GNAT],[
4736 cf_ada_make=gnatmake
4737 AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
4738 if test "$ac_cv_prog_gnat_exists" = no; then
4739    cf_ada_make=
4740 else
4741    CF_GNAT_VERSION
4742    AC_CHECK_PROG(M4_exists, m4, yes, no)
4743    if test "$ac_cv_prog_M4_exists" = no; then
4744       cf_cv_prog_gnat_correct=no
4745       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
4746    fi
4747    if test "$cf_cv_prog_gnat_correct" = yes; then
4748       AC_MSG_CHECKING(if GNAT works)
4749       CF_GNAT_TRY_RUN([procedure conftest;],
4750 [with Text_IO;
4751 with GNAT.OS_Lib;
4752 procedure conftest is
4753 begin
4754    Text_IO.Put ("Hello World");
4755    Text_IO.New_Line;
4756    GNAT.OS_Lib.OS_Exit (0);
4757 end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
4758       AC_MSG_RESULT($cf_cv_prog_gnat_correct)
4759    fi
4760 fi
4761
4762 AC_SUBST(cf_ada_make)
4763 ])dnl
4764 dnl ---------------------------------------------------------------------------
4765 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4766 dnl ---------------
4767 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
4768 dnl misc/tabset install won't work properly.  Usually this happens only when
4769 dnl using the fallback mkinstalldirs script
4770 AC_DEFUN([CF_PROG_INSTALL],
4771 [AC_PROG_INSTALL
4772 case $INSTALL in
4773 /*)
4774   ;;
4775 *)
4776   CF_DIRNAME(cf_dir,$INSTALL)
4777   test -z "$cf_dir" && cf_dir=.
4778   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4779   ;;
4780 esac
4781 ])dnl
4782 dnl ---------------------------------------------------------------------------
4783 dnl CF_PROG_LDCONFIG version: 3 updated: 2011/06/04 20:09:13
4784 dnl ----------------
4785 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4786 dnl and then used in the install.
4787 AC_DEFUN([CF_PROG_LDCONFIG],[
4788 if test "$cross_compiling" = yes ; then
4789   LDCONFIG=:
4790 else
4791 case "$cf_cv_system_name" in #(vi
4792 dragonfly*|mirbsd*|freebsd*) #(vi
4793   test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4794   ;;
4795 *) LDPATH=$PATH:/sbin:/usr/sbin
4796   AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4797   ;;
4798 esac
4799 fi
4800 AC_SUBST(LDCONFIG)
4801 ])dnl
4802 dnl ---------------------------------------------------------------------------
4803 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
4804 dnl ------------
4805 AC_DEFUN([CF_PROG_LINT],
4806 [
4807 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
4808 AC_SUBST(LINT_OPTS)
4809 ])dnl
4810 dnl ---------------------------------------------------------------------------
4811 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
4812 dnl ------------
4813 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
4814 dnl option if it is supported.
4815 AC_DEFUN([CF_PROG_LN_S],[
4816 AC_PROG_LN_S
4817 AC_MSG_CHECKING(if $LN_S -f options work)
4818
4819 rm -f conf$$.src conf$$dst
4820 echo >conf$$.dst
4821 echo first >conf$$.src
4822 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
4823         cf_prog_ln_sf=yes
4824 else
4825         cf_prog_ln_sf=no
4826 fi
4827 rm -f conf$$.dst conf$$src
4828 AC_MSG_RESULT($cf_prog_ln_sf)
4829
4830 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
4831 ])dnl
4832 dnl ---------------------------------------------------------------------------
4833 dnl CF_REGEX version: 8 updated: 2010/08/07 14:09:44
4834 dnl --------
4835 dnl Attempt to determine if we've got one of the flavors of regular-expression
4836 dnl code that we can support.
4837 AC_DEFUN([CF_REGEX],
4838 [
4839
4840 cf_regex_func=no
4841
4842 cf_regex_libs="regex re"
4843 case $host_os in #(vi
4844 mingw*)
4845         cf_regex_libs="regex.dll $cf_regex_libs"
4846         ;;
4847 esac
4848
4849 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
4850         for cf_regex_lib in $cf_regex_libs
4851         do
4852                 AC_CHECK_LIB($cf_regex_lib,regcomp,[
4853                                 CF_ADD_LIB($cf_regex_lib)
4854                                 cf_regex_func=regcomp
4855                                 break])
4856         done
4857 ])
4858
4859 if test "$cf_regex_func" = no ; then
4860         AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
4861                 AC_CHECK_LIB(gen,compile,[
4862                                 CF_ADD_LIB(gen)
4863                                 cf_regex_func=compile])])
4864 fi
4865
4866 if test "$cf_regex_func" = no ; then
4867         AC_MSG_WARN(cannot find regular expression library)
4868 fi
4869
4870 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
4871
4872 cf_cv_regex_hdrs=no
4873 case $cf_regex_func in #(vi
4874 compile) #(vi
4875         for cf_regex_hdr in regexp.h regexpr.h
4876         do
4877                 AC_TRY_LINK([#include <$cf_regex_hdr>],[
4878                         char *p = compile("", "", "", 0);
4879                         int x = step("", "");
4880                 ],[
4881                         cf_cv_regex_hdrs=$cf_regex_hdr
4882                         break
4883                 ])
4884         done
4885         ;;
4886 *)
4887         for cf_regex_hdr in regex.h
4888         do
4889                 AC_TRY_LINK([#include <sys/types.h>
4890 #include <$cf_regex_hdr>],[
4891                         regex_t *p;
4892                         int x = regcomp(p, "", 0);
4893                         int y = regexec(p, "", 0, 0, 0);
4894                         regfree(p);
4895                 ],[
4896                         cf_cv_regex_hdrs=$cf_regex_hdr
4897                         break
4898                 ])
4899         done
4900         ;;
4901 esac
4902
4903 ])
4904
4905 case $cf_cv_regex_hdrs in #(vi
4906     no)        AC_MSG_WARN(no regular expression header found) ;; #(vi
4907     regex.h)   AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
4908     regexp.h)  AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
4909     regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4910 esac
4911 ])dnl
4912 dnl ---------------------------------------------------------------------------
4913 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
4914 dnl ----------------
4915 dnl Remove all -U and -D options that refer to the given symbol from a list
4916 dnl of C compiler options.  This works around the problem that not all
4917 dnl compilers process -U and -D options from left-to-right, so a -U option
4918 dnl cannot be used to cancel the effect of a preceding -D option.
4919 dnl
4920 dnl $1 = target (which could be the same as the source variable)
4921 dnl $2 = source (including '$')
4922 dnl $3 = symbol to remove
4923 define([CF_REMOVE_DEFINE],
4924 [
4925 $1=`echo "$2" | \
4926         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
4927                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
4928 ])dnl
4929 dnl ---------------------------------------------------------------------------
4930 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4931 dnl -------------
4932 dnl Remove the given library from the symbol
4933 dnl
4934 dnl $1 = target (which could be the same as the source variable)
4935 dnl $2 = source (including '$')
4936 dnl $3 = library to remove
4937 define([CF_REMOVE_LIB],
4938 [
4939 # remove $3 library from $2
4940 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
4941 ])dnl
4942 dnl ---------------------------------------------------------------------------
4943 dnl CF_RPATH_HACK version: 9 updated: 2011/02/13 13:31:33
4944 dnl -------------
4945 AC_DEFUN([CF_RPATH_HACK],
4946 [
4947 AC_REQUIRE([CF_LD_RPATH_OPT])
4948 AC_MSG_CHECKING(for updated LDFLAGS)
4949 if test -n "$LD_RPATH_OPT" ; then
4950         AC_MSG_RESULT(maybe)
4951
4952         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
4953         cf_rpath_list="/usr/lib /lib"
4954         if test "$cf_ldd_prog" != no
4955         then
4956                 cf_rpath_oops=
4957
4958 AC_TRY_LINK([#include <stdio.h>],
4959                 [printf("Hello");],
4960                 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
4961                  cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[     ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`])
4962
4963                 # If we passed the link-test, but get a "not found" on a given library,
4964                 # this could be due to inept reconfiguration of gcc to make it only
4965                 # partly honor /usr/local/lib (or whatever).  Sometimes this behavior
4966                 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
4967                 # /usr/local libraries.
4968                 if test -n "$cf_rpath_oops"
4969                 then
4970                         for cf_rpath_src in $cf_rpath_oops
4971                         do
4972                                 for cf_rpath_dir in \
4973                                         /usr/local \
4974                                         /usr/pkg \
4975                                         /opt/sfw
4976                                 do
4977                                         if test -f $cf_rpath_dir/lib/$cf_rpath_src
4978                                         then
4979                                                 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
4980                                                 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
4981                                                 break
4982                                         fi
4983                                 done
4984                         done
4985                 fi
4986         fi
4987
4988         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4989
4990         CF_RPATH_HACK_2(LDFLAGS)
4991         CF_RPATH_HACK_2(LIBS)
4992
4993         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4994 fi
4995 AC_SUBST(EXTRA_LDFLAGS)
4996 ])dnl
4997 dnl ---------------------------------------------------------------------------
4998 dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
4999 dnl ---------------
5000 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
5001 dnl EXTRA_LDFLAGS for each -L option found.
5002 dnl
5003 dnl $cf_rpath_list contains a list of directories to ignore.
5004 dnl
5005 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
5006 dnl      but LIBS often has misplaced -L options.
5007 AC_DEFUN([CF_RPATH_HACK_2],
5008 [
5009 CF_VERBOSE(...checking $1 [$]$1)
5010
5011 cf_rpath_dst=
5012 for cf_rpath_src in [$]$1
5013 do
5014         case $cf_rpath_src in #(vi
5015         -L*) #(vi
5016
5017                 # check if this refers to a directory which we will ignore
5018                 cf_rpath_skip=no
5019                 if test -n "$cf_rpath_list"
5020                 then
5021                         for cf_rpath_item in $cf_rpath_list
5022                         do
5023                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
5024                                 then
5025                                         cf_rpath_skip=yes
5026                                         break
5027                                 fi
5028                         done
5029                 fi
5030
5031                 if test "$cf_rpath_skip" = no
5032                 then
5033                         # transform the option
5034                         if test "$LD_RPATH_OPT" = "-R " ; then
5035                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
5036                         else
5037                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
5038                         fi
5039
5040                         # if we have not already added this, add it now
5041                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
5042                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
5043                         then
5044                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
5045                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
5046                         fi
5047                 fi
5048                 ;;
5049         esac
5050         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
5051 done
5052 $1=$cf_rpath_dst
5053
5054 CF_VERBOSE(...checked $1 [$]$1)
5055 AC_SUBST(EXTRA_LDFLAGS)
5056 ])dnl
5057 dnl ---------------------------------------------------------------------------
5058 dnl CF_SHARED_OPTS version: 67 updated: 2011/07/02 15:36:04
5059 dnl --------------
5060 dnl --------------
5061 dnl Attempt to determine the appropriate CC/LD options for creating a shared
5062 dnl library.
5063 dnl
5064 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
5065 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
5066 dnl We avoid compiling-in a ../lib path for the shared library since that can
5067 dnl lead to unexpected results at runtime.
5068 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
5069 dnl are compiled in ../../lib
5070 dnl
5071 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
5072 dnl to install symbolic links to the rel/abi versions of shared libraries.
5073 dnl
5074 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
5075 dnl version when making symbolic links.
5076 dnl
5077 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
5078 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
5079 dnl (ex: libncurses.so.<ver>).
5080 dnl
5081 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
5082 AC_DEFUN([CF_SHARED_OPTS],
5083 [
5084         AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
5085         AC_REQUIRE([CF_LD_RPATH_OPT])
5086         LOCAL_LDFLAGS=
5087         LOCAL_LDFLAGS2=
5088         LD_SHARED_OPTS=
5089         INSTALL_LIB="-m 644"
5090
5091         cf_cv_do_symlinks=no
5092         cf_ld_rpath_opt=
5093         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
5094
5095         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
5096         AC_ARG_WITH(shlib-version,
5097         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
5098         [test -z "$withval" && withval=auto
5099         case $withval in #(vi
5100         yes) #(vi
5101                 cf_cv_shlib_version=auto
5102                 ;;
5103         rel|abi|auto|no) #(vi
5104                 cf_cv_shlib_version=$withval
5105                 ;;
5106         *)
5107                 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
5108                 ;;
5109         esac
5110         ],[cf_cv_shlib_version=auto])
5111         AC_MSG_RESULT($cf_cv_shlib_version)
5112
5113         cf_cv_rm_so_locs=no
5114
5115         # Some less-capable ports of gcc support only -fpic
5116         CC_SHARED_OPTS=
5117         if test "$GCC" = yes
5118         then
5119                 AC_MSG_CHECKING(which $CC option to use)
5120                 cf_save_CFLAGS="$CFLAGS"
5121                 for CC_SHARED_OPTS in -fPIC -fpic ''
5122                 do
5123                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
5124                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
5125                 done
5126                 AC_MSG_RESULT($CC_SHARED_OPTS)
5127                 CFLAGS="$cf_save_CFLAGS"
5128         fi
5129
5130         cf_cv_shlib_version_infix=no
5131
5132         case $cf_cv_system_name in #(vi
5133         aix4.[3-9]*|aix[[5-7]]*) #(vi
5134                 if test "$GCC" = yes; then
5135                         CC_SHARED_OPTS=
5136                         MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${libdir}:/usr/lib -o [$]@'
5137                 else
5138                         # CC_SHARED_OPTS='-qpic=large -G'
5139                         # perhaps "-bM:SRE -bnoentry -bexpall"
5140                         MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${libdir}:/usr/lib -o [$]@'
5141                 fi
5142                 ;;
5143         beos*) #(vi
5144                 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
5145                 ;;
5146         cygwin*) #(vi
5147                 CC_SHARED_OPTS=
5148                 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
5149                 cf_cv_shlib_version=cygdll
5150                 cf_cv_shlib_version_infix=cygdll
5151                 cat >mk_shared_lib.sh <<-CF_EOF
5152                 #!/bin/sh
5153                 SHARED_LIB=\[$]1
5154                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
5155                 shift
5156                 cat <<-EOF
5157                 Linking shared library
5158                 ** SHARED_LIB \[$]SHARED_LIB
5159                 ** IMPORT_LIB \[$]IMPORT_LIB
5160 EOF
5161                 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
5162 CF_EOF
5163                 chmod +x mk_shared_lib.sh
5164                 ;;
5165         darwin*) #(vi
5166                 EXTRA_CFLAGS="-no-cpp-precomp"
5167                 CC_SHARED_OPTS="-dynamic"
5168                 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
5169                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
5170                 cf_cv_shlib_version_infix=yes
5171                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
5172                         cf_save_LDFLAGS=$LDFLAGS
5173                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
5174                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
5175                                 LDFLAGS=$cf_save_LDFLAGS])
5176                 if test $cf_cv_ldflags_search_paths_first = yes; then
5177                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
5178                 fi
5179                 ;;
5180         hpux*) #(vi
5181                 # (tested with gcc 2.7.2 -- I don't have c89)
5182                 if test "$GCC" = yes; then
5183                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
5184                 else
5185                         CC_SHARED_OPTS='+Z'
5186                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
5187                 fi
5188                 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
5189                 # HP-UX shared libraries must be executable, and should be
5190                 # readonly to exploit a quirk in the memory manager.
5191                 INSTALL_LIB="-m 555"
5192                 ;;
5193         interix*)
5194                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5195                 if test "$cf_cv_shlib_version" = rel; then
5196                         cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
5197                 else
5198                         cf_shared_soname='`basename $@`'
5199                 fi
5200                 CC_SHARED_OPTS=
5201                 MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${libdir} -Wl,-h,'$cf_shared_soname' -o $@'
5202                 ;;
5203         irix*) #(vi
5204                 if test "$cf_cv_enable_rpath" = yes ; then
5205                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
5206                 fi
5207                 # tested with IRIX 5.2 and 'cc'.
5208                 if test "$GCC" != yes; then
5209                         CC_SHARED_OPTS='-KPIC'
5210                         MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
5211                 else
5212                         MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
5213                 fi
5214                 cf_cv_rm_so_locs=yes
5215                 ;;
5216         linux*|gnu*|k*bsd*-gnu) #(vi
5217                 if test "$DFT_LWR_MODEL" = "shared" ; then
5218                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
5219                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5220                 fi
5221                 if test "$cf_cv_enable_rpath" = yes ; then
5222                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
5223                 fi
5224                 CF_SHARED_SONAME
5225                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
5226                 ;;
5227         openbsd[[2-9]].*|mirbsd*) #(vi
5228                 if test "$DFT_LWR_MODEL" = "shared" ; then
5229                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
5230                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5231                 fi
5232                 if test "$cf_cv_enable_rpath" = yes ; then
5233                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
5234                 fi
5235                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5236                 CF_SHARED_SONAME
5237                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
5238                 ;;
5239         nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
5240                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5241                 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
5242                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5243                 ;;
5244         freebsd*) #(vi
5245                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5246                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
5247                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
5248                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
5249                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
5250                 fi
5251                 CF_SHARED_SONAME
5252                 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
5253                 ;;
5254         netbsd*) #(vi
5255                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
5256                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
5257                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
5258                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5259                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
5260                         if test "$cf_cv_shlib_version" = auto; then
5261                         if test -f /usr/libexec/ld.elf_so; then
5262                                 cf_cv_shlib_version=abi
5263                         else
5264                                 cf_cv_shlib_version=rel
5265                         fi
5266                         fi
5267                         CF_SHARED_SONAME
5268                         MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
5269                 else
5270                         MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
5271                 fi
5272                 ;;
5273         osf*|mls+*) #(vi
5274                 # tested with OSF/1 V3.2 and 'cc'
5275                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
5276                 # link with shared libs).
5277                 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
5278                 case $host_os in #(vi
5279                 osf4*)
5280                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
5281                         ;;
5282                 esac
5283                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
5284                 if test "$DFT_LWR_MODEL" = "shared" ; then
5285                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
5286                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5287                 fi
5288                 cf_cv_rm_so_locs=yes
5289                 ;;
5290         sco3.2v5*)  # (also uw2* and UW7: hops 13-Apr-98
5291                 # tested with osr5.0.5
5292                 if test "$GCC" != yes; then
5293                         CC_SHARED_OPTS='-belf -KPIC'
5294                 fi
5295                 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
5296                 if test "$cf_cv_enable_rpath" = yes ; then
5297                         # only way is to set LD_RUN_PATH but no switch for it
5298                         RUN_PATH=$libdir
5299                 fi
5300                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5301                 LINK_PROGS='LD_RUN_PATH=${libdir}'
5302                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
5303                 ;;
5304         sunos4*) #(vi
5305                 # tested with SunOS 4.1.1 and gcc 2.7.0
5306                 if test "$GCC" != yes; then
5307                         CC_SHARED_OPTS='-KPIC'
5308                 fi
5309                 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
5310                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
5311                 ;;
5312         solaris2*) #(vi
5313                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
5314                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
5315                 if test "$DFT_LWR_MODEL" = "shared" ; then
5316                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
5317                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
5318                 fi
5319                 if test "$cf_cv_enable_rpath" = yes ; then
5320                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
5321                 fi
5322                 CF_SHARED_SONAME
5323                 if test "$GCC" != yes; then
5324                         cf_save_CFLAGS="$CFLAGS"
5325                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
5326                         do
5327                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
5328                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
5329                         done
5330                         CFLAGS="$cf_save_CFLAGS"
5331                         CC_SHARED_OPTS=$cf_shared_opts
5332                         MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
5333                 else
5334                         MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
5335                 fi
5336                 ;;
5337         sysv5uw7*|unix_sv*) #(vi
5338                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
5339                 if test "$GCC" != yes; then
5340                         CC_SHARED_OPTS='-KPIC'
5341                 fi
5342                 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
5343                 ;;
5344         *)
5345                 CC_SHARED_OPTS='unknown'
5346                 MK_SHARED_LIB='echo unknown'
5347                 ;;
5348         esac
5349
5350         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
5351         case "$cf_cv_shlib_version" in #(vi
5352         rel|abi)
5353                 case "$MK_SHARED_LIB" in #(vi
5354                 *'-o $[@]') #(vi
5355                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
5356                         ;;
5357                 *)
5358                         AC_MSG_WARN(ignored --with-shlib-version)
5359                         ;;
5360                 esac
5361                 ;;
5362         esac
5363
5364         if test -n "$cf_ld_rpath_opt" ; then
5365                 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
5366         fi
5367
5368         AC_SUBST(CC_SHARED_OPTS)
5369         AC_SUBST(LD_RPATH_OPT)
5370         AC_SUBST(LD_SHARED_OPTS)
5371         AC_SUBST(MK_SHARED_LIB)
5372         AC_SUBST(LINK_PROGS)
5373         AC_SUBST(LINK_TESTS)
5374         AC_SUBST(EXTRA_LDFLAGS)
5375         AC_SUBST(LOCAL_LDFLAGS)
5376         AC_SUBST(LOCAL_LDFLAGS2)
5377         AC_SUBST(INSTALL_LIB)
5378 ])dnl
5379 dnl ---------------------------------------------------------------------------
5380 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
5381 dnl ----------------
5382 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
5383 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
5384 dnl option.
5385 dnl
5386 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
5387 dnl If missing, use "rel".
5388 define([CF_SHARED_SONAME],
5389 [
5390         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
5391         if test "$cf_cv_shlib_version" = rel; then
5392                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
5393         else
5394                 cf_cv_shared_soname='`basename $[@]`'
5395         fi
5396 ])
5397 dnl ---------------------------------------------------------------------------
5398 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
5399 dnl -----------
5400 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
5401 dnl programs need this test).
5402 dnl
5403 dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
5404 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
5405 dnl winsize declaration is left alone - we may revisit this if Apple choose to
5406 dnl break that part of the interface as well.
5407 AC_DEFUN([CF_SIGWINCH],
5408 [
5409 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
5410         AC_TRY_COMPILE([
5411 #include <sys/types.h>
5412 #include <sys/signal.h>
5413 ],[int x = SIGWINCH],
5414         [cf_cv_define_sigwinch=yes],
5415         [AC_TRY_COMPILE([
5416 #undef _XOPEN_SOURCE
5417 #undef _POSIX_SOURCE
5418 #undef _POSIX_C_SOURCE
5419 #include <sys/types.h>
5420 #include <sys/signal.h>
5421 ],[int x = SIGWINCH],
5422         [cf_cv_define_sigwinch=maybe],
5423         [cf_cv_define_sigwinch=no])
5424 ])
5425 ])
5426
5427 if test "$cf_cv_define_sigwinch" = maybe ; then
5428 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
5429 cf_cv_fixup_sigwinch=unknown
5430 cf_sigwinch=32
5431 while test $cf_sigwinch != 1
5432 do
5433         AC_TRY_COMPILE([
5434 #undef _XOPEN_SOURCE
5435 #undef _POSIX_SOURCE
5436 #undef _POSIX_C_SOURCE
5437 #include <sys/types.h>
5438 #include <sys/signal.h>
5439 ],[
5440 #if SIGWINCH != $cf_sigwinch
5441 make an error
5442 #endif
5443 int x = SIGWINCH],
5444         [cf_cv_fixup_sigwinch=$cf_sigwinch
5445          break])
5446
5447 cf_sigwinch=`expr $cf_sigwinch - 1`
5448 done
5449 ])
5450
5451         if test "$cf_cv_fixup_sigwinch" != unknown ; then
5452                 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
5453         fi
5454 fi
5455 ])dnl
5456 dnl ---------------------------------------------------------------------------
5457 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
5458 dnl ---------------
5459 dnl signal handler, but there are some gcc depedencies in that recommendation.
5460 dnl Try anyway.
5461 AC_DEFUN([CF_SIG_ATOMIC_T],
5462 [
5463 AC_MSG_CHECKING(for signal global datatype)
5464 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
5465         for cf_type in \
5466                 "volatile sig_atomic_t" \
5467                 "sig_atomic_t" \
5468                 "int"
5469         do
5470         AC_TRY_COMPILE([
5471 #include <sys/types.h>
5472 #include <signal.h>
5473 #include <stdio.h>
5474
5475 extern $cf_type x;
5476 $cf_type x;
5477 static void handler(int sig)
5478 {
5479         x = 5;
5480 }],
5481                 [signal(SIGINT, handler);
5482                  x = 1],
5483                 [cf_cv_sig_atomic_t=$cf_type],
5484                 [cf_cv_sig_atomic_t=no])
5485                 test "$cf_cv_sig_atomic_t" != no && break
5486         done
5487         ])
5488 AC_MSG_RESULT($cf_cv_sig_atomic_t)
5489 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
5490 ])dnl
5491 dnl ---------------------------------------------------------------------------
5492 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
5493 dnl -------------
5494 dnl Check for definitions & structures needed for window size-changing
5495 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
5496 AC_DEFUN([CF_SIZECHANGE],
5497 [
5498 AC_REQUIRE([CF_STRUCT_TERMIOS])
5499 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
5500     cf_cv_sizechange=unknown
5501     cf_save_CPPFLAGS="$CPPFLAGS"
5502
5503 for cf_opts in "" "NEED_PTEM_H"
5504 do
5505
5506     CPPFLAGS="$cf_save_CPPFLAGS"
5507     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
5508     AC_TRY_COMPILE([#include <sys/types.h>
5509 #ifdef HAVE_TERMIOS_H
5510 #include <termios.h>
5511 #else
5512 #ifdef HAVE_TERMIO_H
5513 #include <termio.h>
5514 #endif
5515 #endif
5516 #ifdef NEED_PTEM_H
5517 /* This is a workaround for SCO:  they neglected to define struct winsize in
5518  * termios.h -- it's only in termio.h and ptem.h
5519  */
5520 #include        <sys/stream.h>
5521 #include        <sys/ptem.h>
5522 #endif
5523 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
5524 #include <sys/ioctl.h>
5525 #endif
5526 ],[
5527 #ifdef TIOCGSIZE
5528         struct ttysize win;     /* FIXME: what system is this? */
5529         int y = win.ts_lines;
5530         int x = win.ts_cols;
5531 #else
5532 #ifdef TIOCGWINSZ
5533         struct winsize win;
5534         int y = win.ws_row;
5535         int x = win.ws_col;
5536 #else
5537         no TIOCGSIZE or TIOCGWINSZ
5538 #endif /* TIOCGWINSZ */
5539 #endif /* TIOCGSIZE */
5540         ],
5541         [cf_cv_sizechange=yes],
5542         [cf_cv_sizechange=no])
5543
5544         CPPFLAGS="$cf_save_CPPFLAGS"
5545         if test "$cf_cv_sizechange" = yes ; then
5546                 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
5547                 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
5548                 break
5549         fi
5550 done
5551 ])
5552 if test "$cf_cv_sizechange" != no ; then
5553         AC_DEFINE(HAVE_SIZECHANGE)
5554         case $cf_cv_sizechange in #(vi
5555         NEED*)
5556                 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
5557                 ;;
5558         esac
5559 fi
5560 ])dnl
5561 dnl ---------------------------------------------------------------------------
5562 dnl CF_SRC_MODULES version: 21 updated: 2010/09/04 17:37:40
5563 dnl --------------
5564 dnl For each parameter, test if the source-directory exists, and if it contains
5565 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
5566 dnl use in CF_LIB_RULES.
5567 dnl
5568 dnl This uses the configured value to make the lists SRC_SUBDIRS and
5569 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
5570 AC_DEFUN([CF_SRC_MODULES],
5571 [
5572 AC_MSG_CHECKING(for src modules)
5573
5574 # dependencies and linker-arguments for test-programs
5575 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
5576 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
5577 if test "$DFT_LWR_MODEL" = "libtool"; then
5578         TEST_ARGS="${TEST_DEPS}"
5579         TEST_ARG2="${TEST_DEP2}"
5580 else
5581         TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
5582         TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
5583 fi
5584
5585 cf_cv_src_modules=
5586 for cf_dir in $1
5587 do
5588         if test -f $srcdir/$cf_dir/modules; then
5589
5590                 # We may/may not have tack in the distribution, though the
5591                 # makefile is.
5592                 if test $cf_dir = tack ; then
5593                         if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
5594                                 continue
5595                         fi
5596                 fi
5597
5598                 if test -z "$cf_cv_src_modules"; then
5599                         cf_cv_src_modules=$cf_dir
5600                 else
5601                         cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
5602                 fi
5603
5604                 # Make the ncurses_cfg.h file record the library interface files as
5605                 # well.  These are header files that are the same name as their
5606                 # directory.  Ncurses is the only library that does not follow
5607                 # that pattern.
5608                 if test $cf_dir = tack ; then
5609                         continue
5610                 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
5611                         CF_UPPER(cf_have_include,$cf_dir)
5612                         AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
5613                         AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
5614                         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
5615                         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
5616                         if test "$DFT_LWR_MODEL" = "libtool"; then
5617                                 TEST_ARGS="${TEST_DEPS}"
5618                                 TEST_ARG2="${TEST_DEP2}"
5619                         else
5620                                 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
5621                                 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
5622                         fi
5623                 fi
5624         fi
5625 done
5626 AC_MSG_RESULT($cf_cv_src_modules)
5627
5628 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
5629 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
5630
5631 AC_SUBST(TEST_ARGS)
5632 AC_SUBST(TEST_DEPS)
5633
5634 AC_SUBST(TEST_ARG2)
5635 AC_SUBST(TEST_DEP2)
5636
5637 SRC_SUBDIRS=
5638 if test "x$cf_with_manpages" != xno ; then
5639         SRC_SUBDIRS="$SRC_SUBDIRS man"
5640 fi
5641 SRC_SUBDIRS="$SRC_SUBDIRS include"
5642 for cf_dir in $cf_cv_src_modules
5643 do
5644         SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
5645 done
5646 if test "x$cf_with_tests" != "xno" ; then
5647         SRC_SUBDIRS="$SRC_SUBDIRS test"
5648 fi
5649 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
5650 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
5651
5652 ADA_SUBDIRS=
5653 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
5654         SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
5655         ADA_SUBDIRS="gen src"
5656         if test "x$cf_with_tests" != "xno" ; then
5657                 ADA_SUBDIRS="$ADA_SUBDIRS samples"
5658         fi
5659 fi
5660
5661 SUB_MAKEFILES=
5662 for cf_dir in $SRC_SUBDIRS
5663 do
5664         SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
5665 done
5666
5667 if test -n "$ADA_SUBDIRS"; then
5668         for cf_dir in $ADA_SUBDIRS
5669         do
5670                 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
5671         done
5672         AC_SUBST(ADA_SUBDIRS)
5673 fi
5674 ])dnl
5675 dnl ---------------------------------------------------------------------------
5676 dnl CF_STDCPP_LIBRARY version: 7 updated: 2010/05/29 16:31:02
5677 dnl -----------------
5678 dnl Check for -lstdc++, which is GNU's standard C++ library.
5679 AC_DEFUN([CF_STDCPP_LIBRARY],
5680 [
5681 if test -n "$GXX" ; then
5682 case $cf_cv_system_name in #(vi
5683 os2*) #(vi
5684         cf_stdcpp_libname=stdcpp
5685         ;;
5686 *)
5687         cf_stdcpp_libname=stdc++
5688         ;;
5689 esac
5690 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
5691         cf_save="$LIBS"
5692         CF_ADD_LIB($cf_stdcpp_libname)
5693 AC_TRY_LINK([
5694 #include <strstream.h>],[
5695 char buf[80];
5696 strstreambuf foo(buf, sizeof(buf))
5697 ],
5698         [cf_cv_libstdcpp=yes],
5699         [cf_cv_libstdcpp=no])
5700         LIBS="$cf_save"
5701 ])
5702 test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS)
5703 fi
5704 ])dnl
5705 dnl ---------------------------------------------------------------------------
5706 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
5707 dnl --------------
5708 dnl     Remove "-g" option from the compiler options
5709 AC_DEFUN([CF_STRIP_G_OPT],
5710 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
5711 dnl ---------------------------------------------------------------------------
5712 dnl CF_STRUCT_SIGACTION version: 4 updated: 2011/04/16 11:52:53
5713 dnl -------------------
5714 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
5715 dnl do this if we've found the sigaction function.
5716 AC_DEFUN([CF_STRUCT_SIGACTION],[
5717 AC_REQUIRE([CF_XOPEN_SOURCE])
5718
5719 if test "$ac_cv_func_sigaction" = yes; then
5720 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
5721 AC_TRY_COMPILE([
5722 #include <sys/types.h>
5723 #include <signal.h>],
5724         [struct sigaction act],
5725         [sigact_bad=no],
5726         [
5727 AC_TRY_COMPILE([
5728 #define _POSIX_SOURCE
5729 #include <sys/types.h>
5730 #include <signal.h>],
5731         [struct sigaction act],
5732         [sigact_bad=yes
5733          AC_DEFINE(_POSIX_SOURCE)],
5734          [sigact_bad=unknown])])
5735 AC_MSG_RESULT($sigact_bad)
5736 fi
5737 ])dnl
5738 dnl ---------------------------------------------------------------------------
5739 dnl CF_STRUCT_TERMIOS version: 6 updated: 2011/04/16 11:52:53
5740 dnl -----------------
5741 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
5742 AC_DEFUN([CF_STRUCT_TERMIOS],[
5743 AC_REQUIRE([CF_XOPEN_SOURCE])
5744
5745 AC_CHECK_HEADERS( \
5746 termio.h \
5747 termios.h \
5748 unistd.h \
5749 )
5750
5751 if test "$ISC" = yes ; then
5752         AC_CHECK_HEADERS( sys/termio.h )
5753 fi
5754 if test "$ac_cv_header_termios_h" = yes ; then
5755         case "$CFLAGS $CPPFLAGS" in
5756         *-D_POSIX_SOURCE*)
5757                 termios_bad=dunno ;;
5758         *)      termios_bad=maybe ;;
5759         esac
5760         if test "$termios_bad" = maybe ; then
5761         AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
5762         AC_TRY_COMPILE([#include <termios.h>],
5763                 [struct termios foo; int x = foo.c_iflag],
5764                 termios_bad=no, [
5765                 AC_TRY_COMPILE([
5766 #define _POSIX_SOURCE
5767 #include <termios.h>],
5768                         [struct termios foo; int x = foo.c_iflag],
5769                         termios_bad=unknown,
5770                         termios_bad=yes AC_DEFINE(_POSIX_SOURCE))
5771                         ])
5772         AC_MSG_RESULT($termios_bad)
5773         fi
5774 fi
5775 ])dnl
5776 dnl ---------------------------------------------------------------------------
5777 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
5778 dnl --------------
5779 dnl Construct a search-list for a nonstandard header/lib-file
5780 dnl     $1 = the variable to return as result
5781 dnl     $2 = the package name
5782 dnl     $3 = the subdirectory, e.g., bin, include or lib
5783 AC_DEFUN([CF_SUBDIR_PATH],
5784 [
5785 $1=
5786
5787 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
5788 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
5789 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
5790 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
5791 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
5792 ])dnl
5793 dnl ---------------------------------------------------------------------------
5794 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
5795 dnl --------
5796 dnl     Shorthand macro for substituting things that the user may override
5797 dnl     with an environment variable.
5798 dnl
5799 dnl     $1 = long/descriptive name
5800 dnl     $2 = environment variable
5801 dnl     $3 = default value
5802 AC_DEFUN([CF_SUBST],
5803 [AC_CACHE_VAL(cf_cv_subst_$2,[
5804 AC_MSG_CHECKING(for $1 (symbol $2))
5805 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
5806 cf_cv_subst_$2=[$]$2
5807 AC_MSG_RESULT([$]$2)
5808 ])
5809 ])dnl
5810 dnl ---------------------------------------------------------------------------
5811 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
5812 dnl -----------
5813 dnl     Shorthand macro for substituting things that the user may override
5814 dnl     with an environment variable.
5815 dnl
5816 dnl     $1 = condition to pass to "test"
5817 dnl     $2 = environment variable
5818 dnl     $3 = value if the test succeeds
5819 dnl     $4 = value if the test fails
5820 AC_DEFUN([CF_SUBST_IF],
5821 [
5822 if test $1 ; then
5823         $2=$3
5824 ifelse($4,,,[else
5825         $2=$4])
5826 fi
5827 AC_SUBST($2)
5828 ])dnl
5829 dnl ---------------------------------------------------------------------------
5830 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
5831 dnl ------------------------
5832 dnl Get the version-number for use in shared-library naming, etc.
5833 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
5834 [
5835 AC_REQUIRE([CF_PROG_EGREP])
5836 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5837 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5838 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5839 cf_cv_abi_version=${NCURSES_MAJOR}
5840 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
5841 dnl Show the computed version, for logging
5842 cf_cv_timestamp=`date`
5843 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
5844 dnl We need these values in the generated headers
5845 AC_SUBST(NCURSES_MAJOR)
5846 AC_SUBST(NCURSES_MINOR)
5847 AC_SUBST(NCURSES_PATCH)
5848 dnl We need these values in the generated makefiles
5849 AC_SUBST(cf_cv_rel_version)
5850 AC_SUBST(cf_cv_abi_version)
5851 AC_SUBST(cf_cv_builtin_bool)
5852 AC_SUBST(cf_cv_header_stdbool_h)
5853 AC_SUBST(cf_cv_type_of_bool)dnl
5854 ])dnl
5855 dnl ---------------------------------------------------------------------------
5856 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
5857 dnl ------------------
5858 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
5859 dnl older SCO configurations.
5860 AC_DEFUN([CF_SYS_TIME_SELECT],
5861 [
5862 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
5863 AC_CACHE_VAL(cf_cv_sys_time_select,[
5864 AC_TRY_COMPILE([
5865 #include <sys/types.h>
5866 #ifdef HAVE_SYS_TIME_H
5867 #include <sys/time.h>
5868 #endif
5869 #ifdef HAVE_SYS_SELECT_H
5870 #include <sys/select.h>
5871 #endif
5872 ],[],[cf_cv_sys_time_select=yes],
5873      [cf_cv_sys_time_select=no])
5874      ])
5875 AC_MSG_RESULT($cf_cv_sys_time_select)
5876 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
5877 ])dnl
5878 dnl ---------------------------------------------------------------------------
5879 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
5880 dnl ---------------
5881 dnl Define a top_builddir symbol, for applications that need an absolute path.
5882 AC_DEFUN([CF_TOP_BUILDDIR],
5883 [
5884 top_builddir=`pwd`
5885 AC_SUBST(top_builddir)
5886 ])dnl
5887 dnl ---------------------------------------------------------------------------
5888 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
5889 dnl ----------------
5890 dnl Determine the type we should use for chtype (and attr_t, which is treated
5891 dnl as the same thing).  We want around 32 bits, so on most machines want a
5892 dnl long, but on newer 64-bit machines, probably want an int.  If we're using
5893 dnl wide characters, we have to have a type compatible with that, as well.
5894 AC_DEFUN([CF_TYPEOF_CHTYPE],
5895 [
5896 AC_MSG_CHECKING([for type of chtype])
5897 AC_CACHE_VAL(cf_cv_typeof_chtype,[
5898                 AC_TRY_RUN([
5899 #define WANT_BITS 31
5900 #include <stdio.h>
5901 int main()
5902 {
5903         FILE *fp = fopen("cf_test.out", "w");
5904         if (fp != 0) {
5905                 char *result = "long";
5906                 if (sizeof(unsigned long) > sizeof(unsigned int)) {
5907                         int n;
5908                         unsigned int x, y;
5909                         for (n = 0; n < WANT_BITS; n++) {
5910                                 x = (1 << n);
5911                                 y = (x >> n);
5912                                 if (y != 1 || x == 0) {
5913                                         x = 0;
5914                                         break;
5915                                 }
5916                         }
5917                         /*
5918                          * If x is nonzero, an int is big enough for the bits
5919                          * that we want.
5920                          */
5921                         result = (x != 0) ? "int" : "long";
5922                 }
5923                 fputs(result, fp);
5924                 fclose(fp);
5925         }
5926         ${cf_cv_main_return:-return}(0);
5927 }
5928                 ],
5929                 [cf_cv_typeof_chtype=`cat cf_test.out`],
5930                 [cf_cv_typeof_chtype=long],
5931                 [cf_cv_typeof_chtype=long])
5932                 rm -f cf_test.out
5933         ])
5934 AC_MSG_RESULT($cf_cv_typeof_chtype)
5935
5936 AC_SUBST(cf_cv_typeof_chtype)
5937 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5938 ])dnl
5939 dnl ---------------------------------------------------------------------------
5940 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5941 dnl -----------------
5942 dnl
5943 AC_DEFUN([CF_TYPE_SIGACTION],
5944 [
5945 AC_MSG_CHECKING([for type sigaction_t])
5946 AC_CACHE_VAL(cf_cv_type_sigaction,[
5947         AC_TRY_COMPILE([
5948 #include <signal.h>],
5949                 [sigaction_t x],
5950                 [cf_cv_type_sigaction=yes],
5951                 [cf_cv_type_sigaction=no])])
5952 AC_MSG_RESULT($cf_cv_type_sigaction)
5953 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5954 ])dnl
5955 dnl ---------------------------------------------------------------------------
5956 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5957 dnl --------------------
5958 dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
5959 dnl won't, but they're still there.
5960 AC_DEFUN([CF_UNSIGNED_LITERALS],
5961 [
5962 AC_MSG_CHECKING([if unsigned literals are legal])
5963 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5964         AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5965                 [cf_cv_unsigned_literals=yes],
5966                 [cf_cv_unsigned_literals=no])
5967         ])
5968 AC_MSG_RESULT($cf_cv_unsigned_literals)
5969 ])dnl
5970 dnl ---------------------------------------------------------------------------
5971 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5972 dnl --------
5973 dnl Make an uppercase version of a variable
5974 dnl $1=uppercase($2)
5975 AC_DEFUN([CF_UPPER],
5976 [
5977 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5978 ])dnl
5979 dnl ---------------------------------------------------------------------------
5980 dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
5981 dnl -----------
5982 dnl Check for multibyte support, and if not found, utf8 compatibility library
5983 AC_DEFUN([CF_UTF8_LIB],
5984 [
5985 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5986         cf_save_LIBS="$LIBS"
5987         AC_TRY_LINK([
5988 #include <stdlib.h>],[putwc(0,0);],
5989         [cf_cv_utf8_lib=yes],
5990         [CF_FIND_LINKAGE([
5991 #include <libutf8.h>],[putwc(0,0);],utf8,
5992                 [cf_cv_utf8_lib=add-on],
5993                 [cf_cv_utf8_lib=no])
5994 ])])
5995
5996 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5997 # ncurses/ncursesw:
5998 if test "$cf_cv_utf8_lib" = "add-on" ; then
5999         AC_DEFINE(HAVE_LIBUTF8_H)
6000         CF_ADD_INCDIR($cf_cv_header_path_utf8)
6001         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
6002         CF_ADD_LIBS($cf_cv_library_file_utf8)
6003 fi
6004 ])dnl
6005 dnl ---------------------------------------------------------------------------
6006 dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
6007 dnl ----------
6008 dnl check for va_copy, part of stdarg.h
6009 dnl Also, workaround for glibc's __va_copy, by checking for both.
6010 AC_DEFUN([CF_VA_COPY],[
6011 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
6012 AC_TRY_LINK([
6013 #include <stdarg.h>
6014 ],[
6015         static va_list dst;
6016         static va_list src;
6017         va_copy(dst, src)],
6018         cf_cv_have_va_copy=yes,
6019         cf_cv_have_va_copy=no)])
6020
6021 test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
6022
6023 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
6024 AC_TRY_LINK([
6025 #include <stdarg.h>
6026 ],[
6027         static va_list dst;
6028         static va_list src;
6029         __va_copy(dst, src)],
6030         cf_cv_have___va_copy=yes,
6031         cf_cv_have___va_copy=no)])
6032
6033 test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
6034 ])
6035 dnl ---------------------------------------------------------------------------
6036 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
6037 dnl ----------
6038 dnl Use AC_VERBOSE w/o the warnings
6039 AC_DEFUN([CF_VERBOSE],
6040 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
6041 CF_MSG_LOG([$1])
6042 ])dnl
6043 dnl ---------------------------------------------------------------------------
6044 dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
6045 dnl -------------
6046 dnl Check if type wide-character type $1 is declared, and if so, which header
6047 dnl file is needed.  The second parameter is used to set a shell variable when
6048 dnl the type is not found.  The first parameter sets a shell variable for the
6049 dnl opposite sense.
6050 AC_DEFUN([CF_WCHAR_TYPE],
6051 [
6052 # This is needed on Tru64 5.0 to declare $1
6053 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
6054 AC_TRY_COMPILE([
6055 #include <stdlib.h>
6056 #include <stdarg.h>
6057 #include <stdio.h>
6058 #ifdef HAVE_LIBUTF8_H
6059 #include <libutf8.h>
6060 #endif],
6061         [$1 state],
6062         [cf_cv_$1=no],
6063         [AC_TRY_COMPILE([
6064 #include <stdlib.h>
6065 #include <stdarg.h>
6066 #include <stdio.h>
6067 #include <wchar.h>
6068 #ifdef HAVE_LIBUTF8_H
6069 #include <libutf8.h>
6070 #endif],
6071         [$1 value],
6072         [cf_cv_$1=yes],
6073         [cf_cv_$1=unknown])])])
6074
6075 if test "$cf_cv_$1" = yes ; then
6076         AC_DEFINE(NEED_WCHAR_H)
6077         NEED_WCHAR_H=1
6078 fi
6079
6080 ifelse([$2],,,[
6081 # if we do not find $1 in either place, use substitution to provide a fallback.
6082 if test "$cf_cv_$1" = unknown ; then
6083         $2=1
6084 fi
6085 ])
6086 ifelse($3,,,[
6087 # if we find $1 in either place, use substitution to provide a fallback.
6088 if test "$cf_cv_$1" != unknown ; then
6089         $3=1
6090 fi
6091 ])
6092 ])dnl
6093 dnl ---------------------------------------------------------------------------
6094 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
6095 dnl ---------------
6096 dnl Check for compiler-support for weak symbols.
6097 dnl This works with "recent" gcc.
6098 AC_DEFUN([CF_WEAK_SYMBOLS],[
6099 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
6100
6101 AC_TRY_COMPILE([
6102 #include <stdio.h>],
6103 [
6104 #if defined(__GNUC__)
6105 #  if defined __USE_ISOC99
6106 #    define _cat_pragma(exp)    _Pragma(#exp)
6107 #    define _weak_pragma(exp)   _cat_pragma(weak name)
6108 #  else
6109 #    define _weak_pragma(exp)
6110 #  endif
6111 #  define _declare(name)        __extension__ extern __typeof__(name) name
6112 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
6113 #endif
6114
6115 weak_symbol(fopen);
6116 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
6117 ])
6118 ])dnl
6119 dnl ---------------------------------------------------------------------------
6120 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
6121 dnl -------------------
6122 dnl Allow library's ABI to be overridden.  Generally this happens when a
6123 dnl packager has incremented the ABI past that used in the original package,
6124 dnl and wishes to keep doing this.
6125 dnl
6126 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6127 dnl symbol.
6128 AC_DEFUN([CF_WITH_ABI_VERSION],[
6129 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
6130 AC_ARG_WITH(abi-version,
6131 [  --with-abi-version=XXX  override derived ABI version],
6132 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
6133  cf_cv_abi_version=$withval])
6134  CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
6135 ifelse($1,,,[
6136 $1_ABI=$cf_cv_abi_version
6137 ])
6138 ])dnl
6139 dnl ---------------------------------------------------------------------------
6140 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
6141 dnl --------------------
6142 dnl Command-line option to specify the Ada95 compiler.
6143 AC_DEFUN([CF_WITH_ADA_COMPILER],[
6144 AC_MSG_CHECKING(for ada-compiler)
6145 AC_ARG_WITH(ada-compiler,
6146         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
6147         [cf_ada_compiler=$withval],
6148         [cf_ada_compiler=gnatmake])
6149 AC_SUBST(cf_ada_compiler)
6150 AC_MSG_RESULT($cf_ada_compiler)
6151 ])dnl
6152 dnl ---------------------------------------------------------------------------
6153 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
6154 dnl -------------------
6155 dnl Command-line option to specify where Ada includes will install.
6156 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
6157 AC_MSG_CHECKING(for ada-include)
6158 CF_WITH_PATH(ada-include,
6159    [  --with-ada-include=DIR  Ada includes are in DIR],
6160    ADA_INCLUDE,
6161    PREFIX/share/ada/adainclude,
6162    [$]prefix/share/ada/adainclude)
6163 AC_SUBST(ADA_INCLUDE)
6164 AC_MSG_RESULT($ADA_INCLUDE)
6165 ])dnl
6166 dnl ---------------------------------------------------------------------------
6167 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
6168 dnl -------------------
6169 dnl Command-line option to specify where Ada objects will install.
6170 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
6171 AC_MSG_CHECKING(for ada-objects)
6172 CF_WITH_PATH(ada-objects,
6173    [  --with-ada-objects=DIR  Ada objects are in DIR],
6174    ADA_OBJECTS,
6175    PREFIX/lib/ada/adalib,
6176    [$]prefix/lib/ada/adalib)
6177 AC_SUBST(ADA_OBJECTS)
6178 AC_MSG_RESULT($ADA_OBJECTS)
6179 ])dnl
6180 dnl ---------------------------------------------------------------------------
6181 dnl CF_WITH_ADA_SHAREDLIB version: 2 updated: 2010/06/26 17:35:58
6182 dnl ---------------------
6183 dnl Command-line option to specify if an Ada95 shared-library should be built,
6184 dnl and optionally what its soname should be.
6185 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
6186 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
6187 AC_ARG_WITH(ada-sharedlib,
6188         [  --with-ada-sharedlib=XX build Ada95 shared-library],
6189         [with_ada_sharedlib=$withval],
6190         [with_ada_sharedlib=no])
6191 AC_MSG_RESULT($with_ada_sharedlib)
6192
6193 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
6194 MAKE_ADA_SHAREDLIB="#"
6195
6196 if test "x$with_ada_sharedlib" != xno
6197 then
6198         MAKE_ADA_SHAREDLIB=
6199         if test "x$with_ada_sharedlib" != xyes
6200         then
6201                 ADA_SHAREDLIB="$with_ada_sharedlib"
6202         fi
6203 fi
6204
6205 AC_SUBST(ADA_SHAREDLIB)
6206 AC_SUBST(MAKE_ADA_SHAREDLIB)
6207 ])dnl
6208 dnl ---------------------------------------------------------------------------
6209 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
6210 dnl ----------------
6211 dnl Configure-option for dbmalloc.  The optional parameter is used to override
6212 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
6213 AC_DEFUN([CF_WITH_DBMALLOC],[
6214 CF_NO_LEAKS_OPTION(dbmalloc,
6215         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
6216         [USE_DBMALLOC])
6217
6218 if test "$with_dbmalloc" = yes ; then
6219         AC_CHECK_HEADER(dbmalloc.h,
6220                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
6221 fi
6222 ])dnl
6223 dnl ---------------------------------------------------------------------------
6224 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
6225 dnl ---------------
6226 dnl Configure-option for dmalloc.  The optional parameter is used to override
6227 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
6228 AC_DEFUN([CF_WITH_DMALLOC],[
6229 CF_NO_LEAKS_OPTION(dmalloc,
6230         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
6231         [USE_DMALLOC])
6232
6233 if test "$with_dmalloc" = yes ; then
6234         AC_CHECK_HEADER(dmalloc.h,
6235                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
6236 fi
6237 ])dnl
6238 dnl ---------------------------------------------------------------------------
6239 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
6240 dnl -----------
6241 dnl
6242 dnl The option parameter (if neither yes/no) is assumed to be the name of
6243 dnl the gpm library, e.g., for dynamic loading.
6244 AC_DEFUN([CF_WITH_GPM],
6245 [
6246 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
6247 AC_ARG_WITH(gpm,
6248         [  --with-gpm              use Alessandro Rubini's GPM library],
6249         [with_gpm=$withval],
6250         [with_gpm=maybe])
6251 AC_MSG_RESULT($with_gpm)
6252
6253 if test "$with_gpm" != no ; then
6254         AC_CHECK_HEADER(gpm.h,[
6255                 AC_DEFINE(HAVE_GPM_H)
6256                 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
6257                         CF_VERBOSE(assuming we really have GPM library)
6258                         AC_DEFINE(HAVE_LIBGPM)
6259                 else
6260                         AC_CHECK_LIB(gpm,Gpm_Open,[:],[
6261                                 AC_MSG_ERROR(Cannot link with GPM library)
6262                 fi
6263                 with_gpm=yes
6264                 ])
6265         ],[
6266                 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
6267                 with_gpm=no
6268         ])
6269 fi
6270 ])
6271 dnl ---------------------------------------------------------------------------
6272 dnl CF_WITH_LIBTOOL version: 28 updated: 2011/07/02 15:40:32
6273 dnl ---------------
6274 dnl Provide a configure option to incorporate libtool.  Define several useful
6275 dnl symbols for the makefile rules.
6276 dnl
6277 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
6278 dnl macros from libtool.m4 which is in the aclocal directory of automake.
6279 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
6280 dnl But that still does not work properly since the macro is expanded outside
6281 dnl the CF_WITH_LIBTOOL macro:
6282 dnl
6283 dnl     #!/bin/sh
6284 dnl     ACLOCAL=`aclocal --print-ac-dir`
6285 dnl     if test -z "$ACLOCAL" ; then
6286 dnl             echo cannot find aclocal directory
6287 dnl             exit 1
6288 dnl     elif test ! -f $ACLOCAL/libtool.m4 ; then
6289 dnl             echo cannot find libtool.m4 file
6290 dnl             exit 1
6291 dnl     fi
6292 dnl
6293 dnl     LOCAL=aclocal.m4
6294 dnl     ORIG=aclocal.m4.orig
6295 dnl
6296 dnl     trap "mv $ORIG $LOCAL" 0 1 2 5 15
6297 dnl     rm -f $ORIG
6298 dnl     mv $LOCAL $ORIG
6299 dnl
6300 dnl     # sed the LIBTOOL= assignment to omit the current directory?
6301 dnl     sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
6302 dnl     cat $ORIG >>$LOCAL
6303 dnl
6304 dnl     autoconf-257 $*
6305 dnl
6306 AC_DEFUN([CF_WITH_LIBTOOL],
6307 [
6308 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
6309 ifdef([AC_PROG_LIBTOOL],,[
6310 LIBTOOL=
6311 ])
6312 # common library maintenance symbols that are convenient for libtool scripts:
6313 LIB_CREATE='${AR} -cr'
6314 LIB_OBJECT='${OBJECTS}'
6315 LIB_SUFFIX=.a
6316 LIB_PREP="$RANLIB"
6317
6318 # symbols used to prop libtool up to enable it to determine what it should be
6319 # doing:
6320 LIB_CLEAN=
6321 LIB_COMPILE=
6322 LIB_LINK='${CC}'
6323 LIB_INSTALL=
6324 LIB_UNINSTALL=
6325
6326 AC_MSG_CHECKING(if you want to build libraries with libtool)
6327 AC_ARG_WITH(libtool,
6328         [  --with-libtool          generate libraries with libtool],
6329         [with_libtool=$withval],
6330         [with_libtool=no])
6331 AC_MSG_RESULT($with_libtool)
6332 if test "$with_libtool" != "no"; then
6333 ifdef([AC_PROG_LIBTOOL],[
6334         # missing_content_AC_PROG_LIBTOOL{{
6335         AC_PROG_LIBTOOL
6336         # missing_content_AC_PROG_LIBTOOL}}
6337 ],[
6338         if test "$with_libtool" != "yes" ; then
6339                 CF_PATH_SYNTAX(with_libtool)
6340                 LIBTOOL=$with_libtool
6341         else
6342                 AC_PATH_PROG(LIBTOOL,libtool)
6343         fi
6344         if test -z "$LIBTOOL" ; then
6345                 AC_MSG_ERROR(Cannot find libtool)
6346         fi
6347 ])dnl
6348         LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
6349         LIB_OBJECT='${OBJECTS:.o=.lo}'
6350         LIB_SUFFIX=.la
6351         LIB_CLEAN='${LIBTOOL} --mode=clean'
6352         LIB_COMPILE='${LIBTOOL} --mode=compile'
6353         LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
6354         LIB_INSTALL='${LIBTOOL} --mode=install'
6355         LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
6356         LIB_PREP=:
6357
6358         # Show the version of libtool
6359         AC_MSG_CHECKING(version of libtool)
6360
6361         # Save the version in a cache variable - this is not entirely a good
6362         # thing, but the version string from libtool is very ugly, and for
6363         # bug reports it might be useful to have the original string. "("
6364         cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
6365         AC_MSG_RESULT($cf_cv_libtool_version)
6366         if test -z "$cf_cv_libtool_version" ; then
6367                 AC_MSG_ERROR(This is not GNU libtool)
6368         fi
6369
6370         # special hack to add -no-undefined (which libtool should do for itself)
6371         LT_UNDEF=
6372         case "$cf_cv_system_name" in #(vi
6373         cygwin*|mingw32*|uwin*|aix[[4-7]]) #(vi
6374                 LT_UNDEF=-no-undefined
6375                 ;;
6376         esac
6377         AC_SUBST([LT_UNDEF])
6378
6379         # special hack to add --tag option for C++ compiler
6380         case $cf_cv_libtool_version in #(vi
6381         1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
6382                 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
6383                 LIBTOOL="$LIBTOOL --tag=CC"
6384                 ;;
6385         *)
6386                 LIBTOOL_CXX="$LIBTOOL"
6387                 ;;
6388         esac
6389 else
6390         LIBTOOL=""
6391         LIBTOOL_CXX=""
6392 fi
6393
6394 test -z "$LIBTOOL" && ECHO_LT=
6395
6396 AC_SUBST(LIBTOOL)
6397 AC_SUBST(LIBTOOL_CXX)
6398 AC_SUBST(LIBTOOL_OPTS)
6399
6400 AC_SUBST(LIB_CREATE)
6401 AC_SUBST(LIB_OBJECT)
6402 AC_SUBST(LIB_SUFFIX)
6403 AC_SUBST(LIB_PREP)
6404
6405 AC_SUBST(LIB_CLEAN)
6406 AC_SUBST(LIB_COMPILE)
6407 AC_SUBST(LIB_LINK)
6408 AC_SUBST(LIB_INSTALL)
6409 AC_SUBST(LIB_UNINSTALL)
6410
6411 ])dnl
6412 dnl ---------------------------------------------------------------------------
6413 dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18
6414 dnl ------------
6415 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
6416 dnl defaulting to yes/no.
6417 dnl
6418 dnl $1 = option name
6419 dnl $2 = help-text
6420 dnl $3 = environment variable to set
6421 dnl $4 = default value, shown in the help-message, must be a constant
6422 dnl $5 = default value, if it's an expression & cannot be in the help-message
6423 dnl
6424 AC_DEFUN([CF_WITH_PATH],
6425 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
6426 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
6427 if ifelse([$5],,true,[test -n "$5"]) ; then
6428 CF_PATH_SYNTAX(withval)
6429 fi
6430 $3="$withval"
6431 AC_SUBST($3)dnl
6432 ])dnl
6433 dnl ---------------------------------------------------------------------------
6434 dnl CF_WITH_PATHLIST version: 7 updated: 2010/10/23 16:10:30
6435 dnl ----------------
6436 dnl Process an option specifying a list of colon-separated paths.
6437 dnl
6438 dnl $1 = option name
6439 dnl $2 = help-text
6440 dnl $3 = environment variable to set
6441 dnl $4 = default value, shown in the help-message, must be a constant
6442 dnl $5 = default value, if it's an expression & cannot be in the help-message
6443 dnl $6 = flag to tell if we want to define or substitute
6444 dnl
6445 AC_DEFUN([CF_WITH_PATHLIST],[
6446 AC_REQUIRE([CF_PATHSEP])
6447 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
6448 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
6449
6450 IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
6451 cf_dst_path=
6452 for cf_src_path in $withval
6453 do
6454   CF_PATH_SYNTAX(cf_src_path)
6455   test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
6456   cf_dst_path="${cf_dst_path}${cf_src_path}"
6457 done
6458 IFS="$ac_save_ifs"
6459
6460 ifelse($6,define,[
6461 # Strip single quotes from the value, e.g., when it was supplied as a literal
6462 # for $4 or $5.
6463 case $cf_dst_path in #(vi
6464 \'*)
6465   cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
6466   ;;
6467 esac
6468 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
6469 ])
6470
6471 eval '$3="$cf_dst_path"'
6472 AC_SUBST($3)dnl
6473
6474 ])dnl
6475 dnl ---------------------------------------------------------------------------
6476 dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
6477 dnl ---------------
6478 dnl Check for POSIX thread library.
6479 AC_DEFUN([CF_WITH_PTHREAD],
6480 [
6481 AC_MSG_CHECKING(if you want to link with the pthread library)
6482 AC_ARG_WITH(pthread,
6483     [  --with-pthread          use POSIX thread library],
6484     [with_pthread=$withval],
6485     [with_pthread=no])
6486 AC_MSG_RESULT($with_pthread)
6487
6488 if test "$with_pthread" != no ; then
6489     AC_CHECK_HEADER(pthread.h,[
6490         AC_DEFINE(HAVE_PTHREADS_H)
6491
6492         AC_MSG_CHECKING(if we can link with the pthread library)
6493         cf_save_LIBS="$LIBS"
6494         CF_ADD_LIB(pthread)
6495         AC_TRY_LINK([
6496 #include <pthread.h>
6497 ],[
6498         int rc = pthread_create(0,0,0,0);
6499 ],[with_pthread=yes],[with_pthread=no])
6500         LIBS="$cf_save_LIBS"
6501         AC_MSG_RESULT($with_pthread)
6502
6503         if test "$with_pthread" = yes ; then
6504             CF_ADD_LIB(pthread)
6505             AC_DEFINE(HAVE_LIBPTHREADS)
6506         else
6507             AC_MSG_ERROR(Cannot link with pthread library)
6508         fi
6509     ])
6510 fi
6511 ])
6512 dnl ---------------------------------------------------------------------------
6513 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
6514 dnl -------------------
6515 dnl Allow library's release-version to be overridden.  Generally this happens when a
6516 dnl packager has incremented the release-version past that used in the original package,
6517 dnl and wishes to keep doing this.
6518 dnl
6519 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
6520 dnl and {package}_MINOR symbols
6521 dnl symbol.
6522 AC_DEFUN([CF_WITH_REL_VERSION],[
6523 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
6524 AC_ARG_WITH(rel-version,
6525 [  --with-rel-version=XXX  override derived release version],
6526 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
6527  cf_cv_rel_version=$withval])
6528 ifelse($1,,[
6529  CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
6530 ],[
6531  $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
6532  $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
6533  CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
6534  CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
6535 ])
6536 ])dnl
6537 dnl ---------------------------------------------------------------------------
6538 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
6539 dnl ----------------
6540 dnl If we can compile with sysmouse, make it available unless it is not wanted.
6541 AC_DEFUN([CF_WITH_SYSMOUSE],[
6542 # not everyone has "test -c"
6543 if test -c /dev/sysmouse 2>/dev/null ; then
6544 AC_MSG_CHECKING(if you want to use sysmouse)
6545 AC_ARG_WITH(sysmouse,
6546         [  --with-sysmouse         use sysmouse (FreeBSD console)],
6547         [cf_with_sysmouse=$withval],
6548         [cf_with_sysmouse=maybe])
6549         if test "$cf_with_sysmouse" != no ; then
6550         AC_TRY_COMPILE([
6551 #include <osreldate.h>
6552 #if (__FreeBSD_version >= 400017)
6553 #include <sys/consio.h>
6554 #include <sys/fbio.h>
6555 #else
6556 #include <machine/console.h>
6557 #endif
6558 ],[
6559         struct mouse_info the_mouse;
6560         ioctl(0, CONS_MOUSECTL, &the_mouse);
6561 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
6562         fi
6563 AC_MSG_RESULT($cf_with_sysmouse)
6564 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
6565 fi
6566 ])dnl
6567 dnl ---------------------------------------------------------------------------
6568 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
6569 dnl ----------------
6570 AC_DEFUN([CF_WITH_VALGRIND],[
6571 CF_NO_LEAKS_OPTION(valgrind,
6572         [  --with-valgrind         test: use valgrind],
6573         [USE_VALGRIND])
6574 ])dnl
6575 dnl ---------------------------------------------------------------------------
6576 dnl CF_XOPEN_SOURCE version: 36 updated: 2011/07/02 15:36:04
6577 dnl ---------------
6578 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
6579 dnl or adapt to the vendor's definitions to get equivalent functionality,
6580 dnl without losing the common non-POSIX features.
6581 dnl
6582 dnl Parameters:
6583 dnl     $1 is the nominal value for _XOPEN_SOURCE
6584 dnl     $2 is the nominal value for _POSIX_C_SOURCE
6585 AC_DEFUN([CF_XOPEN_SOURCE],[
6586
6587 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
6588 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
6589 cf_xopen_source=
6590
6591 case $host_os in #(vi
6592 aix[[4-7]]*) #(vi
6593         cf_xopen_source="-D_ALL_SOURCE"
6594         ;;
6595 cygwin) #(vi
6596         cf_XOPEN_SOURCE=600
6597         ;;
6598 darwin[[0-8]].*) #(vi
6599         cf_xopen_source="-D_APPLE_C_SOURCE"
6600         ;;
6601 darwin*) #(vi
6602         cf_xopen_source="-D_DARWIN_C_SOURCE"
6603         ;;
6604 freebsd*|dragonfly*) #(vi
6605         # 5.x headers associate
6606         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
6607         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
6608         cf_POSIX_C_SOURCE=200112L
6609         cf_XOPEN_SOURCE=600
6610         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6611         ;;
6612 hpux11*) #(vi
6613         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
6614         ;;
6615 hpux*) #(vi
6616         cf_xopen_source="-D_HPUX_SOURCE"
6617         ;;
6618 irix[[56]].*) #(vi
6619         cf_xopen_source="-D_SGI_SOURCE"
6620         ;;
6621 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
6622         CF_GNU_SOURCE
6623         ;;
6624 mirbsd*) #(vi
6625         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
6626         ;;
6627 netbsd*) #(vi
6628         # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
6629         ;;
6630 openbsd*) #(vi
6631         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
6632         ;;
6633 osf[[45]]*) #(vi
6634         cf_xopen_source="-D_OSF_SOURCE"
6635         ;;
6636 nto-qnx*) #(vi
6637         cf_xopen_source="-D_QNX_SOURCE"
6638         ;;
6639 sco*) #(vi
6640         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
6641         ;;
6642 solaris2.1[[0-9]]) #(vi
6643         cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6644         ;;
6645 solaris2.[[1-9]]) #(vi
6646         cf_xopen_source="-D__EXTENSIONS__"
6647         ;;
6648 *)
6649         AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
6650         AC_TRY_COMPILE([#include <sys/types.h>],[
6651 #ifndef _XOPEN_SOURCE
6652 make an error
6653 #endif],
6654         [cf_cv_xopen_source=no],
6655         [cf_save="$CPPFLAGS"
6656          CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6657          AC_TRY_COMPILE([#include <sys/types.h>],[
6658 #ifdef _XOPEN_SOURCE
6659 make an error
6660 #endif],
6661         [cf_cv_xopen_source=no],
6662         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
6663         CPPFLAGS="$cf_save"
6664         ])
6665 ])
6666         if test "$cf_cv_xopen_source" != no ; then
6667                 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
6668                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
6669                 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
6670                 CF_ADD_CFLAGS($cf_temp_xopen_source)
6671         fi
6672         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
6673         ;;
6674 esac
6675
6676 if test -n "$cf_xopen_source" ; then
6677         CF_ADD_CFLAGS($cf_xopen_source)
6678 fi
6679 ])