]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 5.7 - patch 20100529
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2009,2010 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.530 2010/05/29 20:59:18 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_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
66 dnl -------------------
67 dnl Construct the list of include-options for the C programs in the Ada95
68 dnl binding.
69 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
70 [
71 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
72 if test "$srcdir" != "."; then
73         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
74 fi
75 if test "$GCC" != yes; then
76         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
77 elif test "$includedir" != "/usr/include"; then
78         if test "$includedir" = '${prefix}/include' ; then
79                 if test $prefix != /usr ; then
80                         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
81                 fi
82         else
83                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
84         fi
85 fi
86 AC_SUBST(ACPPFLAGS)
87 ])dnl
88 dnl ---------------------------------------------------------------------------
89 dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
90 dnl -------------
91 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
92 dnl The second parameter if given makes this macro verbose.
93 dnl
94 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
95 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
96 dnl confused by the quotes (which require backslashes to keep them usable).
97 AC_DEFUN([CF_ADD_CFLAGS],
98 [
99 cf_fix_cppflags=no
100 cf_new_cflags=
101 cf_new_cppflags=
102 cf_new_extra_cppflags=
103
104 for cf_add_cflags in $1
105 do
106 case $cf_fix_cppflags in
107 no)
108         case $cf_add_cflags in #(vi
109         -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
110                 case $cf_add_cflags in
111                 -D*)
112                         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
113
114                         test "${cf_add_cflags}" != "${cf_tst_cflags}" \
115                                 && test -z "${cf_tst_cflags}" \
116                                 && cf_fix_cppflags=yes
117
118                         if test $cf_fix_cppflags = yes ; then
119                                 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
120                                 continue
121                         elif test "${cf_tst_cflags}" = "\"'" ; then
122                                 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
123                                 continue
124                         fi
125                         ;;
126                 esac
127                 case "$CPPFLAGS" in
128                 *$cf_add_cflags) #(vi
129                         ;;
130                 *) #(vi
131                         case $cf_add_cflags in #(vi
132                         -D*)
133                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
134                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
135                                 ;;
136                         esac
137                         cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
138                         ;;
139                 esac
140                 ;;
141         *)
142                 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
143                 ;;
144         esac
145         ;;
146 yes)
147         cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
148
149         cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
150
151         test "${cf_add_cflags}" != "${cf_tst_cflags}" \
152                 && test -z "${cf_tst_cflags}" \
153                 && cf_fix_cppflags=no
154         ;;
155 esac
156 done
157
158 if test -n "$cf_new_cflags" ; then
159         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
160         CFLAGS="$CFLAGS $cf_new_cflags"
161 fi
162
163 if test -n "$cf_new_cppflags" ; then
164         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
165         CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
166 fi
167
168 if test -n "$cf_new_extra_cppflags" ; then
169         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
170         EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
171 fi
172
173 AC_SUBST(EXTRA_CPPFLAGS)
174
175 ])dnl
176 dnl ---------------------------------------------------------------------------
177 dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
178 dnl -------------
179 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
180 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
181 dnl but old versions (and some misinstalled ones) need that.  To make things
182 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
183 dnl the include-path).
184 AC_DEFUN([CF_ADD_INCDIR],
185 [
186 if test -n "$1" ; then
187   for cf_add_incdir in $1
188   do
189         while test $cf_add_incdir != /usr/include
190         do
191           if test -d $cf_add_incdir
192           then
193                 cf_have_incdir=no
194                 if test -n "$CFLAGS$CPPFLAGS" ; then
195                   # a loop is needed to ensure we can add subdirs of existing dirs
196                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
197                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
198                           cf_have_incdir=yes; break
199                         fi
200                   done
201                 fi
202
203                 if test "$cf_have_incdir" = no ; then
204                   if test "$cf_add_incdir" = /usr/local/include ; then
205                         if test "$GCC" = yes
206                         then
207                           cf_save_CPPFLAGS=$CPPFLAGS
208                           CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
209                           AC_TRY_COMPILE([#include <stdio.h>],
210                                   [printf("Hello")],
211                                   [],
212                                   [cf_have_incdir=yes])
213                           CPPFLAGS=$cf_save_CPPFLAGS
214                         fi
215                   fi
216                 fi
217
218                 if test "$cf_have_incdir" = no ; then
219                   CF_VERBOSE(adding $cf_add_incdir to include-path)
220                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
221
222                   cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
223                   test "$cf_top_incdir" = "$cf_add_incdir" && break
224                   cf_add_incdir="$cf_top_incdir"
225                 else
226                   break
227                 fi
228           fi
229         done
230   done
231 fi
232 ])dnl
233 dnl ---------------------------------------------------------------------------
234 dnl CF_ADD_LIB version: 1 updated: 2010/05/29 16:02:10
235 dnl ----------
236 dnl Add a library, used to enforce consistency.
237 dnl
238 dnl $1 = library to add, without the "-l"
239 dnl $2 = variable to update (default $LIBS)
240 AC_DEFUN([CF_ADD_LIB],[ifelse($2,,LIBS,[$2])="-l$1 [$]ifelse($2,,LIBS,[$2])"])dnl
241 dnl ---------------------------------------------------------------------------
242 dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
243 dnl -------------
244 dnl     Adds to the library-path
245 dnl
246 dnl     Some machines have trouble with multiple -L options.
247 dnl
248 dnl $1 is the (list of) directory(s) to add
249 dnl $2 is the optional name of the variable to update (default LDFLAGS)
250 dnl
251 AC_DEFUN([CF_ADD_LIBDIR],
252 [
253 if test -n "$1" ; then
254   for cf_add_libdir in $1
255   do
256     if test $cf_add_libdir = /usr/lib ; then
257       :
258     elif test -d $cf_add_libdir
259     then
260       cf_have_libdir=no
261       if test -n "$LDFLAGS$LIBS" ; then
262         # a loop is needed to ensure we can add subdirs of existing dirs
263         for cf_test_libdir in $LDFLAGS $LIBS ; do
264           if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
265             cf_have_libdir=yes; break
266           fi
267         done
268       fi
269       if test "$cf_have_libdir" = no ; then
270         CF_VERBOSE(adding $cf_add_libdir to library-path)
271         ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
272       fi
273     fi
274   done
275 fi
276 ])dnl
277 dnl ---------------------------------------------------------------------------
278 dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
279 dnl ------------------
280 dnl Append to a search-list for a nonstandard header/lib-file
281 dnl     $1 = the variable to return as result
282 dnl     $2 = the package name
283 dnl     $3 = the subdirectory, e.g., bin, include or lib
284 dnl $4 = the directory under which we will test for subdirectories
285 dnl $5 = a directory that we do not want $4 to match
286 AC_DEFUN([CF_ADD_SUBDIR_PATH],
287 [
288 test "$4" != "$5" && \
289 test -d "$4" && \
290 ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
291         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
292         test -d $4/$3 &&          $1="[$]$1 $4/$3"
293         test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
294         test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
295         test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
296         test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
297 }
298 ])dnl
299 dnl ---------------------------------------------------------------------------
300 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
301 dnl ----------------
302 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
303 dnl in the sharutils 4.2 distribution.
304 AC_DEFUN([CF_ANSI_CC_CHECK],
305 [
306 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
307 cf_cv_ansi_cc=no
308 cf_save_CFLAGS="$CFLAGS"
309 cf_save_CPPFLAGS="$CPPFLAGS"
310 # Don't try gcc -ansi; that turns off useful extensions and
311 # breaks some systems' header files.
312 # AIX                   -qlanglvl=ansi
313 # Ultrix and OSF/1      -std1
314 # HP-UX                 -Aa -D_HPUX_SOURCE
315 # SVR4                  -Xc
316 # UnixWare 1.2          (cannot use -Xc, since ANSI/POSIX clashes)
317 for cf_arg in "-DCC_HAS_PROTOS" \
318         "" \
319         -qlanglvl=ansi \
320         -std1 \
321         -Ae \
322         "-Aa -D_HPUX_SOURCE" \
323         -Xc
324 do
325         CF_ADD_CFLAGS($cf_arg)
326         AC_TRY_COMPILE(
327 [
328 #ifndef CC_HAS_PROTOS
329 #if !defined(__STDC__) || (__STDC__ != 1)
330 choke me
331 #endif
332 #endif
333 ],[
334         int test (int i, double x);
335         struct s1 {int (*f) (int a);};
336         struct s2 {int (*f) (double a);};],
337         [cf_cv_ansi_cc="$cf_arg"; break])
338 done
339 CFLAGS="$cf_save_CFLAGS"
340 CPPFLAGS="$cf_save_CPPFLAGS"
341 ])
342
343 if test "$cf_cv_ansi_cc" != "no"; then
344 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
345         CF_ADD_CFLAGS($cf_cv_ansi_cc)
346 else
347         AC_DEFINE(CC_HAS_PROTOS)
348 fi
349 fi
350 ])dnl
351 dnl ---------------------------------------------------------------------------
352 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
353 dnl ---------------
354 dnl For programs that must use an ANSI compiler, obtain compiler options that
355 dnl will make it recognize prototypes.  We'll do preprocessor checks in other
356 dnl macros, since tools such as unproto can fake prototypes, but only part of
357 dnl the preprocessor.
358 AC_DEFUN([CF_ANSI_CC_REQD],
359 [AC_REQUIRE([CF_ANSI_CC_CHECK])
360 if test "$cf_cv_ansi_cc" = "no"; then
361         AC_MSG_ERROR(
362 [Your compiler does not appear to recognize prototypes.
363 You have the following choices:
364         a. adjust your compiler options
365         b. get an up-to-date compiler
366         c. use a wrapper such as unproto])
367 fi
368 ])dnl
369 dnl ---------------------------------------------------------------------------
370 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
371 dnl --------------
372 dnl Allow user to disable a normally-on option.
373 AC_DEFUN([CF_ARG_DISABLE],
374 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
375 dnl ---------------------------------------------------------------------------
376 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
377 dnl -------------
378 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
379 dnl values.
380 dnl
381 dnl Parameters:
382 dnl $1 = option name
383 dnl $2 = help-string
384 dnl $3 = action to perform if option is not default
385 dnl $4 = action if perform if option is default
386 dnl $5 = default option value (either 'yes' or 'no')
387 AC_DEFUN([CF_ARG_OPTION],
388 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
389   if test "$enableval" != "$5" ; then
390 ifelse([$3],,[    :]dnl
391 ,[    $3]) ifelse([$4],,,[
392   else
393     $4])
394   fi],[enableval=$5 ifelse([$4],,,[
395   $4
396 ])dnl
397   ])])dnl
398 dnl ---------------------------------------------------------------------------
399 dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
400 dnl -----------
401 dnl Check for suitable "ar" (archiver) options for updating an archive.
402 AC_DEFUN([CF_AR_FLAGS],[
403 AC_REQUIRE([CF_PROG_AR])
404
405 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
406         cf_cv_ar_flags=unknown
407         for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
408         do
409
410                 # check if $ARFLAGS already contains this choice
411                 if test "x$ARFLAGS" != "x" ; then
412                         cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
413                         if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
414                                 cf_cv_ar_flags=
415                                 break
416                         fi
417                 fi
418
419                 rm -f conftest.$ac_cv_objext
420                 rm -f conftest.a
421
422                 cat >conftest.$ac_ext <<EOF
423 #line __oline__ "configure"
424 int     testdata[[3]] = { 123, 456, 789 };
425 EOF
426                 if AC_TRY_EVAL(ac_compile) ; then
427                         echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
428                         $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
429                         if test -f conftest.a ; then
430                                 cf_cv_ar_flags=$cf_ar_flags
431                                 break
432                         fi
433                 else
434                         CF_VERBOSE(cannot compile test-program)
435                         break
436                 fi
437         done
438         rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
439 ])
440
441 if test -n "$ARFLAGS" ; then
442         if test -n "$cf_cv_ar_flags" ; then
443                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
444         fi
445 else
446         ARFLAGS=$cf_cv_ar_flags
447 fi
448
449 AC_SUBST(ARFLAGS)
450 ])
451 dnl ---------------------------------------------------------------------------
452 dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
453 dnl -----------------
454 dnl Check if awk can handle big strings using printf.  Some older versions of
455 dnl awk choke on large strings passed via "%s".
456 dnl
457 dnl $1 = desired string size
458 dnl $2 = variable to set with result
459 AC_DEFUN([CF_AWK_BIG_PRINTF],
460 [
461         case x$AWK in #(vi
462         x)
463                 eval $2=no
464                 ;;
465         *) #(vi
466                 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
467                         | $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
468                         eval $2=yes
469                 else
470                         eval $2=no
471                 fi
472                 ;;
473         esac
474 ])dnl
475 dnl ---------------------------------------------------------------------------
476 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
477 dnl ------------
478 dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
479 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
480 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
481 dnl
482 dnl Treat the configuration-variable specially here, since we're directly
483 dnl substituting its value (i.e., 1/0).
484 dnl
485 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
486 AC_DEFUN([CF_BOOL_DECL],
487 [
488 AC_MSG_CHECKING(if we should include stdbool.h)
489
490 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
491         AC_TRY_COMPILE([],[bool foo = false],
492                 [cf_cv_header_stdbool_h=0],
493                 [AC_TRY_COMPILE([
494 #ifndef __BEOS__
495 #include <stdbool.h>
496 #endif
497 ],[bool foo = false],
498                         [cf_cv_header_stdbool_h=1],
499                         [cf_cv_header_stdbool_h=0])])])
500
501 if test "$cf_cv_header_stdbool_h" = 1
502 then    AC_MSG_RESULT(yes)
503 else    AC_MSG_RESULT(no)
504 fi
505
506 AC_MSG_CHECKING([for builtin bool type])
507
508 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
509         AC_TRY_COMPILE([
510 #include <stdio.h>
511 #include <sys/types.h>
512 ],[bool x = false],
513                 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
514                 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
515         ])
516
517 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
518 then    AC_MSG_RESULT(yes)
519 else    AC_MSG_RESULT(no)
520 fi
521 ])dnl
522 dnl ---------------------------------------------------------------------------
523 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
524 dnl ------------
525 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
526 dnl Don't bother looking for bool.h, since it's been deprecated.
527 dnl
528 dnl If the current compiler is C rather than C++, we get the bool definition
529 dnl from <stdbool.h>.
530 AC_DEFUN([CF_BOOL_SIZE],
531 [
532 AC_MSG_CHECKING([for size of bool])
533 AC_CACHE_VAL(cf_cv_type_of_bool,[
534         rm -f cf_test.out
535         AC_TRY_RUN([
536 #include <stdlib.h>
537 #include <stdio.h>
538
539 #if defined(__cplusplus)
540
541 #ifdef HAVE_GXX_BUILTIN_H
542 #include <g++/builtin.h>
543 #elif HAVE_GPP_BUILTIN_H
544 #include <gpp/builtin.h>
545 #elif HAVE_BUILTIN_H
546 #include <builtin.h>
547 #endif
548
549 #else
550
551 #if $cf_cv_header_stdbool_h
552 #include <stdbool.h>
553 #endif
554
555 #endif
556
557 main()
558 {
559         FILE *fp = fopen("cf_test.out", "w");
560         if (fp != 0) {
561                 bool x = true;
562                 if ((bool)(-x) >= 0)
563                         fputs("unsigned ", fp);
564                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
565                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
566                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
567                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
568                 fclose(fp);
569         }
570         ${cf_cv_main_return:-return}(0);
571 }
572                 ],
573                 [cf_cv_type_of_bool=`cat cf_test.out`
574                  if test -z "$cf_cv_type_of_bool"; then
575                    cf_cv_type_of_bool=unknown
576                  fi],
577                 [cf_cv_type_of_bool=unknown],
578                 [cf_cv_type_of_bool=unknown])
579         ])
580         rm -f cf_test.out
581 AC_MSG_RESULT($cf_cv_type_of_bool)
582 if test "$cf_cv_type_of_bool" = unknown ; then
583         case .$NCURSES_BOOL in #(vi
584         .auto|.) NCURSES_BOOL=unsigned;;
585         esac
586         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
587         cf_cv_type_of_bool=$NCURSES_BOOL
588 fi
589 ])dnl
590 dnl ---------------------------------------------------------------------------
591 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
592 dnl -----------
593 dnl If we're cross-compiling, allow the user to override the tools and their
594 dnl options.  The configure script is oriented toward identifying the host
595 dnl compiler, etc., but we need a build compiler to generate parts of the
596 dnl source.
597 dnl
598 dnl $1 = default for $CPPFLAGS
599 dnl $2 = default for $LIBS
600 AC_DEFUN([CF_BUILD_CC],[
601 AC_REQUIRE([CF_PROG_EXT])
602 if test "$cross_compiling" = yes ; then
603
604         # defaults that we might want to override
605         : ${BUILD_CFLAGS:=''}
606         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
607         : ${BUILD_LDFLAGS:=''}
608         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
609         : ${BUILD_EXEEXT:='$x'}
610         : ${BUILD_OBJEXT:='o'}
611
612         AC_ARG_WITH(build-cc,
613                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
614                 [BUILD_CC="$withval"],
615                 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
616         AC_MSG_CHECKING(for native build C compiler)
617         AC_MSG_RESULT($BUILD_CC)
618
619         AC_MSG_CHECKING(for native build C preprocessor)
620         AC_ARG_WITH(build-cpp,
621                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
622                 [BUILD_CPP="$withval"],
623                 [BUILD_CPP='${BUILD_CC} -E'])
624         AC_MSG_RESULT($BUILD_CPP)
625
626         AC_MSG_CHECKING(for native build C flags)
627         AC_ARG_WITH(build-cflags,
628                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
629                 [BUILD_CFLAGS="$withval"])
630         AC_MSG_RESULT($BUILD_CFLAGS)
631
632         AC_MSG_CHECKING(for native build C preprocessor-flags)
633         AC_ARG_WITH(build-cppflags,
634                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
635                 [BUILD_CPPFLAGS="$withval"])
636         AC_MSG_RESULT($BUILD_CPPFLAGS)
637
638         AC_MSG_CHECKING(for native build linker-flags)
639         AC_ARG_WITH(build-ldflags,
640                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
641                 [BUILD_LDFLAGS="$withval"])
642         AC_MSG_RESULT($BUILD_LDFLAGS)
643
644         AC_MSG_CHECKING(for native build linker-libraries)
645         AC_ARG_WITH(build-libs,
646                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
647                 [BUILD_LIBS="$withval"])
648         AC_MSG_RESULT($BUILD_LIBS)
649
650         # this assumes we're on Unix.
651         BUILD_EXEEXT=
652         BUILD_OBJEXT=o
653
654         : ${BUILD_CC:='${CC}'}
655
656         if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
657                 AC_MSG_ERROR([Cross-build requires two compilers.
658 Use --with-build-cc to specify the native compiler.])
659         fi
660
661 else
662         : ${BUILD_CC:='${CC}'}
663         : ${BUILD_CPP:='${CPP}'}
664         : ${BUILD_CFLAGS:='${CFLAGS}'}
665         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
666         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
667         : ${BUILD_LIBS:='${LIBS}'}
668         : ${BUILD_EXEEXT:='$x'}
669         : ${BUILD_OBJEXT:='o'}
670 fi
671
672 AC_SUBST(BUILD_CC)
673 AC_SUBST(BUILD_CPP)
674 AC_SUBST(BUILD_CFLAGS)
675 AC_SUBST(BUILD_CPPFLAGS)
676 AC_SUBST(BUILD_LDFLAGS)
677 AC_SUBST(BUILD_LIBS)
678 AC_SUBST(BUILD_EXEEXT)
679 AC_SUBST(BUILD_OBJEXT)
680 ])dnl
681 dnl ---------------------------------------------------------------------------
682 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
683 dnl ---------------
684 dnl Determine the default configuration into which we'll install ncurses.  This
685 dnl can be overridden by the user's command-line options.  There's two items to
686 dnl look for:
687 dnl     1. the prefix (e.g., /usr)
688 dnl     2. the header files (e.g., /usr/include/ncurses)
689 dnl We'll look for a previous installation of ncurses and use the same defaults.
690 dnl
691 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
692 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
693 dnl programs from a vendor's.
694 AC_DEFUN([CF_CFG_DEFAULTS],
695 [
696 AC_MSG_CHECKING(for prefix)
697 if test "x$prefix" = "xNONE" ; then
698         case "$cf_cv_system_name" in
699                 # non-vendor systems don't have a conflict
700         openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
701                 prefix=/usr
702                 ;;
703         *)      prefix=$ac_default_prefix
704                 ;;
705         esac
706 fi
707 AC_MSG_RESULT($prefix)
708
709 if test "x$prefix" = "xNONE" ; then
710 AC_MSG_CHECKING(for default include-directory)
711 test -n "$verbose" && echo 1>&AC_FD_MSG
712 for cf_symbol in \
713         $includedir \
714         $includedir/ncurses \
715         $prefix/include \
716         $prefix/include/ncurses \
717         /usr/local/include \
718         /usr/local/include/ncurses \
719         /usr/include \
720         /usr/include/ncurses
721 do
722         cf_dir=`eval echo $cf_symbol`
723         if test -f $cf_dir/curses.h ; then
724         if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
725                 includedir="$cf_symbol"
726                 test -n "$verbose"  && echo $ac_n "     found " 1>&AC_FD_MSG
727                 break
728         fi
729         fi
730         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
731 done
732 AC_MSG_RESULT($includedir)
733 fi
734 ])dnl
735 dnl ---------------------------------------------------------------------------
736 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
737 dnl ----------
738 dnl Check if the terminal-capability database functions are available.  If not,
739 dnl ncurses has a much-reduced version.
740 AC_DEFUN([CF_CGETENT],[
741 AC_MSG_CHECKING(for terminal-capability database functions)
742 AC_CACHE_VAL(cf_cv_cgetent,[
743 AC_TRY_LINK([
744 #include <stdlib.h>],[
745         char temp[128];
746         char *buf = temp;
747         char *db_array = temp;
748         cgetent(&buf, /* int *, */ &db_array, "vt100");
749         cgetcap(buf, "tc", '=');
750         cgetmatch(buf, "tc");
751         ],
752         [cf_cv_cgetent=yes],
753         [cf_cv_cgetent=no])
754 ])
755 AC_MSG_RESULT($cf_cv_cgetent)
756 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
757 ])dnl
758 dnl ---------------------------------------------------------------------------
759 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
760 dnl --------------
761 dnl Check if we're accidentally using a cache from a different machine.
762 dnl Derive the system name, as a check for reusing the autoconf cache.
763 dnl
764 dnl If we've packaged config.guess and config.sub, run that (since it does a
765 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
766 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
767 dnl which is useful in cross-compiles.
768 dnl
769 dnl Note: we would use $ac_config_sub, but that is one of the places where
770 dnl autoconf 2.5x broke compatibility with autoconf 2.13
771 AC_DEFUN([CF_CHECK_CACHE],
772 [
773 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
774         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
775         system_name="$host_os"
776 else
777         system_name="`(uname -s -r) 2>/dev/null`"
778         if test -z "$system_name" ; then
779                 system_name="`(hostname) 2>/dev/null`"
780         fi
781 fi
782 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
783 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
784
785 test -z "$system_name" && system_name="$cf_cv_system_name"
786 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
787
788 if test ".$system_name" != ".$cf_cv_system_name" ; then
789         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
790         AC_MSG_ERROR("Please remove config.cache and try again.")
791 fi
792 ])dnl
793 dnl ---------------------------------------------------------------------------
794 dnl CF_CHECK_ERRNO version: 11 updated: 2010/05/26 05:38:42
795 dnl --------------
796 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
797 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
798 dnl ourselves.
799 dnl
800 dnl $1 = the name to check
801 dnl $2 = the assumed type
802 AC_DEFUN([CF_CHECK_ERRNO],
803 [
804 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
805     AC_TRY_COMPILE([
806 #ifdef HAVE_STDLIB_H
807 #include <stdlib.h>
808 #endif
809 #include <stdio.h>
810 #include <sys/types.h>
811 #include <errno.h> ],
812     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
813     [cf_cv_dcl_$1=yes],
814     [cf_cv_dcl_$1=no])
815 ])
816
817 if test "$cf_cv_dcl_$1" = no ; then
818     CF_UPPER(cf_result,decl_$1)
819     AC_DEFINE_UNQUOTED($cf_result)
820 fi
821
822 # It's possible (for near-UNIX clones) that the data doesn't exist
823 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
824 ])dnl
825 dnl ---------------------------------------------------------------------------
826 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
827 dnl --------------------
828 dnl Check for existence of external data in the current set of libraries.  If
829 dnl we can modify it, it's real enough.
830 dnl $1 = the name to check
831 dnl $2 = its type
832 AC_DEFUN([CF_CHECK_EXTERN_DATA],
833 [
834 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
835     AC_TRY_LINK([
836 #undef $1
837 extern $2 $1;
838 ],
839     [$1 = 2],
840     [cf_cv_have_$1=yes],
841     [cf_cv_have_$1=no])
842 ])
843
844 if test "$cf_cv_have_$1" = yes ; then
845     CF_UPPER(cf_result,have_$1)
846     AC_DEFINE_UNQUOTED($cf_result)
847 fi
848
849 ])dnl
850 dnl ---------------------------------------------------------------------------
851 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
852 dnl -------------------
853 dnl Check if GPM is already linked with curses.  If so - and if the linkage
854 dnl is not "weak" - warn about this because it can create problems linking
855 dnl applications with ncurses.
856 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
857 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
858
859 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
860 cf_cv_check_gpm_wgetch=unknown
861 if test "$cross_compiling" != yes ; then
862
863 cat >conftest.$ac_ext <<CF_EOF
864 #include <gpm.h>
865 int main()
866 {
867         Gpm_Wgetch();
868         ${cf_cv_main_return:-return}(0);
869 }
870 CF_EOF
871
872         cf_save_LIBS="$LIBS"
873         # This only works if we can look at the symbol table.  If a shared
874         # library is stripped for install, we cannot use that.  So we're forced
875         # to rely on the static library, noting that some packagers may not
876         # include it.
877         LIBS="-static -lgpm -dynamic $LIBS"
878         if AC_TRY_EVAL(ac_compile) ; then
879                 if AC_TRY_EVAL(ac_link) ; then
880                         cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
881                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
882                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
883                 fi
884         fi
885         rm -f conftest*
886         LIBS="$cf_save_LIBS"
887 fi
888 ])
889
890 if test "$cf_cv_check_gpm_wgetch" != yes ; then
891         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
892 fi
893 ])])dnl
894 dnl ---------------------------------------------------------------------------
895 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
896 dnl -----------------
897 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
898 dnl is a late feature for the standard and is not in some recent compilers
899 dnl (1999/9/11).
900 AC_DEFUN([CF_CPP_PARAM_INIT],
901 [
902 if test -n "$CXX"; then
903 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
904         AC_LANG_SAVE
905         AC_LANG_CPLUSPLUS
906         AC_TRY_RUN([
907 class TEST {
908 private:
909         int value;
910 public:
911         TEST(int x = 1);
912         ~TEST();
913 };
914
915 TEST::TEST(int x = 1)   // some compilers do not like second initializer
916 {
917         value = x;
918 }
919 void main() { }
920 ],
921         [cf_cv_cpp_param_init=yes],
922         [cf_cv_cpp_param_init=no],
923         [cf_cv_cpp_param_init=unknown])
924         AC_LANG_RESTORE
925 ])
926 fi
927 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
928 ])dnl
929 dnl ---------------------------------------------------------------------------
930 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
931 dnl ------------------
932 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
933 dnl not be supported in g++ before 3.0
934 AC_DEFUN([CF_CPP_STATIC_CAST],
935 [
936 if test -n "$CXX"; then
937
938 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
939         AC_LANG_SAVE
940         AC_LANG_CPLUSPLUS
941
942         AC_TRY_COMPILE([
943 class NCursesPanel
944 {
945 public:
946   NCursesPanel(int nlines,
947                int ncols,
948                int begin_y = 0,
949                int begin_x = 0)
950   {
951   }
952
953   ~NCursesPanel();
954 };
955
956 template<class T> class NCursesUserPanel : public NCursesPanel
957 {
958 public:
959   NCursesUserPanel (int nlines,
960                     int ncols,
961                     int begin_y = 0,
962                     int begin_x = 0,
963                     const T* p_UserData = static_cast<T*>(0))
964     : NCursesPanel (nlines, ncols, begin_y, begin_x)
965   {
966   };
967   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
968   {
969   };
970
971   virtual ~NCursesUserPanel() {};
972 };
973 ],[
974         const char* p_UserData = static_cast<char*>(0)],
975         [cf_cv_cpp_static_cast=yes],
976         [cf_cv_cpp_static_cast=no])
977
978         AC_LANG_RESTORE
979 ])
980
981 fi
982
983 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
984 ])dnl
985 dnl ---------------------------------------------------------------------------
986 dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41
987 dnl -----------
988 dnl Check if the C compiler supports "inline".
989 dnl $1 is the name of a shell variable to set if inline is supported
990 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
991 AC_DEFUN([CF_C_INLINE],[
992 AC_C_INLINE
993 $1=
994 if test "$ac_cv_c_inline" != no ; then
995   $1=inline
996   if test "$INTEL_COMPILER" = yes
997   then
998     :
999   elif test "$GCC" = yes
1000   then
1001     AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1002       cf_save_CFLAGS=$CFLAGS
1003       CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1004       AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1005       [${cf_cv_main_return:-return} foo()],
1006       [cf_cv_gcc_inline=yes],
1007       [cf_cv_gcc_inline=no])
1008       CFLAGS=$cf_save_CFLAGS
1009     ])
1010     if test "$cf_cv_gcc_inline" = yes ; then
1011         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1012     fi
1013   fi
1014 fi
1015 AC_SUBST($1)
1016 ])dnl
1017 dnl ---------------------------------------------------------------------------
1018 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1019 dnl ----------
1020 dnl "dirname" is not portable, so we fake it with a shell script.
1021 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1022 dnl ---------------------------------------------------------------------------
1023 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
1024 dnl ---------------
1025 AC_DEFUN([CF_DIRS_TO_MAKE],
1026 [
1027 DIRS_TO_MAKE="lib"
1028 for cf_item in $cf_list_models
1029 do
1030         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1031         for cf_item2 in $DIRS_TO_MAKE
1032         do
1033                 test $cf_item2 = $cf_subdir && break
1034         done
1035         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1036 done
1037 for cf_dir in $DIRS_TO_MAKE
1038 do
1039         test ! -d $cf_dir && mkdir $cf_dir
1040 done
1041 AC_SUBST(DIRS_TO_MAKE)
1042 ])dnl
1043 dnl ---------------------------------------------------------------------------
1044 dnl CF_DISABLE_LEAKS version: 5 updated: 2010/03/13 15:14:55
1045 dnl ----------------
1046 dnl Combine no-leak checks with the libraries or tools that are used for the
1047 dnl checks.
1048 AC_DEFUN([CF_DISABLE_LEAKS],[
1049
1050 AC_REQUIRE([CF_WITH_DMALLOC])
1051 AC_REQUIRE([CF_WITH_DBMALLOC])
1052 AC_REQUIRE([CF_WITH_VALGRIND])
1053
1054 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1055 AC_ARG_ENABLE(leaks,
1056         [  --disable-leaks         test: free permanent memory, analyze leaks],
1057         [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1058         : ${with_no_leaks:=no})
1059 AC_MSG_RESULT($with_no_leaks)
1060
1061 if test "$with_no_leaks" = yes ; then
1062         AC_DEFINE(NO_LEAKS)
1063 fi
1064 ])dnl
1065 dnl ---------------------------------------------------------------------------
1066 dnl CF_DISABLE_LIBTOOL_VERSION version: 1 updated: 2010/05/15 15:45:59
1067 dnl --------------------------
1068 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1069 dnl the older "-version-info" feature.  The newer feature allows us to use
1070 dnl version numbering on shared libraries which make them compatible with
1071 dnl various systems.
1072 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1073 [
1074 AC_MSG_CHECKING(if libtool -version-number should be used)
1075 CF_ARG_DISABLE(libtool-version,
1076         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
1077         [cf_libtool_version=no],
1078         [cf_libtool_version=yes])
1079 AC_MSG_RESULT($cf_libtool_version)
1080
1081 if test "$cf_libtool_version" = yes ; then
1082         LIBTOOL_VERSION="-version-number"
1083 else
1084         LIBTOOL_VERSION="-version-info"
1085 fi
1086
1087 AC_SUBST(LIBTOOL_VERSION)
1088 ])dnl
1089 dnl ---------------------------------------------------------------------------
1090 dnl CF_DISABLE_RPATH_HACK version: 1 updated: 2010/04/11 10:54:00
1091 dnl ---------------------
1092 dnl The rpath-hack makes it simpler to build programs, particularly with the
1093 dnl *BSD ports which may have essential libraries in unusual places.  But it
1094 dnl can interfere with building an executable for the base system.  Use this
1095 dnl option in that case.
1096 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1097 [
1098 AC_MSG_CHECKING(if rpath should be not be set)
1099 CF_ARG_DISABLE(rpath-hack,
1100         [  --disable-rpath-hack    don't add rpath options for additional libraries],
1101         [cf_disable_rpath_hack=yes],
1102         [cf_disable_rpath_hack=no])
1103 AC_MSG_RESULT($cf_disable_rpath_hack)
1104 if test "$cf_disable_rpath_hack" = no ; then
1105         CF_RPATH_HACK
1106 fi
1107 ])
1108 dnl ---------------------------------------------------------------------------
1109 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
1110 dnl ---------------
1111 dnl Check if the rpath option should be used, setting cache variable
1112 dnl cf_cv_enable_rpath if so.
1113 AC_DEFUN([CF_ENABLE_RPATH],
1114 [
1115 AC_MSG_CHECKING(if rpath option should be used)
1116 AC_ARG_ENABLE(rpath,
1117 [  --enable-rpath          use rpath option when generating shared libraries],
1118 [cf_cv_enable_rpath=$enableval],
1119 [cf_cv_enable_rpath=no])
1120 AC_MSG_RESULT($cf_cv_enable_rpath)
1121 ])dnl
1122 dnl ---------------------------------------------------------------------------
1123 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1124 dnl --------
1125 dnl Check if 'errno' is declared in <errno.h>
1126 AC_DEFUN([CF_ERRNO],
1127 [
1128 CF_CHECK_ERRNO(errno)
1129 ])dnl
1130 dnl ---------------------------------------------------------------------------
1131 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
1132 dnl ---------------
1133 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1134 dnl math.h and builtin.h, only for ncurses
1135 AC_DEFUN([CF_ETIP_DEFINES],
1136 [
1137 AC_MSG_CHECKING(for special defines needed for etip.h)
1138 cf_save_CXXFLAGS="$CXXFLAGS"
1139 cf_result="none"
1140 for cf_math in "" MATH_H
1141 do
1142 for cf_excp in "" MATH_EXCEPTION
1143 do
1144         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1145         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1146         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1147 AC_TRY_COMPILE([
1148 #include <etip.h.in>
1149 ],[],[
1150         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1151         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1152         cf_result="$cf_math $cf_excp"
1153         break
1154 ],[])
1155 done
1156 done
1157 AC_MSG_RESULT($cf_result)
1158 CXXFLAGS="$cf_save_CXXFLAGS"
1159 ])
1160 dnl ---------------------------------------------------------------------------
1161 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
1162 dnl ---------------
1163 dnl Find a library (specifically the linkage used in the code fragment),
1164 dnl searching for it if it is not already in the library path.
1165 dnl See also CF_ADD_SEARCHPATH.
1166 dnl
1167 dnl Parameters (4-on are optional):
1168 dnl     $1 = headers for library entrypoint
1169 dnl     $2 = code fragment for library entrypoint
1170 dnl     $3 = the library name without the "-l" option or ".so" suffix.
1171 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
1172 dnl     $5 = action to perform if not successful
1173 dnl     $6 = module name, if not the same as the library name
1174 dnl     $7 = extra libraries
1175 dnl
1176 dnl Sets these variables:
1177 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1178 dnl     $cf_cv_header_path_$3 - include-directory if needed
1179 dnl     $cf_cv_library_path_$3 - library-directory if needed
1180 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1181 AC_DEFUN([CF_FIND_LINKAGE],[
1182
1183 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1184 # will be set on completion of the AC_TRY_LINK below.
1185 cf_cv_header_path_$3=
1186 cf_cv_library_path_$3=
1187
1188 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1189
1190 cf_save_LIBS="$LIBS"
1191
1192 AC_TRY_LINK([$1],[$2],[
1193         cf_cv_find_linkage_$3=yes
1194         cf_cv_header_path_$3=/usr/include
1195         cf_cv_library_path_$3=/usr/lib
1196 ],[
1197
1198 LIBS="-l$3 $7 $cf_save_LIBS"
1199
1200 AC_TRY_LINK([$1],[$2],[
1201         cf_cv_find_linkage_$3=yes
1202         cf_cv_header_path_$3=/usr/include
1203         cf_cv_library_path_$3=/usr/lib
1204         cf_cv_library_file_$3="-l$3"
1205 ],[
1206         cf_cv_find_linkage_$3=no
1207         LIBS="$cf_save_LIBS"
1208
1209     CF_VERBOSE(find linkage for $3 library)
1210     CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1211
1212     cf_save_CPPFLAGS="$CPPFLAGS"
1213     cf_test_CPPFLAGS="$CPPFLAGS"
1214
1215     CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1216     for cf_cv_header_path_$3 in $cf_search
1217     do
1218       if test -d $cf_cv_header_path_$3 ; then
1219         CF_VERBOSE(... testing $cf_cv_header_path_$3)
1220         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1221         AC_TRY_COMPILE([$1],[$2],[
1222             CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1223             cf_cv_find_linkage_$3=maybe
1224             cf_test_CPPFLAGS="$CPPFLAGS"
1225             break],[
1226             CPPFLAGS="$cf_save_CPPFLAGS"
1227             ])
1228       fi
1229     done
1230
1231     if test "$cf_cv_find_linkage_$3" = maybe ; then
1232
1233       CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1234
1235       cf_save_LIBS="$LIBS"
1236       cf_save_LDFLAGS="$LDFLAGS"
1237
1238       ifelse([$6],,,[
1239         CPPFLAGS="$cf_test_CPPFLAGS"
1240         LIBS="-l$3 $7 $cf_save_LIBS"
1241         AC_TRY_LINK([$1],[$2],[
1242             CF_VERBOSE(... found $3 library in system)
1243             cf_cv_find_linkage_$3=yes])
1244             CPPFLAGS="$cf_save_CPPFLAGS"
1245             LIBS="$cf_save_LIBS"
1246             ])
1247
1248       if test "$cf_cv_find_linkage_$3" != yes ; then
1249         CF_LIBRARY_PATH(cf_search,$3)
1250         for cf_cv_library_path_$3 in $cf_search
1251         do
1252           if test -d $cf_cv_library_path_$3 ; then
1253             CF_VERBOSE(... testing $cf_cv_library_path_$3)
1254             CPPFLAGS="$cf_test_CPPFLAGS"
1255             LIBS="-l$3 $7 $cf_save_LIBS"
1256             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1257             AC_TRY_LINK([$1],[$2],[
1258                 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1259                 cf_cv_find_linkage_$3=yes
1260                 cf_cv_library_file_$3="-l$3"
1261                 break],[
1262                 CPPFLAGS="$cf_save_CPPFLAGS"
1263                 LIBS="$cf_save_LIBS"
1264                 LDFLAGS="$cf_save_LDFLAGS"
1265                 ])
1266           fi
1267         done
1268         CPPFLAGS="$cf_save_CPPFLAGS"
1269         LDFLAGS="$cf_save_LDFLAGS"
1270       fi
1271
1272     else
1273       cf_cv_find_linkage_$3=no
1274     fi
1275     ],$7)
1276 ])
1277
1278 LIBS="$cf_save_LIBS"
1279
1280 if test "$cf_cv_find_linkage_$3" = yes ; then
1281 ifelse([$4],,[
1282         CF_ADD_INCDIR($cf_cv_header_path_$3)
1283         CF_ADD_LIBDIR($cf_cv_library_path_$3)
1284         CF_ADD_LIB($3)
1285 ],[$4])
1286 else
1287 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1288 fi
1289 ])dnl
1290 dnl ---------------------------------------------------------------------------
1291 dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02
1292 dnl -------------
1293 dnl Test for dlsym() and related functions, as well as libdl.
1294 dnl
1295 dnl Sets
1296 dnl     $cf_have_dlsym
1297 dnl     $cf_have_libdl
1298 AC_DEFUN([CF_FUNC_DLSYM],[
1299 cf_have_dlsym=no
1300 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1301
1302 cf_have_libdl=no
1303 AC_CHECK_LIB(dl,dlsym,[
1304         cf_have_dlsym=yes
1305         cf_have_libdl=yes])])
1306
1307 if test "$cf_have_dlsym" = yes ; then
1308         test "$cf_have_libdl" = yes && CF_ADD_LIB(dl)
1309
1310         AC_MSG_CHECKING(whether able to link to dl*() functions)
1311         AC_TRY_LINK([#include <dlfcn.h>],[
1312                 void *obj;
1313                 if ((obj = dlopen("filename", 0)) != 0) {
1314                         if (dlsym(obj, "symbolname") == 0) {
1315                         dlclose(obj);
1316                         }
1317                 }],[
1318                 AC_DEFINE(HAVE_LIBDL)],[
1319                 AC_MSG_ERROR(Cannot link test program for libdl)])
1320         AC_MSG_RESULT(ok)
1321 else
1322         AC_MSG_ERROR(Cannot find dlsym function)
1323 fi
1324 ])
1325 dnl ---------------------------------------------------------------------------
1326 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1327 dnl ---------------
1328 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
1329 dnl is found, add our own version of memmove to the list of objects.
1330 AC_DEFUN([CF_FUNC_MEMMOVE],
1331 [
1332 AC_CHECK_FUNC(memmove,,[
1333 AC_CHECK_FUNC(bcopy,[
1334         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1335                 AC_TRY_RUN([
1336 int main() {
1337         static char data[] = "abcdefghijklmnopqrstuwwxyz";
1338         char temp[40];
1339         bcopy(data, temp, sizeof(data));
1340         bcopy(temp+10, temp, 15);
1341         bcopy(temp+5, temp+15, 10);
1342         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1343 }
1344                 ],
1345                 [cf_cv_good_bcopy=yes],
1346                 [cf_cv_good_bcopy=no],
1347                 [cf_cv_good_bcopy=unknown])
1348                 ])
1349         ],[cf_cv_good_bcopy=no])
1350         if test "$cf_cv_good_bcopy" = yes ; then
1351                 AC_DEFINE(USE_OK_BCOPY)
1352         else
1353                 AC_DEFINE(USE_MY_MEMMOVE)
1354         fi
1355 ])])dnl
1356 dnl ---------------------------------------------------------------------------
1357 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1358 dnl -----------------
1359 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
1360 dnl AIX 4.x, provide a non-working version.
1361 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1362 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1363 AC_TRY_RUN([
1364 #include <stdio.h>
1365 #include <errno.h>
1366 #include <time.h>
1367
1368 #ifdef HAVE_SYS_TIME_H
1369 #include <sys/time.h>
1370 #endif
1371
1372 int main() {
1373         struct timespec ts1, ts2;
1374         int code;
1375         ts1.tv_sec  = 0;
1376         ts1.tv_nsec = 750000000;
1377         ts2.tv_sec  = 0;
1378         ts2.tv_nsec = 0;
1379         errno = 0;
1380         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1381         ${cf_cv_main_return:-return}(code != 0);
1382 }
1383 ],
1384         [cf_cv_func_nanosleep=yes],
1385         [cf_cv_func_nanosleep=no],
1386         [cf_cv_func_nanosleep=unknown])])
1387
1388 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1389 ])
1390 dnl ---------------------------------------------------------------------------
1391 dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02
1392 dnl ---------------
1393 dnl Check for openpty() function, along with <pty.h> header.  It may need the
1394 dnl "util" library as well.
1395 AC_DEFUN([CF_FUNC_OPENPTY],
1396 [
1397 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1398 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1399     cf_save_LIBS="$LIBS"
1400     test $cf_cv_lib_util = yes && CF_ADD_LIB(util)
1401     for cf_header in pty.h libutil.h util.h
1402     do
1403     AC_TRY_LINK([
1404 #include <$cf_header>
1405 ],[
1406     int x = openpty((int *)0, (int *)0, (char *)0,
1407                    (struct termios *)0, (struct winsize *)0);
1408 ],[
1409         cf_cv_func_openpty=$cf_header
1410         break
1411 ],[
1412         cf_cv_func_openpty=no
1413 ])
1414     done
1415     LIBS="$cf_save_LIBS"
1416 ])
1417 ])dnl
1418 dnl ---------------------------------------------------------------------------
1419 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1420 dnl ------------
1421 dnl See if the poll function really works.  Some platforms have poll(), but
1422 dnl it does not work for terminals or files.
1423 AC_DEFUN([CF_FUNC_POLL],[
1424 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1425 AC_TRY_RUN([
1426 #include <stdio.h>
1427 #ifdef HAVE_POLL_H
1428 #include <poll.h>
1429 #else
1430 #include <sys/poll.h>
1431 #endif
1432 int main() {
1433         struct pollfd myfds;
1434         int ret;
1435
1436         myfds.fd = 0;
1437         myfds.events = POLLIN;
1438
1439         ret = poll(&myfds, 1, 100);
1440         ${cf_cv_main_return:-return}(ret != 0);
1441 }],
1442         [cf_cv_working_poll=yes],
1443         [cf_cv_working_poll=no],
1444         [cf_cv_working_poll=unknown])])
1445 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1446 ])dnl
1447 dnl ---------------------------------------------------------------------------
1448 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1449 dnl ---------------
1450 dnl Some old/broken variations define tcgetattr() only as a macro in
1451 dnl termio(s).h
1452 AC_DEFUN([CF_FUNC_TERMIOS],[
1453 AC_REQUIRE([CF_STRUCT_TERMIOS])
1454 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1455 AC_TRY_LINK([
1456 #include <sys/types.h>
1457 #ifdef HAVE_UNISTD_H
1458 #include <unistd.h>
1459 #endif
1460 #ifdef HAVE_TERMIOS_H
1461 #include <termios.h>
1462 #define TTY struct termios
1463 #else
1464 #ifdef HAVE_TERMIO_H
1465 #include <termio.h>
1466 #define TTY struct termio
1467 #endif
1468 #endif
1469 ],[
1470 TTY foo;
1471 tcgetattr(1, &foo);],
1472 [cf_cv_have_tcgetattr=yes],
1473 [cf_cv_have_tcgetattr=no])])
1474 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1475 ])dnl
1476 dnl ---------------------------------------------------------------------------
1477 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1478 dnl ---------------
1479 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1480 dnl versions of C.  It is in the GNU C library, and can often be simulated by
1481 dnl other functions.
1482 AC_DEFUN([CF_FUNC_VSSCANF],
1483 [
1484 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1485 AC_TRY_LINK([
1486 #include <stdarg.h>
1487 #include <stdio.h>],[
1488         va_list ap;
1489         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1490 AC_TRY_LINK([
1491 #include <stdarg.h>
1492 #include <stdio.h>],[
1493     FILE strbuf;
1494     char *str = "from";
1495
1496     strbuf._flag = _IOREAD;
1497     strbuf._ptr = strbuf._base = (unsigned char *) str;
1498     strbuf._cnt = strlen(str);
1499     strbuf._file = _NFILE;
1500     return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1501 AC_TRY_LINK([
1502 #include <stdarg.h>
1503 #include <stdio.h>],[
1504     FILE strbuf;
1505     char *str = "from";
1506
1507     strbuf._flag = _IOREAD;
1508     strbuf._ptr = strbuf._base = (unsigned char *) str;
1509     strbuf._cnt = strlen(str);
1510     strbuf._file = _NFILE;
1511     return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1512 cf_cv_func_vsscanf=no])])])])
1513
1514 case $cf_cv_func_vsscanf in #(vi
1515 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1516 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1517 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1518 esac
1519
1520 ])dnl
1521 dnl ---------------------------------------------------------------------------
1522 dnl CF_GCC_ATTRIBUTES version: 13 updated: 2009/08/11 20:19:56
1523 dnl -----------------
1524 dnl Test for availability of useful gcc __attribute__ directives to quiet
1525 dnl compiler warnings.  Though useful, not all are supported -- and contrary
1526 dnl to documentation, unrecognized directives cause older compilers to barf.
1527 AC_DEFUN([CF_GCC_ATTRIBUTES],
1528 [
1529 if test "$GCC" = yes
1530 then
1531 cat > conftest.i <<EOF
1532 #ifndef GCC_PRINTF
1533 #define GCC_PRINTF 0
1534 #endif
1535 #ifndef GCC_SCANF
1536 #define GCC_SCANF 0
1537 #endif
1538 #ifndef GCC_NORETURN
1539 #define GCC_NORETURN /* nothing */
1540 #endif
1541 #ifndef GCC_UNUSED
1542 #define GCC_UNUSED /* nothing */
1543 #endif
1544 EOF
1545 if test "$GCC" = yes
1546 then
1547         AC_CHECKING([for $CC __attribute__ directives])
1548 cat > conftest.$ac_ext <<EOF
1549 #line __oline__ "${as_me-configure}"
1550 #include "confdefs.h"
1551 #include "conftest.h"
1552 #include "conftest.i"
1553 #if     GCC_PRINTF
1554 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1555 #else
1556 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1557 #endif
1558 #if     GCC_SCANF
1559 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1560 #else
1561 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
1562 #endif
1563 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1564 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1565 extern void foo(void) GCC_NORETURN;
1566 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1567 EOF
1568         cf_printf_attribute=no
1569         cf_scanf_attribute=no
1570         for cf_attribute in scanf printf unused noreturn
1571         do
1572                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1573                 cf_directive="__attribute__(($cf_attribute))"
1574                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1575
1576                 case $cf_attribute in #(vi
1577                 printf) #(vi
1578                         cf_printf_attribute=yes
1579                         cat >conftest.h <<EOF
1580 #define GCC_$cf_ATTRIBUTE 1
1581 EOF
1582                         ;;
1583                 scanf) #(vi
1584                         cf_scanf_attribute=yes
1585                         cat >conftest.h <<EOF
1586 #define GCC_$cf_ATTRIBUTE 1
1587 EOF
1588                         ;;
1589                 *) #(vi
1590                         cat >conftest.h <<EOF
1591 #define GCC_$cf_ATTRIBUTE $cf_directive
1592 EOF
1593                         ;;
1594                 esac
1595
1596                 if AC_TRY_EVAL(ac_compile); then
1597                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1598                         cat conftest.h >>confdefs.h
1599                         case $cf_attribute in #(vi
1600                         printf) #(vi
1601                                 if test "$cf_printf_attribute" = no ; then
1602                                         cat >>confdefs.h <<EOF
1603 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
1604 EOF
1605                                 else
1606                                         cat >>confdefs.h <<EOF
1607 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1608 EOF
1609                                 fi
1610                                 ;;
1611                         scanf) #(vi
1612                                 if test "$cf_scanf_attribute" = no ; then
1613                                         cat >>confdefs.h <<EOF
1614 #define GCC_SCANFLIKE(fmt,var) /* nothing */
1615 EOF
1616                                 else
1617                                         cat >>confdefs.h <<EOF
1618 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
1619 EOF
1620                                 fi
1621                                 ;;
1622                         esac
1623                 fi
1624         done
1625 else
1626         fgrep define conftest.i >>confdefs.h
1627 fi
1628 rm -rf conftest*
1629 fi
1630 ])dnl
1631 dnl ---------------------------------------------------------------------------
1632 dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
1633 dnl --------------
1634 dnl Find version of gcc
1635 AC_DEFUN([CF_GCC_VERSION],[
1636 AC_REQUIRE([AC_PROG_CC])
1637 GCC_VERSION=none
1638 if test "$GCC" = yes ; then
1639         AC_MSG_CHECKING(version of $CC)
1640         GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1641         test -z "$GCC_VERSION" && GCC_VERSION=unknown
1642         AC_MSG_RESULT($GCC_VERSION)
1643 fi
1644 ])dnl
1645 dnl ---------------------------------------------------------------------------
1646 dnl CF_GCC_WARNINGS version: 25 updated: 2010/04/24 11:03:31
1647 dnl ---------------
1648 dnl Check if the compiler supports useful warning options.  There's a few that
1649 dnl we don't use, simply because they're too noisy:
1650 dnl
1651 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1652 dnl     -Wredundant-decls (system headers make this too noisy)
1653 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
1654 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
1655 dnl             is enabled for ncurses using "--enable-const".
1656 dnl     -pedantic
1657 dnl
1658 dnl Parameter:
1659 dnl     $1 is an optional list of gcc warning flags that a particular
1660 dnl             application might want to use, e.g., "no-unused" for
1661 dnl             -Wno-unused
1662 dnl Special:
1663 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
1664 dnl
1665 AC_DEFUN([CF_GCC_WARNINGS],
1666 [
1667 AC_REQUIRE([CF_GCC_VERSION])
1668 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1669
1670 cat > conftest.$ac_ext <<EOF
1671 #line __oline__ "${as_me-configure}"
1672 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1673 EOF
1674
1675 if test "$INTEL_COMPILER" = yes
1676 then
1677 # The "-wdXXX" options suppress warnings:
1678 # remark #1419: external declaration in primary source file
1679 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1680 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1681 # remark #193: zero used for undefined preprocessing identifier
1682 # remark #593: variable "curs_sb_left_arrow" was set but never used
1683 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1684 # remark #869: parameter "tw" was never referenced
1685 # remark #981: operands are evaluated in unspecified order
1686 # warning #279: controlling expression is constant
1687
1688         AC_CHECKING([for $CC warning options])
1689         cf_save_CFLAGS="$CFLAGS"
1690         EXTRA_CFLAGS="-Wall"
1691         for cf_opt in \
1692                 wd1419 \
1693                 wd1683 \
1694                 wd1684 \
1695                 wd193 \
1696                 wd593 \
1697                 wd279 \
1698                 wd810 \
1699                 wd869 \
1700                 wd981
1701         do
1702                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1703                 if AC_TRY_EVAL(ac_compile); then
1704                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1705                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1706                 fi
1707         done
1708         CFLAGS="$cf_save_CFLAGS"
1709
1710 elif test "$GCC" = yes
1711 then
1712         AC_CHECKING([for $CC warning options])
1713         cf_save_CFLAGS="$CFLAGS"
1714         EXTRA_CFLAGS=
1715         cf_warn_CONST=""
1716         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1717         for cf_opt in W Wall \
1718                 Wbad-function-cast \
1719                 Wcast-align \
1720                 Wcast-qual \
1721                 Winline \
1722                 Wmissing-declarations \
1723                 Wmissing-prototypes \
1724                 Wnested-externs \
1725                 Wpointer-arith \
1726                 Wshadow \
1727                 Wstrict-prototypes \
1728                 Wundef $cf_warn_CONST $1
1729         do
1730                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1731                 if AC_TRY_EVAL(ac_compile); then
1732                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1733                         case $cf_opt in #(vi
1734                         Wcast-qual) #(vi
1735                                 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1736                                 ;;
1737                         Winline) #(vi
1738                                 case $GCC_VERSION in
1739                                 [[34]].*)
1740                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1741                                         continue;;
1742                                 esac
1743                                 ;;
1744                         esac
1745                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1746                 fi
1747         done
1748         CFLAGS="$cf_save_CFLAGS"
1749 fi
1750 rm -f conftest*
1751
1752 AC_SUBST(EXTRA_CFLAGS)
1753 ])dnl
1754 dnl ---------------------------------------------------------------------------
1755 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1756 dnl ----------------
1757 dnl Verify that a test program compiles/links with GNAT.
1758 dnl $cf_ada_make is set to the program that compiles/links
1759 dnl $ADAFLAGS may be set to the GNAT flags.
1760 dnl
1761 dnl $1 is the text of the spec
1762 dnl $2 is the text of the body
1763 dnl $3 is the shell command to execute if successful
1764 dnl $4 is the shell command to execute if not successful
1765 AC_DEFUN([CF_GNAT_TRY_LINK],
1766 [
1767 rm -f conftest*
1768 cat >>conftest.ads <<CF_EOF
1769 $1
1770 CF_EOF
1771 cat >>conftest.adb <<CF_EOF
1772 $2
1773 CF_EOF
1774 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1775 ifelse($3,,      :,[      $3])
1776 ifelse($4,,,[else
1777    $4])
1778 fi
1779 rm -f conftest*
1780 ])dnl
1781 dnl ---------------------------------------------------------------------------
1782 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1783 dnl ---------------
1784 dnl Verify that a test program compiles and runs with GNAT
1785 dnl $cf_ada_make is set to the program that compiles/links
1786 dnl $ADAFLAGS may be set to the GNAT flags.
1787 dnl
1788 dnl $1 is the text of the spec
1789 dnl $2 is the text of the body
1790 dnl $3 is the shell command to execute if successful
1791 dnl $4 is the shell command to execute if not successful
1792 AC_DEFUN([CF_GNAT_TRY_RUN],
1793 [
1794 rm -f conftest*
1795 cat >>conftest.ads <<CF_EOF
1796 $1
1797 CF_EOF
1798 cat >>conftest.adb <<CF_EOF
1799 $2
1800 CF_EOF
1801 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1802    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1803 ifelse($3,,      :,[      $3])
1804 ifelse($4,,,[   else
1805       $4])
1806    fi
1807 ifelse($4,,,[else
1808    $4])
1809 fi
1810 rm -f conftest*
1811 ])dnl
1812 dnl ---------------------------------------------------------------------------
1813 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1814 dnl ---------------
1815 dnl Verify version of GNAT.
1816 AC_DEFUN([CF_GNAT_VERSION],
1817 [
1818 AC_MSG_CHECKING(for gnat version)
1819 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1820   sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1821 AC_MSG_RESULT($cf_gnat_version)
1822
1823 case $cf_gnat_version in
1824   3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1825     cf_cv_prog_gnat_correct=yes
1826     ;;
1827   *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1828      cf_cv_prog_gnat_correct=no
1829      ;;
1830 esac
1831 case $cf_gnat_version in
1832   3.[[1-9]]*|[[4-9]].*)
1833       cf_compile_generics=generics
1834       cf_generic_objects="\${GENOBJS}"
1835       ;;
1836   *)  cf_compile_generics=
1837       cf_generic_objects=
1838       ;;
1839 esac
1840 ])
1841 dnl ---------------------------------------------------------------------------
1842 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1843 dnl -------------
1844 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1845 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
1846 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1847 dnl since it is interwoven with GNU extensions.
1848 dnl
1849 dnl Well, yes we could work around it...
1850 AC_DEFUN([CF_GNU_SOURCE],
1851 [
1852 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1853 AC_TRY_COMPILE([#include <sys/types.h>],[
1854 #ifndef _XOPEN_SOURCE
1855 make an error
1856 #endif],
1857         [cf_cv_gnu_source=no],
1858         [cf_save="$CPPFLAGS"
1859          CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1860          AC_TRY_COMPILE([#include <sys/types.h>],[
1861 #ifdef _XOPEN_SOURCE
1862 make an error
1863 #endif],
1864         [cf_cv_gnu_source=no],
1865         [cf_cv_gnu_source=yes])
1866         CPPFLAGS="$cf_save"
1867         ])
1868 ])
1869 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1870 ])dnl
1871 dnl ---------------------------------------------------------------------------
1872 dnl CF_GPP_LIBRARY version: 10 updated: 2010/05/29 16:31:02
1873 dnl --------------
1874 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1875 dnl problem :-).  If we have the compiler but no library, we'll be able to
1876 dnl configure, but won't be able to build the c++ demo program.
1877 AC_DEFUN([CF_GPP_LIBRARY],
1878 [
1879 cf_cxx_library=unknown
1880 case $cf_cv_system_name in #(vi
1881 os2*) #(vi
1882         cf_gpp_libname=gpp
1883         ;;
1884 *)
1885         cf_gpp_libname=g++
1886         ;;
1887 esac
1888 if test "$GXX" = yes; then
1889         AC_MSG_CHECKING([for lib$cf_gpp_libname])
1890         cf_save="$LIBS"
1891         CF_ADD_LIB($cf_gpp_libname)
1892         AC_TRY_LINK([
1893 #include <$cf_gpp_libname/builtin.h>
1894         ],
1895         [two_arg_error_handler_t foo2 = lib_error_handler],
1896         [cf_cxx_library=yes
1897          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
1898          if test "$cf_gpp_libname" = cpp ; then
1899             AC_DEFINE(HAVE_GPP_BUILTIN_H)
1900          else
1901             AC_DEFINE(HAVE_GXX_BUILTIN_H)
1902          fi],
1903         [AC_TRY_LINK([
1904 #include <builtin.h>
1905         ],
1906         [two_arg_error_handler_t foo2 = lib_error_handler],
1907         [cf_cxx_library=yes
1908          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
1909          AC_DEFINE(HAVE_BUILTIN_H)],
1910         [cf_cxx_library=no])])
1911         LIBS="$cf_save"
1912         AC_MSG_RESULT($cf_cxx_library)
1913 fi
1914 ])dnl
1915 dnl ---------------------------------------------------------------------------
1916 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1917 dnl --------------
1918 dnl Check for version of g++
1919 AC_DEFUN([CF_GXX_VERSION],[
1920 AC_REQUIRE([AC_PROG_CPP])
1921 GXX_VERSION=none
1922 if test "$GXX" = yes; then
1923         AC_MSG_CHECKING(version of g++)
1924         GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1925         test -z "$GXX_VERSION" && GXX_VERSION=unknown
1926         AC_MSG_RESULT($GXX_VERSION)
1927 fi
1928 ])dnl
1929 dnl ---------------------------------------------------------------------------
1930 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1931 dnl ---------------
1932 dnl Check if the compiler supports useful warning options.
1933 dnl
1934 dnl Most of gcc's options apply to g++, except:
1935 dnl     -Wbad-function-cast
1936 dnl     -Wmissing-declarations
1937 dnl     -Wnested-externs
1938 dnl
1939 dnl Omit a few (for now):
1940 dnl     -Winline
1941 dnl
1942 dnl Parameter:
1943 dnl     $1 is an optional list of g++ warning flags that a particular
1944 dnl             application might want to use, e.g., "no-unused" for
1945 dnl             -Wno-unused
1946 dnl Special:
1947 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
1948 dnl
1949 AC_DEFUN([CF_GXX_WARNINGS],
1950 [
1951
1952 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1953
1954 AC_REQUIRE([CF_GXX_VERSION])
1955
1956 AC_LANG_SAVE
1957 AC_LANG_CPLUSPLUS
1958
1959 cat > conftest.$ac_ext <<EOF
1960 #line __oline__ "configure"
1961 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1962 EOF
1963
1964 if test "$INTEL_CPLUSPLUS" = yes
1965 then
1966 # The "-wdXXX" options suppress warnings:
1967 # remark #1419: external declaration in primary source file
1968 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1969 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1970 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1971 # remark #193: zero used for undefined preprocessing identifier
1972 # remark #593: variable "curs_sb_left_arrow" was set but never used
1973 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1974 # remark #869: parameter "tw" was never referenced
1975 # remark #981: operands are evaluated in unspecified order
1976 # warning #269: invalid format string conversion
1977
1978         AC_CHECKING([for $CC warning options])
1979         cf_save_CXXFLAGS="$CXXFLAGS"
1980         EXTRA_CXXFLAGS="-Wall"
1981         for cf_opt in \
1982                 wd1419 \
1983                 wd1682 \
1984                 wd1683 \
1985                 wd1684 \
1986                 wd193 \
1987                 wd279 \
1988                 wd593 \
1989                 wd810 \
1990                 wd869 \
1991                 wd981
1992         do
1993                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1994                 if AC_TRY_EVAL(ac_compile); then
1995                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1996                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1997                 fi
1998         done
1999         CXXFLAGS="$cf_save_CXXFLAGS"
2000
2001 elif test "$GXX" = yes
2002 then
2003         AC_CHECKING([for $CXX warning options])
2004         cf_save_CXXFLAGS="$CXXFLAGS"
2005         EXTRA_CXXFLAGS="-W -Wall"
2006         cf_gxx_extra_warnings=""
2007         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
2008         case "$GCC_VERSION" in
2009         [[1-2]].*)
2010                 ;;
2011         *)
2012                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
2013                 ;;
2014         esac
2015         for cf_opt in \
2016                 Wabi \
2017                 fabi-version=0 \
2018                 Woverloaded-virtual \
2019                 Wsign-promo \
2020                 Wsynth \
2021                 Wold-style-cast \
2022                 Wcast-align \
2023                 Wcast-qual \
2024                 Wmissing-prototypes \
2025                 Wpointer-arith \
2026                 Wshadow \
2027                 Wstrict-prototypes \
2028                 Wundef $cf_gxx_extra_warnings $1
2029         do
2030                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
2031                 if AC_TRY_EVAL(ac_compile); then
2032                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2033                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
2034                 else
2035                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
2036                 fi
2037         done
2038         CXXFLAGS="$cf_save_CXXFLAGS"
2039 fi
2040
2041 rm -f conftest*
2042 AC_LANG_RESTORE
2043 AC_SUBST(EXTRA_CXXFLAGS)
2044 ])dnl
2045 dnl ---------------------------------------------------------------------------
2046 dnl CF_HASHED_DB version: 4 updated: 2010/05/29 16:31:02
2047 dnl ------------
2048 dnl Look for an instance of the Berkeley hashed database.
2049 dnl
2050 dnl $1 = optional parameter, to specify install-prefix for the database.
2051 AC_DEFUN([CF_HASHED_DB],
2052 [
2053 ifelse([$1],,,[
2054 case $1 in #(vi
2055 yes|*able*) #(vi
2056     ;;
2057 *)
2058     if test -d "$1" ; then
2059         CF_ADD_INCDIR($1/include)
2060         CF_ADD_LIBDIR($1/lib)
2061     fi
2062 esac
2063 ])
2064 AC_CHECK_HEADER(db.h,[
2065 CF_HASHED_DB_VERSION
2066 if test "$cf_cv_hashed_db_version" = unknown ; then
2067         AC_MSG_ERROR(Cannot determine version of db)
2068 else
2069         CF_HASHED_DB_LIBS
2070         if test "$cf_cv_hashed_db_libs" = unknown ; then
2071                 AC_MSG_ERROR(Cannot determine library for db)
2072         elif test "$cf_cv_hashed_db_libs" != default ; then
2073                 CF_ADD_LIB($cf_cv_hashed_db_libs)
2074         fi
2075 fi
2076 ],[
2077         AC_MSG_ERROR(Cannot find db.h)
2078 ])
2079 ])dnl
2080 dnl ---------------------------------------------------------------------------
2081 dnl CF_HASHED_DB_LIBS version: 9 updated: 2010/05/29 16:31:02
2082 dnl -----------------
2083 dnl Given that we have the header and version for hashed database, find the
2084 dnl library information.
2085 AC_DEFUN([CF_HASHED_DB_LIBS],
2086 [
2087 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
2088 cf_cv_hashed_db_libs=unknown
2089 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
2090 do
2091         cf_save_libs="$LIBS"
2092         if test -n "$cf_db_libs"; then
2093                 CF_ADD_LIB($cf_db_libs)
2094         fi
2095         CF_MSG_LOG(checking for library "$cf_db_libs")
2096         AC_TRY_LINK([
2097 $ac_includes_default
2098 #include <db.h>
2099 ],[
2100         char *path = "/tmp/foo";
2101 #ifdef DB_VERSION_MAJOR
2102 #if DB_VERSION_MAJOR >= 4
2103         DB *result = 0;
2104         db_create(&result, NULL, 0);
2105         result->open(result,
2106                 NULL,
2107                 path,
2108                 path,
2109                 DB_HASH,
2110                 DB_CREATE,
2111                 0644);
2112 #elif DB_VERSION_MAJOR >= 3
2113         DB *result = 0;
2114         db_create(&result, NULL, 0);
2115         result->open(result,
2116                 path,
2117                 path,
2118                 DB_HASH,
2119                 DB_CREATE,
2120                 0644);
2121 #elif DB_VERSION_MAJOR >= 2
2122         DB *result = 0;
2123         db_open(path,
2124                 DB_HASH,
2125                 DB_CREATE,
2126                 0644,
2127                 (DB_ENV *) 0,
2128                 (DB_INFO *) 0,
2129                 &result);
2130 #endif /* DB_VERSION_MAJOR */
2131 #else
2132         DB *result = dbopen(path,
2133                      2,
2134                      0644,
2135                      DB_HASH,
2136                      0);
2137 #endif
2138         ${cf_cv_main_return:-return}(result != 0)
2139 ],[
2140         if test -n "$cf_db_libs" ; then
2141                 cf_cv_hashed_db_libs=$cf_db_libs
2142         else
2143                 cf_cv_hashed_db_libs=default
2144         fi
2145         LIBS="$cf_save_libs"
2146         break
2147 ])
2148         LIBS="$cf_save_libs"
2149 done
2150 ])
2151 ])dnl
2152 dnl ---------------------------------------------------------------------------
2153 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
2154 dnl --------------------
2155 dnl Given that we have the header file for hashed database, find the version
2156 dnl information.
2157 AC_DEFUN([CF_HASHED_DB_VERSION],
2158 [
2159 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2160 cf_cv_hashed_db_version=unknown
2161
2162 for cf_db_version in 1 2 3 4 5
2163 do
2164         CF_MSG_LOG(checking for db version $cf_db_version)
2165         AC_TRY_COMPILE([
2166 $ac_includes_default
2167 #include <db.h>
2168
2169 #ifdef DB_VERSION_MAJOR
2170         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2171 #if $cf_db_version == DB_VERSION_MAJOR
2172         /* ok */
2173 #else
2174         make an error
2175 #endif
2176 #else
2177 #if $cf_db_version == 1
2178         /* ok: assuming this is DB 1.8.5 */
2179 #else
2180         make an error
2181 #endif
2182 #endif
2183 ],[DBT *foo = 0],[
2184         cf_cv_hashed_db_version=$cf_db_version
2185         break
2186         ])
2187 done
2188 ])
2189 ])dnl
2190 dnl ---------------------------------------------------------------------------
2191 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
2192 dnl --------------
2193 dnl Construct a search-list of directories for a nonstandard header-file
2194 dnl
2195 dnl Parameters
2196 dnl     $1 = the variable to return as result
2197 dnl     $2 = the package name
2198 AC_DEFUN([CF_HEADER_PATH],
2199 [
2200 $1=
2201
2202 # collect the current set of include-directories from compiler flags
2203 cf_header_path_list=""
2204 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2205         for cf_header_path in $CPPFLAGS $CFLAGS
2206         do
2207                 case $cf_header_path in #(vi
2208                 -I*)
2209                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2210                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2211                         cf_header_path_list="$cf_header_path_list [$]$1"
2212                         ;;
2213                 esac
2214         done
2215 fi
2216
2217 # add the variations for the package we are looking for
2218 CF_SUBDIR_PATH($1,$2,include)
2219
2220 test "$includedir" != NONE && \
2221 test "$includedir" != "/usr/include" && \
2222 test -d "$includedir" && {
2223         test -d $includedir &&    $1="[$]$1 $includedir"
2224         test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2225 }
2226
2227 test "$oldincludedir" != NONE && \
2228 test "$oldincludedir" != "/usr/include" && \
2229 test -d "$oldincludedir" && {
2230         test -d $oldincludedir    && $1="[$]$1 $oldincludedir"
2231         test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2232 }
2233
2234 $1="[$]$1 $cf_header_path_list"
2235 ])dnl
2236 dnl ---------------------------------------------------------------------------
2237 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2238 dnl ---------------
2239 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2240 AC_DEFUN([CF_HELP_MESSAGE],
2241 [AC_DIVERT_HELP([$1])dnl
2242 ])dnl
2243 dnl ---------------------------------------------------------------------------
2244 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
2245 dnl ---------------
2246 dnl Construct the list of include-options according to whether we're building
2247 dnl in the source directory or using '--srcdir=DIR' option.  If we're building
2248 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2249 dnl since that usually breaks gcc's shadow-includes.
2250 AC_DEFUN([CF_INCLUDE_DIRS],
2251 [
2252 CPPFLAGS="$CPPFLAGS -I. -I../include"
2253 if test "$srcdir" != "."; then
2254         CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
2255 fi
2256 if test "$GCC" != yes; then
2257         CPPFLAGS="$CPPFLAGS -I\${includedir}"
2258 elif test "$includedir" != "/usr/include"; then
2259         if test "$includedir" = '${prefix}/include' ; then
2260                 if test $prefix != /usr ; then
2261                         CPPFLAGS="$CPPFLAGS -I\${includedir}"
2262                 fi
2263         else
2264                 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2265         fi
2266 fi
2267 AC_SUBST(CPPFLAGS)
2268 ])dnl
2269 dnl ---------------------------------------------------------------------------
2270 dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
2271 dnl -----------------
2272 dnl Check if the given compiler is really the Intel compiler for Linux.  It
2273 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2274 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2275 dnl
2276 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2277 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2278 dnl the wrappers for gcc and g++ warnings.
2279 dnl
2280 dnl $1 = GCC (default) or GXX
2281 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2282 dnl $3 = CFLAGS (default) or CXXFLAGS
2283 AC_DEFUN([CF_INTEL_COMPILER],[
2284 ifelse([$2],,INTEL_COMPILER,[$2])=no
2285
2286 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2287         case $host_os in
2288         linux*|gnu*)
2289                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2290                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2291                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2292                 AC_TRY_COMPILE([],[
2293 #ifdef __INTEL_COMPILER
2294 #else
2295 make an error
2296 #endif
2297 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2298 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2299 ],[])
2300                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2301                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2302                 ;;
2303         esac
2304 fi
2305 ])dnl
2306 dnl ---------------------------------------------------------------------------
2307 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2308 dnl ----------
2309 dnl Check if we have either a function or macro for 'isascii()'.
2310 AC_DEFUN([CF_ISASCII],
2311 [
2312 AC_MSG_CHECKING(for isascii)
2313 AC_CACHE_VAL(cf_cv_have_isascii,[
2314         AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2315         [cf_cv_have_isascii=yes],
2316         [cf_cv_have_isascii=no])
2317 ])dnl
2318 AC_MSG_RESULT($cf_cv_have_isascii)
2319 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2320 ])dnl
2321 dnl ---------------------------------------------------------------------------
2322 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2323 dnl ------------
2324 dnl Add checks for large file support.
2325 AC_DEFUN([CF_LARGEFILE],[
2326 ifdef([AC_FUNC_FSEEKO],[
2327     AC_SYS_LARGEFILE
2328     if test "$enable_largefile" != no ; then
2329         AC_FUNC_FSEEKO
2330
2331         # Normally we would collect these definitions in the config.h,
2332         # but (like _XOPEN_SOURCE), some environments rely on having these
2333         # defined before any of the system headers are included.  Another
2334         # case comes up with C++, e.g., on AIX the compiler compiles the
2335         # header files by themselves before looking at the body files it is
2336         # told to compile.  For ncurses, those header files do not include
2337         # the config.h
2338         test "$ac_cv_sys_large_files"      != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2339         test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2340         test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2341
2342         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2343                 AC_TRY_COMPILE([
2344 #include <sys/types.h>
2345 #include <dirent.h>
2346                 ],[
2347                 /* if transitional largefile support is setup, this is true */
2348                 extern struct dirent64 * readdir(DIR *);
2349                 struct dirent64 *x = readdir((DIR *)0);
2350                 struct dirent *y = readdir((DIR *)0);
2351                 int z = x - y;
2352                 ],
2353                 [cf_cv_struct_dirent64=yes],
2354                 [cf_cv_struct_dirent64=no])
2355         ])
2356         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2357     fi
2358 ])
2359 ])
2360 dnl ---------------------------------------------------------------------------
2361 dnl CF_LDFLAGS_STATIC version: 7 updated: 2009/04/04 18:31:04
2362 dnl -----------------
2363 dnl Check for compiler/linker flags used to temporarily force usage of static
2364 dnl libraries.  This depends on the compiler and platform.  Use this to help
2365 dnl ensure that the linker picks up a given library based on its position in
2366 dnl the list of linker options and libraries.
2367 AC_DEFUN([CF_LDFLAGS_STATIC],[
2368
2369 if test "$GCC" = yes ; then
2370         case $cf_cv_system_name in #(
2371         OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)         #( vi
2372                 LDFLAGS_STATIC=
2373                 LDFLAGS_SHARED=
2374                 ;;
2375     *)  #( normally, except when broken
2376         LDFLAGS_STATIC=-static
2377         LDFLAGS_SHARED=-dynamic
2378         ;;
2379     esac
2380 else
2381         case $cf_cv_system_name in #(
2382         aix[[456]]*)    #( from ld manpage
2383                 LDFLAGS_STATIC=-bstatic
2384                 LDFLAGS_SHARED=-bdynamic
2385                 ;;
2386         hpux*)          #( from ld manpage for hpux10.20, hpux11.11
2387                 # We could also use just "archive" and "shared".
2388                 LDFLAGS_STATIC=-Wl,-a,archive_shared
2389                 LDFLAGS_SHARED=-Wl,-a,shared_archive
2390                 ;;
2391         irix*)          #( from ld manpage IRIX64
2392                 LDFLAGS_STATIC=-Bstatic
2393                 LDFLAGS_SHARED=-Bdynamic
2394                 ;;
2395         osf[[45]]*)     #( from ld manpage osf4.0d, osf5.1
2396                 # alternative "-oldstyle_liblookup" (not in cc manpage)
2397                 LDFLAGS_STATIC=-noso
2398                 LDFLAGS_SHARED=-so_archive
2399                 ;;
2400         solaris2*)
2401                 LDFLAGS_STATIC=-Bstatic
2402                 LDFLAGS_SHARED=-Bdynamic
2403                 ;;
2404         esac
2405 fi
2406
2407 AC_SUBST(LDFLAGS_STATIC)
2408 AC_SUBST(LDFLAGS_SHARED)
2409 ])
2410 dnl ---------------------------------------------------------------------------
2411 dnl CF_LD_RPATH_OPT version: 2 updated: 2010/03/27 19:27:54
2412 dnl ---------------
2413 dnl For the given system and compiler, find the compiler flags to pass to the
2414 dnl loader to use the "rpath" feature.
2415 AC_DEFUN([CF_LD_RPATH_OPT],
2416 [
2417 AC_REQUIRE([CF_CHECK_CACHE])
2418
2419 LD_RPATH_OPT=
2420 AC_MSG_CHECKING(for an rpath option)
2421 case $cf_cv_system_name in #(vi
2422 irix*) #(vi
2423         if test "$GCC" = yes; then
2424                 LD_RPATH_OPT="-Wl,-rpath,"
2425         else
2426                 LD_RPATH_OPT="-rpath "
2427         fi
2428         ;;
2429 linux*|gnu*|k*bsd*-gnu) #(vi
2430         LD_RPATH_OPT="-Wl,-rpath,"
2431         ;;
2432 openbsd[[2-9]].*) #(vi
2433         LD_RPATH_OPT="-Wl,-rpath,"
2434         ;;
2435 freebsd*) #(vi
2436         LD_RPATH_OPT="-rpath "
2437         ;;
2438 netbsd*) #(vi
2439         LD_RPATH_OPT="-Wl,-rpath,"
2440         ;;
2441 osf*|mls+*) #(vi
2442         LD_RPATH_OPT="-rpath "
2443         ;;
2444 solaris2*) #(vi
2445         LD_RPATH_OPT="-R"
2446         ;;
2447 *)
2448         ;;
2449 esac
2450 AC_MSG_RESULT($LD_RPATH_OPT)
2451
2452 case "x$LD_RPATH_OPT" in #(vi
2453 x-R*)
2454         AC_MSG_CHECKING(if we need a space after rpath option)
2455         cf_save_LIBS="$LIBS"
2456         LIBS="${LD_RPATH_OPT}$libdir $LIBS"
2457         AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2458         LIBS="$cf_save_LIBS"
2459         AC_MSG_RESULT($cf_rpath_space)
2460         test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2461         ;;
2462 esac
2463 ])dnl
2464 dnl ---------------------------------------------------------------------------
2465 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
2466 dnl ---------------
2467 dnl Construct a search-list of directories for a nonstandard library-file
2468 dnl
2469 dnl Parameters
2470 dnl     $1 = the variable to return as result
2471 dnl     $2 = the package name
2472 AC_DEFUN([CF_LIBRARY_PATH],
2473 [
2474 $1=
2475 cf_library_path_list=""
2476 if test -n "${LDFLAGS}${LIBS}" ; then
2477         for cf_library_path in $LDFLAGS $LIBS
2478         do
2479                 case $cf_library_path in #(vi
2480                 -L*)
2481                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2482                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2483                         cf_library_path_list="$cf_library_path_list [$]$1"
2484                         ;;
2485                 esac
2486         done
2487 fi
2488
2489 CF_SUBDIR_PATH($1,$2,lib)
2490
2491 $1="$cf_library_path_list [$]$1"
2492 ])dnl
2493 dnl ---------------------------------------------------------------------------
2494 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2495 dnl -------------
2496 dnl Compute the library-prefix for the given host system
2497 dnl $1 = variable to set
2498 AC_DEFUN([CF_LIB_PREFIX],
2499 [
2500         case $cf_cv_system_name in #(vi
2501         OS/2*|os2*) #(vi
2502         LIB_PREFIX=''
2503         ;;
2504         *)      LIB_PREFIX='lib'
2505         ;;
2506         esac
2507 ifelse($1,,,[$1=$LIB_PREFIX])
2508         AC_SUBST(LIB_PREFIX)
2509 ])dnl
2510 dnl ---------------------------------------------------------------------------
2511 dnl CF_LIB_RULES version: 56 updated: 2010/05/15 15:19:46
2512 dnl ------------
2513 dnl Append definitions and rules for the given models to the subdirectory
2514 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
2515 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2516 dnl the corresponding makefile to list the models that we'll generate.
2517 dnl
2518 dnl For shared libraries, make a list of symbolic links to construct when
2519 dnl generating each library.  The convention used for Linux is the simplest
2520 dnl one:
2521 dnl     lib<name>.so    ->
2522 dnl     lib<name>.so.<major>    ->
2523 dnl     lib<name>.so.<maj>.<minor>
2524 AC_DEFUN([CF_LIB_RULES],
2525 [
2526 CF_LIB_PREFIX(cf_prefix)
2527 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2528
2529 if test $cf_cv_shlib_version = cygdll ; then
2530         TINFO_NAME=$TINFO_ARG_SUFFIX
2531         TINFO_SUFFIX=.dll
2532 fi
2533
2534 for cf_dir in $SRC_SUBDIRS
2535 do
2536         if test ! -d $srcdir/$cf_dir ; then
2537                 continue
2538         elif test -f $srcdir/$cf_dir/modules; then
2539
2540                 SHARED_LIB=
2541                 LIBS_TO_MAKE=
2542                 for cf_item in $cf_LIST_MODELS
2543                 do
2544                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2545                         if test $cf_item = shared ; then
2546                         if test "$cf_cv_do_symlinks" = yes ; then
2547                                 case "$cf_cv_shlib_version" in #(vi
2548                                 rel) #(vi
2549                                         case "$cf_cv_system_name" in #(vi
2550                                         darwin*)
2551                                         case .${LIB_SUFFIX} in
2552                                         .w*)
2553                                                 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2554                                                 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2555                                                 ;;
2556                                         *)
2557                                                 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2558                                                 ;;
2559                                         esac
2560                                         ;; #(vi
2561                                         *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2562                                         esac
2563                                         ;;
2564                                 abi)
2565                                         case "$cf_cv_system_name" in #(vi
2566                                         darwin*)
2567                                         case .${LIB_SUFFIX} in
2568                                         .w*)
2569                                                 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2570                                                 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2571                                                 ;;
2572                                         *)
2573                                                 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2574                                                 ;;
2575                                         esac
2576                                         ;; #(vi
2577                                         *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2578                                         esac
2579                                         ;;
2580                                 esac
2581                         fi
2582                         # cygwin needs import library, and has unique naming convention
2583                         # use autodetected ${cf_prefix} for import lib and static lib, but
2584                         # use 'cyg' prefix for shared lib.
2585                         if test $cf_cv_shlib_version = cygdll ; then
2586                                 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2587                                 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2588                                 continue
2589                         fi
2590                         fi
2591                         LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2592                 done
2593
2594                 if test $cf_dir = ncurses ; then
2595                         cf_subsets="$LIB_SUBSETS"
2596                         cf_r_parts="$cf_subsets"
2597                         cf_liblist="$LIBS_TO_MAKE"
2598
2599                         while test -n "$cf_r_parts"
2600                         do
2601                                 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2602                                 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2603                                 if test "$cf_l_parts" != "$cf_r_parts" ; then
2604                                         cf_item=
2605                                         case $cf_l_parts in #(vi
2606                                         *termlib*) #(vi
2607                                                 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2608                                                 ;;
2609                                         *ticlib*)
2610                                                 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2611                                                 ;;
2612                                         *)
2613                                                 break
2614                                                 ;;
2615                                         esac
2616                                         if test -n "$cf_item"; then
2617                                                 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2618                                         fi
2619                                 else
2620                                         break
2621                                 fi
2622                         done
2623                 else
2624                         cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2625                 fi
2626
2627                 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2628                     -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2629                         $cf_dir/Makefile >$cf_dir/Makefile.out
2630                 mv $cf_dir/Makefile.out $cf_dir/Makefile
2631
2632                 $AWK -f $srcdir/mk-0th.awk \
2633                         libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2634                         $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2635
2636                 for cf_subset in $cf_subsets
2637                 do
2638                         cf_subdirs=
2639                         for cf_item in $cf_LIST_MODELS
2640                         do
2641                         echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2642                         CF_UPPER(cf_ITEM,$cf_item)
2643                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2644                         CF_OBJ_SUBDIR($cf_item,cf_subdir)
2645
2646                         # Test for case where we build libtinfo with a different name.
2647                         cf_libname=$cf_dir
2648                         if test $cf_dir = ncurses ; then
2649                                 case $cf_subset in
2650                                 *base*)
2651                                         cf_libname=${cf_libname}$LIB_SUFFIX
2652                                         ;;
2653                                 *termlib*)
2654                                         cf_libname=$TINFO_LIB_SUFFIX
2655                                         ;;
2656                                 ticlib*)
2657                                         cf_libname=$TICS_LIB_SUFFIX
2658                                         ;;
2659                                 esac
2660                         else
2661                                 cf_libname=${cf_libname}$LIB_SUFFIX
2662                         fi
2663                         if test -n "${DFT_ARG_SUFFIX}" ; then
2664                                 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2665                                 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2666                         fi
2667
2668                         # These dependencies really are for development, not
2669                         # builds, but they are useful in porting, too.
2670                         cf_depend="../include/ncurses_cfg.h"
2671                         if test "$srcdir" = "."; then
2672                                 cf_reldir="."
2673                         else
2674                                 cf_reldir="\${srcdir}"
2675                         fi
2676
2677                         if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2678                                 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2679                         elif test -f $srcdir/$cf_dir/curses.priv.h; then
2680                                 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2681                         fi
2682
2683                         cf_dir_suffix=
2684                         old_cf_suffix="$cf_suffix"
2685                         if test "$cf_cv_shlib_version_infix" = yes ; then
2686                         if test -n "$LIB_SUFFIX" ; then
2687                                 case $LIB_SUFFIX in
2688                                 w*)
2689                                         cf_libname=`echo $cf_libname | sed 's/w$//'`
2690                                         cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2691                                         cf_dir_suffix=w
2692                                         ;;
2693                                 esac
2694                         fi
2695                         fi
2696
2697                         $AWK -f $srcdir/mk-1st.awk \
2698                                 name=${cf_libname}${cf_dir_suffix} \
2699                                 traces=$LIB_TRACING \
2700                                 MODEL=$cf_ITEM \
2701                                 model=$cf_subdir \
2702                                 prefix=$cf_prefix \
2703                                 suffix=$cf_suffix \
2704                                 subset=$cf_subset \
2705                                 TermlibRoot=$TINFO_NAME \
2706                                 TermlibSuffix=$TINFO_SUFFIX \
2707                                 ShlibVer=$cf_cv_shlib_version \
2708                                 ShlibVerInfix=$cf_cv_shlib_version_infix \
2709                                 ReLink=${cf_cv_do_relink-no} \
2710                                 DoLinks=$cf_cv_do_symlinks \
2711                                 rmSoLocs=$cf_cv_rm_so_locs \
2712                                 ldconfig="$LDCONFIG" \
2713                                 overwrite=$WITH_OVERWRITE \
2714                                 depend="$cf_depend" \
2715                                 host="$host" \
2716                                 libtool_version="$LIBTOOL_VERSION" \
2717                                 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2718
2719                         cf_suffix="$old_cf_suffix"
2720
2721                         for cf_subdir2 in $cf_subdirs lib
2722                         do
2723                                 test $cf_subdir = $cf_subdir2 && break
2724                         done
2725                         test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2726                         $AWK -f $srcdir/mk-2nd.awk \
2727                                 name=$cf_dir \
2728                                 traces=$LIB_TRACING \
2729                                 MODEL=$cf_ITEM \
2730                                 model=$cf_subdir \
2731                                 subset=$cf_subset \
2732                                 srcdir=$srcdir \
2733                                 echo=$WITH_ECHO \
2734                                 crenames=$cf_cv_prog_CC_c_o \
2735                                 cxxrenames=$cf_cv_prog_CXX_c_o \
2736                                 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2737                         cf_subdirs="$cf_subdirs $cf_subdir"
2738                         done
2739                 done
2740         fi
2741
2742         echo '  cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2743 done
2744
2745 for cf_dir in $SRC_SUBDIRS
2746 do
2747         if test ! -d $srcdir/$cf_dir ; then
2748                 continue
2749         fi
2750
2751         if test -f $cf_dir/Makefile ; then
2752                 case "$cf_dir" in
2753                 Ada95) #(vi
2754                         echo 'libs \' >> Makefile
2755                         echo 'install.libs \' >> Makefile
2756                         echo 'uninstall.libs ::' >> Makefile
2757                         echo '  cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2758                         ;;
2759                 esac
2760         fi
2761
2762         if test -f $srcdir/$cf_dir/modules; then
2763                 echo >> Makefile
2764                 if test -f $srcdir/$cf_dir/headers; then
2765 cat >> Makefile <<CF_EOF
2766 install.includes \\
2767 uninstall.includes \\
2768 CF_EOF
2769                 fi
2770 if test "$cf_dir" != "c++" ; then
2771 echo 'lint \' >> Makefile
2772 fi
2773 cat >> Makefile <<CF_EOF
2774 libs \\
2775 lintlib \\
2776 install.libs \\
2777 uninstall.libs \\
2778 install.$cf_dir \\
2779 uninstall.$cf_dir ::
2780         cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2781 CF_EOF
2782         elif test -f $srcdir/$cf_dir/headers; then
2783 cat >> Makefile <<CF_EOF
2784
2785 libs \\
2786 install.libs \\
2787 uninstall.libs \\
2788 install.includes \\
2789 uninstall.includes ::
2790         cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2791 CF_EOF
2792 fi
2793 done
2794
2795 cat >> Makefile <<CF_EOF
2796
2797 install.libs uninstall.libs \\
2798 install.data uninstall.data ::
2799 $MAKE_TERMINFO  cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2800 CF_EOF
2801
2802 if test "x$cf_with_manpages" = xyes; then
2803 cat >> Makefile <<CF_EOF
2804
2805 install.man \\
2806 uninstall.man ::
2807         cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2808 CF_EOF
2809 fi
2810
2811 cat >> Makefile <<CF_EOF
2812
2813 distclean ::
2814         rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2815         rm -f headers.sh headers.sed mk_shared_lib.sh
2816         rm -f edit_man.* man_alias.*
2817         rm -rf \${DIRS_TO_MAKE}
2818 CF_EOF
2819
2820 # Special case: tack's manpage lives in its own directory.
2821 if test "x$cf_with_manpages" = xyes; then
2822 if test -d tack ; then
2823 if test -f $srcdir/$tack.h; then
2824 cat >> Makefile <<CF_EOF
2825
2826 install.man \\
2827 uninstall.man ::
2828         cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2829 CF_EOF
2830 fi
2831 fi
2832 fi
2833
2834 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2835 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
2836 dnl anything, and will make it more standardized.  It's awkward to decide this
2837 dnl at configuration because of quoting, so we'll simply make all headers
2838 dnl installed via a script that can do the right thing.
2839
2840 rm -f headers.sed headers.sh
2841
2842 dnl ( generating this script makes the makefiles a little tidier :-)
2843 echo creating headers.sh
2844 cat >headers.sh <<CF_EOF
2845 #! /bin/sh
2846 # This shell script is generated by the 'configure' script.  It is invoked in a
2847 # subdirectory of the build tree.  It generates a sed-script in the parent
2848 # directory that is used to adjust includes for header files that reside in a
2849 # subdirectory of /usr/include, etc.
2850 PRG=""
2851 while test \[$]# != 3
2852 do
2853 PRG="\$PRG \[$]1"; shift
2854 done
2855 DST=\[$]1
2856 REF=\[$]2
2857 SRC=\[$]3
2858 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2859 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2860 echo installing \$SRC in \$DST
2861 CF_EOF
2862
2863 if test $WITH_CURSES_H = yes; then
2864         cat >>headers.sh <<CF_EOF
2865 case \$DST in
2866 /*/include/*)
2867         END=\`basename \$DST\`
2868         for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2869         do
2870                 NAME=\`basename \$i\`
2871                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2872         done
2873         ;;
2874 *)
2875         echo "" >> \$TMPSED
2876         ;;
2877 esac
2878 CF_EOF
2879
2880 else
2881         cat >>headers.sh <<CF_EOF
2882 case \$DST in
2883 /*/include/*)
2884         END=\`basename \$DST\`
2885         for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2886         do
2887                 NAME=\`basename \$i\`
2888                 if test "\$NAME" = "curses.h"
2889                 then
2890                         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2891                         NAME=ncurses.h
2892                 fi
2893                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2894         done
2895         ;;
2896 *)
2897         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2898         ;;
2899 esac
2900 CF_EOF
2901 fi
2902 cat >>headers.sh <<CF_EOF
2903 rm -f \$TMPSRC
2904 sed -f \$TMPSED \$SRC > \$TMPSRC
2905 NAME=\`basename \$SRC\`
2906 CF_EOF
2907 if test $WITH_CURSES_H != yes; then
2908         cat >>headers.sh <<CF_EOF
2909 test "\$NAME" = "curses.h" && NAME=ncurses.h
2910 CF_EOF
2911 fi
2912 cat >>headers.sh <<CF_EOF
2913 # Just in case someone gzip'd manpages, remove the conflicting copy.
2914 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2915
2916 eval \$PRG \$TMPSRC \$DST/\$NAME
2917 rm -f \$TMPSRC \$TMPSED
2918 CF_EOF
2919
2920 chmod 0755 headers.sh
2921
2922 for cf_dir in $SRC_SUBDIRS
2923 do
2924         if test ! -d $srcdir/$cf_dir ; then
2925                 continue
2926         fi
2927
2928         if test -f $srcdir/$cf_dir/headers; then
2929                 $AWK -f $srcdir/mk-hdr.awk \
2930                         subset="$LIB_SUBSETS" \
2931                         compat="$WITH_CURSES_H" \
2932                         $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2933         fi
2934
2935         if test -f $srcdir/$cf_dir/modules; then
2936                 if test "$cf_dir" != "c++" ; then
2937                         cat >>$cf_dir/Makefile <<"CF_EOF"
2938 depend : ${AUTO_SRC}
2939         makedepend -- ${CPPFLAGS} -- ${C_SRC}
2940
2941 # DO NOT DELETE THIS LINE -- make depend depends on it.
2942 CF_EOF
2943                 fi
2944         fi
2945 done
2946
2947 ])dnl
2948 dnl ---------------------------------------------------------------------------
2949 dnl CF_LIB_SONAME version: 4 updated: 2010/05/29 16:31:02
2950 dnl -------------
2951 dnl Find the and soname for the given shared library.  Set the cache variable
2952 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
2953 dnl variable to "unknown".
2954 dnl
2955 dnl $1 = headers
2956 dnl $2 = code
2957 dnl $3 = library name
2958 AC_DEFUN([CF_LIB_SONAME],
2959 [
2960 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2961
2962 cf_cv_$3_soname=unknown
2963 if test "$cross_compiling" != yes ; then
2964 cat >conftest.$ac_ext <<CF_EOF
2965 $1
2966 int main()
2967 {
2968 $2
2969         ${cf_cv_main_return:-return}(0);
2970 }
2971 CF_EOF
2972 cf_save_LIBS="$LIBS"
2973         CF_ADD_LIB($3)
2974         if AC_TRY_EVAL(ac_compile) ; then
2975                 if AC_TRY_EVAL(ac_link) ; then
2976                         cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2977                         test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2978                 fi
2979         fi
2980 rm -f conftest*
2981 LIBS="$cf_save_LIBS"
2982 fi
2983 ])
2984 ])
2985 dnl ---------------------------------------------------------------------------
2986 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
2987 dnl -------------
2988 dnl Compute the library file-suffix from the given model name
2989 dnl $1 = model name
2990 dnl $2 = variable to set (the nominal library suffix)
2991 dnl $3 = dependency variable to set (actual filename)
2992 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2993 AC_DEFUN([CF_LIB_SUFFIX],
2994 [
2995         AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2996         case $1 in #(vi
2997         libtool) #(vi
2998                 $2='.la'
2999                 $3=[$]$2
3000                 ;;
3001         normal) #(vi
3002                 $2='.a'
3003                 $3=[$]$2
3004                 ;;
3005         debug) #(vi
3006                 $2='_g.a'
3007                 $3=[$]$2
3008                 ;;
3009         profile) #(vi
3010                 $2='_p.a'
3011                 $3=[$]$2
3012                 ;;
3013         shared) #(vi
3014                 case $cf_cv_system_name in
3015                 aix[[56]]*) #(vi
3016                         $2='.a'
3017                         $3=[$]$2
3018                         ;;
3019                 cygwin*) #(vi
3020                         $2='.dll'
3021                         $3='.dll.a'
3022                         ;;
3023                 darwin*) #(vi
3024                         $2='.dylib'
3025                         $3=[$]$2
3026                         ;;
3027                 hpux*) #(vi
3028                         case $target in
3029                         ia64*) #(vi
3030                                 $2='.so'
3031                                 $3=[$]$2
3032                                 ;;
3033                         *) #(vi
3034                                 $2='.sl'
3035                                 $3=[$]$2
3036                                 ;;
3037                         esac
3038                         ;;
3039                 *)      $2='.so'
3040                         $3=[$]$2
3041                         ;;
3042                 esac
3043         esac
3044         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3045         test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
3046 ])dnl
3047 dnl ---------------------------------------------------------------------------
3048 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
3049 dnl -----------
3050 dnl Compute the string to append to -library from the given model name
3051 dnl $1 = model name
3052 dnl $2 = variable to set
3053 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3054 AC_DEFUN([CF_LIB_TYPE],
3055 [
3056         case $1 in
3057         libtool) $2=''   ;;
3058         normal)  $2=''   ;;
3059         debug)   $2='_g' ;;
3060         profile) $2='_p' ;;
3061         shared)  $2=''   ;;
3062         esac
3063         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
3064 ])dnl
3065 dnl ---------------------------------------------------------------------------
3066 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
3067 dnl ----------------
3068 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
3069 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
3070 dnl have to provide wrappers for global tables to ensure they're linked
3071 dnl properly.
3072 AC_DEFUN([CF_LINK_DATAONLY],
3073 [
3074 AC_MSG_CHECKING([if data-only library module links])
3075 AC_CACHE_VAL(cf_cv_link_dataonly,[
3076         rm -f conftest.a
3077         cat >conftest.$ac_ext <<EOF
3078 #line __oline__ "configure"
3079 int     testdata[[3]] = { 123, 456, 789 };
3080 EOF
3081         if AC_TRY_EVAL(ac_compile) ; then
3082                 mv conftest.o data.o && \
3083                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
3084         fi
3085         rm -f conftest.$ac_ext data.o
3086         cat >conftest.$ac_ext <<EOF
3087 #line __oline__ "configure"
3088 int     testfunc()
3089 {
3090 #if defined(NeXT)
3091         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
3092 #else
3093         extern int testdata[[3]];
3094         return testdata[[0]] == 123
3095            &&  testdata[[1]] == 456
3096            &&  testdata[[2]] == 789;
3097 #endif
3098 }
3099 EOF
3100         if AC_TRY_EVAL(ac_compile); then
3101                 mv conftest.o func.o && \
3102                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
3103         fi
3104         rm -f conftest.$ac_ext func.o
3105         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
3106         cf_saveLIBS="$LIBS"
3107         LIBS="conftest.a $LIBS"
3108         AC_TRY_RUN([
3109         int main()
3110         {
3111                 extern int testfunc();
3112                 ${cf_cv_main_return:-return} (!testfunc());
3113         }
3114         ],
3115         [cf_cv_link_dataonly=yes],
3116         [cf_cv_link_dataonly=no],
3117         [cf_cv_link_dataonly=unknown])
3118         LIBS="$cf_saveLIBS"
3119         ])
3120 AC_MSG_RESULT($cf_cv_link_dataonly)
3121
3122 if test "$cf_cv_link_dataonly" = no ; then
3123         AC_DEFINE(BROKEN_LINKER)
3124         BROKEN_LINKER=1
3125 fi
3126
3127 ])dnl
3128 dnl ---------------------------------------------------------------------------
3129 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
3130 dnl -------------
3131 dnl Most Unix systems have both link and symlink, a few don't have symlink.
3132 dnl A few non-Unix systems implement symlink, but not link.
3133 dnl A few non-systems implement neither (or have nonfunctional versions).
3134 AC_DEFUN([CF_LINK_FUNCS],
3135 [
3136 AC_CHECK_FUNCS( \
3137         remove \
3138         unlink )
3139
3140 if test "$cross_compiling" = yes ; then
3141         AC_CHECK_FUNCS( \
3142                 link \
3143                 symlink )
3144 else
3145         AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
3146                 cf_cv_link_funcs=
3147                 for cf_func in link symlink ; do
3148                         AC_TRY_RUN([
3149 #include <sys/types.h>
3150 #include <sys/stat.h>
3151 #ifdef HAVE_UNISTD_H
3152 #include <unistd.h>
3153 #endif
3154 int main()
3155 {
3156         int fail = 0;
3157         char *src = "config.log";
3158         char *dst = "conftest.chk";
3159         struct stat src_sb;
3160         struct stat dst_sb;
3161
3162         stat(src, &src_sb);
3163         fail = ($cf_func("config.log", "conftest.chk") < 0)
3164             || (stat(dst, &dst_sb) < 0)
3165             || (dst_sb.st_mtime != src_sb.st_mtime);
3166 #ifdef HAVE_UNLINK
3167         unlink(dst);
3168 #else
3169         remove(dst);
3170 #endif
3171         ${cf_cv_main_return:-return} (fail);
3172 }
3173                         ],[
3174                         cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
3175                         eval 'ac_cv_func_'$cf_func'=yes'],[
3176                         eval 'ac_cv_func_'$cf_func'=no'],[
3177                         eval 'ac_cv_func_'$cf_func'=error'])
3178                 done
3179                 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
3180         ])
3181         test "$ac_cv_func_link"    = yes && AC_DEFINE(HAVE_LINK)
3182         test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
3183 fi
3184 ])dnl
3185 dnl ---------------------------------------------------------------------------
3186 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
3187 dnl --------------
3188 dnl Check if a return from main to the shell actually returns the same exit
3189 dnl code.  This is true for almost any POSIX environment.
3190 dnl
3191 dnl Some very old environments did not flush stdout, etc., on an exit.  That
3192 dnl would be a useful case to test for also.
3193 AC_DEFUN([CF_MAIN_RETURN],
3194 [
3195 cf_cv_main_return=return
3196 ])dnl
3197 dnl ---------------------------------------------------------------------------
3198 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
3199 dnl ------------
3200 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
3201 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
3202 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
3203 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
3204 AC_DEFUN([CF_MAKEFLAGS],
3205 [
3206 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
3207         cf_cv_makeflags=''
3208         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
3209         do
3210                 cat >cf_makeflags.tmp <<CF_EOF
3211 SHELL = /bin/sh
3212 all :
3213         @ echo '.$cf_option'
3214 CF_EOF
3215                 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[       ]]*$,,'`
3216                 case "$cf_result" in
3217                 .*k)
3218                         cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
3219                         case "$cf_result" in
3220                         .*CC=*) cf_cv_makeflags=
3221                                 ;;
3222                         *)      cf_cv_makeflags=$cf_option
3223                                 ;;
3224                         esac
3225                         break
3226                         ;;
3227                 .-)     ;;
3228                 *)      echo "given option \"$cf_option\", no match \"$cf_result\""
3229                         ;;
3230                 esac
3231         done
3232         rm -f cf_makeflags.tmp
3233 ])
3234
3235 AC_SUBST(cf_cv_makeflags)
3236 ])dnl
3237 dnl ---------------------------------------------------------------------------
3238 dnl CF_MAKE_TAGS version: 5 updated: 2010/04/03 20:07:32
3239 dnl ------------
3240 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
3241 dnl a monocase filesystem.
3242 AC_DEFUN([CF_MAKE_TAGS],[
3243 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
3244
3245 AC_CHECK_PROGS(CTAGS, exctags ctags)
3246 AC_CHECK_PROGS(ETAGS, exetags etags)
3247
3248 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS-ctags}, yes, no)
3249
3250 if test "$cf_cv_mixedcase" = yes ; then
3251         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS-etags}, yes, no)
3252 else
3253         MAKE_UPPER_TAGS=no
3254 fi
3255
3256 if test "$MAKE_UPPER_TAGS" = yes ; then
3257         MAKE_UPPER_TAGS=
3258 else
3259         MAKE_UPPER_TAGS="#"
3260 fi
3261
3262 if test "$MAKE_LOWER_TAGS" = yes ; then
3263         MAKE_LOWER_TAGS=
3264 else
3265         MAKE_LOWER_TAGS="#"
3266 fi
3267
3268 AC_SUBST(CTAGS)
3269 AC_SUBST(ETAGS)
3270
3271 AC_SUBST(MAKE_UPPER_TAGS)
3272 AC_SUBST(MAKE_LOWER_TAGS)
3273 ])dnl
3274 dnl ---------------------------------------------------------------------------
3275 dnl CF_MANPAGE_FORMAT version: 8 updated: 2009/01/11 20:30:50
3276 dnl -----------------
3277 dnl Option to allow user to override automatic configuration of manpage format.
3278 dnl There are several special cases:
3279 dnl
3280 dnl     gzip - man checks for, can display gzip'd files
3281 dnl     compress - man checks for, can display compressed files
3282 dnl     BSDI - files in the cat-directories are suffixed ".0"
3283 dnl     formatted - installer should format (put files in cat-directory)
3284 dnl     catonly - installer should only format, e.g., for a turnkey system.
3285 dnl
3286 dnl There are other configurations which this macro does not test, e.g., HPUX's
3287 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
3288 dnl convention would not match our use).
3289 AC_DEFUN([CF_MANPAGE_FORMAT],
3290 [
3291 AC_REQUIRE([CF_PATHSEP])
3292 AC_MSG_CHECKING(format of man-pages)
3293
3294 AC_ARG_WITH(manpage-format,
3295         [  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
3296                           optionally formatted/catonly, e.g., gzip,formatted],
3297         [MANPAGE_FORMAT=$withval],
3298         [MANPAGE_FORMAT=unknown])
3299
3300 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
3301 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
3302
3303 cf_unknown=
3304
3305 case $MANPAGE_FORMAT in
3306 unknown)
3307   if test -z "$MANPATH" ; then
3308     MANPATH="/usr/man:/usr/share/man"
3309   fi
3310
3311   # look for the 'date' man-page (it's most likely to be installed!)
3312   MANPAGE_FORMAT=
3313   cf_preform=no
3314   cf_catonly=yes
3315   cf_example=date
3316
3317   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
3318   for cf_dir in $MANPATH; do
3319     test -z "$cf_dir" && cf_dir=/usr/man
3320     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
3321     do
3322       cf_test=`echo $cf_name | sed -e 's/*//'`
3323       if test "x$cf_test" = "x$cf_name" ; then
3324
3325         case "$cf_name" in
3326         *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3327         *.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3328         *.0)    MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3329         *)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3330         esac
3331
3332         case "$cf_name" in
3333         $cf_dir/man*)
3334           cf_catonly=no
3335           ;;
3336         $cf_dir/cat*)
3337           cf_preform=yes
3338           ;;
3339         esac
3340         break
3341       fi
3342
3343       # if we found a match in either man* or cat*, stop looking
3344       if test -n "$MANPAGE_FORMAT" ; then
3345         cf_found=no
3346         test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3347         test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3348         case "$cf_name" in
3349         $cf_dir/cat*)
3350           cf_found=yes
3351           ;;
3352         esac
3353         test $cf_found=yes && break
3354       fi
3355     done
3356     # only check the first directory in $MANPATH where we find manpages
3357     if test -n "$MANPAGE_FORMAT" ; then
3358        break
3359     fi
3360   done
3361   # if we did not find the example, just assume it is normal
3362   test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3363   IFS="$ac_save_ifs"
3364   ;;
3365 *)
3366   for cf_option in $MANPAGE_FORMAT; do
3367      case $cf_option in #(vi
3368      gzip|compress|BSDI|normal|formatted|catonly)
3369        ;;
3370      *)
3371        cf_unknown="$cf_unknown $cf_option"
3372        ;;
3373      esac
3374   done
3375   ;;
3376 esac
3377
3378 AC_MSG_RESULT($MANPAGE_FORMAT)
3379 if test -n "$cf_unknown" ; then
3380   AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3381 fi
3382 ])dnl
3383 dnl ---------------------------------------------------------------------------
3384 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3385 dnl ------------------
3386 dnl The Debian people have their own naming convention for manpages.  This
3387 dnl option lets us override the name of the file containing renaming, or
3388 dnl disable it altogether.
3389 AC_DEFUN([CF_MANPAGE_RENAMES],
3390 [
3391 AC_MSG_CHECKING(for manpage renaming)
3392
3393 AC_ARG_WITH(manpage-renames,
3394         [  --with-manpage-renames  specify manpage-renaming],
3395         [MANPAGE_RENAMES=$withval],
3396         [MANPAGE_RENAMES=yes])
3397
3398 case ".$MANPAGE_RENAMES" in #(vi
3399 .no) #(vi
3400   ;;
3401 .|.yes)
3402   # Debian 'man' program?
3403   if test -f /etc/debian_version ; then
3404     MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3405   else
3406     MANPAGE_RENAMES=no
3407   fi
3408   ;;
3409 esac
3410
3411 if test "$MANPAGE_RENAMES" != no ; then
3412   if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3413     MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3414   elif test ! -f $MANPAGE_RENAMES ; then
3415     AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3416   fi
3417
3418   test ! -d man && mkdir man
3419
3420   # Construct a sed-script to perform renaming within man-pages
3421   if test -n "$MANPAGE_RENAMES" ; then
3422     test ! -d man && mkdir man
3423     sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3424   fi
3425 fi
3426
3427 AC_MSG_RESULT($MANPAGE_RENAMES)
3428 AC_SUBST(MANPAGE_RENAMES)
3429 ])dnl
3430 dnl ---------------------------------------------------------------------------
3431 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3432 dnl -------------------
3433 dnl Some people expect each tool to make all aliases for manpages in the
3434 dnl man-directory.  This accommodates the older, less-capable implementations
3435 dnl of 'man', and is optional.
3436 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3437 [
3438 AC_MSG_CHECKING(if manpage aliases will be installed)
3439
3440 AC_ARG_WITH(manpage-aliases,
3441         [  --with-manpage-aliases  specify manpage-aliases using .so],
3442         [MANPAGE_ALIASES=$withval],
3443         [MANPAGE_ALIASES=yes])
3444
3445 AC_MSG_RESULT($MANPAGE_ALIASES)
3446
3447 if test "$LN_S" = "ln -s"; then
3448         cf_use_symlinks=yes
3449 else
3450         cf_use_symlinks=no
3451 fi
3452
3453 MANPAGE_SYMLINKS=no
3454 if test "$MANPAGE_ALIASES" = yes ; then
3455 AC_MSG_CHECKING(if manpage symlinks should be used)
3456
3457 AC_ARG_WITH(manpage-symlinks,
3458         [  --with-manpage-symlinks specify manpage-aliases using symlinks],
3459         [MANPAGE_SYMLINKS=$withval],
3460         [MANPAGE_SYMLINKS=$cf_use_symlinks])
3461
3462 if test "$$cf_use_symlinks" = no; then
3463 if test "$MANPAGE_SYMLINKS" = yes ; then
3464         AC_MSG_WARN(cannot make symlinks, will use .so files)
3465         MANPAGE_SYMLINKS=no
3466 fi
3467 fi
3468
3469 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3470 fi
3471
3472 ])dnl
3473 dnl ---------------------------------------------------------------------------
3474 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3475 dnl --------------
3476 dnl This option causes manpages to be run through tbl(1) to generate tables
3477 dnl correctly.
3478 AC_DEFUN([CF_MANPAGE_TBL],
3479 [
3480 AC_MSG_CHECKING(for manpage tbl)
3481
3482 AC_ARG_WITH(manpage-tbl,
3483         [  --with-manpage-tbl      specify manpage processing with tbl],
3484         [MANPAGE_TBL=$withval],
3485         [MANPAGE_TBL=no])
3486
3487 AC_MSG_RESULT($MANPAGE_TBL)
3488 ])dnl
3489 dnl ---------------------------------------------------------------------------
3490 dnl CF_MAN_PAGES version: 37 updated: 2010/05/15 16:05:34
3491 dnl ------------
3492 dnl Try to determine if the man-pages on the system are compressed, and if
3493 dnl so, what format is used.  Use this information to construct a script that
3494 dnl will install man-pages.
3495 AC_DEFUN([CF_MAN_PAGES],
3496 [
3497 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3498 CF_MANPAGE_FORMAT
3499 CF_MANPAGE_RENAMES
3500 CF_MANPAGE_SYMLINKS
3501 CF_MANPAGE_TBL
3502
3503   if test "$prefix" = "NONE" ; then
3504      cf_prefix="$ac_default_prefix"
3505   else
3506      cf_prefix="$prefix"
3507   fi
3508
3509   case "$MANPAGE_FORMAT" in # (vi
3510   *catonly*) # (vi
3511     cf_format=yes
3512     cf_inboth=no
3513     ;;
3514   *formatted*) # (vi
3515     cf_format=yes
3516     cf_inboth=yes
3517     ;;
3518   *)
3519     cf_format=no
3520     cf_inboth=no
3521     ;;
3522   esac
3523
3524 test ! -d man && mkdir man
3525
3526 cf_so_strip=
3527 cf_compress=
3528 case "$MANPAGE_FORMAT" in #(vi
3529 *compress*) #(vi
3530         cf_so_strip="Z"
3531         cf_compress=compress
3532   ;;
3533 *gzip*) #(vi
3534         cf_so_strip="gz"
3535         cf_compress=gzip
3536   ;;
3537 esac
3538
3539 cf_edit_man=./edit_man.sh
3540 cf_man_alias=`pwd`/man_alias.sed
3541
3542 cat >$cf_edit_man <<CF_EOF
3543 #! /bin/sh
3544 # this script is generated by the configure-script CF_MAN_PAGES macro.
3545
3546 prefix="$cf_prefix"
3547 datadir="$datadir"
3548
3549 NCURSES_MAJOR="$NCURSES_MAJOR"
3550 NCURSES_MINOR="$NCURSES_MINOR"
3551 NCURSES_PATCH="$NCURSES_PATCH"
3552
3553 NCURSES_OSPEED="$NCURSES_OSPEED"
3554 TERMINFO="$TERMINFO"
3555
3556 INSTALL="$INSTALL"
3557 INSTALL_DATA="$INSTALL_DATA"
3558
3559 transform="$program_transform_name"
3560
3561 TMP=\${TMPDIR-/tmp}/man\$\$
3562 trap "rm -f \$TMP" 0 1 2 5 15
3563
3564 form=\[$]1
3565 shift || exit 1
3566
3567 verb=\[$]1
3568 shift || exit 1
3569
3570 mandir=\[$]1
3571 shift || exit 1
3572
3573 srcdir=\[$]1
3574 top_srcdir=\[$]srcdir/..
3575 shift || exit 1
3576
3577 if test "\$form" = normal ; then
3578         if test "$cf_format" = yes ; then
3579         if test "$cf_inboth" = no ; then
3580                 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3581                 exit $?
3582         fi
3583         fi
3584         cf_subdir=\$mandir/man
3585         cf_tables=$MANPAGE_TBL
3586 else
3587         cf_subdir=\$mandir/cat
3588         cf_tables=yes
3589 fi
3590
3591 # process the list of source-files
3592 for i in \[$]* ; do
3593 case \$i in #(vi
3594 *.orig|*.rej) ;; #(vi
3595 *.[[0-9]]*)
3596         section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3597         if test \$verb = installing ; then
3598         if test ! -d \$cf_subdir\${section} ; then
3599                 mkdir -p \$cf_subdir\$section
3600         fi
3601         fi
3602
3603         # replace variables in man page
3604         if test ! -f $cf_man_alias ; then
3605 cat >>$cf_man_alias <<-CF_EOF2
3606                 s,@DATADIR@,\$datadir,g
3607                 s,@TERMINFO@,\$TERMINFO,g
3608                 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3609                 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3610                 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3611                 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3612 CF_EOF
3613         ifelse($1,,,[
3614         for cf_name in $1
3615         do
3616                 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3617                 cf_name=`echo $cf_name|sed "$program_transform_name"`
3618 cat >>$cf_edit_man <<-CF_EOF
3619                 s,@$cf_NAME@,$cf_name,g
3620 CF_EOF
3621         done
3622         ])
3623 cat >>$cf_edit_man <<CF_EOF
3624 CF_EOF2
3625                 echo "...made $cf_man_alias"
3626         fi
3627
3628         aliases=
3629         cf_source=\`basename \$i\`
3630         inalias=\$cf_source
3631         test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3632         if test ! -f \$inalias ; then
3633                 echo .. skipped \$cf_source
3634                 continue
3635         fi
3636 CF_EOF
3637
3638 if test "$MANPAGE_ALIASES" != no ; then
3639 cat >>$cf_edit_man <<CF_EOF
3640         aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3641 CF_EOF
3642 fi
3643
3644 if test "$MANPAGE_RENAMES" = no ; then
3645 cat >>$cf_edit_man <<CF_EOF
3646         # perform program transformations for section 1 man pages
3647         if test \$section = 1 ; then
3648                 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3649         else
3650                 cf_target=\$cf_subdir\${section}/\$cf_source
3651         fi
3652 CF_EOF
3653 else
3654 cat >>$cf_edit_man <<CF_EOF
3655         cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3656         if test -z "\$cf_target" ; then
3657                 echo '? missing rename for '\$cf_source
3658                 cf_target="\$cf_source"
3659         fi
3660         cf_target="\$cf_subdir\${section}/\${cf_target}"
3661
3662 CF_EOF
3663 fi
3664
3665 cat >>$cf_edit_man <<CF_EOF
3666         sed     -f $cf_man_alias \\
3667 CF_EOF
3668
3669 if test -f $MANPAGE_RENAMES ; then
3670 cat >>$cf_edit_man <<CF_EOF
3671                 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3672 CF_EOF
3673 else
3674 cat >>$cf_edit_man <<CF_EOF
3675                 < \$i >\$TMP
3676 CF_EOF
3677 fi
3678
3679 cat >>$cf_edit_man <<CF_EOF
3680 if test \$cf_tables = yes ; then
3681         tbl \$TMP >\$TMP.out
3682         mv \$TMP.out \$TMP
3683 fi
3684 CF_EOF
3685
3686 if test $with_curses_h != yes ; then
3687 cat >>$cf_edit_man <<CF_EOF
3688         sed -e "/\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3689         mv \$TMP.out \$TMP
3690 CF_EOF
3691 fi
3692
3693 cat >>$cf_edit_man <<CF_EOF
3694         if test \$form = format ; then
3695                 nroff -man \$TMP >\$TMP.out
3696                 mv \$TMP.out \$TMP
3697         fi
3698 CF_EOF
3699
3700 if test -n "$cf_compress" ; then
3701 cat >>$cf_edit_man <<CF_EOF
3702         if test \$verb = installing ; then
3703         if ( $cf_compress -f \$TMP )
3704         then
3705                 mv \$TMP.$cf_so_strip \$TMP
3706         fi
3707         fi
3708         cf_target="\$cf_target.$cf_so_strip"
3709 CF_EOF
3710 fi
3711
3712 case "$MANPAGE_FORMAT" in #(vi
3713 *BSDI*)
3714 cat >>$cf_edit_man <<CF_EOF
3715         if test \$form = format ; then
3716                 # BSDI installs only .0 suffixes in the cat directories
3717                 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3718         fi
3719 CF_EOF
3720   ;;
3721 esac
3722
3723 cat >>$cf_edit_man <<CF_EOF
3724         suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3725         if test \$verb = installing ; then
3726                 echo \$verb \$cf_target
3727                 \$INSTALL_DATA \$TMP \$cf_target
3728                 test -d \$cf_subdir\${section} &&
3729                 test -n "\$aliases" && (
3730                         cd \$cf_subdir\${section} && (
3731                                 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3732                                 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3733                                 cf_target=\`basename \$cf_target\`
3734                                 for cf_alias in \$aliases
3735                                 do
3736                                         if test \$section = 1 ; then
3737                                                 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3738                                         fi
3739
3740                                         if test "$MANPAGE_SYMLINKS" = yes ; then
3741                                                 if test -f \$cf_alias\${suffix} ; then
3742                                                         if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3743                                                         then
3744                                                                 continue
3745                                                         fi
3746                                                 fi
3747                                                 echo .. \$verb alias \$cf_alias\${suffix}
3748                                                 rm -f \$cf_alias\${suffix}
3749                                                 $LN_S \$cf_target \$cf_alias\${suffix}
3750                                         elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3751                                                 echo ".so \$cf_source" >\$TMP
3752 CF_EOF
3753 if test -n "$cf_compress" ; then
3754 cat >>$cf_edit_man <<CF_EOF
3755                                                 if test -n "$cf_so_strip" ; then
3756                                                         $cf_compress -f \$TMP
3757                                                         mv \$TMP.$cf_so_strip \$TMP
3758                                                 fi
3759 CF_EOF
3760 fi
3761 cat >>$cf_edit_man <<CF_EOF
3762                                                 echo .. \$verb alias \$cf_alias\${suffix}
3763                                                 rm -f \$cf_alias\${suffix}
3764                                                 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3765                                         fi
3766                                 done
3767                         )
3768                 )
3769         elif test \$verb = removing ; then
3770                 test -f \$cf_target && (
3771                         echo \$verb \$cf_target
3772                         rm -f \$cf_target
3773                 )
3774                 test -d \$cf_subdir\${section} &&
3775                 test -n "\$aliases" && (
3776                         cd \$cf_subdir\${section} && (
3777                                 for cf_alias in \$aliases
3778                                 do
3779                                         if test \$section = 1 ; then
3780                                                 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3781                                         fi
3782
3783                                         echo .. \$verb alias \$cf_alias\${suffix}
3784                                         rm -f \$cf_alias\${suffix}
3785                                 done
3786                         )
3787                 )
3788         else
3789 #               echo ".hy 0"
3790                 cat \$TMP
3791         fi
3792         ;;
3793 esac
3794 done
3795
3796 if test $cf_inboth = yes ; then
3797 if test \$form != format ; then
3798         sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3799 fi
3800 fi
3801
3802 exit 0
3803 CF_EOF
3804 chmod 755 $cf_edit_man
3805
3806 ])dnl
3807 dnl ---------------------------------------------------------------------------
3808 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
3809 dnl -----------
3810 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
3811 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
3812 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3813 AC_DEFUN([CF_MATH_LIB],
3814 [
3815 AC_CACHE_CHECK(if -lm needed for math functions,
3816         cf_cv_need_libm,[
3817         AC_TRY_LINK([
3818         #include <stdio.h>
3819         #include <math.h>
3820         ],
3821         [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
3822         [cf_cv_need_libm=no],
3823         [cf_cv_need_libm=yes])])
3824 if test "$cf_cv_need_libm" = yes
3825 then
3826 ifelse($1,,[
3827         CF_ADD_LIB(m)
3828 ],[$1=-lm])
3829 fi
3830 ])
3831 dnl ---------------------------------------------------------------------------
3832 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3833 dnl ----------------------
3834 dnl Check if the file-system supports mixed-case filenames.  If we're able to
3835 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3836 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3837 [
3838 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3839 if test "$cross_compiling" = yes ; then
3840         case $target_alias in #(vi
3841         *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3842                 cf_cv_mixedcase=no
3843                 ;;
3844         *)
3845                 cf_cv_mixedcase=yes
3846                 ;;
3847         esac
3848 else
3849         rm -f conftest CONFTEST
3850         echo test >conftest
3851         if test -f CONFTEST ; then
3852                 cf_cv_mixedcase=no
3853         else
3854                 cf_cv_mixedcase=yes
3855         fi
3856         rm -f conftest CONFTEST
3857 fi
3858 ])
3859 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3860 ])dnl
3861 dnl ---------------------------------------------------------------------------
3862 dnl CF_MKSTEMP version: 6 updated: 2010/05/22 14:44:30
3863 dnl ----------
3864 dnl Check for a working mkstemp.  This creates two files, checks that they are
3865 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3866 AC_DEFUN([CF_MKSTEMP],[
3867 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3868 rm -f conftest*
3869 AC_TRY_RUN([
3870 #include <sys/types.h>
3871 #include <stdlib.h>
3872 #include <stdio.h>
3873 #include <string.h>
3874 #include <sys/stat.h>
3875 int main()
3876 {
3877         char *tmpl = "conftestXXXXXX";
3878         char name[2][80];
3879         int n;
3880         int result = 0;
3881         int fd;
3882         struct stat sb;
3883
3884         umask(077);
3885         for (n = 0; n < 2; ++n) {
3886                 strcpy(name[n], tmpl);
3887                 if ((fd = mkstemp(name[n])) >= 0) {
3888                         if (!strcmp(name[n], tmpl)
3889                          || stat(name[n], &sb) != 0
3890                          || (sb.st_mode & S_IFMT) != S_IFREG
3891                          || (sb.st_mode & 077) != 0) {
3892                                 result = 1;
3893                         }
3894                         close(fd);
3895                 }
3896         }
3897         if (result == 0
3898          && !strcmp(name[0], name[1]))
3899                 result = 1;
3900         ${cf_cv_main_return:-return}(result);
3901 }
3902 ],[cf_cv_func_mkstemp=yes
3903 ],[cf_cv_func_mkstemp=no
3904 ],[AC_CHECK_FUNC(mkstemp)
3905 ])
3906 ])
3907 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
3908         AC_DEFINE(HAVE_MKSTEMP)
3909 fi
3910 ])dnl
3911 dnl ---------------------------------------------------------------------------
3912 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3913 dnl ----------
3914 dnl Write a debug message to config.log, along with the line number in the
3915 dnl configure script.
3916 AC_DEFUN([CF_MSG_LOG],[
3917 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3918 ])dnl
3919 dnl ---------------------------------------------------------------------------
3920 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3921 dnl ----------------
3922 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3923 dnl warn about this.
3924 AC_DEFUN([CF_NCURSES_ABI_6],[
3925 if test "${with_abi_version+set}" != set; then
3926         case $cf_cv_rel_version in
3927         5.*)
3928                 cf_cv_rel_version=6.0
3929                 cf_cv_abi_version=6
3930                 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3931                 ;;
3932         esac
3933 fi
3934 ])dnl
3935 dnl ---------------------------------------------------------------------------
3936 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3937 dnl ------------------
3938 dnl see CF_WITH_NO_LEAKS
3939 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3940 AC_MSG_CHECKING(if you want to use $1 for testing)
3941 AC_ARG_WITH($1,
3942         [$2],
3943         [AC_DEFINE($3)ifelse([$4],,[
3944          $4
3945 ])
3946         : ${with_cflags:=-g}
3947         : ${with_no_leaks:=yes}
3948          with_$1=yes],
3949         [with_$1=])
3950 AC_MSG_RESULT(${with_$1:-no})
3951
3952 case .$with_cflags in #(vi
3953 .*-g*)
3954         case .$CFLAGS in #(vi
3955         .*-g*) #(vi
3956                 ;;
3957         *)
3958                 CF_ADD_CFLAGS([-g])
3959                 ;;
3960         esac
3961         ;;
3962 esac
3963 ])dnl
3964 dnl ---------------------------------------------------------------------------
3965 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3966 dnl ----------------
3967 dnl Check if the given variable is a number.  If not, report an error.
3968 dnl $1 is the variable
3969 dnl $2 is the message
3970 AC_DEFUN([CF_NUMBER_SYNTAX],[
3971 if test -n "$1" ; then
3972   case $1 in #(vi
3973   [[0-9]]*) #(vi
3974         ;;
3975   *)
3976         AC_MSG_ERROR($2 is not a number: $1)
3977         ;;
3978   esac
3979 else
3980   AC_MSG_ERROR($2 value is empty)
3981 fi
3982 ])dnl
3983 dnl ---------------------------------------------------------------------------
3984 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3985 dnl -------------
3986 dnl Compute the object-directory name from the given model name
3987 AC_DEFUN([CF_OBJ_SUBDIR],
3988 [
3989         case $1 in
3990         libtool) $2='obj_lo'  ;;
3991         normal)  $2='objects' ;;
3992         debug)   $2='obj_g' ;;
3993         profile) $2='obj_p' ;;
3994         shared)
3995                 case $cf_cv_system_name in #(vi
3996                 cygwin) #(vi
3997                         $2='objects' ;;
3998                 *)
3999                         $2='obj_s' ;;
4000                 esac
4001         esac
4002 ])dnl
4003 dnl ---------------------------------------------------------------------------
4004 dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
4005 dnl ----------
4006 dnl Provide a value for the $PATH and similar separator
4007 AC_DEFUN([CF_PATHSEP],
4008 [
4009         case $cf_cv_system_name in
4010         os2*)   PATH_SEPARATOR=';'  ;;
4011         *)      PATH_SEPARATOR=':'  ;;
4012         esac
4013 ifelse([$1],,,[$1=$PATH_SEPARATOR])
4014         AC_SUBST(PATH_SEPARATOR)
4015 ])dnl
4016 dnl ---------------------------------------------------------------------------
4017 dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
4018 dnl --------------
4019 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
4020 dnl begins with one of the prefix/exec_prefix variables, and then again if the
4021 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
4022 dnl delayed evaluation of those symbols.
4023 AC_DEFUN([CF_PATH_SYNTAX],[
4024 if test "x$prefix" != xNONE; then
4025   cf_path_syntax="$prefix"
4026 else
4027   cf_path_syntax="$ac_default_prefix"
4028 fi
4029
4030 case ".[$]$1" in #(vi
4031 .\[$]\(*\)*|.\'*\'*) #(vi
4032   ;;
4033 ..|./*|.\\*) #(vi
4034   ;;
4035 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
4036   ;;
4037 .\[$]{*prefix}*) #(vi
4038   eval $1="[$]$1"
4039   case ".[$]$1" in #(vi
4040   .NONE/*)
4041     $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4042     ;;
4043   esac
4044   ;; #(vi
4045 .no|.NONE/*)
4046   $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
4047   ;;
4048 *)
4049   ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
4050   ;;
4051 esac
4052 ])dnl
4053 dnl ---------------------------------------------------------------------------
4054 dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
4055 dnl -------------
4056 dnl Check for the package-config program, unless disabled by command-line.
4057 AC_DEFUN([CF_PKG_CONFIG],
4058 [
4059 AC_MSG_CHECKING(if you want to use pkg-config)
4060 AC_ARG_WITH(pkg-config,
4061         [  --with-pkg-config{=path} enable/disable use of pkg-config],
4062         [cf_pkg_config=$withval],
4063         [cf_pkg_config=yes])
4064 AC_MSG_RESULT($cf_pkg_config)
4065
4066 case $cf_pkg_config in #(vi
4067 no) #(vi
4068         PKG_CONFIG=none
4069         ;;
4070 yes) #(vi
4071         AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
4072         ;;
4073 *)
4074         PKG_CONFIG=$withval
4075         ;;
4076 esac
4077
4078 test -z "$PKG_CONFIG" && PKG_CONFIG=none
4079 if test "$PKG_CONFIG" != none ; then
4080         CF_PATH_SYNTAX(PKG_CONFIG)
4081 fi
4082
4083 AC_SUBST(PKG_CONFIG)
4084 ])dnl
4085 dnl ---------------------------------------------------------------------------
4086 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
4087 dnl -----------------
4088 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
4089 dnl
4090 dnl     POSIX.1-1990                            _POSIX_SOURCE
4091 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
4092 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
4093 dnl             Bindings Option
4094 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
4095 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
4096 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
4097 dnl
4098 dnl Parameters:
4099 dnl     $1 is the nominal value for _POSIX_C_SOURCE
4100 AC_DEFUN([CF_POSIX_C_SOURCE],
4101 [
4102 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
4103
4104 cf_save_CFLAGS="$CFLAGS"
4105 cf_save_CPPFLAGS="$CPPFLAGS"
4106
4107 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4108 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4109
4110 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4111         CF_MSG_LOG(if the symbol is already defined go no further)
4112         AC_TRY_COMPILE([#include <sys/types.h>],[
4113 #ifndef _POSIX_C_SOURCE
4114 make an error
4115 #endif],
4116         [cf_cv_posix_c_source=no],
4117         [cf_want_posix_source=no
4118          case .$cf_POSIX_C_SOURCE in #(vi
4119          .[[12]]??*) #(vi
4120                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4121                 ;;
4122          .2) #(vi
4123                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4124                 cf_want_posix_source=yes
4125                 ;;
4126          .*)
4127                 cf_want_posix_source=yes
4128                 ;;
4129          esac
4130          if test "$cf_want_posix_source" = yes ; then
4131                 AC_TRY_COMPILE([#include <sys/types.h>],[
4132 #ifdef _POSIX_SOURCE
4133 make an error
4134 #endif],[],
4135                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4136          fi
4137          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4138          CFLAGS="$cf_trim_CFLAGS"
4139          CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
4140          CF_MSG_LOG(if the second compile does not leave our definition intact error)
4141          AC_TRY_COMPILE([#include <sys/types.h>],[
4142 #ifndef _POSIX_C_SOURCE
4143 make an error
4144 #endif],,
4145          [cf_cv_posix_c_source=no])
4146          CFLAGS="$cf_save_CFLAGS"
4147          CPPFLAGS="$cf_save_CPPFLAGS"
4148         ])
4149 ])
4150
4151 if test "$cf_cv_posix_c_source" != no ; then
4152         CFLAGS="$cf_trim_CFLAGS"
4153         CPPFLAGS="$cf_trim_CPPFLAGS"
4154         CF_ADD_CFLAGS($cf_cv_posix_c_source)
4155 fi
4156
4157 ])dnl
4158 dnl ---------------------------------------------------------------------------
4159 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
4160 dnl ------------
4161 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
4162 dnl
4163 dnl $1 = symbol to test
4164 dnl $2 = value (if any) to use for a predefinition
4165 AC_DEFUN([CF_PREDEFINE],
4166 [
4167 AC_MSG_CHECKING(if we must define $1)
4168 AC_TRY_COMPILE([#include <sys/types.h>
4169 ],[
4170 #ifndef $1
4171 make an error
4172 #endif],[cf_result=no],[cf_result=yes])
4173 AC_MSG_RESULT($cf_result)
4174
4175 if test "$cf_result" = yes ; then
4176         CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
4177 elif test "x$2" != "x" ; then
4178         AC_MSG_CHECKING(checking for compatible value versus $2)
4179         AC_TRY_COMPILE([#include <sys/types.h>
4180 ],[
4181 #if $1-$2 < 0
4182 make an error
4183 #endif],[cf_result=yes],[cf_result=no])
4184         AC_MSG_RESULT($cf_result)
4185         if test "$cf_result" = no ; then
4186                 # perhaps we can override it - try...
4187                 CPPFLAGS="$CPPFLAGS -D$1=$2"
4188         fi
4189 fi
4190 ])dnl
4191 dnl ---------------------------------------------------------------------------
4192 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
4193 dnl ------------
4194 dnl Append definitions and rules for the given programs to the subdirectory
4195 dnl Makefiles, and the recursion rule for the top-level Makefile.
4196 dnl
4197 dnl parameters
4198 dnl     $1 = script to run
4199 dnl     $2 = list of subdirectories
4200 dnl
4201 dnl variables
4202 dnl     $AWK
4203 AC_DEFUN([CF_PRG_RULES],
4204 [
4205 for cf_dir in $2
4206 do
4207         if test ! -d $srcdir/$cf_dir; then
4208                 continue
4209         elif test -f $srcdir/$cf_dir/programs; then
4210                 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
4211         fi
4212 done
4213
4214 ])dnl
4215 dnl ---------------------------------------------------------------------------
4216 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4217 dnl ----------
4218 dnl Check for archiver "ar".
4219 AC_DEFUN([CF_PROG_AR],[
4220 AC_CHECK_TOOL(AR, ar, ar)
4221 ])
4222 dnl ---------------------------------------------------------------------------
4223 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
4224 dnl -----------
4225 dnl Check for awk, ensure that the check found something.
4226 AC_DEFUN([CF_PROG_AWK],
4227 [
4228 AC_PROG_AWK
4229 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
4230 ])dnl
4231 dnl ---------------------------------------------------------------------------
4232 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
4233 dnl --------------
4234 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
4235 dnl the output file can be renamed, and allows for a shell variable that can
4236 dnl be used later.  The parameter is either CC or CXX.  The result is the
4237 dnl cache variable:
4238 dnl     $cf_cv_prog_CC_c_o
4239 dnl     $cf_cv_prog_CXX_c_o
4240 AC_DEFUN([CF_PROG_CC_C_O],
4241 [AC_REQUIRE([AC_PROG_CC])dnl
4242 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
4243 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
4244 [
4245 cat > conftest.$ac_ext <<CF_EOF
4246 #include <stdio.h>
4247 int main()
4248 {
4249         ${cf_cv_main_return:-return}(0);
4250 }
4251 CF_EOF
4252 # We do the test twice because some compilers refuse to overwrite an
4253 # existing .o file with -o, though they will create one.
4254 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
4255 if AC_TRY_EVAL(ac_try) &&
4256   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
4257 then
4258   eval cf_cv_prog_$1_c_o=yes
4259 else
4260   eval cf_cv_prog_$1_c_o=no
4261 fi
4262 rm -f conftest*
4263 ])dnl
4264 if test $cf_cv_prog_$1_c_o = yes; then
4265   AC_MSG_RESULT([yes])
4266 else
4267   AC_MSG_RESULT([no])
4268 fi
4269 ])dnl
4270 dnl ---------------------------------------------------------------------------
4271 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
4272 dnl --------------
4273 dnl Check if C (preprocessor) -U and -D options are processed in the order
4274 dnl given rather than by type of option.  Some compilers insist on apply all
4275 dnl of the -U options after all of the -D options.  Others allow mixing them,
4276 dnl and may predefine symbols that conflict with those we define.
4277 AC_DEFUN([CF_PROG_CC_U_D],
4278 [
4279 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
4280         cf_save_CPPFLAGS="$CPPFLAGS"
4281         CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
4282         AC_TRY_COMPILE([],[
4283 #ifndef U_D_OPTIONS
4284 make an undefined-error
4285 #endif
4286 #ifdef  D_U_OPTIONS
4287 make a defined-error
4288 #endif
4289         ],[
4290         cf_cv_cc_u_d_options=yes],[
4291         cf_cv_cc_u_d_options=no])
4292         CPPFLAGS="$cf_save_CPPFLAGS"
4293 ])
4294 ])dnl
4295 dnl ---------------------------------------------------------------------------
4296 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4297 dnl -------------
4298 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4299 dnl This macro adds a check to ensure the script found something.
4300 AC_DEFUN([CF_PROG_EGREP],
4301 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4302    [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4303     then ac_cv_prog_egrep='grep -E'
4304     else ac_cv_prog_egrep='egrep'
4305     fi])
4306  EGREP=$ac_cv_prog_egrep
4307  AC_SUBST([EGREP])
4308 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4309 ])dnl
4310 dnl ---------------------------------------------------------------------------
4311 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4312 dnl -----------
4313 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4314 AC_DEFUN([CF_PROG_EXT],
4315 [
4316 AC_REQUIRE([CF_CHECK_CACHE])
4317 case $cf_cv_system_name in
4318 os2*)
4319     CFLAGS="$CFLAGS -Zmt"
4320     CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4321     CXXFLAGS="$CXXFLAGS -Zmt"
4322     # autoconf's macro sets -Zexe and suffix both, which conflict:w
4323     LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4324     ac_cv_exeext=.exe
4325     ;;
4326 esac
4327
4328 AC_EXEEXT
4329 AC_OBJEXT
4330
4331 PROG_EXT="$EXEEXT"
4332 AC_SUBST(PROG_EXT)
4333 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4334 ])dnl
4335 dnl ---------------------------------------------------------------------------
4336 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4337 dnl ---------------
4338 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
4339 dnl misc/tabset install won't work properly.  Usually this happens only when
4340 dnl using the fallback mkinstalldirs script
4341 AC_DEFUN([CF_PROG_INSTALL],
4342 [AC_PROG_INSTALL
4343 case $INSTALL in
4344 /*)
4345   ;;
4346 *)
4347   CF_DIRNAME(cf_dir,$INSTALL)
4348   test -z "$cf_dir" && cf_dir=.
4349   INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4350   ;;
4351 esac
4352 ])dnl
4353 dnl ---------------------------------------------------------------------------
4354 dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
4355 dnl ----------------
4356 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4357 dnl and then used in the install.
4358 AC_DEFUN([CF_PROG_LDCONFIG],[
4359 if test "$cross_compiling" = yes ; then
4360   LDCONFIG=:
4361 else
4362 case "$cf_cv_system_name" in #(vi
4363 dragonfly*|freebsd*) #(vi
4364   test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4365   ;;
4366 *) LDPATH=$PATH:/sbin:/usr/sbin
4367   AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4368   ;;
4369 esac
4370 fi
4371 AC_SUBST(LDCONFIG)
4372 ])dnl
4373 dnl ---------------------------------------------------------------------------
4374 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
4375 dnl ------------
4376 AC_DEFUN([CF_PROG_LINT],
4377 [
4378 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
4379 AC_SUBST(LINT_OPTS)
4380 ])dnl
4381 dnl ---------------------------------------------------------------------------
4382 dnl CF_REGEX version: 7 updated: 2010/05/29 16:31:02
4383 dnl --------
4384 dnl Attempt to determine if we've got one of the flavors of regular-expression
4385 dnl code that we can support.
4386 AC_DEFUN([CF_REGEX],
4387 [
4388
4389 cf_regex_func=no
4390
4391 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
4392         for cf_regex_lib in regex re
4393         do
4394                 AC_CHECK_LIB($cf_regex_lib,regcomp,[
4395                                 CF_ADD_LIB($cf_regex_lib)
4396                                 cf_regex_func=regcomp
4397                                 break])
4398         done
4399 ])
4400
4401 if test "$cf_regex_func" = no ; then
4402         AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
4403                 AC_CHECK_LIB(gen,compile,[
4404                                 CF_ADD_LIB(gen)
4405                                 cf_regex_func=compile])])
4406 fi
4407
4408 if test "$cf_regex_func" = no ; then
4409         AC_MSG_WARN(cannot find regular expression library)
4410 fi
4411
4412 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
4413
4414 cf_cv_regex_hdrs=no
4415 case $cf_regex_func in #(vi
4416 compile) #(vi
4417         for cf_regex_hdr in regexp.h regexpr.h
4418         do
4419                 AC_TRY_LINK([#include <$cf_regex_hdr>],[
4420                         char *p = compile("", "", "", 0);
4421                         int x = step("", "");
4422                 ],[
4423                         cf_cv_regex_hdrs=$cf_regex_hdr
4424                         break
4425                 ])
4426         done
4427         ;;
4428 *)
4429         for cf_regex_hdr in regex.h
4430         do
4431                 AC_TRY_LINK([#include <sys/types.h>
4432 #include <$cf_regex_hdr>],[
4433                         regex_t *p;
4434                         int x = regcomp(p, "", 0);
4435                         int y = regexec(p, "", 0, 0, 0);
4436                         regfree(p);
4437                 ],[
4438                         cf_cv_regex_hdrs=$cf_regex_hdr
4439                         break
4440                 ])
4441         done
4442         ;;
4443 esac
4444
4445 ])
4446
4447 case $cf_cv_regex_hdrs in #(vi
4448     no)        AC_MSG_WARN(no regular expression header found) ;; #(vi
4449     regex.h)   AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
4450     regexp.h)  AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
4451     regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4452 esac
4453 ])dnl
4454 dnl ---------------------------------------------------------------------------
4455 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
4456 dnl ----------------
4457 dnl Remove all -U and -D options that refer to the given symbol from a list
4458 dnl of C compiler options.  This works around the problem that not all
4459 dnl compilers process -U and -D options from left-to-right, so a -U option
4460 dnl cannot be used to cancel the effect of a preceding -D option.
4461 dnl
4462 dnl $1 = target (which could be the same as the source variable)
4463 dnl $2 = source (including '$')
4464 dnl $3 = symbol to remove
4465 define([CF_REMOVE_DEFINE],
4466 [
4467 $1=`echo "$2" | \
4468         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
4469                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
4470 ])dnl
4471 dnl ---------------------------------------------------------------------------
4472 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4473 dnl -------------
4474 dnl Remove the given library from the symbol
4475 dnl
4476 dnl $1 = target (which could be the same as the source variable)
4477 dnl $2 = source (including '$')
4478 dnl $3 = library to remove
4479 define([CF_REMOVE_LIB],
4480 [
4481 # remove $3 library from $2
4482 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
4483 ])dnl
4484 dnl ---------------------------------------------------------------------------
4485 dnl CF_RPATH_HACK version: 8 updated: 2010/04/17 15:38:58
4486 dnl -------------
4487 AC_DEFUN([CF_RPATH_HACK],
4488 [
4489 AC_REQUIRE([CF_LD_RPATH_OPT])
4490 AC_MSG_CHECKING(for updated LDFLAGS)
4491 if test -n "$LD_RPATH_OPT" ; then
4492         AC_MSG_RESULT(maybe)
4493
4494         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
4495         cf_rpath_list="/usr/lib /lib"
4496         if test "$cf_ldd_prog" != no
4497         then
4498 AC_TRY_LINK([#include <stdio.h>],
4499                 [printf("Hello");],
4500                 [cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[     ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`])
4501         fi
4502
4503         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4504
4505         CF_RPATH_HACK_2(LDFLAGS)
4506         CF_RPATH_HACK_2(LIBS)
4507
4508         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4509 fi
4510 AC_SUBST(EXTRA_LDFLAGS)
4511 ])dnl
4512 dnl ---------------------------------------------------------------------------
4513 dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
4514 dnl ---------------
4515 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
4516 dnl EXTRA_LDFLAGS for each -L option found.
4517 dnl
4518 dnl $cf_rpath_list contains a list of directories to ignore.
4519 dnl
4520 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
4521 dnl      but LIBS often has misplaced -L options.
4522 AC_DEFUN([CF_RPATH_HACK_2],
4523 [
4524 CF_VERBOSE(...checking $1 [$]$1)
4525
4526 cf_rpath_dst=
4527 for cf_rpath_src in [$]$1
4528 do
4529         case $cf_rpath_src in #(vi
4530         -L*) #(vi
4531
4532                 # check if this refers to a directory which we will ignore
4533                 cf_rpath_skip=no
4534                 if test -n "$cf_rpath_list"
4535                 then
4536                         for cf_rpath_item in $cf_rpath_list
4537                         do
4538                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
4539                                 then
4540                                         cf_rpath_skip=yes
4541                                         break
4542                                 fi
4543                         done
4544                 fi
4545
4546                 if test "$cf_rpath_skip" = no
4547                 then
4548                         # transform the option
4549                         if test "$LD_RPATH_OPT" = "-R " ; then
4550                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
4551                         else
4552                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
4553                         fi
4554
4555                         # if we have not already added this, add it now
4556                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
4557                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
4558                         then
4559                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
4560                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4561                         fi
4562                 fi
4563                 ;;
4564         esac
4565         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4566 done
4567 $1=$cf_rpath_dst
4568
4569 CF_VERBOSE(...checked $1 [$]$1)
4570 AC_SUBST(EXTRA_LDFLAGS)
4571 ])dnl
4572 dnl ---------------------------------------------------------------------------
4573 dnl CF_SHARED_OPTS version: 62 updated: 2010/03/28 16:12:30
4574 dnl --------------
4575 dnl --------------
4576 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4577 dnl library.
4578 dnl
4579 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4580 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4581 dnl We avoid compiling-in a ../lib path for the shared library since that can
4582 dnl lead to unexpected results at runtime.
4583 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4584 dnl are compiled in ../../lib
4585 dnl
4586 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4587 dnl to install symbolic links to the rel/abi versions of shared libraries.
4588 dnl
4589 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4590 dnl version when making symbolic links.
4591 dnl
4592 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4593 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4594 dnl (ex: libncurses.so.<ver>).
4595 dnl
4596 dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
4597 AC_DEFUN([CF_SHARED_OPTS],
4598 [
4599         AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4600         AC_REQUIRE([CF_LD_RPATH_OPT])
4601         LOCAL_LDFLAGS=
4602         LOCAL_LDFLAGS2=
4603         LD_SHARED_OPTS=
4604         INSTALL_LIB="-m 644"
4605
4606         cf_cv_do_symlinks=no
4607         cf_ld_rpath_opt=
4608         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
4609
4610         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4611         AC_ARG_WITH(shlib-version,
4612         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
4613         [test -z "$withval" && withval=auto
4614         case $withval in #(vi
4615         yes) #(vi
4616                 cf_cv_shlib_version=auto
4617                 ;;
4618         rel|abi|auto|no) #(vi
4619                 cf_cv_shlib_version=$withval
4620                 ;;
4621         *)
4622                 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4623                 ;;
4624         esac
4625         ],[cf_cv_shlib_version=auto])
4626         AC_MSG_RESULT($cf_cv_shlib_version)
4627
4628         cf_cv_rm_so_locs=no
4629
4630         # Some less-capable ports of gcc support only -fpic
4631         CC_SHARED_OPTS=
4632         if test "$GCC" = yes
4633         then
4634                 AC_MSG_CHECKING(which $CC option to use)
4635                 cf_save_CFLAGS="$CFLAGS"
4636                 for CC_SHARED_OPTS in -fPIC -fpic ''
4637                 do
4638                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4639                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4640                 done
4641                 AC_MSG_RESULT($CC_SHARED_OPTS)
4642                 CFLAGS="$cf_save_CFLAGS"
4643         fi
4644
4645         cf_cv_shlib_version_infix=no
4646
4647         case $cf_cv_system_name in #(vi
4648         aix[[56]]*) #(vi
4649                 if test "$GCC" = yes; then
4650                         CC_SHARED_OPTS=
4651                         MK_SHARED_LIB="$(CC) -shared"
4652                 fi
4653                 ;;
4654         beos*) #(vi
4655                 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4656                 ;;
4657         cygwin*) #(vi
4658                 CC_SHARED_OPTS=
4659                 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4660                 cf_cv_shlib_version=cygdll
4661                 cf_cv_shlib_version_infix=cygdll
4662                 cat >mk_shared_lib.sh <<-CF_EOF
4663                 #!/bin/sh
4664                 SHARED_LIB=\[$]1
4665                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4666                 shift
4667                 cat <<-EOF
4668                 Linking shared library
4669                 ** SHARED_LIB \[$]SHARED_LIB
4670                 ** IMPORT_LIB \[$]IMPORT_LIB
4671 EOF
4672                 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4673 CF_EOF
4674                 chmod +x mk_shared_lib.sh
4675                 ;;
4676         darwin*) #(vi
4677                 EXTRA_CFLAGS="-no-cpp-precomp"
4678                 CC_SHARED_OPTS="-dynamic"
4679                 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4680                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4681                 cf_cv_shlib_version_infix=yes
4682                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4683                         cf_save_LDFLAGS=$LDFLAGS
4684                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4685                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4686                                 LDFLAGS=$cf_save_LDFLAGS])
4687                 if test $cf_cv_ldflags_search_paths_first = yes; then
4688                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4689                 fi
4690                 ;;
4691         hpux*) #(vi
4692                 # (tested with gcc 2.7.2 -- I don't have c89)
4693                 if test "$GCC" = yes; then
4694                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4695                 else
4696                         CC_SHARED_OPTS='+Z'
4697                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
4698                 fi
4699                 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4700                 # HP-UX shared libraries must be executable, and should be
4701                 # readonly to exploit a quirk in the memory manager.
4702                 INSTALL_LIB="-m 555"
4703                 ;;
4704         irix*) #(vi
4705                 if test "$cf_cv_enable_rpath" = yes ; then
4706                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4707                 fi
4708                 # tested with IRIX 5.2 and 'cc'.
4709                 if test "$GCC" != yes; then
4710                         CC_SHARED_OPTS='-KPIC'
4711                         MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4712                 else
4713                         MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4714                 fi
4715                 cf_cv_rm_so_locs=yes
4716                 ;;
4717         linux*|gnu*|k*bsd*-gnu) #(vi
4718                 if test "$DFT_LWR_MODEL" = "shared" ; then
4719                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4720                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4721                 fi
4722                 if test "$cf_cv_enable_rpath" = yes ; then
4723                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4724                 fi
4725                 CF_SHARED_SONAME
4726                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4727                 ;;
4728         openbsd[[2-9]].*) #(vi
4729                 if test "$DFT_LWR_MODEL" = "shared" ; then
4730                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4731                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4732                 fi
4733                 if test "$cf_cv_enable_rpath" = yes ; then
4734                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4735                 fi
4736                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4737                 CF_SHARED_SONAME
4738                 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4739                 ;;
4740         nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
4741                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4742                 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4743                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4744                 ;;
4745         freebsd*) #(vi
4746                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4747                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4748                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4749                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
4750                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4751                 fi
4752                 CF_SHARED_SONAME
4753                 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
4754                 ;;
4755         netbsd*) #(vi
4756                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4757                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4758                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4759                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4760                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4761                         if test "$cf_cv_shlib_version" = auto; then
4762                         if test -f /usr/libexec/ld.elf_so; then
4763                                 cf_cv_shlib_version=abi
4764                         else
4765                                 cf_cv_shlib_version=rel
4766                         fi
4767                         fi
4768                         CF_SHARED_SONAME
4769                         MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4770                 else
4771                         MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
4772                 fi
4773                 ;;
4774         osf*|mls+*) #(vi
4775                 # tested with OSF/1 V3.2 and 'cc'
4776                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4777                 # link with shared libs).
4778                 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4779                 case $host_os in #(vi
4780                 osf4*)
4781                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4782                         ;;
4783                 esac
4784                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4785                 if test "$DFT_LWR_MODEL" = "shared" ; then
4786                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4787                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4788                 fi
4789                 cf_cv_rm_so_locs=yes
4790                 ;;
4791         sco3.2v5*)  # (also uw2* and UW7: hops 13-Apr-98
4792                 # tested with osr5.0.5
4793                 if test "$GCC" != yes; then
4794                         CC_SHARED_OPTS='-belf -KPIC'
4795                 fi
4796                 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4797                 if test "$cf_cv_enable_rpath" = yes ; then
4798                         # only way is to set LD_RUN_PATH but no switch for it
4799                         RUN_PATH=$libdir
4800                 fi
4801                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4802                 LINK_PROGS='LD_RUN_PATH=${libdir}'
4803                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4804                 ;;
4805         sunos4*) #(vi
4806                 # tested with SunOS 4.1.1 and gcc 2.7.0
4807                 if test "$GCC" != yes; then
4808                         CC_SHARED_OPTS='-KPIC'
4809                 fi
4810                 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4811                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4812                 ;;
4813         solaris2*) #(vi
4814                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4815                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4816                 if test "$DFT_LWR_MODEL" = "shared" ; then
4817                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4818                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4819                 fi
4820                 if test "$cf_cv_enable_rpath" = yes ; then
4821                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
4822                 fi
4823                 CF_SHARED_SONAME
4824                 if test "$GCC" != yes; then
4825                         cf_save_CFLAGS="$CFLAGS"
4826                         for cf_shared_opts in -xcode=pic13 -xcode=pic32 -Kpic -KPIC -O
4827                         do
4828                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4829                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
4830                         done
4831                         CFLAGS="$cf_save_CFLAGS"
4832                         CC_SHARED_OPTS=$cf_shared_opts
4833                         MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4834                 else
4835                         MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4836                 fi
4837                 ;;
4838         sysv5uw7*|unix_sv*) #(vi
4839                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4840                 if test "$GCC" != yes; then
4841                         CC_SHARED_OPTS='-KPIC'
4842                 fi
4843                 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4844                 ;;
4845         *)
4846                 CC_SHARED_OPTS='unknown'
4847                 MK_SHARED_LIB='echo unknown'
4848                 ;;
4849         esac
4850
4851         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4852         case "$cf_cv_shlib_version" in #(vi
4853         rel|abi)
4854                 case "$MK_SHARED_LIB" in #(vi
4855                 *'-o $[@]') #(vi
4856                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4857                         ;;
4858                 *)
4859                         AC_MSG_WARN(ignored --with-shlib-version)
4860                         ;;
4861                 esac
4862                 ;;
4863         esac
4864
4865         if test -n "$cf_ld_rpath_opt" ; then
4866                 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4867         fi
4868
4869         AC_SUBST(CC_SHARED_OPTS)
4870         AC_SUBST(LD_RPATH_OPT)
4871         AC_SUBST(LD_SHARED_OPTS)
4872         AC_SUBST(MK_SHARED_LIB)
4873         AC_SUBST(LINK_PROGS)
4874         AC_SUBST(LINK_TESTS)
4875         AC_SUBST(EXTRA_LDFLAGS)
4876         AC_SUBST(LOCAL_LDFLAGS)
4877         AC_SUBST(LOCAL_LDFLAGS2)
4878         AC_SUBST(INSTALL_LIB)
4879 ])dnl
4880 dnl ---------------------------------------------------------------------------
4881 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4882 dnl ----------------
4883 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4884 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4885 dnl option.
4886 dnl
4887 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4888 dnl If missing, use "rel".
4889 define([CF_SHARED_SONAME],
4890 [
4891         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4892         if test "$cf_cv_shlib_version" = rel; then
4893                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4894         else
4895                 cf_cv_shared_soname='`basename $[@]`'
4896         fi
4897 ])
4898 dnl ---------------------------------------------------------------------------
4899 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4900 dnl -----------
4901 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4902 dnl programs need this test).
4903 dnl
4904 dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
4905 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
4906 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4907 dnl break that part of the interface as well.
4908 AC_DEFUN([CF_SIGWINCH],
4909 [
4910 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4911         AC_TRY_COMPILE([
4912 #include <sys/types.h>
4913 #include <sys/signal.h>
4914 ],[int x = SIGWINCH],
4915         [cf_cv_define_sigwinch=yes],
4916         [AC_TRY_COMPILE([
4917 #undef _XOPEN_SOURCE
4918 #undef _POSIX_SOURCE
4919 #undef _POSIX_C_SOURCE
4920 #include <sys/types.h>
4921 #include <sys/signal.h>
4922 ],[int x = SIGWINCH],
4923         [cf_cv_define_sigwinch=maybe],
4924         [cf_cv_define_sigwinch=no])
4925 ])
4926 ])
4927
4928 if test "$cf_cv_define_sigwinch" = maybe ; then
4929 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4930 cf_cv_fixup_sigwinch=unknown
4931 cf_sigwinch=32
4932 while test $cf_sigwinch != 1
4933 do
4934         AC_TRY_COMPILE([
4935 #undef _XOPEN_SOURCE
4936 #undef _POSIX_SOURCE
4937 #undef _POSIX_C_SOURCE
4938 #include <sys/types.h>
4939 #include <sys/signal.h>
4940 ],[
4941 #if SIGWINCH != $cf_sigwinch
4942 make an error
4943 #endif
4944 int x = SIGWINCH],
4945         [cf_cv_fixup_sigwinch=$cf_sigwinch
4946          break])
4947
4948 cf_sigwinch=`expr $cf_sigwinch - 1`
4949 done
4950 ])
4951
4952         if test "$cf_cv_fixup_sigwinch" != unknown ; then
4953                 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4954         fi
4955 fi
4956 ])dnl
4957 dnl ---------------------------------------------------------------------------
4958 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4959 dnl ---------------
4960 dnl signal handler, but there are some gcc depedencies in that recommendation.
4961 dnl Try anyway.
4962 AC_DEFUN([CF_SIG_ATOMIC_T],
4963 [
4964 AC_MSG_CHECKING(for signal global datatype)
4965 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4966         for cf_type in \
4967                 "volatile sig_atomic_t" \
4968                 "sig_atomic_t" \
4969                 "int"
4970         do
4971         AC_TRY_COMPILE([
4972 #include <sys/types.h>
4973 #include <signal.h>
4974 #include <stdio.h>
4975
4976 extern $cf_type x;
4977 $cf_type x;
4978 static void handler(int sig)
4979 {
4980         x = 5;
4981 }],
4982                 [signal(SIGINT, handler);
4983                  x = 1],
4984                 [cf_cv_sig_atomic_t=$cf_type],
4985                 [cf_cv_sig_atomic_t=no])
4986                 test "$cf_cv_sig_atomic_t" != no && break
4987         done
4988         ])
4989 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4990 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4991 ])dnl
4992 dnl ---------------------------------------------------------------------------
4993 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4994 dnl -------------
4995 dnl Check for definitions & structures needed for window size-changing
4996 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4997 AC_DEFUN([CF_SIZECHANGE],
4998 [
4999 AC_REQUIRE([CF_STRUCT_TERMIOS])
5000 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
5001     cf_cv_sizechange=unknown
5002     cf_save_CPPFLAGS="$CPPFLAGS"
5003
5004 for cf_opts in "" "NEED_PTEM_H"
5005 do
5006
5007     CPPFLAGS="$cf_save_CPPFLAGS"
5008     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
5009     AC_TRY_COMPILE([#include <sys/types.h>
5010 #ifdef HAVE_TERMIOS_H
5011 #include <termios.h>
5012 #else
5013 #ifdef HAVE_TERMIO_H
5014 #include <termio.h>
5015 #endif
5016 #endif
5017 #ifdef NEED_PTEM_H
5018 /* This is a workaround for SCO:  they neglected to define struct winsize in
5019  * termios.h -- it's only in termio.h and ptem.h
5020  */
5021 #include        <sys/stream.h>
5022 #include        <sys/ptem.h>
5023 #endif
5024 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
5025 #include <sys/ioctl.h>
5026 #endif
5027 ],[
5028 #ifdef TIOCGSIZE
5029         struct ttysize win;     /* FIXME: what system is this? */
5030         int y = win.ts_lines;
5031         int x = win.ts_cols;
5032 #else
5033 #ifdef TIOCGWINSZ
5034         struct winsize win;
5035         int y = win.ws_row;
5036         int x = win.ws_col;
5037 #else
5038         no TIOCGSIZE or TIOCGWINSZ
5039 #endif /* TIOCGWINSZ */
5040 #endif /* TIOCGSIZE */
5041         ],
5042         [cf_cv_sizechange=yes],
5043         [cf_cv_sizechange=no])
5044
5045         CPPFLAGS="$cf_save_CPPFLAGS"
5046         if test "$cf_cv_sizechange" = yes ; then
5047                 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
5048                 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
5049                 break
5050         fi
5051 done
5052 ])
5053 if test "$cf_cv_sizechange" != no ; then
5054         AC_DEFINE(HAVE_SIZECHANGE)
5055         case $cf_cv_sizechange in #(vi
5056         NEED*)
5057                 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
5058                 ;;
5059         esac
5060 fi
5061 ])dnl
5062 dnl ---------------------------------------------------------------------------
5063 dnl CF_SRC_MODULES version: 20 updated: 2008/12/27 12:30:03
5064 dnl --------------
5065 dnl For each parameter, test if the source-directory exists, and if it contains
5066 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
5067 dnl use in CF_LIB_RULES.
5068 dnl
5069 dnl This uses the configured value to make the lists SRC_SUBDIRS and
5070 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
5071 AC_DEFUN([CF_SRC_MODULES],
5072 [
5073 AC_MSG_CHECKING(for src modules)
5074
5075 # dependencies and linker-arguments for test-programs
5076 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
5077 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
5078 if test "$DFT_LWR_MODEL" = "libtool"; then
5079         TEST_ARGS="${TEST_DEPS}"
5080         TEST_ARG2="${TEST_DEP2}"
5081 else
5082         TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
5083         TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
5084 fi
5085
5086 cf_cv_src_modules=
5087 for cf_dir in $1
5088 do
5089         if test -f $srcdir/$cf_dir/modules; then
5090
5091                 # We may/may not have tack in the distribution, though the
5092                 # makefile is.
5093                 if test $cf_dir = tack ; then
5094                         if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
5095                                 continue
5096                         fi
5097                 fi
5098
5099                 if test -z "$cf_cv_src_modules"; then
5100                         cf_cv_src_modules=$cf_dir
5101                 else
5102                         cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
5103                 fi
5104
5105                 # Make the ncurses_cfg.h file record the library interface files as
5106                 # well.  These are header files that are the same name as their
5107                 # directory.  Ncurses is the only library that does not follow
5108                 # that pattern.
5109                 if test $cf_dir = tack ; then
5110                         continue
5111                 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
5112                         CF_UPPER(cf_have_include,$cf_dir)
5113                         AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
5114                         AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
5115                         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
5116                         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
5117                         if test "$DFT_LWR_MODEL" = "libtool"; then
5118                                 TEST_ARGS="${TEST_DEPS}"
5119                                 TEST_ARG2="${TEST_DEP2}"
5120                         else
5121                                 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
5122                                 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
5123                         fi
5124                 fi
5125         fi
5126 done
5127 AC_MSG_RESULT($cf_cv_src_modules)
5128
5129 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
5130 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
5131
5132 AC_SUBST(TEST_ARGS)
5133 AC_SUBST(TEST_DEPS)
5134
5135 AC_SUBST(TEST_ARG2)
5136 AC_SUBST(TEST_DEP2)
5137
5138 SRC_SUBDIRS=
5139 if test "x$cf_with_manpages" != xno ; then
5140         SRC_SUBDIRS="$SRC_SUBDIRS man"
5141 fi
5142 SRC_SUBDIRS="$SRC_SUBDIRS include"
5143 for cf_dir in $cf_cv_src_modules
5144 do
5145         SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
5146 done
5147 SRC_SUBDIRS="$SRC_SUBDIRS test"
5148 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
5149 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
5150
5151 ADA_SUBDIRS=
5152 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
5153         SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
5154         ADA_SUBDIRS="gen src samples"
5155 fi
5156
5157 SUB_MAKEFILES=
5158 for cf_dir in $SRC_SUBDIRS
5159 do
5160         SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
5161 done
5162
5163 if test -n "$ADA_SUBDIRS"; then
5164         for cf_dir in $ADA_SUBDIRS
5165         do
5166                 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
5167         done
5168         AC_SUBST(ADA_SUBDIRS)
5169 fi
5170 ])dnl
5171 dnl ---------------------------------------------------------------------------
5172 dnl CF_STDCPP_LIBRARY version: 7 updated: 2010/05/29 16:31:02
5173 dnl -----------------
5174 dnl Check for -lstdc++, which is GNU's standard C++ library.
5175 AC_DEFUN([CF_STDCPP_LIBRARY],
5176 [
5177 if test -n "$GXX" ; then
5178 case $cf_cv_system_name in #(vi
5179 os2*) #(vi
5180         cf_stdcpp_libname=stdcpp
5181         ;;
5182 *)
5183         cf_stdcpp_libname=stdc++
5184         ;;
5185 esac
5186 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
5187         cf_save="$LIBS"
5188         CF_ADD_LIB($cf_stdcpp_libname)
5189 AC_TRY_LINK([
5190 #include <strstream.h>],[
5191 char buf[80];
5192 strstreambuf foo(buf, sizeof(buf))
5193 ],
5194         [cf_cv_libstdcpp=yes],
5195         [cf_cv_libstdcpp=no])
5196         LIBS="$cf_save"
5197 ])
5198 test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS)
5199 fi
5200 ])dnl
5201 dnl ---------------------------------------------------------------------------
5202 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
5203 dnl --------------
5204 dnl     Remove "-g" option from the compiler options
5205 AC_DEFUN([CF_STRIP_G_OPT],
5206 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
5207 dnl ---------------------------------------------------------------------------
5208 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5209 dnl -------------------
5210 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
5211 dnl do this if we've found the sigaction function.
5212 dnl
5213 dnl If needed, define SVR4_ACTION.
5214 AC_DEFUN([CF_STRUCT_SIGACTION],[
5215 if test "$ac_cv_func_sigaction" = yes; then
5216 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
5217 AC_TRY_COMPILE([
5218 #include <sys/types.h>
5219 #include <signal.h>],
5220         [struct sigaction act],
5221         [sigact_bad=no],
5222         [
5223 AC_TRY_COMPILE([
5224 #define _POSIX_SOURCE
5225 #include <sys/types.h>
5226 #include <signal.h>],
5227         [struct sigaction act],
5228         [sigact_bad=yes
5229          AC_DEFINE(SVR4_ACTION)],
5230          [sigact_bad=unknown])])
5231 AC_MSG_RESULT($sigact_bad)
5232 fi
5233 ])dnl
5234 dnl ---------------------------------------------------------------------------
5235 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
5236 dnl -----------------
5237 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
5238 dnl If so, define SVR4_TERMIO
5239 AC_DEFUN([CF_STRUCT_TERMIOS],[
5240 AC_CHECK_HEADERS( \
5241 termio.h \
5242 termios.h \
5243 unistd.h \
5244 )
5245 if test "$ISC" = yes ; then
5246         AC_CHECK_HEADERS( sys/termio.h )
5247 fi
5248 if test "$ac_cv_header_termios_h" = yes ; then
5249         case "$CFLAGS $CPPFLAGS" in
5250         *-D_POSIX_SOURCE*)
5251                 termios_bad=dunno ;;
5252         *)      termios_bad=maybe ;;
5253         esac
5254         if test "$termios_bad" = maybe ; then
5255         AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
5256         AC_TRY_COMPILE([#include <termios.h>],
5257                 [struct termios foo; int x = foo.c_iflag],
5258                 termios_bad=no, [
5259                 AC_TRY_COMPILE([
5260 #define _POSIX_SOURCE
5261 #include <termios.h>],
5262                         [struct termios foo; int x = foo.c_iflag],
5263                         termios_bad=unknown,
5264                         termios_bad=yes AC_DEFINE(SVR4_TERMIO))
5265                         ])
5266         AC_MSG_RESULT($termios_bad)
5267         fi
5268 fi
5269 ])dnl
5270 dnl ---------------------------------------------------------------------------
5271 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
5272 dnl --------------
5273 dnl Construct a search-list for a nonstandard header/lib-file
5274 dnl     $1 = the variable to return as result
5275 dnl     $2 = the package name
5276 dnl     $3 = the subdirectory, e.g., bin, include or lib
5277 AC_DEFUN([CF_SUBDIR_PATH],
5278 [
5279 $1=
5280
5281 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
5282 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
5283 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
5284 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
5285 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
5286 ])dnl
5287 dnl ---------------------------------------------------------------------------
5288 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
5289 dnl --------
5290 dnl     Shorthand macro for substituting things that the user may override
5291 dnl     with an environment variable.
5292 dnl
5293 dnl     $1 = long/descriptive name
5294 dnl     $2 = environment variable
5295 dnl     $3 = default value
5296 AC_DEFUN([CF_SUBST],
5297 [AC_CACHE_VAL(cf_cv_subst_$2,[
5298 AC_MSG_CHECKING(for $1 (symbol $2))
5299 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
5300 cf_cv_subst_$2=[$]$2
5301 AC_MSG_RESULT([$]$2)
5302 ])
5303 ])dnl
5304 dnl ---------------------------------------------------------------------------
5305 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
5306 dnl -----------
5307 dnl     Shorthand macro for substituting things that the user may override
5308 dnl     with an environment variable.
5309 dnl
5310 dnl     $1 = condition to pass to "test"
5311 dnl     $2 = environment variable
5312 dnl     $3 = value if the test succeeds
5313 dnl     $4 = value if the test fails
5314 AC_DEFUN([CF_SUBST_IF],
5315 [
5316 if test $1 ; then
5317         $2=$3
5318 ifelse($4,,,[else
5319         $2=$4])
5320 fi
5321 AC_SUBST($2)
5322 ])dnl
5323 dnl ---------------------------------------------------------------------------
5324 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
5325 dnl ------------------------
5326 dnl Get the version-number for use in shared-library naming, etc.
5327 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
5328 [
5329 AC_REQUIRE([CF_PROG_EGREP])
5330 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5331 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5332 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[     ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5333 cf_cv_abi_version=${NCURSES_MAJOR}
5334 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
5335 dnl Show the computed version, for logging
5336 cf_cv_timestamp=`date`
5337 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
5338 dnl We need these values in the generated headers
5339 AC_SUBST(NCURSES_MAJOR)
5340 AC_SUBST(NCURSES_MINOR)
5341 AC_SUBST(NCURSES_PATCH)
5342 dnl We need these values in the generated makefiles
5343 AC_SUBST(cf_cv_rel_version)
5344 AC_SUBST(cf_cv_abi_version)
5345 AC_SUBST(cf_cv_builtin_bool)
5346 AC_SUBST(cf_cv_header_stdbool_h)
5347 AC_SUBST(cf_cv_type_of_bool)dnl
5348 ])dnl
5349 dnl ---------------------------------------------------------------------------
5350 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
5351 dnl ------------------
5352 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
5353 dnl older SCO configurations.
5354 AC_DEFUN([CF_SYS_TIME_SELECT],
5355 [
5356 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
5357 AC_CACHE_VAL(cf_cv_sys_time_select,[
5358 AC_TRY_COMPILE([
5359 #include <sys/types.h>
5360 #ifdef HAVE_SYS_TIME_H
5361 #include <sys/time.h>
5362 #endif
5363 #ifdef HAVE_SYS_SELECT_H
5364 #include <sys/select.h>
5365 #endif
5366 ],[],[cf_cv_sys_time_select=yes],
5367      [cf_cv_sys_time_select=no])
5368      ])
5369 AC_MSG_RESULT($cf_cv_sys_time_select)
5370 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
5371 ])dnl
5372 dnl ---------------------------------------------------------------------------
5373 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
5374 dnl ---------------
5375 dnl Define a top_builddir symbol, for applications that need an absolute path.
5376 AC_DEFUN([CF_TOP_BUILDDIR],
5377 [
5378 top_builddir=`pwd`
5379 AC_SUBST(top_builddir)
5380 ])dnl
5381 dnl ---------------------------------------------------------------------------
5382 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
5383 dnl ----------------
5384 dnl Determine the type we should use for chtype (and attr_t, which is treated
5385 dnl as the same thing).  We want around 32 bits, so on most machines want a
5386 dnl long, but on newer 64-bit machines, probably want an int.  If we're using
5387 dnl wide characters, we have to have a type compatible with that, as well.
5388 AC_DEFUN([CF_TYPEOF_CHTYPE],
5389 [
5390 AC_MSG_CHECKING([for type of chtype])
5391 AC_CACHE_VAL(cf_cv_typeof_chtype,[
5392                 AC_TRY_RUN([
5393 #define WANT_BITS 31
5394 #include <stdio.h>
5395 int main()
5396 {
5397         FILE *fp = fopen("cf_test.out", "w");
5398         if (fp != 0) {
5399                 char *result = "long";
5400                 if (sizeof(unsigned long) > sizeof(unsigned int)) {
5401                         int n;
5402                         unsigned int x, y;
5403                         for (n = 0; n < WANT_BITS; n++) {
5404                                 x = (1 << n);
5405                                 y = (x >> n);
5406                                 if (y != 1 || x == 0) {
5407                                         x = 0;
5408                                         break;
5409                                 }
5410                         }
5411                         /*
5412                          * If x is nonzero, an int is big enough for the bits
5413                          * that we want.
5414                          */
5415                         result = (x != 0) ? "int" : "long";
5416                 }
5417                 fputs(result, fp);
5418                 fclose(fp);
5419         }
5420         ${cf_cv_main_return:-return}(0);
5421 }
5422                 ],
5423                 [cf_cv_typeof_chtype=`cat cf_test.out`],
5424                 [cf_cv_typeof_chtype=long],
5425                 [cf_cv_typeof_chtype=long])
5426                 rm -f cf_test.out
5427         ])
5428 AC_MSG_RESULT($cf_cv_typeof_chtype)
5429
5430 AC_SUBST(cf_cv_typeof_chtype)
5431 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5432 ])dnl
5433 dnl ---------------------------------------------------------------------------
5434 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5435 dnl -----------------
5436 dnl
5437 AC_DEFUN([CF_TYPE_SIGACTION],
5438 [
5439 AC_MSG_CHECKING([for type sigaction_t])
5440 AC_CACHE_VAL(cf_cv_type_sigaction,[
5441         AC_TRY_COMPILE([
5442 #include <signal.h>],
5443                 [sigaction_t x],
5444                 [cf_cv_type_sigaction=yes],
5445                 [cf_cv_type_sigaction=no])])
5446 AC_MSG_RESULT($cf_cv_type_sigaction)
5447 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5448 ])dnl
5449 dnl ---------------------------------------------------------------------------
5450 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5451 dnl --------------------
5452 dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
5453 dnl won't, but they're still there.
5454 AC_DEFUN([CF_UNSIGNED_LITERALS],
5455 [
5456 AC_MSG_CHECKING([if unsigned literals are legal])
5457 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5458         AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5459                 [cf_cv_unsigned_literals=yes],
5460                 [cf_cv_unsigned_literals=no])
5461         ])
5462 AC_MSG_RESULT($cf_cv_unsigned_literals)
5463 ])dnl
5464 dnl ---------------------------------------------------------------------------
5465 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5466 dnl --------
5467 dnl Make an uppercase version of a variable
5468 dnl $1=uppercase($2)
5469 AC_DEFUN([CF_UPPER],
5470 [
5471 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5472 ])dnl
5473 dnl ---------------------------------------------------------------------------
5474 dnl CF_UTF8_LIB version: 6 updated: 2010/04/21 06:20:50
5475 dnl -----------
5476 dnl Check for multibyte support, and if not found, utf8 compatibility library
5477 AC_DEFUN([CF_UTF8_LIB],
5478 [
5479 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5480         cf_save_LIBS="$LIBS"
5481         AC_TRY_LINK([
5482 #include <stdlib.h>],[putwc(0,0);],
5483         [cf_cv_utf8_lib=yes],
5484         [CF_FIND_LINKAGE([
5485 #include <libutf8.h>],[putwc(0,0);],utf8,
5486                 [cf_cv_utf8_lib=add-on],
5487                 [cf_cv_utf8_lib=no])
5488 ])])
5489
5490 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5491 # ncurses/ncursesw:
5492 if test "$cf_cv_utf8_lib" = "add-on" ; then
5493         AC_DEFINE(HAVE_LIBUTF8_H)
5494         CF_ADD_INCDIR($cf_cv_header_path_utf8)
5495         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5496         LIBS="$cf_cv_library_file_utf8 $LIBS"
5497 fi
5498 ])dnl
5499 dnl ---------------------------------------------------------------------------
5500 dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
5501 dnl ----------
5502 dnl check for va_copy, part of stdarg.h
5503 dnl Also, workaround for glibc's __va_copy, by checking for both.
5504 AC_DEFUN([CF_VA_COPY],[
5505 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
5506 AC_TRY_LINK([
5507 #include <stdarg.h>
5508 ],[
5509         static va_list dst;
5510         static va_list src;
5511         va_copy(dst, src)],
5512         cf_cv_have_va_copy=yes,
5513         cf_cv_have_va_copy=no)])
5514
5515 test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
5516
5517 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
5518 AC_TRY_LINK([
5519 #include <stdarg.h>
5520 ],[
5521         static va_list dst;
5522         static va_list src;
5523         __va_copy(dst, src)],
5524         cf_cv_have___va_copy=yes,
5525         cf_cv_have___va_copy=no)])
5526
5527 test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
5528 ])
5529 dnl ---------------------------------------------------------------------------
5530 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5531 dnl ----------
5532 dnl Use AC_VERBOSE w/o the warnings
5533 AC_DEFUN([CF_VERBOSE],
5534 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
5535 CF_MSG_LOG([$1])
5536 ])dnl
5537 dnl ---------------------------------------------------------------------------
5538 dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
5539 dnl -------------
5540 dnl Check if type wide-character type $1 is declared, and if so, which header
5541 dnl file is needed.  The second parameter is used to set a shell variable when
5542 dnl the type is not found.  The first parameter sets a shell variable for the
5543 dnl opposite sense.
5544 AC_DEFUN([CF_WCHAR_TYPE],
5545 [
5546 # This is needed on Tru64 5.0 to declare $1
5547 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5548 AC_TRY_COMPILE([
5549 #include <stdlib.h>
5550 #include <stdarg.h>
5551 #include <stdio.h>
5552 #ifdef HAVE_LIBUTF8_H
5553 #include <libutf8.h>
5554 #endif],
5555         [$1 state],
5556         [cf_cv_$1=no],
5557         [AC_TRY_COMPILE([
5558 #include <stdlib.h>
5559 #include <stdarg.h>
5560 #include <stdio.h>
5561 #include <wchar.h>
5562 #ifdef HAVE_LIBUTF8_H
5563 #include <libutf8.h>
5564 #endif],
5565         [$1 value],
5566         [cf_cv_$1=yes],
5567         [cf_cv_$1=unknown])])])
5568
5569 if test "$cf_cv_$1" = yes ; then
5570         AC_DEFINE(NEED_WCHAR_H)
5571         NEED_WCHAR_H=1
5572 fi
5573
5574 ifelse([$2],,,[
5575 # if we do not find $1 in either place, use substitution to provide a fallback.
5576 if test "$cf_cv_$1" = unknown ; then
5577         $2=1
5578 fi
5579 ])
5580 ifelse($3,,,[
5581 # if we find $1 in either place, use substitution to provide a fallback.
5582 if test "$cf_cv_$1" != unknown ; then
5583         $3=1
5584 fi
5585 ])
5586 ])dnl
5587 dnl ---------------------------------------------------------------------------
5588 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5589 dnl ---------------
5590 dnl Check for compiler-support for weak symbols.
5591 dnl This works with "recent" gcc.
5592 AC_DEFUN([CF_WEAK_SYMBOLS],[
5593 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5594
5595 AC_TRY_COMPILE([
5596 #include <stdio.h>],
5597 [
5598 #if defined(__GNUC__)
5599 #  if defined __USE_ISOC99
5600 #    define _cat_pragma(exp)    _Pragma(#exp)
5601 #    define _weak_pragma(exp)   _cat_pragma(weak name)
5602 #  else
5603 #    define _weak_pragma(exp)
5604 #  endif
5605 #  define _declare(name)        __extension__ extern __typeof__(name) name
5606 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
5607 #endif
5608
5609 weak_symbol(fopen);
5610 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5611 ])
5612 ])dnl
5613 dnl ---------------------------------------------------------------------------
5614 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5615 dnl -------------------
5616 dnl Allow library's ABI to be overridden.  Generally this happens when a
5617 dnl packager has incremented the ABI past that used in the original package,
5618 dnl and wishes to keep doing this.
5619 dnl
5620 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5621 dnl symbol.
5622 AC_DEFUN([CF_WITH_ABI_VERSION],[
5623 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5624 AC_ARG_WITH(abi-version,
5625 [  --with-abi-version=XXX  override derived ABI version],
5626 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5627  cf_cv_abi_version=$withval])
5628  CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5629 ifelse($1,,,[
5630 $1_ABI=$cf_cv_abi_version
5631 ])
5632 ])dnl
5633 dnl ---------------------------------------------------------------------------
5634 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5635 dnl ----------------
5636 dnl Configure-option for dbmalloc.  The optional parameter is used to override
5637 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5638 AC_DEFUN([CF_WITH_DBMALLOC],[
5639 CF_NO_LEAKS_OPTION(dbmalloc,
5640         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
5641         [USE_DBMALLOC])
5642
5643 if test "$with_dbmalloc" = yes ; then
5644         AC_CHECK_HEADER(dbmalloc.h,
5645                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5646 fi
5647 ])dnl
5648 dnl ---------------------------------------------------------------------------
5649 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5650 dnl ---------------
5651 dnl Configure-option for dmalloc.  The optional parameter is used to override
5652 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5653 AC_DEFUN([CF_WITH_DMALLOC],[
5654 CF_NO_LEAKS_OPTION(dmalloc,
5655         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
5656         [USE_DMALLOC])
5657
5658 if test "$with_dmalloc" = yes ; then
5659         AC_CHECK_HEADER(dmalloc.h,
5660                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5661 fi
5662 ])dnl
5663 dnl ---------------------------------------------------------------------------
5664 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5665 dnl -----------
5666 dnl
5667 dnl The option parameter (if neither yes/no) is assumed to be the name of
5668 dnl the gpm library, e.g., for dynamic loading.
5669 AC_DEFUN([CF_WITH_GPM],
5670 [
5671 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5672 AC_ARG_WITH(gpm,
5673         [  --with-gpm              use Alessandro Rubini's GPM library],
5674         [with_gpm=$withval],
5675         [with_gpm=maybe])
5676 AC_MSG_RESULT($with_gpm)
5677
5678 if test "$with_gpm" != no ; then
5679         AC_CHECK_HEADER(gpm.h,[
5680                 AC_DEFINE(HAVE_GPM_H)
5681                 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5682                         CF_VERBOSE(assuming we really have GPM library)
5683                         AC_DEFINE(HAVE_LIBGPM)
5684                 else
5685                         AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5686                                 AC_MSG_ERROR(Cannot link with GPM library)
5687                 fi
5688                 with_gpm=yes
5689                 ])
5690         ],[
5691                 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5692                 with_gpm=no
5693         ])
5694 fi
5695 ])
5696 dnl ---------------------------------------------------------------------------
5697 dnl CF_WITH_LIBTOOL version: 25 updated: 2010/05/15 15:45:59
5698 dnl ---------------
5699 dnl Provide a configure option to incorporate libtool.  Define several useful
5700 dnl symbols for the makefile rules.
5701 dnl
5702 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5703 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5704 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5705 dnl But that still does not work properly since the macro is expanded outside
5706 dnl the CF_WITH_LIBTOOL macro:
5707 dnl
5708 dnl     #!/bin/sh
5709 dnl     ACLOCAL=`aclocal --print-ac-dir`
5710 dnl     if test -z "$ACLOCAL" ; then
5711 dnl             echo cannot find aclocal directory
5712 dnl             exit 1
5713 dnl     elif test ! -f $ACLOCAL/libtool.m4 ; then
5714 dnl             echo cannot find libtool.m4 file
5715 dnl             exit 1
5716 dnl     fi
5717 dnl
5718 dnl     LOCAL=aclocal.m4
5719 dnl     ORIG=aclocal.m4.orig
5720 dnl
5721 dnl     trap "mv $ORIG $LOCAL" 0 1 2 5 15
5722 dnl     rm -f $ORIG
5723 dnl     mv $LOCAL $ORIG
5724 dnl
5725 dnl     # sed the LIBTOOL= assignment to omit the current directory?
5726 dnl     sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5727 dnl     cat $ORIG >>$LOCAL
5728 dnl
5729 dnl     autoconf-257 $*
5730 dnl
5731 AC_DEFUN([CF_WITH_LIBTOOL],
5732 [
5733 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
5734 ifdef([AC_PROG_LIBTOOL],,[
5735 LIBTOOL=
5736 ])
5737 # common library maintenance symbols that are convenient for libtool scripts:
5738 LIB_CREATE='${AR} -cr'
5739 LIB_OBJECT='${OBJECTS}'
5740 LIB_SUFFIX=.a
5741 LIB_PREP="$RANLIB"
5742
5743 # symbols used to prop libtool up to enable it to determine what it should be
5744 # doing:
5745 LIB_CLEAN=
5746 LIB_COMPILE=
5747 LIB_LINK='${CC}'
5748 LIB_INSTALL=
5749 LIB_UNINSTALL=
5750
5751 AC_MSG_CHECKING(if you want to build libraries with libtool)
5752 AC_ARG_WITH(libtool,
5753         [  --with-libtool          generate libraries with libtool],
5754         [with_libtool=$withval],
5755         [with_libtool=no])
5756 AC_MSG_RESULT($with_libtool)
5757 if test "$with_libtool" != "no"; then
5758 ifdef([AC_PROG_LIBTOOL],[
5759         # missing_content_AC_PROG_LIBTOOL{{
5760         AC_PROG_LIBTOOL
5761         # missing_content_AC_PROG_LIBTOOL}}
5762 ],[
5763         if test "$with_libtool" != "yes" ; then
5764                 CF_PATH_SYNTAX(with_libtool)
5765                 LIBTOOL=$with_libtool
5766         else
5767                 AC_PATH_PROG(LIBTOOL,libtool)
5768         fi
5769         if test -z "$LIBTOOL" ; then
5770                 AC_MSG_ERROR(Cannot find libtool)
5771         fi
5772 ])dnl
5773         LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
5774         LIB_OBJECT='${OBJECTS:.o=.lo}'
5775         LIB_SUFFIX=.la
5776         LIB_CLEAN='${LIBTOOL} --mode=clean'
5777         LIB_COMPILE='${LIBTOOL} --mode=compile'
5778         LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5779         LIB_INSTALL='${LIBTOOL} --mode=install'
5780         LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5781         LIB_PREP=:
5782
5783         # Show the version of libtool
5784         AC_MSG_CHECKING(version of libtool)
5785
5786         # Save the version in a cache variable - this is not entirely a good
5787         # thing, but the version string from libtool is very ugly, and for
5788         # bug reports it might be useful to have the original string. "("
5789         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.]].*//'`
5790         AC_MSG_RESULT($cf_cv_libtool_version)
5791         if test -z "$cf_cv_libtool_version" ; then
5792                 AC_MSG_ERROR(This is not GNU libtool)
5793         fi
5794
5795         # special hack to add -no-undefined (which libtool should do for itself)
5796         LT_UNDEF=
5797         case "$cf_cv_system_name" in #(vi
5798         cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
5799                 LT_UNDEF=-no-undefined
5800                 ;;
5801         esac
5802         AC_SUBST([LT_UNDEF])
5803
5804         # special hack to add --tag option for C++ compiler
5805         case $cf_cv_libtool_version in #(vi
5806         1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
5807                 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5808                 LIBTOOL="$LIBTOOL --tag=CC"
5809                 ;;
5810         *)
5811                 LIBTOOL_CXX="$LIBTOOL"
5812                 ;;
5813         esac
5814 else
5815         LIBTOOL=""
5816         LIBTOOL_CXX=""
5817 fi
5818
5819 test -z "$LIBTOOL" && ECHO_LT=
5820
5821 AC_SUBST(LIBTOOL)
5822 AC_SUBST(LIBTOOL_CXX)
5823 AC_SUBST(LIBTOOL_OPTS)
5824
5825 AC_SUBST(LIB_CREATE)
5826 AC_SUBST(LIB_OBJECT)
5827 AC_SUBST(LIB_SUFFIX)
5828 AC_SUBST(LIB_PREP)
5829
5830 AC_SUBST(LIB_CLEAN)
5831 AC_SUBST(LIB_COMPILE)
5832 AC_SUBST(LIB_LINK)
5833 AC_SUBST(LIB_INSTALL)
5834 AC_SUBST(LIB_UNINSTALL)
5835
5836 ])dnl
5837 dnl ---------------------------------------------------------------------------
5838 dnl CF_WITH_PATH version: 9 updated: 2010/05/26 05:38:42
5839 dnl ------------
5840 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5841 dnl defaulting to yes/no.
5842 dnl
5843 dnl $1 = option name
5844 dnl $2 = help-text
5845 dnl $3 = environment variable to set
5846 dnl $4 = default value, shown in the help-message, must be a constant
5847 dnl $5 = default value, if it's an expression & cannot be in the help-message
5848 dnl
5849 AC_DEFUN([CF_WITH_PATH],
5850 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
5851 ifelse([$4],,[withval="${$3}"],[withval="${$3-ifelse([$5],,[$4],[$5])}"]))dnl
5852 if ifelse([$5],,true,[test -n "$5"]) ; then
5853 CF_PATH_SYNTAX(withval)
5854 fi
5855 $3="$withval"
5856 AC_SUBST($3)dnl
5857 ])dnl
5858 dnl ---------------------------------------------------------------------------
5859 dnl CF_WITH_PATHLIST version: 6 updated: 2009/01/11 20:30:23
5860 dnl ----------------
5861 dnl Process an option specifying a list of colon-separated paths.
5862 dnl
5863 dnl $1 = option name
5864 dnl $2 = help-text
5865 dnl $3 = environment variable to set
5866 dnl $4 = default value, shown in the help-message, must be a constant
5867 dnl $5 = default value, if it's an expression & cannot be in the help-message
5868 dnl $6 = flag to tell if we want to define or substitute
5869 dnl
5870 AC_DEFUN([CF_WITH_PATHLIST],[
5871 AC_REQUIRE([CF_PATHSEP])
5872 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5873 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5874
5875 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
5876 cf_dst_path=
5877 for cf_src_path in $withval
5878 do
5879   CF_PATH_SYNTAX(cf_src_path)
5880   test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5881   cf_dst_path="${cf_dst_path}${cf_src_path}"
5882 done
5883 IFS="$ac_save_ifs"
5884
5885 ifelse($6,define,[
5886 # Strip single quotes from the value, e.g., when it was supplied as a literal
5887 # for $4 or $5.
5888 case $cf_dst_path in #(vi
5889 \'*)
5890   cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5891   ;;
5892 esac
5893 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5894 ])
5895
5896 eval '$3="$cf_dst_path"'
5897 AC_SUBST($3)dnl
5898
5899 ])dnl
5900 dnl ---------------------------------------------------------------------------
5901 dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
5902 dnl ---------------
5903 dnl Check for POSIX thread library.
5904 AC_DEFUN([CF_WITH_PTHREAD],
5905 [
5906 AC_MSG_CHECKING(if you want to link with the pthread library)
5907 AC_ARG_WITH(pthread,
5908     [  --with-pthread          use POSIX thread library],
5909     [with_pthread=$withval],
5910     [with_pthread=no])
5911 AC_MSG_RESULT($with_pthread)
5912
5913 if test "$with_pthread" != no ; then
5914     AC_CHECK_HEADER(pthread.h,[
5915         AC_DEFINE(HAVE_PTHREADS_H)
5916
5917         AC_MSG_CHECKING(if we can link with the pthread library)
5918         cf_save_LIBS="$LIBS"
5919         CF_ADD_LIB(pthread)
5920         AC_TRY_LINK([
5921 #include <pthread.h>
5922 ],[
5923         int rc = pthread_create(0,0,0,0);
5924 ],[with_pthread=yes],[with_pthread=no])
5925         LIBS="$cf_save_LIBS"
5926         AC_MSG_RESULT($with_pthread)
5927
5928         if test "$with_pthread" = yes ; then
5929             CF_ADD_LIB(pthread)
5930             AC_DEFINE(HAVE_LIBPTHREADS)
5931         else
5932             AC_MSG_ERROR(Cannot link with pthread library)
5933         fi
5934     ])
5935 fi
5936 ])
5937 dnl ---------------------------------------------------------------------------
5938 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5939 dnl -------------------
5940 dnl Allow library's release-version to be overridden.  Generally this happens when a
5941 dnl packager has incremented the release-version past that used in the original package,
5942 dnl and wishes to keep doing this.
5943 dnl
5944 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5945 dnl and {package}_MINOR symbols
5946 dnl symbol.
5947 AC_DEFUN([CF_WITH_REL_VERSION],[
5948 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5949 AC_ARG_WITH(rel-version,
5950 [  --with-rel-version=XXX  override derived release version],
5951 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5952  cf_cv_rel_version=$withval])
5953 ifelse($1,,[
5954  CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5955 ],[
5956  $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5957  $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5958  CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5959  CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5960 ])
5961 ])dnl
5962 dnl ---------------------------------------------------------------------------
5963 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5964 dnl ----------------
5965 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5966 AC_DEFUN([CF_WITH_SYSMOUSE],[
5967 # not everyone has "test -c"
5968 if test -c /dev/sysmouse 2>/dev/null ; then
5969 AC_MSG_CHECKING(if you want to use sysmouse)
5970 AC_ARG_WITH(sysmouse,
5971         [  --with-sysmouse         use sysmouse (FreeBSD console)],
5972         [cf_with_sysmouse=$withval],
5973         [cf_with_sysmouse=maybe])
5974         if test "$cf_with_sysmouse" != no ; then
5975         AC_TRY_COMPILE([
5976 #include <osreldate.h>
5977 #if (__FreeBSD_version >= 400017)
5978 #include <sys/consio.h>
5979 #include <sys/fbio.h>
5980 #else
5981 #include <machine/console.h>
5982 #endif
5983 ],[
5984         struct mouse_info the_mouse;
5985         ioctl(0, CONS_MOUSECTL, &the_mouse);
5986 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5987         fi
5988 AC_MSG_RESULT($cf_with_sysmouse)
5989 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5990 fi
5991 ])dnl
5992 dnl ---------------------------------------------------------------------------
5993 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5994 dnl ----------------
5995 AC_DEFUN([CF_WITH_VALGRIND],[
5996 CF_NO_LEAKS_OPTION(valgrind,
5997         [  --with-valgrind         test: use valgrind],
5998         [USE_VALGRIND])
5999 ])dnl
6000 dnl ---------------------------------------------------------------------------
6001 dnl CF_XOPEN_SOURCE version: 34 updated: 2010/05/26 05:38:42
6002 dnl ---------------
6003 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
6004 dnl or adapt to the vendor's definitions to get equivalent functionality,
6005 dnl without losing the common non-POSIX features.
6006 dnl
6007 dnl Parameters:
6008 dnl     $1 is the nominal value for _XOPEN_SOURCE
6009 dnl     $2 is the nominal value for _POSIX_C_SOURCE
6010 AC_DEFUN([CF_XOPEN_SOURCE],[
6011
6012 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
6013 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
6014 cf_xopen_source=
6015
6016 case $host_os in #(vi
6017 aix[[456]]*) #(vi
6018         cf_xopen_source="-D_ALL_SOURCE"
6019         ;;
6020 darwin[[0-8]].*) #(vi
6021         cf_xopen_source="-D_APPLE_C_SOURCE"
6022         ;;
6023 darwin*) #(vi
6024         cf_xopen_source="-D_DARWIN_C_SOURCE"
6025         ;;
6026 freebsd*|dragonfly*) #(vi
6027         # 5.x headers associate
6028         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
6029         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
6030         cf_POSIX_C_SOURCE=200112L
6031         cf_XOPEN_SOURCE=600
6032         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6033         ;;
6034 hpux11*) #(vi
6035         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
6036         ;;
6037 hpux*) #(vi
6038         cf_xopen_source="-D_HPUX_SOURCE"
6039         ;;
6040 irix[[56]].*) #(vi
6041         cf_xopen_source="-D_SGI_SOURCE"
6042         ;;
6043 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
6044         CF_GNU_SOURCE
6045         ;;
6046 mirbsd*) #(vi
6047         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
6048         ;;
6049 netbsd*) #(vi
6050         # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
6051         ;;
6052 openbsd*) #(vi
6053         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
6054         ;;
6055 osf[[45]]*) #(vi
6056         cf_xopen_source="-D_OSF_SOURCE"
6057         ;;
6058 nto-qnx*) #(vi
6059         cf_xopen_source="-D_QNX_SOURCE"
6060         ;;
6061 sco*) #(vi
6062         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
6063         ;;
6064 solaris2.1[[0-9]]) #(vi
6065         cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6066         ;;
6067 solaris2.[[1-9]]) #(vi
6068         cf_xopen_source="-D__EXTENSIONS__"
6069         ;;
6070 *)
6071         AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
6072         AC_TRY_COMPILE([#include <sys/types.h>],[
6073 #ifndef _XOPEN_SOURCE
6074 make an error
6075 #endif],
6076         [cf_cv_xopen_source=no],
6077         [cf_save="$CPPFLAGS"
6078          CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6079          AC_TRY_COMPILE([#include <sys/types.h>],[
6080 #ifdef _XOPEN_SOURCE
6081 make an error
6082 #endif],
6083         [cf_cv_xopen_source=no],
6084         [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
6085         CPPFLAGS="$cf_save"
6086         ])
6087 ])
6088         if test "$cf_cv_xopen_source" != no ; then
6089                 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
6090                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
6091                 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
6092                 CF_ADD_CFLAGS($cf_temp_xopen_source)
6093         fi
6094         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
6095         ;;
6096 esac
6097
6098 if test -n "$cf_xopen_source" ; then
6099         CF_ADD_CFLAGS($cf_xopen_source)
6100 fi
6101 ])