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