root/foundation-apps/mxterm-maxx/aclocal.m4

Revision 8, 78.1 KB (checked in by emasson, 3 years ago)

initial import for the community edition

Line 
1dnl $XTermId: aclocal.m4,v 1.251 2008/03/26 00:59:57 tom Exp $
2dnl
3dnl $XFree86: xc/programs/xterm/aclocal.m4,v 3.65 2006/06/19 00:36:50 dickey Exp $
4dnl
5dnl ---------------------------------------------------------------------------
6dnl
7dnl Copyright 1997-2007,2008 by Thomas E. Dickey
8dnl
9dnl                         All Rights Reserved
10dnl
11dnl Permission to use, copy, modify, and distribute this software and its
12dnl documentation for any purpose and without fee is hereby granted,
13dnl provided that the above copyright notice appear iXn all copies and that
14dnl both that copyright notice and this permission notice appear in
15dnl supporting documentation, and that the name of the above listed
16dnl copyright holder(s) not be used in advertising or publicity pertaining
17dnl to distribution of the software without specific, written prior
18dnl permission.
19dnl
20dnl THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
21dnl TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
22dnl AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
23dnl LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
24dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
25dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
26dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
27dnl
28dnl ---------------------------------------------------------------------------
29dnl ---------------------------------------------------------------------------
30dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
31dnl -------------------
32dnl Inserted as requested by gettext 0.10.40
33dnl File from /usr/share/aclocal
34dnl codeset.m4
35dnl ====================
36dnl serial AM1
37dnl
38dnl From Bruno Haible.
39AC_DEFUN([AM_LANGINFO_CODESET],
40[
41  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
42    [AC_TRY_LINK([#include <langinfo.h>],
43      [char* cs = nl_langinfo(CODESET);],
44      am_cv_langinfo_codeset=yes,
45      am_cv_langinfo_codeset=no)
46    ])
47  if test $am_cv_langinfo_codeset = yes; then
48    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
49      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
50  fi
51])dnl
52dnl ---------------------------------------------------------------------------
53dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
54dnl -------------
55dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
56dnl The second parameter if given makes this macro verbose.
57dnl
58dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
59dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
60dnl confused by the quotes (which require backslashes to keep them usable).
61AC_DEFUN([CF_ADD_CFLAGS],
62[
63cf_fix_cppflags=no
64cf_new_cflags=
65cf_new_cppflags=
66cf_new_extra_cppflags=
67
68for cf_add_cflags in $1
69do
70case $cf_fix_cppflags in
71no)
72        case $cf_add_cflags in #(vi
73        -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
74                case $cf_add_cflags in
75                -D*)
76                        cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
77
78                        test "${cf_add_cflags}" != "${cf_tst_cflags}" \
79                        && test -z "${cf_tst_cflags}" \
80                        && cf_fix_cppflags=yes
81
82                        if test $cf_fix_cppflags = yes ; then
83                                cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
84                                continue
85                        elif test "${cf_tst_cflags}" = "\"'" ; then
86                                cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
87                                continue
88                        fi
89                        ;;
90                esac
91                case "$CPPFLAGS" in
92                *$cf_add_cflags) #(vi
93                        ;;
94                *) #(vi
95                        cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
96                        ;;
97                esac
98                ;;
99        *)
100                cf_new_cflags="$cf_new_cflags $cf_add_cflags"
101                ;;
102        esac
103        ;;
104yes)
105        cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
106
107        cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
108
109        test "${cf_add_cflags}" != "${cf_tst_cflags}" \
110        && test -z "${cf_tst_cflags}" \
111        && cf_fix_cppflags=no
112        ;;
113esac
114done
115
116if test -n "$cf_new_cflags" ; then
117        ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
118        CFLAGS="$CFLAGS $cf_new_cflags"
119fi
120
121if test -n "$cf_new_cppflags" ; then
122        ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
123        CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
124fi
125
126if test -n "$cf_new_extra_cppflags" ; then
127        ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
128        EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
129fi
130
131AC_SUBST(EXTRA_CPPFLAGS)
132
133])dnl
134dnl ---------------------------------------------------------------------------
135dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
136dnl ----------------
137dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
138dnl in the sharutils 4.2 distribution.
139AC_DEFUN([CF_ANSI_CC_CHECK],
140[
141AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
142cf_cv_ansi_cc=no
143cf_save_CFLAGS="$CFLAGS"
144cf_save_CPPFLAGS="$CPPFLAGS"
145# Don't try gcc -ansi; that turns off useful extensions and
146# breaks some systems' header files.
147# AIX                   -qlanglvl=ansi
148# Ultrix and OSF/1      -std1
149# HP-UX                 -Aa -D_HPUX_SOURCE
150# SVR4                  -Xc
151# UnixWare 1.2          (cannot use -Xc, since ANSI/POSIX clashes)
152for cf_arg in "-DCC_HAS_PROTOS" \
153        "" \
154        -qlanglvl=ansi \
155        -std1 \
156        -Ae \
157        "-Aa -D_HPUX_SOURCE" \
158        -Xc
159do
160        CF_ADD_CFLAGS($cf_arg)
161        AC_TRY_COMPILE(
162[
163#ifndef CC_HAS_PROTOS
164#if !defined(__STDC__) || (__STDC__ != 1)
165choke me
166#endif
167#endif
168],[
169        int test (int i, double x);
170        struct s1 {int (*f) (int a);};
171        struct s2 {int (*f) (double a);};],
172        [cf_cv_ansi_cc="$cf_arg"; break])
173done
174CFLAGS="$cf_save_CFLAGS"
175CPPFLAGS="$cf_save_CPPFLAGS"
176])
177
178if test "$cf_cv_ansi_cc" != "no"; then
179if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
180        CF_ADD_CFLAGS($cf_cv_ansi_cc)
181else
182        AC_DEFINE(CC_HAS_PROTOS)
183fi
184fi
185])dnl
186dnl ---------------------------------------------------------------------------
187dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
188dnl --------------
189dnl Allow user to disable a normally-on option.
190AC_DEFUN([CF_ARG_DISABLE],
191[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
192dnl ---------------------------------------------------------------------------
193dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
194dnl -------------
195dnl Allow user to enable a normally-off option.
196AC_DEFUN([CF_ARG_ENABLE],
197[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
198dnl ---------------------------------------------------------------------------
199dnl CF_ARG_OPTION version: 3 updated: 1997/10/18 14:42:41
200dnl -------------
201dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
202dnl values.
203dnl
204dnl Parameters:
205dnl $1 = option name
206dnl $2 = help-string
207dnl $3 = action to perform if option is not default
208dnl $4 = action if perform if option is default
209dnl $5 = default option value (either 'yes' or 'no')
210AC_DEFUN([CF_ARG_OPTION],
211[AC_ARG_ENABLE($1,[$2],[test "$enableval" != ifelse($5,no,yes,no) && enableval=ifelse($5,no,no,yes)
212  if test "$enableval" != "$5" ; then
213ifelse($3,,[    :]dnl
214,[    $3]) ifelse($4,,,[
215  else
216    $4])
217  fi],[enableval=$5 ifelse($4,,,[
218  $4
219])dnl
220  ])])dnl
221dnl ---------------------------------------------------------------------------
222dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
223dnl --------------
224dnl Check if we're accidentally using a cache from a different machine.
225dnl Derive the system name, as a check for reusing the autoconf cache.
226dnl
227dnl If we've packaged config.guess and config.sub, run that (since it does a
228dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
229dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
230dnl which is useful in cross-compiles.
231dnl
232dnl Note: we would use $ac_config_sub, but that is one of the places where
233dnl autoconf 2.5x broke compatibility with autoconf 2.13
234AC_DEFUN([CF_CHECK_CACHE],
235[
236if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
237        ifelse([$1],,[AC_CANONICAL_HOST],[$1])
238        system_name="$host_os"
239else
240        system_name="`(uname -s -r) 2>/dev/null`"
241        if test -z "$system_name" ; then
242                system_name="`(hostname) 2>/dev/null`"
243        fi
244fi
245test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
246AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
247
248test -z "$system_name" && system_name="$cf_cv_system_name"
249test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
250
251if test ".$system_name" != ".$cf_cv_system_name" ; then
252        AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
253        AC_MSG_ERROR("Please remove config.cache and try again.")
254fi
255])dnl
256dnl ---------------------------------------------------------------------------
257dnl CF_CHECK_CFLAGS version: 2 updated: 2001/12/30 19:09:58
258dnl ---------------
259dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
260dnl a build-configuration such as imake.  These have the pitfall that they
261dnl often contain compiler-specific options which we cannot use, mixed with
262dnl preprocessor options that we usually can.
263AC_DEFUN([CF_CHECK_CFLAGS],
264[
265CF_VERBOSE(checking additions to CFLAGS)
266cf_check_cflags="$CFLAGS"
267cf_check_cppflags="$CPPFLAGS"
268CF_ADD_CFLAGS($1,yes)
269if test "$cf_check_cflags" != "$CFLAGS" ; then
270AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
271        [CF_VERBOSE(test-compile failed.  Undoing change to \$CFLAGS)
272         if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
273                 CF_VERBOSE(but keeping change to \$CPPFLAGS)
274         fi
275         CFLAGS="$cf_check_flags"])
276fi
277])dnl
278dnl ---------------------------------------------------------------------------
279dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
280dnl --------------
281dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
282dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
283dnl ourselves.
284dnl
285dnl $1 = the name to check
286AC_DEFUN([CF_CHECK_ERRNO],
287[
288AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
289    AC_TRY_COMPILE([
290#ifdef HAVE_STDLIB_H
291#include <stdlib.h>
292#endif
293#include <stdio.h>
294#include <sys/types.h>
295#include <errno.h> ],
296    [long x = (long) $1],
297    [cf_cv_dcl_$1=yes],
298    [cf_cv_dcl_$1=no])
299])
300
301if test "$cf_cv_dcl_$1" = no ; then
302    CF_UPPER(cf_result,decl_$1)
303    AC_DEFINE_UNQUOTED($cf_result)
304fi
305
306# It's possible (for near-UNIX clones) that the data doesn't exist
307CF_CHECK_EXTERN_DATA($1,int)
308])dnl
309dnl ---------------------------------------------------------------------------
310dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
311dnl --------------------
312dnl Check for existence of external data in the current set of libraries.  If
313dnl we can modify it, it's real enough.
314dnl $1 = the name to check
315dnl $2 = its type
316AC_DEFUN([CF_CHECK_EXTERN_DATA],
317[
318AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
319    AC_TRY_LINK([
320#undef $1
321extern $2 $1;
322],
323    [$1 = 2],
324    [cf_cv_have_$1=yes],
325    [cf_cv_have_$1=no])
326])
327
328if test "$cf_cv_have_$1" = yes ; then
329    CF_UPPER(cf_result,have_$1)
330    AC_DEFINE_UNQUOTED($cf_result)
331fi
332
333])dnl
334dnl ---------------------------------------------------------------------------
335dnl CF_DISABLE_ECHO version: 10 updated: 2003/04/17 22:27:11
336dnl ---------------
337dnl You can always use "make -n" to see the actual options, but it's hard to
338dnl pick out/analyze warning messages when the compile-line is long.
339dnl
340dnl Sets:
341dnl     ECHO_LT - symbol to control if libtool is verbose
342dnl     ECHO_LD - symbol to prefix "cc -o" lines
343dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
344dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
345dnl     ECHO_CC - symbol to put before any "cc" line
346dnl
347AC_DEFUN([CF_DISABLE_ECHO],[
348AC_MSG_CHECKING(if you want to see long compiling messages)
349CF_ARG_DISABLE(echo,
350        [  --disable-echo          display "compiling" commands],
351        [
352    ECHO_LT='--silent'
353    ECHO_LD='@echo linking [$]@;'
354    RULE_CC='   @echo compiling [$]<'
355    SHOW_CC='   @echo compiling [$]@'
356    ECHO_CC='@'
357],[
358    ECHO_LT=''
359    ECHO_LD=''
360    RULE_CC='# compiling'
361    SHOW_CC='# compiling'
362    ECHO_CC=''
363])
364AC_MSG_RESULT($enableval)
365AC_SUBST(ECHO_LT)
366AC_SUBST(ECHO_LD)
367AC_SUBST(RULE_CC)
368AC_SUBST(SHOW_CC)
369AC_SUBST(ECHO_CC)
370])
371dnl
372dnl ---------------------------------------------------------------------------
373dnl CF_ENABLE_NARROWPROTO version: 3 updated: 2006/02/12 17:46:00
374dnl ---------------------
375dnl If this is not set properly, Xaw's scrollbars will not work.
376dnl The so-called "modular" configuration for X.org omits most of the
377dnl configure checks that would be needed to provide compatibility with
378dnl older X builds.  This one breaks things noticeably.
379AC_DEFUN([CF_ENABLE_NARROWPROTO],
380[
381AC_MSG_CHECKING(if you want narrow prototypes for X libraries)
382
383case `$ac_config_guess` in #(vi
384*cygwin*|*freebsd*|*gnu*|*irix5*|*irix6*|*linux-gnu*|*netbsd*|*openbsd*|*qnx*|*sco*|*sgi*) #(vi
385        cf_default_narrowproto=yes
386        ;;
387*)
388        cf_default_narrowproto=no
389        ;;
390esac
391
392CF_ARG_OPTION(narrowproto,
393        [  --enable-narrowproto    enable narrow prototypes for X libraries],
394        [enable_narrowproto=$enableval],
395        [enable_narrowproto=$cf_default_narrowproto],
396        [$cf_default_narrowproto])
397AC_MSG_RESULT($enable_narrowproto)
398])
399dnl ---------------------------------------------------------------------------
400dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
401dnl --------
402dnl Check if 'errno' is declared in <errno.h>
403AC_DEFUN([CF_ERRNO],
404[
405CF_CHECK_ERRNO(errno)
406])dnl
407dnl ---------------------------------------------------------------------------
408dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
409dnl ---------------
410dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
411dnl is found, add our own version of memmove to the list of objects.
412AC_DEFUN([CF_FUNC_MEMMOVE],
413[
414AC_CHECK_FUNC(memmove,,[
415AC_CHECK_FUNC(bcopy,[
416        AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
417                AC_TRY_RUN([
418int main() {
419        static char data[] = "abcdefghijklmnopqrstuwwxyz";
420        char temp[40];
421        bcopy(data, temp, sizeof(data));
422        bcopy(temp+10, temp, 15);
423        bcopy(temp+5, temp+15, 10);
424        ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
425}
426                ],
427                [cf_cv_good_bcopy=yes],
428                [cf_cv_good_bcopy=no],
429                [cf_cv_good_bcopy=unknown])
430                ])
431        ],[cf_cv_good_bcopy=no])
432        if test "$cf_cv_good_bcopy" = yes ; then
433                AC_DEFINE(USE_OK_BCOPY)
434        else
435                AC_DEFINE(USE_MY_MEMMOVE)
436        fi
437])])dnl
438dnl ---------------------------------------------------------------------------
439dnl CF_FUNC_TGETENT version: 11 updated: 2007/03/14 16:43:48
440dnl ---------------
441dnl Check for tgetent function in termcap library.  If we cannot find this,
442dnl we'll use the $LINES and $COLUMNS environment variables to pass screen
443dnl size information to subprocesses.  (We cannot use terminfo's compatibility
444dnl function, since it cannot provide the termcap-format data).
445dnl
446dnl If the --disable-full-tgetent option is given, we'll settle for the first
447dnl tgetent function we find.  Since the search list in that case does not
448dnl include the termcap library, that allows us to default to terminfo.
449AC_DEFUN([CF_FUNC_TGETENT],
450[
451# compute a reasonable value for $TERM to give tgetent(), since we may be
452# running in 'screen', which sets $TERMCAP to a specific entry that is not
453# necessarily in /etc/termcap - unsetenv is not portable, so we cannot simply
454# discard $TERMCAP.
455cf_TERMVAR=vt100
456test -n "$TERMCAP" && cf_TERMVAR="$TERM"
457test -z "$cf_TERMVAR" && cf_TERMVAR=vt100
458
459AC_MSG_CHECKING(if we want full tgetent function)
460CF_ARG_DISABLE(full-tgetent,
461        [  --disable-full-tgetent  disable check for full tgetent function],
462        cf_full_tgetent=no,
463        cf_full_tgetent=yes,yes)
464AC_MSG_RESULT($cf_full_tgetent)
465
466if test "$cf_full_tgetent" = yes ; then
467        cf_test_message="full tgetent"
468else
469        cf_test_message="tgetent"
470fi
471
472AC_CACHE_CHECK(for $cf_test_message function,cf_cv_lib_tgetent,[
473cf_save_LIBS="$LIBS"
474cf_cv_lib_tgetent=no
475if test "$cf_full_tgetent" = yes ; then
476        cf_TERMLIB="termcap termlib ncurses curses"
477        cf_TERMTST="buffer[[0]] == 0"
478else
479        cf_TERMLIB="termlib ncurses curses"
480        cf_TERMTST="0"
481fi
482for cf_termlib in '' $cf_TERMLIB ; do
483        LIBS="$cf_save_LIBS"
484        test -n "$cf_termlib" && LIBS="$LIBS -l$cf_termlib"
485        AC_TRY_RUN([
486/* terminfo implementations ignore the buffer argument, making it useless for
487 * the xterm application, which uses this information to make a new TERMCAP
488 * environment variable.
489 */
490int main()
491{
492        char buffer[1024];
493        buffer[0] = 0;
494        tgetent(buffer, "$cf_TERMVAR");
495        ${cf_cv_main_return:-return} ($cf_TERMTST); }],
496        [echo "yes, there is a termcap/tgetent in $cf_termlib" 1>&AC_FD_CC
497         if test -n "$cf_termlib" ; then
498                cf_cv_lib_tgetent="-l$cf_termlib"
499         else
500                cf_cv_lib_tgetent=yes
501         fi
502         break],
503        [echo "no, there is no termcap/tgetent in $cf_termlib" 1>&AC_FD_CC],
504        [echo "cross-compiling, cannot verify if a termcap/tgetent is present in $cf_termlib" 1>&AC_FD_CC])
505done
506LIBS="$cf_save_LIBS"
507])
508
509# If we found a working tgetent(), set LIBS and check for termcap.h.
510# (LIBS cannot be set inside AC_CACHE_CHECK; the commands there should
511# not have side effects other than setting the cache variable, because
512# they are not executed when a cached value exists.)
513if test "$cf_cv_lib_tgetent" != no ; then
514        test "$cf_cv_lib_tgetent" != yes && LIBS="$LIBS $cf_cv_lib_tgetent"
515        AC_DEFINE(USE_TERMCAP)
516        AC_TRY_COMPILE([
517#include <termcap.h>],[
518#ifdef NCURSES_VERSION
519make an error
520#endif],[AC_DEFINE(HAVE_TERMCAP_H)])
521else
522        # If we didn't find a tgetent() that supports the buffer
523        # argument, look again to see whether we can find even
524        # a crippled one.  A crippled tgetent() is still useful to
525        # validate values for the TERM environment variable given to
526        # child processes.
527        AC_CACHE_CHECK(for partial tgetent function,cf_cv_lib_part_tgetent,[
528        cf_cv_lib_part_tgetent=no
529        for cf_termlib in $cf_TERMLIB ; do
530                LIBS="$cf_save_LIBS -l$cf_termlib"
531                AC_TRY_LINK([],[tgetent(0, "$cf_TERMVAR")],
532                        [echo "there is a terminfo/tgetent in $cf_termlib" 1>&AC_FD_CC
533                         cf_cv_lib_part_tgetent="-l$cf_termlib"
534                         break])
535        done
536        LIBS="$cf_save_LIBS"
537        ])
538
539        if test "$cf_cv_lib_part_tgetent" != no ; then
540                LIBS="$LIBS $cf_cv_lib_part_tgetent"
541                AC_CHECK_HEADERS(termcap.h)
542
543                # If this is linking against ncurses, we'll trigger the
544                # ifdef in resize.c that turns the termcap stuff back off.
545                AC_DEFINE(USE_TERMINFO)
546        fi
547fi
548])dnl
549dnl ---------------------------------------------------------------------------
550dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
551dnl -----------------
552dnl Test for availability of useful gcc __attribute__ directives to quiet
553dnl compiler warnings.  Though useful, not all are supported -- and contrary
554dnl to documentation, unrecognized directives cause older compilers to barf.
555AC_DEFUN([CF_GCC_ATTRIBUTES],
556[
557if test "$GCC" = yes
558then
559cat > conftest.i <<EOF
560#ifndef GCC_PRINTF
561#define GCC_PRINTF 0
562#endif
563#ifndef GCC_SCANF
564#define GCC_SCANF 0
565#endif
566#ifndef GCC_NORETURN
567#define GCC_NORETURN /* nothing */
568#endif
569#ifndef GCC_UNUSED
570#define GCC_UNUSED /* nothing */
571#endif
572EOF
573if test "$GCC" = yes
574then
575        AC_CHECKING([for $CC __attribute__ directives])
576cat > conftest.$ac_ext <<EOF
577#line __oline__ "${as_me-configure}"
578#include "confdefs.h"
579#include "conftest.h"
580#include "conftest.i"
581#if     GCC_PRINTF
582#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
583#else
584#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
585#endif
586#if     GCC_SCANF
587#define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
588#else
589#define GCC_SCANFLIKE(fmt,var)  /*nothing*/
590#endif
591extern void wow(char *,...) GCC_SCANFLIKE(1,2);
592extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
593extern void foo(void) GCC_NORETURN;
594int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
595EOF
596        for cf_attribute in scanf printf unused noreturn
597        do
598                CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
599                cf_directive="__attribute__(($cf_attribute))"
600                echo "checking for $CC $cf_directive" 1>&AC_FD_CC
601                case $cf_attribute in
602                scanf|printf)
603                cat >conftest.h <<EOF
604#define GCC_$cf_ATTRIBUTE 1
605EOF
606                        ;;
607                *)
608                cat >conftest.h <<EOF
609#define GCC_$cf_ATTRIBUTE $cf_directive
610EOF
611                        ;;
612                esac
613                if AC_TRY_EVAL(ac_compile); then
614                        test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
615                        cat conftest.h >>confdefs.h
616                fi
617        done
618else
619        fgrep define conftest.i >>confdefs.h
620fi
621rm -rf conftest*
622fi
623])dnl
624dnl ---------------------------------------------------------------------------
625dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
626dnl --------------
627dnl Find version of gcc
628AC_DEFUN([CF_GCC_VERSION],[
629AC_REQUIRE([AC_PROG_CC])
630GCC_VERSION=none
631if test "$GCC" = yes ; then
632        AC_MSG_CHECKING(version of $CC)
633        GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
634        test -z "$GCC_VERSION" && GCC_VERSION=unknown
635        AC_MSG_RESULT($GCC_VERSION)
636fi
637])dnl
638dnl ---------------------------------------------------------------------------
639dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
640dnl ---------------
641dnl Check if the compiler supports useful warning options.  There's a few that
642dnl we don't use, simply because they're too noisy:
643dnl
644dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
645dnl     -Wredundant-decls (system headers make this too noisy)
646dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
647dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
648dnl             is enabled for ncurses using "--enable-const".
649dnl     -pedantic
650dnl
651dnl Parameter:
652dnl     $1 is an optional list of gcc warning flags that a particular
653dnl             application might want to use, e.g., "no-unused" for
654dnl             -Wno-unused
655dnl Special:
656dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
657dnl
658AC_DEFUN([CF_GCC_WARNINGS],
659[
660AC_REQUIRE([CF_GCC_VERSION])
661CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
662
663cat > conftest.$ac_ext <<EOF
664#line __oline__ "${as_me-configure}"
665int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
666EOF
667
668if test "$INTEL_COMPILER" = yes
669then
670# The "-wdXXX" options suppress warnings:
671# remark #1419: external declaration in primary source file
672# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
673# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
674# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
675# remark #193: zero used for undefined preprocessing identifier
676# remark #593: variable "curs_sb_left_arrow" was set but never used
677# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
678# remark #869: parameter "tw" was never referenced
679# remark #981: operands are evaluated in unspecified order
680# warning #269: invalid format string conversion
681
682        AC_CHECKING([for $CC warning options])
683        cf_save_CFLAGS="$CFLAGS"
684        EXTRA_CFLAGS="-Wall"
685        for cf_opt in \
686                wd1419 \
687                wd1682 \
688                wd1683 \
689                wd1684 \
690                wd193 \
691                wd279 \
692                wd593 \
693                wd810 \
694                wd869 \
695                wd981
696        do
697                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
698                if AC_TRY_EVAL(ac_compile); then
699                        test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
700                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
701                fi
702        done
703        CFLAGS="$cf_save_CFLAGS"
704
705elif test "$GCC" = yes
706then
707        AC_CHECKING([for $CC warning options])
708        cf_save_CFLAGS="$CFLAGS"
709        EXTRA_CFLAGS="-W -Wall"
710        cf_warn_CONST=""
711        test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
712        for cf_opt in \
713                Wbad-function-cast \
714                Wcast-align \
715                Wcast-qual \
716                Winline \
717                Wmissing-declarations \
718                Wmissing-prototypes \
719                Wnested-externs \
720                Wpointer-arith \
721                Wshadow \
722                Wstrict-prototypes \
723                Wundef $cf_warn_CONST $1
724        do
725                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
726                if AC_TRY_EVAL(ac_compile); then
727                        test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
728                        case $cf_opt in #(vi
729                        Wcast-qual) #(vi
730                                CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
731                                ;;
732                        Winline) #(vi
733                                case $GCC_VERSION in
734                                3.3*)
735                                        CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
736                                        continue;;
737                                esac
738                                ;;
739                        esac
740                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
741                fi
742        done
743        CFLAGS="$cf_save_CFLAGS"
744fi
745rm -f conftest*
746
747AC_SUBST(EXTRA_CFLAGS)
748])dnl
749dnl ---------------------------------------------------------------------------
750dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
751dnl -------------
752dnl Check if we must define _GNU_SOURCE to get a reasonable value for
753dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
754dnl (or misfeature) of glibc2, which breaks portability of many applications,
755dnl since it is interwoven with GNU extensions.
756dnl
757dnl Well, yes we could work around it...
758AC_DEFUN([CF_GNU_SOURCE],
759[
760AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
761AC_TRY_COMPILE([#include <sys/types.h>],[
762#ifndef _XOPEN_SOURCE
763make an error
764#endif],
765        [cf_cv_gnu_source=no],
766        [cf_save="$CPPFLAGS"
767         CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
768         AC_TRY_COMPILE([#include <sys/types.h>],[
769#ifdef _XOPEN_SOURCE
770make an error
771#endif],
772        [cf_cv_gnu_source=no],
773        [cf_cv_gnu_source=yes])
774        CPPFLAGS="$cf_save"
775        ])
776])
777test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
778])dnl
779dnl ---------------------------------------------------------------------------
780dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
781dnl ---------------
782dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
783AC_DEFUN([CF_HELP_MESSAGE],
784[AC_DIVERT_HELP([$1])dnl
785])dnl
786dnl ---------------------------------------------------------------------------
787dnl CF_IMAKE_CFLAGS version: 30 updated: 2008/03/23 15:04:54
788dnl ---------------
789dnl Use imake to obtain compiler flags.  We could, in principle, write tests to
790dnl get these, but if imake is properly configured there is no point in doing
791dnl this.
792dnl
793dnl Parameters (used in constructing a sample Imakefile):
794dnl     $1 = optional value to append to $IMAKE_CFLAGS
795dnl     $2 = optional value to append to $IMAKE_LOADFLAGS
796AC_DEFUN([CF_IMAKE_CFLAGS],
797[
798AC_PATH_PROGS(IMAKE,xmkmf imake)
799
800if test -n "$IMAKE" ; then
801
802case $IMAKE in # (vi
803*/imake)
804        cf_imake_opts="-DUseInstalled=YES" # (vi
805        ;;
806*/util/xmkmf)
807        # A single parameter tells xmkmf where the config-files are:
808        cf_imake_opts="`echo $IMAKE|sed -e s,/config/util/xmkmf,,`" # (vi
809        ;;
810*)
811        cf_imake_opts=
812        ;;
813esac
814
815# If it's installed properly, imake (or its wrapper, xmkmf) will point to the
816# config directory.
817if mkdir conftestdir; then
818        CDPATH=; export CDPATH
819        cf_makefile=`cd $srcdir;pwd`/Imakefile
820        cd conftestdir
821
822        cat >fix_cflags.sed <<'CF_EOF'
823s/\\//g
824s/[[    ]][[    ]]*/ /g
825s/"//g
826:pack
827s/\(=[[^ ]][[^ ]]*\) \([[^-]]\)/\1      \2/g
828t pack
829s/\(-D[[a-zA-Z0-9_]][[a-zA-Z0-9_]]*\)=\([[^\'0-9 ]][[^ ]]*\)/\1='\\"\2\\"'/g
830s/^IMAKE[[ ]]/IMAKE_CFLAGS="/
831s/      / /g
832s/$/"/
833CF_EOF
834
835        cat >fix_lflags.sed <<'CF_EOF'
836s/^IMAKE[[      ]]*/IMAKE_LOADFLAGS="/
837s/$/"/
838CF_EOF
839
840        echo >./Imakefile
841        test -f $cf_makefile && cat $cf_makefile >>./Imakefile
842
843        cat >> ./Imakefile <<'CF_EOF'
844findstddefs:
845        @echo IMAKE ${ALLDEFINES}ifelse($1,,,[ $1])       | sed -f fix_cflags.sed
846        @echo IMAKE ${EXTRA_LOAD_FLAGS}ifelse($2,,,[ $2]) | sed -f fix_lflags.sed
847CF_EOF
848
849        if ( $IMAKE $cf_imake_opts 1>/dev/null 2>&AC_FD_CC && test -f Makefile)
850        then
851                CF_VERBOSE(Using $IMAKE $cf_imake_opts)
852        else
853                # sometimes imake doesn't have the config path compiled in.  Find it.
854                cf_config=
855                for cf_libpath in $X_LIBS $LIBS ; do
856                        case $cf_libpath in # (vi
857                        -L*)
858                                cf_libpath=`echo .$cf_libpath | sed -e 's/^...//'`
859                                cf_libpath=$cf_libpath/X11/config
860                                if test -d $cf_libpath ; then
861                                        cf_config=$cf_libpath
862                                        break
863                                fi
864                                ;;
865                        esac
866                done
867                if test -z "$cf_config" ; then
868                        AC_MSG_WARN(Could not find imake config-directory)
869                else
870                        cf_imake_opts="$cf_imake_opts -I$cf_config"
871                        if ( $IMAKE -v $cf_imake_opts 2>&AC_FD_CC)
872                        then
873                                CF_VERBOSE(Using $IMAKE $cf_config)
874                        else
875                                AC_MSG_WARN(Cannot run $IMAKE)
876                        fi
877                fi
878        fi
879
880        # GNU make sometimes prints "make[1]: Entering...", which
881        # would confuse us.
882        eval `make findstddefs 2>/dev/null | grep -v make`
883
884        cd ..
885        rm -rf conftestdir
886
887        # We use ${ALLDEFINES} rather than ${STD_DEFINES} because the former
888        # declares XTFUNCPROTO there.  However, some vendors (e.g., SGI) have
889        # modified it to support site.cf, adding a kludge for the /usr/include
890        # directory.  Try to filter that out, otherwise gcc won't find its
891        # headers.
892        if test -n "$GCC" ; then
893            if test -n "$IMAKE_CFLAGS" ; then
894                cf_nostdinc=""
895                cf_std_incl=""
896                cf_cpp_opts=""
897                for cf_opt in $IMAKE_CFLAGS
898                do
899                    case "$cf_opt" in
900                    -nostdinc) #(vi
901                        cf_nostdinc="$cf_opt"
902                        ;;
903                    -I/usr/include) #(vi
904                        cf_std_incl="$cf_opt"
905                        ;;
906                    *) #(vi
907                        cf_cpp_opts="$cf_cpp_opts $cf_opt"
908                        ;;
909                    esac
910                done
911                if test -z "$cf_nostdinc" ; then
912                    IMAKE_CFLAGS="$cf_cpp_opts $cf_std_incl"
913                elif test -z "$cf_std_incl" ; then
914                    IMAKE_CFLAGS="$cf_cpp_opts $cf_nostdinc"
915                else
916                    CF_VERBOSE(suppressed \"$cf_nostdinc\" and \"$cf_std_incl\")
917                    IMAKE_CFLAGS="$cf_cpp_opts"
918                fi
919            fi
920        fi
921fi
922
923# Some imake configurations define PROJECTROOT with an empty value.  Remove
924# the empty definition.
925case $IMAKE_CFLAGS in
926*-DPROJECTROOT=/*)
927        ;;
928*)
929        IMAKE_CFLAGS=`echo "$IMAKE_CFLAGS" |sed -e "s,-DPROJECTROOT=[[  ]], ,"`
930        ;;
931esac
932
933fi
934
935CF_VERBOSE(IMAKE_CFLAGS $IMAKE_CFLAGS)
936CF_VERBOSE(IMAKE_LOADFLAGS $IMAKE_LOADFLAGS)
937
938AC_SUBST(IMAKE_CFLAGS)
939AC_SUBST(IMAKE_LOADFLAGS)
940])dnl
941dnl ---------------------------------------------------------------------------
942dnl CF_INPUT_METHOD version: 3 updated: 2000/04/11 23:46:57
943dnl ---------------
944dnl Check if the X libraries support input-method
945AC_DEFUN([CF_INPUT_METHOD],g
946[
947AC_CACHE_CHECK([if X libraries support input-method],cf_cv_input_method,[
948AC_TRY_LINK([
949#include <X11/IntrinsicP.h>
950#include <X11/Xatom.h>
951#include <X11/Xutil.h>
952#include <X11/Xmu/Atoms.h>
953#include <X11/Xmu/Converters.h>g
954],[
955{
956        XIM xim;
957        XIMStyles *xim_styles = 0;
958        XIMStyle input_style;
959        Widget w = 0;
960
961        XSetLocaleModifiers("@im=none");
962        xim = XOpenIM(XtDisplay(w), NULL, NULL, NULL);
963        XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL);
964        XCloseIM(xim);
965        input_style = (XIMPreeditNothing | XIMStatusNothing);
966}
967],
968[cf_cv_input_method=yes],
969[cf_cv_input_method=no])])
970])dnl
971dnl ---------------------------------------------------------------------------
972dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
973dnl -----------------
974dnl Check if the given compiler is really the Intel compiler for Linux.  It
975dnl tries to imitate gcc, but does not return an error when it finds a mismatch
976dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
977dnl
978dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
979dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
980dnl the wrappers for gcc and g++ warnings.
981dnl
982dnl $1 = GCC (default) or GXX
983dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
984dnl $3 = CFLAGS (default) or CXXFLAGS
985AC_DEFUN([CF_INTEL_COMPILER],[
986ifelse($2,,INTEL_COMPILER,[$2])=no
987
988if test "$ifelse($1,,[$1],GCC)" = yes ; then
989        case $host_os in
990        linux*|gnu*)
991                AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
992                cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
993                ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
994                AC_TRY_COMPILE([],[
995#ifdef __INTEL_COMPILER
996#else
997make an error
998#endif
999],[ifelse($2,,INTEL_COMPILER,[$2])=yes
1000cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1001],[])
1002                ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
1003                AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
1004                ;;
1005        esac
1006fi
1007])dnl
1008dnl ---------------------------------------------------------------------------
1009dnl CF_LASTLOG version: 4 updated: 2002/10/27 23:21:42
1010dnl ----------
1011dnl Check for header defining _PATH_LASTLOG, or failing that, see if the lastlog
1012dnl file exists.
1013AC_DEFUN([CF_LASTLOG],
1014[
1015AC_CHECK_HEADERS(lastlog.h paths.h)
1016AC_CACHE_CHECK(for lastlog path,cf_cv_path_lastlog,[
1017AC_TRY_COMPILE([
1018#include <sys/types.h>
1019#ifdef HAVE_LASTLOG_H
1020#include <lastlog.h>
1021#else
1022#ifdef HAVE_PATHS_H
1023#include <paths.h>
1024#endif
1025#endif],[char *path = _PATH_LASTLOG],
1026        [cf_cv_path_lastlog="_PATH_LASTLOG"],
1027        [if test -f /usr/adm/lastlog ; then
1028                cf_cv_path_lastlog=/usr/adm/lastlog
1029        else
1030                cf_cv_path_lastlog=no
1031        fi])
1032])
1033test $cf_cv_path_lastlog != no && AC_DEFINE(USE_LASTLOG)
1034])dnl
1035dnl ---------------------------------------------------------------------------
1036dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
1037dnl ----------
1038dnl Write a debug message to config.log, along with the line number in the
1039dnl configure script.
1040AC_DEFUN([CF_MSG_LOG],[
1041echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1042])dnl
1043dnl ---------------------------------------------------------------------------
1044dnl CF_PATH_PROG version: 6 updated: 2004/01/26 20:58:41
1045dnl ------------
1046dnl Check for a given program, defining corresponding symbol.
1047dnl     $1 = environment variable, which is suffixed by "_PATH" in the #define.
1048dnl     $2 = program name to find.
1049dnl     $3 = optional list of additional program names to test.
1050dnl
1051dnl If there is more than one token in the result, #define the remaining tokens
1052dnl to $1_ARGS.  We need this for 'install' in particular.
1053dnl
1054dnl FIXME: we should allow this to be overridden by environment variables
1055dnl
1056AC_DEFUN([CF_PATH_PROG],[
1057test -z "[$]$1" && $1=$2
1058AC_PATH_PROGS($1,[$]$1 $2 $3,[$]$1)
1059
1060cf_path_prog=""
1061cf_path_args=""
1062IFS="${IFS=     }"; cf_save_ifs="$IFS"
1063case $host_os in #(vi
1064os2*) #(vi
1065        IFS="${IFS};"
1066        ;;
1067*)
1068        IFS="${IFS}:"
1069        ;;
1070esac
1071
1072for cf_temp in $ac_cv_path_$1
1073do
1074        if test -z "$cf_path_prog" ; then
1075                if test "$with_full_paths" = yes ; then
1076                        CF_PATH_SYNTAX(cf_temp,break)
1077                        cf_path_prog="$cf_temp"
1078                else
1079                        cf_path_prog="`basename $cf_temp`"
1080                fi
1081        elif test -z "$cf_path_args" ; then
1082                cf_path_args="$cf_temp"
1083        else
1084                cf_path_args="$cf_path_args $cf_temp"
1085        fi
1086done
1087IFS="$cf_save_ifs"
1088
1089if test -n "$cf_path_prog" ; then
1090        CF_MSG_LOG(defining path for ${cf_path_prog})
1091        AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog")
1092        test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args")
1093fi
1094])dnl
1095dnl ---------------------------------------------------------------------------
1096dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
1097dnl --------------
1098dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
1099dnl begins with one of the prefix/exec_prefix variables, and then again if the
1100dnl result begins with 'NONE'.  This is necessary to work around autoconf's
1101dnl delayed evaluation of those symbols.
1102AC_DEFUN([CF_PATH_SYNTAX],[
1103if test "x$prefix" != xNONE; then
1104  cf_path_syntax="$prefix"
1105else
1106  cf_path_syntax="$ac_default_prefix"
1107fi
1108
1109case ".[$]$1" in #(vi
1110.\[$]\(*\)*|.\'*\'*) #(vi
1111  ;;
1112..|./*|.\\*) #(vi
1113  ;;
1114.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
1115  ;;
1116.\[$]{*prefix}*) #(vi
1117  eval $1="[$]$1"
1118  case ".[$]$1" in #(vi
1119  .NONE/*)
1120    $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
1121    ;;
1122  esac
1123  ;; #(vi
1124.no|.NONE/*)
1125  $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
1126  ;;
1127*)
1128  ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
1129  ;;
1130esac
1131])dnl
1132dnl ---------------------------------------------------------------------------
1133dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
1134dnl -----------------
1135dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
1136dnl
1137dnl     POSIX.1-1990                            _POSIX_SOURCE
1138dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
1139dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
1140dnl             Bindings Option
1141dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
1142dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
1143dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
1144dnl
1145dnl Parameters:
1146dnl     $1 is the nominal value for _POSIX_C_SOURCE
1147AC_DEFUN([CF_POSIX_C_SOURCE],
1148[
1149cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
1150
1151cf_save_CFLAGS="$CFLAGS"
1152cf_save_CPPFLAGS="$CPPFLAGS"
1153
1154CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
1155CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
1156
1157AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
1158        CF_MSG_LOG(if the symbol is already defined go no further)
1159        AC_TRY_COMPILE([#include <sys/types.h>],[
1160#ifndef _POSIX_C_SOURCE
1161make an error
1162#endif],
1163        [cf_cv_posix_c_source=no],
1164        [cf_want_posix_source=no
1165         case .$cf_POSIX_C_SOURCE in #(vi
1166         .[[12]]??*) #(vi
1167                cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
1168                ;;
1169         .2) #(vi
1170                cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
1171                cf_want_posix_source=yes
1172                ;;
1173         .*)
1174                cf_want_posix_source=yes
1175                ;;
1176         esac
1177         if test "$cf_want_posix_source" = yes ; then
1178                AC_TRY_COMPILE([#include <sys/types.h>],[
1179#ifdef _POSIX_SOURCE
1180make an error
1181#endif],[],
1182                cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
1183         fi
1184         CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
1185         CFLAGS="$cf_trim_CFLAGS"
1186         CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
1187         CF_MSG_LOG(if the second compile does not leave our definition intact error)
1188         AC_TRY_COMPILE([#include <sys/types.h>],[
1189#ifndef _POSIX_C_SOURCE
1190make an error
1191#endif],,
1192         [cf_cv_posix_c_source=no])
1193         CFLAGS="$cf_save_CFLAGS"
1194         CPPFLAGS="$cf_save_CPPFLAGS"
1195        ])
1196])
1197
1198if test "$cf_cv_posix_c_source" != no ; then
1199        CFLAGS="$cf_trim_CFLAGS"
1200        CPPFLAGS="$cf_trim_CPPFLAGS"
1201        if test "$cf_cv_cc_u_d_options" = yes ; then
1202                cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
1203                                sed -e 's/-D/-U/g' -e 's/=[[^   ]]*//g'`
1204                CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
1205        fi
1206        CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
1207fi
1208
1209])dnl
1210dnl ---------------------------------------------------------------------------
1211dnl CF_POSIX_SAVED_IDS version: 7 updated: 2007/03/14 16:43:53
1212dnl ------------------
1213dnl
1214dnl Check first if saved-ids are always supported.  Some systems
1215dnl may require runtime checks.
1216AC_DEFUN([CF_POSIX_SAVED_IDS],
1217[
1218AC_CHECK_HEADERS( \
1219sys/param.h \
1220)
1221
1222AC_CACHE_CHECK(if POSIX saved-ids are supported,cf_cv_posix_saved_ids,[
1223AC_TRY_LINK(
1224[
1225#include <unistd.h>
1226#ifdef HAVE_SYS_PARAM_H
1227#include <sys/param.h>          /* this may define "BSD" */
1228#endif
1229],[
1230#if defined(_POSIX_SAVED_IDS) && (_POSIX_SAVED_IDS > 0)
1231        void *p = (void *) seteuid;
1232        int x = seteuid(geteuid());
1233#elif defined(BSD) && (BSD >= 199103)
1234/* The BSD's may implement the runtime check - and it fails.
1235 * However, saved-ids work almost like POSIX (close enough for most uses).
1236 */
1237#else
1238make an error
1239#endif
1240],[cf_cv_posix_saved_ids=yes
1241],[
1242AC_TRY_RUN([
1243#ifdef HAVE_STDLIB_H
1244#include <stdlib.h>
1245#endif
1246#include <unistd.h>
1247int main()
1248{
1249        void *p = (void *) seteuid;
1250        long code = sysconf(_SC_SAVED_IDS);
1251        ${cf_cv_main_return:-return}  ((code > 0) ? 0 : 1);
1252}],
1253        cf_cv_posix_saved_ids=yes,
1254        cf_cv_posix_saved_ids=no,
1255        cf_cv_posix_saved_ids=unknown)
1256])
1257])
1258
1259test "$cf_cv_posix_saved_ids" = yes && AC_DEFINE(HAVE_POSIX_SAVED_IDS)
1260])
1261dnl ---------------------------------------------------------------------------
1262dnl CF_POSIX_WAIT version: 2 updated: 2000/05/29 16:16:04
1263dnl -------------
1264dnl Check for POSIX wait support
1265AC_DEFUN([CF_POSIX_WAIT],
1266[
1267AC_REQUIRE([AC_HEADER_SYS_WAIT])
1268AC_CACHE_CHECK(for POSIX wait functions,cf_cv_posix_wait,[
1269AC_TRY_LINK([
1270#include <stdlib.h>
1271#include <stdio.h>
1272#include <sys/types.h>
1273#ifdef HAVE_SYS_WAIT_H
1274#include <sys/wait.h>
1275#endif
1276],[
1277        int stat_loc;
1278        pid_t pid = waitpid(-1, &stat_loc, WNOHANG|WUNTRACED);
1279        pid_t pid2 = wait(&stat_loc);
1280],
1281[cf_cv_posix_wait=yes],
1282[cf_cv_posix_wait=no])
1283])
1284test "$cf_cv_posix_wait" = yes && AC_DEFINE(USE_POSIX_WAIT)
1285])dnl
1286dnl ---------------------------------------------------------------------------
1287dnl CF_PROCFS_CWD version: 2 updated: 2007/03/12 20:39:04
1288dnl -------------
1289dnl Find /proc tree (may be in a different place) which implements the "cwd"
1290dnl link.
1291AC_DEFUN([CF_PROCFS_CWD],[
1292AC_CACHE_CHECK(for proc tree with cwd-support,cf_cv_procfs_cwd,[
1293cf_cv_procfs_cwd=no
1294for cf_path in /proc /compat/linux/proc /usr/compat/linux/proc
1295do
1296        if test -d $cf_path && \
1297           test -d $cf_path/$$ && \
1298           ( test -d $cf_path/$$/cwd || \
1299             test -L $cf_path/$$/cwd ); then
1300                cf_cv_procfs_cwd=$cf_path
1301                break
1302        fi
1303done
1304])
1305])dnl
1306dnl ---------------------------------------------------------------------------
1307dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
1308dnl --------------
1309dnl Check if C (preprocessor) -U and -D options are processed in the order
1310dnl given rather than by type of option.  Some compilers insist on apply all
1311dnl of the -U options after all of the -D options.  Others allow mixing them,
1312dnl and may predefine symbols that conflict with those we define.
1313AC_DEFUN([CF_PROG_CC_U_D],
1314[
1315AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
1316        cf_save_CPPFLAGS="$CPPFLAGS"
1317        CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
1318        AC_TRY_COMPILE([],[
1319#ifndef U_D_OPTIONS
1320make an undefined-error
1321#endif
1322#ifdef  D_U_OPTIONS
1323make a defined-error
1324#endif
1325        ],[
1326        cf_cv_cc_u_d_options=yes],[
1327        cf_cv_cc_u_d_options=no])
1328        CPPFLAGS="$cf_save_CPPFLAGS"
1329])
1330])dnl
1331dnl ---------------------------------------------------------------------------
1332dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
1333dnl -----------
1334dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
1335AC_DEFUN([CF_PROG_EXT],
1336[
1337AC_REQUIRE([CF_CHECK_CACHE])
1338case $cf_cv_system_name in
1339os2*)
1340    CFLAGS="$CFLAGS -Zmt"
1341    CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
1342    CXXFLAGS="$CXXFLAGS -Zmt"
1343    # autoconf's macro sets -Zexe and suffix both, which conflict:w
1344    LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
1345    ac_cv_exeext=.exe
1346    ;;
1347esac
1348
1349AC_EXEEXT
1350AC_OBJEXT
1351
1352PROG_EXT="$EXEEXT"
1353AC_SUBST(PROG_EXT)
1354test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
1355])dnl
1356dnl ---------------------------------------------------------------------------
1357dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
1358dnl --------
1359dnl Attempt to determine if we've got one of the flavors of regular-expression
1360dnl code that we can support.
1361AC_DEFUN([CF_REGEX],
1362[
1363AC_MSG_CHECKING([for regular-expression headers])
1364AC_CACHE_VAL(cf_cv_regex,[
1365AC_TRY_LINK([#include <sys/types.h>
1366#include <regex.h>],[
1367        regex_t *p;
1368        int x = regcomp(p, "", 0);
1369        int y = regexec(p, "", 0, 0, 0);
1370        regfree(p);
1371        ],[cf_cv_regex="regex.h"],[
1372        AC_TRY_LINK([#include <regexp.h>],[
1373                char *p = compile("", "", "", 0);
1374                int x = step("", "");
1375        ],[cf_cv_regex="regexp.h"],[
1376                cf_save_LIBS="$LIBS"
1377                LIBS="-lgen $LIBS"
1378                AC_TRY_LINK([#include <regexpr.h>],[
1379                        char *p = compile("", "", "");
1380                        int x = step("", "");
1381                ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
1382])
1383AC_MSG_RESULT($cf_cv_regex)
1384case $cf_cv_regex in
1385        regex.h)   AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
1386        regexp.h)  AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
1387        regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
1388esac
1389])dnl
1390dnl ---------------------------------------------------------------------------
1391dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
1392dnl ----------------
1393dnl Remove all -U and -D options that refer to the given symbol from a list
1394dnl of C compiler options.  This works around the problem that not all
1395dnl compilers process -U and -D options from left-to-right, so a -U option
1396dnl cannot be used to cancel the effect of a preceding -D option.
1397dnl
1398dnl $1 = target (which could be the same as the source variable)
1399dnl $2 = source (including '$')
1400dnl $3 = symbol to remove
1401define([CF_REMOVE_DEFINE],
1402[
1403# remove $3 symbol from $2
1404$1=`echo "$2" | \
1405        sed     -e 's/-[[UD]]$3\(=[[^   ]]*\)\?[[       ]]/ /g' \
1406                -e 's/-[[UD]]$3\(=[[^   ]]*\)\?[$]//g'`
1407])dnl
1408dnl ---------------------------------------------------------------------------
1409dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
1410dnl -----------
1411dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
1412dnl programs need this test).
1413dnl
1414dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
1415dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
1416dnl winsize declaration is left alone - we may revisit this if Apple choose to
1417dnl break that part of the interface as well.
1418AC_DEFUN([CF_SIGWINCH],
1419[
1420AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
1421        AC_TRY_COMPILE([
1422#include <sys/types.h>
1423#include <sys/signal.h>
1424],[int x = SIGWINCH],
1425        [cf_cv_define_sigwinch=yes],
1426        [AC_TRY_COMPILE([
1427#undef _XOPEN_SOURCE
1428#undef _POSIX_SOURCE
1429#undef _POSIX_C_SOURCE
1430#include <sys/types.h>
1431#include <sys/signal.h>
1432],[int x = SIGWINCH],
1433        [cf_cv_define_sigwinch=maybe],
1434        [cf_cv_define_sigwinch=no])
1435])
1436])
1437
1438if test "$cf_cv_define_sigwinch" = maybe ; then
1439AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
1440cf_cv_fixup_sigwinch=unknown
1441cf_sigwinch=32
1442while test $cf_sigwinch != 1
1443do
1444        AC_TRY_COMPILE([
1445#undef _XOPEN_SOURCE
1446#undef _POSIX_SOURCE
1447#undef _POSIX_C_SOURCE
1448#include <sys/types.h>
1449#include <sys/signal.h>
1450],[
1451#if SIGWINCH != $cf_sigwinch
1452make an error
1453#endif
1454int x = SIGWINCH],
1455        [cf_cv_fixup_sigwinch=$cf_sigwinch
1456         break])
1457
1458cf_sigwinch=`expr $cf_sigwinch - 1`
1459done
1460])
1461
1462        if test "$cf_cv_fixup_sigwinch" != unknown ; then
1463                CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
1464        fi
1465fi
1466])dnl
1467dnl ---------------------------------------------------------------------------
1468dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
1469dnl ---------------
1470dnl signal handler, but there are some gcc depedencies in that recommendation.
1471dnl Try anyway.
1472AC_DEFUN([CF_SIG_ATOMIC_T],
1473[
1474AC_MSG_CHECKING(for signal global datatype)
1475AC_CACHE_VAL(cf_cv_sig_atomic_t,[
1476        for cf_type in \
1477                "volatile sig_atomic_t" \
1478                "sig_atomic_t" \
1479                "int"
1480        do
1481        AC_TRY_COMPILE([
1482#include <sys/types.h>
1483#include <signal.h>
1484#include <stdio.h>
1485
1486extern $cf_type x;
1487$cf_type x;
1488static void handler(int sig)
1489{
1490        x = 5;
1491}],
1492                [signal(SIGINT, handler);
1493                 x = 1],
1494                [cf_cv_sig_atomic_t=$cf_type],
1495                [cf_cv_sig_atomic_t=no])
1496                test "$cf_cv_sig_atomic_t" != no && break
1497        done
1498        ])
1499AC_MSG_RESULT($cf_cv_sig_atomic_t)
1500test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
1501])dnl
1502dnl ---------------------------------------------------------------------------
1503dnl CF_SIZE_T version: 4 updated: 2000/01/22 00:19:54
1504dnl ---------
1505dnl     On both Ultrix and CLIX, I find size_t defined in <stdio.h>
1506AC_DEFUN([CF_SIZE_T],
1507[
1508AC_MSG_CHECKING(for size_t in <sys/types.h> or <stdio.h>)
1509AC_CACHE_VAL(cf_cv_type_size_t,[
1510        AC_TRY_COMPILE([
1511#include <sys/types.h>
1512#ifdef STDC_HEADERS
1513#include <stdlib.h>
1514#include <stddef.h>
1515#endif
1516#include <stdio.h>],
1517                [size_t x],
1518                [cf_cv_type_size_t=yes],
1519                [cf_cv_type_size_t=no])
1520        ])
1521AC_MSG_RESULT($cf_cv_type_size_t)
1522test $cf_cv_type_size_t = no && AC_DEFINE(size_t, unsigned)
1523])dnl
1524dnl ---------------------------------------------------------------------------
1525dnl CF_STRUCT_LASTLOG version: 1 updated: 2006/03/12 17:46:43
1526dnl -----------------
1527dnl Check for header defining struct lastlog, ensure that its .ll_time member
1528dnl is compatible with time().
1529AC_DEFUN([CF_STRUCT_LASTLOG],
1530[
1531AC_CHECK_HEADERS(lastlog.h)
1532AC_CACHE_CHECK(for struct lastlog,cf_cv_struct_lastlog,[
1533AC_TRY_RUN([
1534#include <sys/types.h>
1535#include <time.h>
1536#include <lastlog.h>
1537
1538int main()
1539{
1540        struct lastlog data;
1541        return (sizeof(data.ll_time) != sizeof(time_t));
1542}],[
1543cf_cv_struct_lastlog=yes],[
1544cf_cv_struct_lastlog=no],[
1545cf_cv_struct_lastlog=unknown])])
1546
1547test $cf_cv_struct_lastlog != no && AC_DEFINE(USE_STRUCT_LASTLOG)
1548])dnl
1549dnl ---------------------------------------------------------------------------
1550dnl CF_SVR4 version: 3 updated: 2000/05/31 10:16:52
1551dnl -------
1552dnl Check if this is an SVR4 system.  We need the definition for xterm
1553AC_DEFUN([CF_SVR4],
1554[
1555AC_CHECK_LIB(elf, elf_begin,[
1556AC_CACHE_CHECK(if this is an SVR4 system, cf_cv_svr4,[
1557AC_TRY_COMPILE([
1558#include <elf.h>
1559#include <sys/termio.h>
1560],[
1561static struct termio d_tio;
1562        d_tio.c_cc[VINTR] = 0;
1563        d_tio.c_cc[VQUIT] = 0;
1564        d_tio.c_cc[VERASE] = 0;
1565        d_tio.c_cc[VKILL] = 0;
1566        d_tio.c_cc[VEOF] = 0;
1567        d_tio.c_cc[VEOL] = 0;
1568        d_tio.c_cc[VMIN] = 0;
1569        d_tio.c_cc[VTIME] = 0;
1570        d_tio.c_cc[VLNEXT] = 0;
1571],
1572[cf_cv_svr4=yes],
1573[cf_cv_svr4=no])
1574])
1575])
1576test "$cf_cv_svr4" = yes && AC_DEFINE(SVR4)
1577])dnl
1578dnl ---------------------------------------------------------------------------
1579dnl CF_SYSV version: 13 updated: 2006/08/20 14:55:37
1580dnl -------
1581dnl Check if this is a SYSV platform, e.g., as used in <X11/Xos.h>, and whether
1582dnl defining it will be helpful.  The following features are used to check:
1583dnl
1584dnl a) bona-fide SVSV doesn't use const for sys_errlist[].  Since this is a
1585dnl legacy (pre-ANSI) feature, const should not apply.  Modern systems only
1586dnl declare strerror().  Xos.h declares the legacy form of str_errlist[], and
1587dnl a compile-time error will result from trying to assign to a const array.
1588dnl
1589dnl b) compile with headers that exist on SYSV hosts.
1590dnl
1591dnl c) compile with type definitions that differ on SYSV hosts from standard C.
1592AC_DEFUN([CF_SYSV],
1593[
1594AC_CHECK_HEADERS( \
1595termios.h \
1596stdlib.h \
1597X11/Intrinsic.h \
1598)
1599
1600AC_REQUIRE([CF_SYS_ERRLIST])
1601
1602AC_CACHE_CHECK(if we should define SYSV,cf_cv_sysv,[
1603AC_TRY_COMPILE([
1604#undef  SYSV
1605#define SYSV 1                  /* get Xos.h to declare sys_errlist[] */
1606#ifdef HAVE_STDLIB_H
1607#include <stdlib.h>             /* look for wchar_t */
1608#endif
1609#ifdef HAVE_X11_INTRINSIC_H
1610#include <X11/Intrinsic.h>      /* Intrinsic.h has other traps... */
1611#endif
1612#ifdef HAVE_TERMIOS_H           /* needed for HPUX 10.20 */
1613#include <termios.h>
1614#define STRUCT_TERMIOS struct termios
1615#else
1616#define STRUCT_TERMIOS struct termio
1617#endif
1618#include <curses.h>
1619#include <term.h>               /* eliminate most BSD hacks */
1620#include <errno.h>              /* declare sys_errlist on older systems */
1621#include <sys/termio.h>         /* eliminate most of the remaining ones */
1622],[
1623static STRUCT_TERMIOS d_tio;
1624        d_tio.c_cc[VINTR] = 0;
1625        d_tio.c_cc[VQUIT] = 0;
1626        d_tio.c_cc[VERASE] = 0;
1627        d_tio.c_cc[VKILL] = 0;
1628        d_tio.c_cc[VEOF] = 0;
1629        d_tio.c_cc[VEOL] = 0;
1630        d_tio.c_cc[VMIN] = 0;
1631        d_tio.c_cc[VTIME] = 0;
1632#if defined(HAVE_SYS_ERRLIST) && !defined(DECL_SYS_ERRLIST)
1633sys_errlist[0] = "";            /* Cygwin mis-declares this */
1634#endif
1635],
1636[cf_cv_sysv=yes],
1637[cf_cv_sysv=no])
1638])
1639test "$cf_cv_sysv" = yes && AC_DEFINE(SYSV)
1640])dnl
1641dnl ---------------------------------------------------------------------------
1642dnl CF_SYSV_UTMP version: 5 updated: 2001/12/27 12:55:07
1643dnl ------------
1644dnl Check if this is a SYSV flavor of UTMP
1645AC_DEFUN([CF_SYSV_UTMP],
1646[
1647AC_CACHE_CHECK(if $cf_cv_have_utmp is SYSV flavor,cf_cv_sysv_utmp,[
1648test "$cf_cv_have_utmp" = "utmp" && cf_prefix="ut" || cf_prefix="utx"
1649AC_TRY_LINK([
1650#include <sys/types.h>
1651#include <${cf_cv_have_utmp}.h>],[
1652struct $cf_cv_have_utmp x;
1653        set${cf_prefix}ent ();
1654        get${cf_prefix}id(&x);
1655        put${cf_prefix}line(&x);
1656        end${cf_prefix}ent();],
1657        [cf_cv_sysv_utmp=yes],
1658        [cf_cv_sysv_utmp=no])
1659])
1660test $cf_cv_sysv_utmp = yes && AC_DEFINE(USE_SYSV_UTMP)
1661])dnl
1662dnl ---------------------------------------------------------------------------
1663dnl CF_SYS_ERRLIST version: 6 updated: 2001/12/30 13:03:23
1664dnl --------------
1665dnl Check for declaration of sys_nerr and sys_errlist in one of stdio.h and
1666dnl errno.h.  Declaration of sys_errlist on BSD4.4 interferes with our
1667dnl declaration.  Reported by Keith Bostic.
1668AC_DEFUN([CF_SYS_ERRLIST],
1669[
1670    CF_CHECK_ERRNO(sys_nerr)
1671    CF_CHECK_ERRNO(sys_errlist)
1672])dnl
1673dnl ---------------------------------------------------------------------------
1674dnl CF_TERMIO_C_ISPEED version: 2 updated: 2000/05/29 16:16:04
1675dnl ------------------
1676dnl Check for SGI's broken redefinition of baud rates introduced in IRIX 6.5
1677dnl (there doesn't appear to be a useful predefined symbol).
1678AC_DEFUN([CF_TERMIO_C_ISPEED],
1679[
1680AC_CACHE_CHECK(for IRIX 6.5 baud-rate redefinitions,cf_cv_termio_c_ispeed,[
1681AC_TRY_COMPILE([
1682#include <sys/types.h>
1683#include <sys/termio.h>],[
1684struct termio foo;
1685foo.c_ispeed = B38400;
1686foo.c_ospeed = B9600;
1687],[cf_cv_termio_c_ispeed=yes
1688],[cf_cv_termio_c_ispeed=no])
1689])
1690test "$cf_cv_termio_c_ispeed" = yes && AC_DEFINE(HAVE_TERMIO_C_ISPEED)
1691])dnl
1692dnl ---------------------------------------------------------------------------
1693dnl CF_TTY_GROUP version: 7 updated: 2007/03/14 16:43:59
1694dnl ------------
1695dnl Check if the system has a tty-group defined.  This is used in xterm when
1696dnl setting pty ownership.
1697AC_DEFUN([CF_TTY_GROUP],
1698[
1699AC_MSG_CHECKING(for explicit tty group name)
1700AC_ARG_WITH(tty-group,
1701        [  --with-tty-group=XXX    use XXX for the tty-group],
1702        [cf_tty_group=$withval],
1703        [cf_tty_group=auto...])
1704test -z "$cf_tty_group"    && cf_tty_group=auto...
1705test "$cf_tty_group" = yes && cf_tty_group=auto...
1706AC_MSG_RESULT($cf_tty_group)
1707
1708if test "$cf_tty_group" = "auto..." ; then
1709AC_CACHE_CHECK(for tty group name,cf_cv_tty_group_name,[
1710
1711# If we are configuring as root, it is hard to get a clue about the tty group.
1712# But we'll guess based on how our connection is set up - assuming it is done
1713# properly.
1714
1715cf_uid=`id | sed -e 's/^[^=]*=//' -e 's/(.*$//'`
1716# )vi
1717if test "$cf_uid" != 0 ; then
1718cf_cv_tty_group_name=
1719cf_tty_name=`tty`
1720test "$cf_tty_name" = "not a tty" && cf_tty_name=/dev/tty
1721test -z "$cf_tty_name" && cf_tty_name=/dev/tty
1722if test -c "$cf_tty_name"
1723then
1724        cf_option="-l -L"
1725
1726        # Expect listing to have fields like this:
1727        #-rwxrwxrwx   1 user      group       34293 Jul 18 16:29 pathname
1728        ls $cf_option $cf_tty_name >conftest.out
1729        read cf_mode cf_links cf_usr cf_grp cf_size cf_date1 cf_date2 cf_date3 cf_rest <conftest.out
1730        if test -z "$cf_rest" ; then
1731                cf_option="$cf_option -g"
1732                ls $cf_option $cf_tty_name >conftest.out
1733                read cf_mode cf_links cf_usr cf_grp cf_size cf_date1 cf_date2 cf_date3 cf_rest <conftest.out
1734        fi
1735        rm -f conftest.out
1736        cf_cv_tty_group_name=$cf_grp
1737fi
1738fi
1739
1740# If we cannot deduce the tty group, fall back on hardcoded cases
1741
1742if test -z "$cf_cv_tty_group_name"
1743then
1744case $host_os in #(vi
1745osf*) #(vi
1746        cf_cv_tty_group_name="terminal"
1747        ;;
1748*)
1749        cf_cv_tty_group_name="unknown"
1750        if ( egrep '^tty:' /etc/group 2>/dev/null 1>/dev/null ) then
1751                cf_cv_tty_group_name="tty"
1752        fi
1753        ;;
1754esac
1755fi
1756])
1757cf_tty_group="$cf_cv_tty_group_name"
1758else
1759        # if configure option, always do this
1760        AC_DEFINE(USE_TTY_GROUP)
1761fi
1762
1763AC_DEFINE_UNQUOTED(TTY_GROUP_NAME,"$cf_tty_group")
1764
1765# This is only a double-check that the group-name we obtained above really
1766# does apply to the device.  We cannot perform this test if we are in batch
1767# mode, or if we are cross-compiling.
1768
1769AC_CACHE_CHECK(if we may use the $cf_tty_group group,cf_cv_tty_group,[
1770cf_tty_name=`tty`
1771if test "$cf_tty_name" != "not a tty"
1772then
1773AC_TRY_RUN([
1774#include <unistd.h>
1775#include <sys/types.h>
1776#include <sys/stat.h>
1777#include <grp.h>
1778int main()
1779{
1780        struct stat sb;
1781        struct group *ttygrp = getgrnam(TTY_GROUP_NAME);
1782        char *name = ttyname(0);
1783
1784        endgrent();
1785        if (ttygrp != 0
1786         && name != 0
1787         && stat(name, &sb) == 0
1788         && sb.st_gid != getgid()
1789         && sb.st_gid == ttygrp->gr_gid) {
1790                ${cf_cv_main_return:-return} (0);
1791        }
1792        ${cf_cv_main_return:-return} (1);
1793}
1794        ],
1795        [cf_cv_tty_group=yes],
1796        [cf_cv_tty_group=no],
1797        [cf_cv_tty_group=unknown])
1798elif test "$cross_compiling" = yes; then
1799        cf_cv_tty_group=unknown
1800else
1801        cf_cv_tty_group=yes
1802fi
1803])
1804
1805if test $cf_cv_tty_group = no ; then
1806        AC_MSG_WARN(Cannot use $cf_tty_group group)
1807else
1808        AC_DEFINE(USE_TTY_GROUP)
1809fi
1810])dnl
1811dnl ---------------------------------------------------------------------------
1812dnl CF_TYPE_FD_MASK version: 1 updated: 2008/03/25 20:56:27
1813dnl ---------------
1814dnl Check for the declaration of fd_mask, which is like fd_set, associated
1815dnl with select().  The check for fd_set should have pulled in this as well,
1816dnl but there is a special case for Mac OS X, possibly other BSD-derived
1817dnl platforms.
1818AC_DEFUN([CF_TYPE_FD_MASK],
1819[
1820AC_REQUIRE([CF_TYPE_FD_SET])
1821
1822AC_CACHE_CHECK(for declaration of fd_mask,cf_cv_type_fd_mask,[
1823    if test x$cf_cv_type_fd_set = xX11/Xpoll.h ; then
1824        AC_TRY_COMPILE([
1825#include <X11/Xpoll.h>],[fd_mask x],,
1826        [CF_MSG_LOG(if we must define CSRG_BASED)
1827# Xosdefs.h on Mac OS X may not define this (but it should).
1828            AC_TRY_COMPILE([
1829#define CSRG_BASED
1830#include <X11/Xpoll.h>],[fd_mask x],
1831        cf_cv_type_fd_mask=CSRG_BASED)])
1832    else
1833        cf_cv_type_fd_mask=$cf_cv_type_fd_set
1834    fi
1835])
1836if test x$cf_cv_type_fd_mask = xCSRG_BASED ; then
1837    AC_DEFINE(CSRG_BASED)
1838fi
1839])dnl
1840dnl ---------------------------------------------------------------------------
1841dnl CF_TYPE_FD_SET version: 4 updated: 2008/03/25 20:56:03
1842dnl --------------
1843dnl Check for the declaration of fd_set.  Some platforms declare it in
1844dnl <sys/types.h>, and some in <sys/select.h>, which requires <sys/types.h>.
1845dnl Finally, if we are using this for an X application, Xpoll.h may include
1846dnl <sys/select.h>, so we don't want to do it twice.
1847AC_DEFUN([CF_TYPE_FD_SET],
1848[
1849AC_CHECK_HEADERS(X11/Xpoll.h)
1850
1851AC_CACHE_CHECK(for declaration of fd_set,cf_cv_type_fd_set,
1852        [CF_MSG_LOG(sys/types alone)
1853AC_TRY_COMPILE([
1854#include <sys/types.h>],
1855        [fd_set x],
1856        [cf_cv_type_fd_set=sys/types.h],
1857        [CF_MSG_LOG(X11/Xpoll.h)
1858AC_TRY_COMPILE([
1859#ifdef HAVE_X11_XPOLL_H
1860#include <X11/Xpoll.h>
1861#endif],
1862        [fd_set x],
1863        [cf_cv_type_fd_set=X11/Xpoll.h],
1864        [CF_MSG_LOG(sys/select.h)
1865AC_TRY_COMPILE([
1866#include <sys/types.h>
1867#include <sys/select.h>],
1868        [fd_set x],
1869        [cf_cv_type_fd_set=sys/select.h],
1870        [cf_cv_type_fd_set=unknown])])])])
1871if test $cf_cv_type_fd_set = sys/select.h ; then
1872        AC_DEFINE(USE_SYS_SELECT_H)
1873fi
1874])
1875dnl ---------------------------------------------------------------------------
1876dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
1877dnl --------
1878dnl Make an uppercase version of a variable
1879dnl $1=uppercase($2)
1880AC_DEFUN([CF_UPPER],
1881[
1882$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
1883])dnl
1884dnl ---------------------------------------------------------------------------
1885dnl CF_UTEMPTER version: 2 updated: 2000/01/22 22:50:59
1886dnl -----------
1887dnl Try to link with utempter library
1888AC_DEFUN([CF_UTEMPTER],
1889[
1890AC_CACHE_CHECK(if we can link with utempter library,cf_cv_have_utempter,[
1891cf_save_LIBS="$LIBS"
1892LIBS="-lutempter $LIBS"
1893AC_TRY_LINK([
1894#include <utempter.h>
1895],[
1896        addToUtmp("/dev/tty", 0, 1);
1897        removeFromUtmp();
1898],[
1899        cf_cv_have_utempter=yes],[
1900        cf_cv_have_utempter=no])
1901LIBS="$cf_save_LIBS"
1902])
1903if test "$cf_cv_have_utempter" = yes ; then
1904        AC_DEFINE(USE_UTEMPTER)
1905        LIBS="-lutempter $LIBS"
1906fi
1907])dnl
1908dnl ---------------------------------------------------------------------------
1909dnl CF_UTMP version: 9 updated: 2008/01/25 17:18:00
1910dnl -------
1911dnl Check for UTMP/UTMPX headers
1912AC_DEFUN([CF_UTMP],
1913[
1914AC_REQUIRE([CF_LASTLOG])
1915
1916AC_CACHE_CHECK(for utmp implementation,cf_cv_have_utmp,[
1917        cf_cv_have_utmp=no
1918for cf_header in utmpx utmp ; do
1919cf_utmp_includes="
1920#include <sys/types.h>
1921#include <${cf_header}.h>
1922#define getutent getutxent
1923#ifdef USE_LASTLOG
1924#include <lastlog.h>    /* may conflict with utmpx.h on Linux */
1925#endif
1926"
1927        AC_TRY_COMPILE([$cf_utmp_includes],
1928        [struct $cf_header x;
1929         char *name = x.ut_name; /* utmp.h and compatible definitions */
1930        ],
1931        [cf_cv_have_utmp=$cf_header
1932         break],
1933        [
1934        AC_TRY_COMPILE([$cf_utmp_includes],
1935        [struct $cf_header x;
1936         char *name = x.ut_user; /* utmpx.h must declare this */
1937        ],
1938        [cf_cv_have_utmp=$cf_header
1939         break
1940        ])])
1941done
1942])
1943
1944if test $cf_cv_have_utmp != no ; then
1945        AC_DEFINE(HAVE_UTMP)
1946        test $cf_cv_have_utmp = utmpx && AC_DEFINE(UTMPX_FOR_UTMP)
1947        CF_UTMP_UT_HOST
1948        CF_UTMP_UT_SYSLEN
1949        CF_UTMP_UT_NAME
1950        CF_UTMP_UT_XSTATUS
1951        CF_UTMP_UT_XTIME
1952        CF_UTMP_UT_SESSION
1953        CF_SYSV_UTMP
1954fi
1955])dnl
1956dnl ---------------------------------------------------------------------------
1957dnl CF_UTMP_GROUP version: 1 updated: 2005/10/06 20:29:29
1958dnl -------------
1959dnl Find the utmp/utmpx file and determine its group to allow setgid programs
1960dnl to manipulate it, e.g., when there is no intermediary.
1961AC_DEFUN([CF_UTMP_GROUP],[
1962AC_REQUIRE([CF_UTMP])
1963if test $cf_cv_have_utmp != no ; then
1964AC_CACHE_CHECK(for utmp/utmpx group,cf_cv_utmp_group,[
1965for cf_utmp_path in /var/adm /var/run
1966do
1967        for cf_utmp_file in utmpx utmp
1968        do
1969                if test -f $cf_utmp_path/$cf_utmp_file
1970                then
1971                        cf_cv_utmp_group=root
1972
1973                        cf_option="-l -L"
1974
1975                        # Expect listing to have fields like this:
1976                        #-r--r--r--   1 user      group       34293 Jul 18 16:29 pathname
1977                        ls $cf_option $cf_utmp_path/$cf_utmp_file >conftest
1978                        read cf_mode cf_links cf_usr cf_grp cf_size cf_date1 cf_date2 cf_date3 cf_rest <conftest
1979                        if test -z "$cf_rest" ; then
1980                                cf_option="$cf_option -g"
1981                                ls $cf_option $cf_utmp_path/$cf_utmp_file >conftest
1982                                read cf_mode cf_links cf_usr cf_grp cf_size cf_date1 cf_date2 cf_date3 cf_rest <conftest
1983                        fi
1984                        rm -f conftest
1985
1986                        # If we have a pathname, and the date fields look right, assume we've
1987                        # captured the group as well.
1988                        if test -n "$cf_rest" ; then
1989                                cf_test=`echo "${cf_date2}${cf_date3}" | sed -e 's/[[0-9:]]//g'`
1990                                if test -z "$cf_test" ; then
1991                                        cf_cv_utmp_group=$cf_grp;
1992                                fi
1993                        fi
1994                        break
1995                fi
1996        done
1997        test -n "$cf_cv_utmp_group" && break
1998done
1999])
2000else
2001        AC_MSG_ERROR(cannot find utmp group)
2002fi
2003])dnl
2004dnl ---------------------------------------------------------------------------
2005dnl CF_UTMP_UT_HOST version: 7 updated: 2007/03/13 19:17:11
2006dnl ---------------
2007dnl Check if UTMP/UTMPX struct defines ut_host member
2008AC_DEFUN([CF_UTMP_UT_HOST],
2009[
2010if test $cf_cv_have_utmp != no ; then
2011AC_MSG_CHECKING(if ${cf_cv_have_utmp}.ut_host is declared)
2012AC_CACHE_VAL(cf_cv_have_utmp_ut_host,[
2013        AC_TRY_COMPILE([
2014#include <sys/types.h>
2015#include <${cf_cv_have_utmp}.h>],
2016        [struct $cf_cv_have_utmp x; char *y = &x.ut_host[0]],
2017        [cf_cv_have_utmp_ut_host=yes],
2018        [cf_cv_have_utmp_ut_host=no])
2019        ])
2020AC_MSG_RESULT($cf_cv_have_utmp_ut_host)
2021test $cf_cv_have_utmp_ut_host != no && AC_DEFINE(HAVE_UTMP_UT_HOST)
2022fi
2023])dnl
2024dnl ---------------------------------------------------------------------------
2025dnl CF_UTMP_UT_NAME version: 4 updated: 2007/03/13 19:17:11
2026dnl ---------------
2027dnl Check if UTMP/UTMPX struct defines ut_name member
2028AC_DEFUN([CF_UTMP_UT_NAME],
2029[
2030if test $cf_cv_have_utmp != no ; then
2031AC_CACHE_CHECK(if ${cf_cv_have_utmp}.ut_name is declared,cf_cv_have_utmp_ut_name,[
2032        cf_cv_have_utmp_ut_name=no
2033cf_utmp_includes="
2034#include <sys/types.h>
2035#include <${cf_cv_have_utmp}.h>
2036#define getutent getutxent
2037#ifdef USE_LASTLOG
2038#include <lastlog.h>            /* may conflict with utmpx.h on Linux */
2039#endif
2040"
2041for cf_header in ut_name ut_user ; do
2042        AC_TRY_COMPILE([$cf_utmp_includes],
2043        [struct $cf_cv_have_utmp x;
2044         char *name = x.$cf_header;
2045        ],
2046        [cf_cv_have_utmp_ut_name=$cf_header
2047         break])
2048done
2049])
2050
2051case $cf_cv_have_utmp_ut_name in #(vi
2052no) #(vi
2053        AC_MSG_ERROR(Cannot find declaration for ut.ut_name)
2054        ;;
2055ut_user)
2056        AC_DEFINE(ut_name,ut_user)
2057        ;;
2058esac
2059fi
2060])dnl
2061dnl ---------------------------------------------------------------------------
2062dnl CF_UTMP_UT_SESSION version: 5 updated: 2007/03/13 19:17:11
2063dnl ------------------
2064dnl Check if UTMP/UTMPX struct defines ut_session member
2065AC_DEFUN([CF_UTMP_UT_SESSION],
2066[
2067if test $cf_cv_have_utmp != no ; then
2068AC_CACHE_CHECK(if ${cf_cv_have_utmp}.ut_session is declared, cf_cv_have_utmp_ut_session,[
2069        AC_TRY_COMPILE([
2070#include <sys/types.h>
2071#include <${cf_cv_have_utmp}.h>],
2072        [struct $cf_cv_have_utmp x; long y = x.ut_session],
2073        [cf_cv_have_utmp_ut_session=yes],
2074        [cf_cv_have_utmp_ut_session=no])
2075])
2076if test $cf_cv_have_utmp_ut_session != no ; then
2077        AC_DEFINE(HAVE_UTMP_UT_SESSION)
2078fi
2079fi
2080])dnl
2081dnl ---------------------------------------------------------------------------
2082dnl CF_UTMP_UT_SYSLEN version: 1 updated: 2008/01/25 17:18:00
2083dnl -----------------
2084dnl Check if UTMP/UTMPX struct defines ut_syslen member
2085AC_DEFUN([CF_UTMP_UT_SYSLEN],
2086[
2087if test $cf_cv_have_utmp != no ; then
2088AC_MSG_CHECKING(if ${cf_cv_have_utmp}.ut_syslen is declared)
2089AC_CACHE_VAL(cf_cv_have_utmp_ut_syslen,[
2090        AC_TRY_COMPILE([
2091#include <sys/types.h>
2092#include <${cf_cv_have_utmp}.h>],
2093        [struct $cf_cv_have_utmp x; int y = x.ut_syslen],
2094        [cf_cv_have_utmp_ut_syslen=yes],
2095        [cf_cv_have_utmp_ut_syslen=no])
2096        ])
2097AC_MSG_RESULT($cf_cv_have_utmp_ut_syslen)
2098test $cf_cv_have_utmp_ut_syslen != no && AC_DEFINE(HAVE_UTMP_UT_SYSLEN)
2099fi
2100])dnl
2101dnl ---------------------------------------------------------------------------
2102dnl CF_UTMP_UT_XSTATUS version: 3 updated: 2001/12/27 12:55:07
2103dnl ------------------
2104dnl Check for known variants on the UTMP/UTMPX struct's exit-status as reported
2105dnl by various people:
2106dnl
2107dnl     ut_exit.__e_exit (HPUX 11 - David Ellement, also in glibc2)
2108dnl     ut_exit.e_exit (SVR4)
2109dnl     ut_exit.ut_e_exit (os390 - Greg Smith)
2110dnl     ut_exit.ut_exit (Tru64 4.0f - Jeremie Petit, 4.0e - Tomas Vanhala)
2111dnl
2112dnl Note: utmp_xstatus is not a conventional compatibility definition in the
2113dnl system header files.
2114AC_DEFUN([CF_UTMP_UT_XSTATUS],
2115[
2116if test $cf_cv_have_utmp != no ; then
2117AC_CACHE_CHECK(for exit-status in $cf_cv_have_utmp,cf_cv_have_utmp_ut_xstatus,[
2118for cf_result in \
2119        ut_exit.__e_exit \
2120        ut_exit.e_exit \
2121        ut_exit.ut_e_exit \
2122        ut_exit.ut_exit
2123do
2124AC_TRY_COMPILE([
2125#include <sys/types.h>
2126#include <${cf_cv_have_utmp}.h>],
2127        [struct $cf_cv_have_utmp x; long y = x.$cf_result = 0],
2128        [cf_cv_have_utmp_ut_xstatus=$cf_result
2129         break],
2130        [cf_cv_have_utmp_ut_xstatus=no])
2131done
2132])
2133if test $cf_cv_have_utmp_ut_xstatus != no ; then
2134        AC_DEFINE(HAVE_UTMP_UT_XSTATUS)
2135        AC_DEFINE_UNQUOTED(ut_xstatus,$cf_cv_have_utmp_ut_xstatus)
2136fi
2137fi
2138])dnl
2139dnl ---------------------------------------------------------------------------
2140dnl CF_UTMP_UT_XTIME version: 7 updated: 2007/03/13 19:17:11
2141dnl ----------------
2142dnl Check if UTMP/UTMPX struct defines ut_xtime member
2143AC_DEFUN([CF_UTMP_UT_XTIME],
2144[
2145if test $cf_cv_have_utmp != no ; then
2146AC_CACHE_CHECK(if ${cf_cv_have_utmp}.ut_xtime is declared, cf_cv_have_utmp_ut_xtime,[
2147        AC_TRY_COMPILE([
2148#include <sys/types.h>
2149#include <${cf_cv_have_utmp}.h>],
2150        [struct $cf_cv_have_utmp x; long y = x.ut_xtime = 0],
2151        [cf_cv_have_utmp_ut_xtime=yes],
2152        [AC_TRY_COMPILE([
2153#include <sys/types.h>
2154#include <${cf_cv_have_utmp}.h>],
2155        [struct $cf_cv_have_utmp x; long y = x.ut_tv.tv_sec],
2156        [cf_cv_have_utmp_ut_xtime=define],
2157        [cf_cv_have_utmp_ut_xtime=no])
2158        ])
2159])
2160if test $cf_cv_have_utmp_ut_xtime != no ; then
2161        AC_DEFINE(HAVE_UTMP_UT_XTIME)
2162        if test $cf_cv_have_utmp_ut_xtime = define ; then
2163                AC_DEFINE(ut_xtime,ut_tv.tv_sec)
2164        fi
2165fi
2166fi
2167])dnl
2168dnl ---------------------------------------------------------------------------
2169dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
2170dnl ----------
2171dnl Use AC_VERBOSE w/o the warnings
2172AC_DEFUN([CF_VERBOSE],
2173[test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
2174CF_MSG_LOG([$1])
2175])dnl
2176dnl ---------------------------------------------------------------------------
2177dnl CF_WITH_IMAKE_CFLAGS version: 8 updated: 2005/11/02 15:04:41
2178dnl --------------------
2179dnl xterm and similar programs build more readily when propped up with imake's
2180dnl hand-tuned definitions.  If we do not use imake, provide fallbacks for the
2181dnl most common definitions that we're not likely to do by autoconf tests.
2182AC_DEFUN([CF_WITH_IMAKE_CFLAGS],[
2183AC_REQUIRE([CF_ENABLE_NARROWPROTO])
2184
2185AC_MSG_CHECKING(if we should use imake to help)
2186CF_ARG_DISABLE(imake,
2187        [  --disable-imake         disable use of imake for definitions],
2188        [enable_imake=no],
2189        [enable_imake=yes])
2190AC_MSG_RESULT($enable_imake)
2191
2192if test "$enable_imake" = yes ; then
2193        CF_IMAKE_CFLAGS(ifelse($1,,,$1))
2194fi
2195
2196if test -n "$IMAKE" && test -n "$IMAKE_CFLAGS" ; then
2197        CF_ADD_CFLAGS($IMAKE_CFLAGS)
2198else
2199        IMAKE_CFLAGS=
2200        IMAKE_LOADFLAGS=
2201        CF_VERBOSE(make fallback definitions)
2202
2203        # We prefer config.guess' values when we can get them, to avoid
2204        # inconsistent results with uname (AIX for instance).  However,
2205        # config.guess is not always consistent either.
2206        case $host_os in
2207        *[[0-9]].[[0-9]]*)
2208                UNAME_RELEASE="$host_os"
2209                ;;
2210        *)
2211                UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
2212                ;;
2213        esac
2214
2215        case .$UNAME_RELEASE in
2216        *[[0-9]].[[0-9]]*)
2217                OSMAJORVERSION=`echo "$UNAME_RELEASE" |sed -e 's/^[[^0-9]]*//' -e 's/\..*//'`
2218                OSMINORVERSION=`echo "$UNAME_RELEASE" |sed -e 's/^[[^0-9]]*//' -e 's/^[[^.]]*\.//' -e 's/\..*//' -e 's/[[^0-9]].*//' `
2219                test -z "$OSMAJORVERSION" && OSMAJORVERSION=1
2220                test -z "$OSMINORVERSION" && OSMINORVERSION=0
2221                IMAKE_CFLAGS="-DOSMAJORVERSION=$OSMAJORVERSION -DOSMINORVERSION=$OSMINORVERSION $IMAKE_CFLAGS"
2222                ;;
2223        esac
2224
2225        # FUNCPROTO is standard with X11R6, but XFree86 drops it, leaving some
2226        # fallback/fragments for NeedPrototypes, etc.
2227        IMAKE_CFLAGS="-DFUNCPROTO=15 $IMAKE_CFLAGS"
2228
2229        # If this is not set properly, Xaw's scrollbars will not work
2230        if test "$enable_narrowproto" = yes ; then
2231                IMAKE_CFLAGS="-DNARROWPROTO=1 $IMAKE_CFLAGS"
2232        fi
2233
2234        # Other special definitions:
2235        case $host_os in
2236        aix*)
2237                # imake on AIX 5.1 defines AIXV3.  really.
2238                IMAKE_CFLAGS="-DAIXV3 -DAIXV4 $IMAKE_CFLAGS"
2239                ;;
2240        irix[[56]].*) #(vi
2241                # these are needed to make SIGWINCH work in xterm
2242                IMAKE_CFLAGS="-DSYSV -DSVR4 $IMAKE_CFLAGS"
2243                ;;
2244        esac
2245
2246        CF_ADD_CFLAGS($IMAKE_CFLAGS)
2247
2248        AC_SUBST(IMAKE_CFLAGS)
2249        AC_SUBST(IMAKE_LOADFLAGS)
2250fi
2251])dnl
2252dnl ---------------------------------------------------------------------------
2253dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
2254dnl ------------
2255dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
2256dnl defaulting to yes/no.
2257dnl
2258dnl $1 = option name
2259dnl $2 = help-text
2260dnl $3 = environment variable to set
2261dnl $4 = default value, shown in the help-message, must be a constant
2262dnl $5 = default value, if it's an expression & cannot be in the help-message
2263dnl
2264AC_DEFUN([CF_WITH_PATH],
2265[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
2266ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
2267if ifelse($5,,true,[test -n "$5"]) ; then
2268CF_PATH_SYNTAX(withval)
2269fi
2270$3="$withval"
2271AC_SUBST($3)dnl
2272])dnl
2273dnl ---------------------------------------------------------------------------
2274dnl CF_WITH_PCRE version: 3 updated: 2006/02/12 17:28:56
2275dnl ------------
2276dnl Add PCRE (Perl-compatible regular expressions) to the build if it is
2277dnl available and the user requests it.  Assume the application will otherwise
2278dnl use the POSIX interface.
2279dnl
2280dnl TODO allow $withval to specify package location
2281AC_DEFUN([CF_WITH_PCRE],
2282[
2283AC_MSG_CHECKING(if you want to use PCRE for regular-expressions)
2284AC_ARG_WITH(pcre,
2285        [  --with-pcre             use PCRE for regular-expressions])
2286test -z "$with_pcre" && with_pcre=no
2287AC_MSG_RESULT($with_pcre)
2288
2289if test "$with_pcre" != no ; then
2290        AC_CHECK_LIB(pcre,pcre_compile,
2291                [AC_CHECK_HEADER(pcreposix.h,
2292                        [AC_CHECK_LIB(pcreposix,pcreposix_regcomp,
2293                                [AC_DEFINE(HAVE_LIB_PCRE)
2294                                 AC_DEFINE(HAVE_PCREPOSIX_H)
2295                                 LIBS="-lpcreposix -lpcre $LIBS"],
2296                                AC_MSG_ERROR(Cannot find PCRE POSIX library),
2297                                "-lpcre")],
2298                        AC_MSG_ERROR(Cannot find PCRE POSIX header))],
2299                AC_MSG_ERROR(Cannot find PCRE library))
2300fi
2301])dnl
2302dnl ---------------------------------------------------------------------------
2303dnl CF_XKB_BELL_EXT version: 2 updated: 2003/05/18 17:28:57
2304dnl ---------------
2305dnl Check for XKB bell extension
2306AC_DEFUN([CF_XKB_BELL_EXT],[
2307AC_CACHE_CHECK(for XKB Bell extension, cf_cv_xkb_bell_ext,[
2308AC_TRY_LINK([
2309#include <X11/XKBlib.h>         /* has the prototype */
2310#include <X11/extensions/XKBbells.h>    /* has the XkbBI_xxx definitions */
2311],[
2312int x = XkbBI_Info
2313        |XkbBI_MinorError
2314        |XkbBI_MajorError
2315        |XkbBI_TerminalBell
2316        |XkbBI_MarginBell;
2317],[cf_cv_xkb_bell_ext=yes],[cf_cv_xkb_bell_ext=no])
2318])
2319
2320test "$cf_cv_xkb_bell_ext" = yes && AC_DEFINE(HAVE_XKB_BELL_EXT)
2321])
2322dnl ---------------------------------------------------------------------------
2323dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
2324dnl ---------------
2325dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
2326dnl or adapt to the vendor's definitions to get equivalent functionality,
2327dnl without losing the common non-POSIX features.
2328dnl
2329dnl Parameters:
2330dnl     $1 is the nominal value for _XOPEN_SOURCE
2331dnl     $2 is the nominal value for _POSIX_C_SOURCE
2332AC_DEFUN([CF_XOPEN_SOURCE],[
2333
2334AC_REQUIRE([CF_PROG_CC_U_D])
2335
2336cf_XOPEN_SOURCE=ifelse($1,,500,$1)
2337cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
2338
2339case $host_os in #(vi
2340aix[[45]]*) #(vi
2341        CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
2342        ;;
2343freebsd*) #(vi
2344        # 5.x headers associate
2345        #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
2346        #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
2347        cf_POSIX_C_SOURCE=200112L
2348        cf_XOPEN_SOURCE=600
2349        CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
2350        ;;
2351hpux*) #(vi
2352        CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
2353        ;;
2354irix[[56]].*) #(vi
2355        CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
2356        ;;
2357linux*|gnu*|k*bsd*-gnu) #(vi
2358        CF_GNU_SOURCE
2359        ;;
2360mirbsd*) #(vi
2361        # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
2362        ;;
2363netbsd*) #(vi
2364        # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
2365        ;;
2366openbsd*) #(vi
2367        # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
2368        ;;
2369osf[[45]]*) #(vi
2370        CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
2371        ;;
2372nto-qnx*) #(vi
2373        CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
2374        ;;
2375sco*) #(vi
2376        # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
2377        ;;
2378solaris*) #(vi
2379        CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
2380        ;;
2381*)
2382        AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
2383        AC_TRY_COMPILE([#include <sys/types.h>],[
2384#ifndef _XOPEN_SOURCE
2385make an error
2386#endif],
2387        [cf_cv_xopen_source=no],
2388        [cf_save="$CPPFLAGS"
2389         CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
2390         AC_TRY_COMPILE([#include <sys/types.h>],[
2391#ifdef _XOPEN_SOURCE
2392make an error
2393#endif],
2394        [cf_cv_xopen_source=no],
2395        [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
2396        CPPFLAGS="$cf_save"
2397        ])
2398])
2399        if test "$cf_cv_xopen_source" != no ; then
2400                CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
2401                CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
2402                test "$cf_cv_cc_u_d_options" = yes && \
2403                        CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
2404                CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
2405        fi
2406        CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
2407        ;;
2408esac
2409])
2410dnl ---------------------------------------------------------------------------
2411dnl CF_X_ATHENA version: 12 updated: 2004/06/15 21:14:41
2412dnl -----------
2413dnl Check for Xaw (Athena) libraries
2414dnl
2415dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
2416AC_DEFUN([CF_X_ATHENA],
2417[AC_REQUIRE([CF_X_TOOLKIT])
2418cf_x_athena=${cf_x_athena-Xaw}
2419
2420AC_MSG_CHECKING(if you want to link with Xaw 3d library)
2421withval=
2422AC_ARG_WITH(Xaw3d,
2423        [  --with-Xaw3d            link with Xaw 3d library])
2424if test "$withval" = yes ; then
2425        cf_x_athena=Xaw3d
2426        AC_MSG_RESULT(yes)
2427else
2428        AC_MSG_RESULT(no)
2429fi
2430
2431AC_MSG_CHECKING(if you want to link with neXT Athena library)
2432withval=
2433AC_ARG_WITH(neXtaw,
2434        [  --with-neXtaw           link with neXT Athena library])
2435if test "$withval" = yes ; then
2436        cf_x_athena=neXtaw
2437        AC_MSG_RESULT(yes)
2438else
2439        AC_MSG_RESULT(no)
2440fi
2441
2442AC_MSG_CHECKING(if you want to link with Athena-Plus library)
2443withval=
2444AC_ARG_WITH(XawPlus,
2445        [  --with-XawPlus          link with Athena-Plus library])
2446if test "$withval" = yes ; then
2447        cf_x_athena=XawPlus
2448        AC_MSG_RESULT(yes)
2449else
2450        AC_MSG_RESULT(no)
2451fi
2452
2453AC_CHECK_LIB(Xext,XextCreateExtension,
2454        [LIBS="-lXext $LIBS"])
2455
2456cf_x_athena_lib=""
2457
2458CF_X_ATHENA_CPPFLAGS($cf_x_athena)
2459CF_X_ATHENA_LIBS($cf_x_athena)
2460])dnl
2461dnl ---------------------------------------------------------------------------
2462dnl CF_X_ATHENA_CPPFLAGS version: 2 updated: 2002/10/09 20:00:37
2463dnl --------------------
2464dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
2465dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
2466AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
2467[
2468cf_x_athena_root=ifelse($1,,Xaw,$1)
2469cf_x_athena_include=""
2470
2471for cf_path in default \
2472        /usr/contrib/X11R6 \
2473        /usr/contrib/X11R5 \
2474        /usr/lib/X11R5 \
2475        /usr/local
2476do
2477        if test -z "$cf_x_athena_include" ; then
2478                cf_save="$CPPFLAGS"
2479                cf_test=X11/$cf_x_athena_root/SimpleMenu.h
2480                if test $cf_path != default ; then
2481                        CPPFLAGS="-I$cf_path/include $cf_save"
2482                        AC_MSG_CHECKING(for $cf_test in $cf_path)
2483                else
2484                        AC_MSG_CHECKING(for $cf_test)
2485                fi
2486                AC_TRY_COMPILE([
2487#include <X11/Intrinsic.h>
2488#include <$cf_test>],[],
2489                        [cf_result=yes],
2490                        [cf_result=no])
2491                AC_MSG_RESULT($cf_result)
2492                if test "$cf_result" = yes ; then
2493                        cf_x_athena_include=$cf_path
2494                        break
2495                else
2496                        CPPFLAGS="$cf_save"
2497                fi
2498        fi
2499done
2500
2501if test -z "$cf_x_athena_include" ; then
2502        AC_MSG_WARN(
2503[Unable to successfully find Athena header files with test program])
2504elif test "$cf_x_athena_include" != default ; then
2505        CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include"
2506fi
2507])
2508dnl ---------------------------------------------------------------------------
2509dnl CF_X_FREETYPE version: 18 updated: 2007/03/21 18:06:17
2510dnl -------------
2511dnl Check for X FreeType headers and libraries (XFree86 4.x, etc).
2512dnl
2513dnl First check for the appropriate config program, since the developers for
2514dnl these libraries change their configuration (and config program) more or
2515dnl less randomly.  If we cannot find the config program, do not bother trying
2516dnl to guess the latest variation of include/lib directories.
2517dnl
2518dnl If either or both of these configure-script options are not given, rely on
2519dnl the output of the config program to provide the cflags/libs options:
2520dnl     --with-freetype-cflags
2521dnl     --with-freetype-libs
2522AC_DEFUN([CF_X_FREETYPE],
2523[
2524cf_extra_freetype_libs=
2525FREETYPE_CONFIG=
2526FREETYPE_PARAMS=
2527
2528AC_MSG_CHECKING(if you specified -D/-I options for FreeType)
2529AC_ARG_WITH(freetype-cflags,
2530        [  --with-freetype-cflags  -D/-I options for compiling with FreeType],
2531[cf_cv_x_freetype_incs="$with_freetype_cflags"],
2532[cf_cv_x_freetype_incs=no])
2533AC_MSG_RESULT($cf_cv_x_freetype_incs)
2534
2535
2536AC_MSG_CHECKING(if you specified -L/-l options for FreeType)
2537AC_ARG_WITH(freetype-libs,
2538        [  --with-freetype-libs    -L/-l options to link FreeType],
2539[cf_cv_x_freetype_libs="$with_freetype_libs"],
2540[cf_cv_x_freetype_libs=no])
2541AC_MSG_RESULT($cf_cv_x_freetype_libs)
2542
2543AC_PATH_PROG(FREETYPE_PKG_CONFIG, pkg-config, none)
2544if test "$FREETYPE_PKG_CONFIG" != none && "$FREETYPE_PKG_CONFIG" --exists xft; then
2545        FREETYPE_CONFIG=$FREETYPE_PKG_CONFIG
2546        FREETYPE_PARAMS=xft
2547else
2548        AC_PATH_PROG(FREETYPE_XFT_CONFIG, xft-config, none)
2549        if test "$FREETYPE_XFT_CONFIG" != none; then
2550                FREETYPE_CONFIG=$FREETYPE_XFT_CONFIG
2551        else
2552                cf_extra_freetype_libs="-lXft"
2553                AC_PATH_PROG(FREETYPE_OLD_CONFIG, freetype-config, none)
2554                if test "$FREETYPE_OLD_CONFIG" != none; then
2555                        FREETYPE_CONFIG=$FREETYPE_OLD_CONFIG
2556                fi
2557        fi
2558fi
2559
2560if test -n "$FREETYPE_CONFIG" ; then
2561
2562if test "$cf_cv_x_freetype_incs" = no ; then
2563AC_MSG_CHECKING(for $FREETYPE_CONFIG cflags)
2564cf_cv_x_freetype_incs="`$FREETYPE_CONFIG $FREETYPE_PARAMS --cflags 2>/dev/null`"
2565AC_MSG_RESULT($cf_cv_x_freetype_incs)
2566fi
2567
2568if test "$cf_cv_x_freetype_libs" = no ; then
2569AC_MSG_CHECKING(for $FREETYPE_CONFIG libs)
2570cf_cv_x_freetype_libs="$cf_extra_freetype_libs `$FREETYPE_CONFIG $FREETYPE_PARAMS --libs 2>/dev/null`"
2571AC_MSG_RESULT($cf_cv_x_freetype_libs)
2572fi
2573
2574fi
2575
2576if test "$cf_cv_x_freetype_incs" = no ; then
2577        cf_cv_x_freetype_incs=
2578fi
2579
2580if test "$cf_cv_x_freetype_libs" = no ; then
2581        cf_cv_x_freetype_libs=-lXft
2582fi
2583
2584AC_MSG_CHECKING(if we can link with FreeType libraries)
2585
2586cf_save_LIBS="$LIBS"
2587cf_save_INCS="$CPPFLAGS"
2588
2589LIBS="$cf_cv_x_freetype_libs $LIBS"
2590CPPFLAGS="$cf_cv_x_freetype_incs $CPPFLAGS"
2591
2592AC_TRY_LINK([
2593#include <X11/Xlib.h>
2594#include <X11/extensions/Xrender.h>
2595#include <X11/Xft/Xft.h>],[
2596        XftPattern  *pat = XftNameParse ("name");],
2597        [cf_cv_found_freetype=yes],
2598        [cf_cv_found_freetype=no])
2599AC_MSG_RESULT($cf_cv_found_freetype)
2600
2601LIBS="$cf_save_LIBS"
2602CPPFLAGS="$cf_save_INCS"
2603
2604if test "$cf_cv_found_freetype" = yes ; then
2605        LIBS="$cf_cv_x_freetype_libs $LIBS"
2606        CF_ADD_CFLAGS($cf_cv_x_freetype_incs)
2607        AC_DEFINE(XRENDERFONT)
2608
2609AC_CHECK_FUNCS( \
2610        XftDrawCharSpec \
2611        XftDrawSetClip \
2612        XftDrawSetClipRectangles \
2613)
2614
2615else
2616        AC_MSG_WARN(No libraries found for FreeType)
2617        CPPFLAGS=`echo "$CPPFLAGS" | sed -e s/-DXRENDERFONT//`
2618fi
2619
2620# FIXME: revisit this if needed
2621AC_SUBST(XRENDERFONT)
2622AC_SUBST(HAVE_TYPE_FCCHAR32)
2623AC_SUBST(HAVE_TYPE_XFTCHARSPEC)
2624])
2625dnl ---------------------------------------------------------------------------
2626dnl CF_X_TOOLKIT version: 12 updated: 2008/03/23 15:04:54
2627dnl ------------
2628dnl Check for X Toolkit libraries
2629dnl
2630AC_DEFUN([CF_X_TOOLKIT],
2631[
2632AC_REQUIRE([AC_PATH_XTRA])
2633AC_REQUIRE([CF_CHECK_CACHE])
2634
2635# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -`
2636
2637cf_have_X_LIBS=no
2638
2639LDFLAGS="$X_LIBS $LDFLAGS"
2640CF_CHECK_CFLAGS($X_CFLAGS)
2641
2642AC_CHECK_FUNC(XOpenDisplay,,[
2643AC_CHECK_LIB(X11,XOpenDisplay,
2644        [LIBS="-lX11 $LIBS"],,
2645        [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
2646
2647AC_CHECK_FUNC(XtAppInitialize,,[
2648AC_CHECK_LIB(Xt, XtAppInitialize,
2649        [AC_DEFINE(HAVE_LIBXT)
2650         cf_have_X_LIBS=Xt
2651         LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
2652        [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
2653
2654if test $cf_have_X_LIBS = no ; then
2655        AC_MSG_WARN(
2656[Unable to successfully link X Toolkit library (-lXt) with
2657test program.  You will have to check and add the proper libraries by hand
2658to makefile.])
2659fi
2660])dnl
Note: See TracBrowser for help on using the browser.