source: trunk/third/gmake/acinclude.m4 @ 15972

Revision 15972, 16.7 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15971, which included commits to RCS files with non-trunk default branches.
Line 
1dnl acinclude.m4 -- Extra macros needed for GNU make.
2dnl
3dnl Automake will incorporate this into its generated aclocal.m4.
4
5dnl ---------------------------------------------------------------------------
6dnl Got this from the lynx 2.8 distribution.
7dnl by T.E.Dickey <dickey@clark.net>
8dnl and Jim Spath <jspath@mail.bcpl.lib.md.us>
9dnl and Philippe De Muyter <phdm@macqel.be>
10dnl
11dnl Created: 1997/1/28
12dnl Updated: 1997/12/23
13dnl ---------------------------------------------------------------------------
14dnl After checking for functions in the default $LIBS, make a further check
15dnl for the functions that are netlib-related (these aren't always in the
16dnl libc, etc., and have to be handled specially because there are conflicting
17dnl and broken implementations.
18dnl Common library requirements (in order):
19dnl     -lresolv -lsocket -lnsl
20dnl     -lnsl -lsocket
21dnl     -lsocket
22dnl     -lbsd
23AC_DEFUN([CF_NETLIBS],[
24cf_test_netlibs=no
25AC_MSG_CHECKING(for network libraries)
26AC_CACHE_VAL(cf_cv_netlibs,[
27AC_MSG_RESULT(working...)
28cf_cv_netlibs=""
29cf_test_netlibs=yes
30AC_CHECK_FUNCS(gethostname,,[
31        CF_RECHECK_FUNC(gethostname,nsl,cf_cv_netlibs,[
32                CF_RECHECK_FUNC(gethostname,socket,cf_cv_netlibs)])])
33#
34# FIXME:  sequent needs this library (i.e., -lsocket -linet -lnsl), but
35# I don't know the entrypoints - 97/7/22 TD
36AC_CHECK_LIB(inet,main,cf_cv_netlibs="-linet $cf_cv_netlibs")
37#
38if test "$ac_cv_func_lsocket" != no ; then
39AC_CHECK_FUNCS(socket,,[
40        CF_RECHECK_FUNC(socket,socket,cf_cv_netlibs,[
41                CF_RECHECK_FUNC(socket,bsd,cf_cv_netlibs)])])
42fi
43#
44AC_CHECK_FUNCS(gethostbyname,,[
45        CF_RECHECK_FUNC(gethostbyname,nsl,cf_cv_netlibs)])
46#
47AC_CHECK_FUNCS(strcasecmp,,[
48        CF_RECHECK_FUNC(strcasecmp,resolv,cf_cv_netlibs)])
49])
50LIBS="$LIBS $cf_cv_netlibs"
51test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&AC_FD_MSG
52])dnl
53dnl ---------------------------------------------------------------------------
54dnl Re-check on a function to see if we can pick it up by adding a library.
55dnl     $1 = function to check
56dnl     $2 = library to check in
57dnl     $3 = environment to update (e.g., $LIBS)
58dnl     $4 = what to do if this fails
59dnl
60dnl This uses 'unset' if the shell happens to support it, but leaves the
61dnl configuration variable set to 'unknown' if not.  This is a little better
62dnl than the normal autoconf test, which gives misleading results if a test
63dnl for the function is made (e.g., with AC_CHECK_FUNC) after this macro is
64dnl used (autoconf does not distinguish between a null token and one that is
65dnl set to 'no').
66AC_DEFUN([CF_RECHECK_FUNC],[
67AC_CHECK_LIB($2,$1,[
68        CF_UPPER(cf_tr_func,$1)
69        AC_DEFINE_UNQUOTED(HAVE_$cf_tr_func)
70        ac_cv_func_$1=yes
71        $3="-l$2 [$]$3"],[
72        ac_cv_func_$1=unknown
73        unset ac_cv_func_$1 2>/dev/null
74        $4],
75        [[$]$3])
76])dnl
77dnl ---------------------------------------------------------------------------
78dnl Make an uppercase version of a variable
79dnl $1=uppercase($2)
80AC_DEFUN([CF_UPPER],
81[
82changequote(,)dnl
83$1=`echo $2 | tr '[a-z]' '[A-Z]'`
84changequote([,])dnl
85])dnl
86
87dnl ---------------------------------------------------------------------------
88dnl Got this from the GNU tar 1.13.11 distribution
89dnl by Paul Eggert <eggert@twinsun.com>
90dnl ---------------------------------------------------------------------------
91
92dnl By default, many hosts won't let programs access large files;
93dnl one must use special compiler options to get large-file access to work.
94dnl For more details about this brain damage please see:
95dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
96
97dnl Written by Paul Eggert <eggert@twinsun.com>.
98
99dnl Internal subroutine of AC_SYS_LARGEFILE.
100dnl AC_SYS_LARGEFILE_FLAGS(FLAGSNAME)
101AC_DEFUN(AC_SYS_LARGEFILE_FLAGS,
102  [AC_CACHE_CHECK([for $1 value to request large file support],
103     ac_cv_sys_largefile_$1,
104     [if ($GETCONF LFS_$1) >conftest.1 2>conftest.2 && test ! -s conftest.2
105      then
106        ac_cv_sys_largefile_$1=`cat conftest.1`
107      else
108        ac_cv_sys_largefile_$1=no
109        ifelse($1, CFLAGS,
110          [case "$host_os" in
111           # HP-UX 10.20 requires -D__STDC_EXT__ with gcc 2.95.1.
112changequote(, )dnl
113           hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
114changequote([, ])dnl
115             if test "$GCC" = yes; then
116               ac_cv_sys_largefile_CFLAGS=-D__STDC_EXT__
117             fi
118             ;;
119           # IRIX 6.2 and later require cc -n32.
120changequote(, )dnl
121           irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)
122changequote([, ])dnl
123             if test "$GCC" != yes; then
124               ac_cv_sys_largefile_CFLAGS=-n32
125             fi
126           esac
127           if test "$ac_cv_sys_largefile_CFLAGS" != no; then
128             ac_save_CC="$CC"
129             CC="$CC $ac_cv_sys_largefile_CFLAGS"
130             AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no)
131             CC="$ac_save_CC"
132           fi])
133      fi
134      rm -f conftest*])])
135
136dnl Internal subroutine of AC_SYS_LARGEFILE.
137dnl AC_SYS_LARGEFILE_SPACE_APPEND(VAR, VAL)
138AC_DEFUN(AC_SYS_LARGEFILE_SPACE_APPEND,
139  [case $2 in
140   no) ;;
141   ?*)
142     case "[$]$1" in
143     '') $1=$2 ;;
144     *) $1=[$]$1' '$2 ;;
145     esac ;;
146   esac])
147
148dnl Internal subroutine of AC_SYS_LARGEFILE.
149dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT)
150AC_DEFUN(AC_SYS_LARGEFILE_MACRO_VALUE,
151  [AC_CACHE_CHECK([for $1], $2,
152     [$2=no
153changequote(, )dnl
154      $4
155      for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
156        case "$ac_flag" in
157        -D$1)
158          $2=1 ;;
159        -D$1=*)
160          $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;;
161        esac
162      done
163changequote([, ])dnl
164      ])
165   if test "[$]$2" != no; then
166     AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
167   fi])
168
169AC_DEFUN(AC_SYS_LARGEFILE,
170  [AC_REQUIRE([AC_CANONICAL_HOST])
171   AC_ARG_ENABLE(largefile,
172     [  --disable-largefile     omit support for large files])
173   if test "$enable_largefile" != no; then
174     AC_CHECK_TOOL(GETCONF, getconf)
175     AC_SYS_LARGEFILE_FLAGS(CFLAGS)
176     AC_SYS_LARGEFILE_FLAGS(LDFLAGS)
177     AC_SYS_LARGEFILE_FLAGS(LIBS)
178
179     for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
180       case "$ac_flag" in
181       no) ;;
182       -D_FILE_OFFSET_BITS=*) ;;
183       -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;;
184       -D_LARGE_FILES | -D_LARGE_FILES=*) ;;
185       -D?* | -I?*)
186         AC_SYS_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;;
187       *)
188         AC_SYS_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;;
189       esac
190     done
191     AC_SYS_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS")
192     AC_SYS_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS")
193     AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS,
194       ac_cv_sys_file_offset_bits,
195       [Number of bits in a file offset, on hosts where this is settable.],
196       [case "$host_os" in
197        # HP-UX 10.20 and later
198        hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
199          ac_cv_sys_file_offset_bits=64 ;;
200        esac])
201     AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE,
202       ac_cv_sys_largefile_source,
203       [Define to make fseeko etc. visible, on some hosts.],
204       [case "$host_os" in
205        # HP-UX 10.20 and later
206        hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
207          ac_cv_sys_largefile_source=1 ;;
208        esac])
209     AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
210       ac_cv_sys_large_files,
211       [Define for large files, on AIX-style hosts.],
212       [case "$host_os" in
213        # AIX 4.2 and later
214        aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)
215          ac_cv_sys_large_files=1 ;;
216        esac])
217   fi
218  ])
219
220
221dnl ---------------------------------------------------------------------------
222dnl From Paul Eggert <eggert@twinsun.com>
223
224dnl Define HAVE_INTTYPES_H if <inttypes.h> exists,
225dnl doesn't clash with <sys/types.h>, and declares uintmax_t.
226
227AC_DEFUN(jm_AC_HEADER_INTTYPES_H,
228[
229  if test x = y; then
230    dnl This code is deliberately never run via ./configure.
231    dnl FIXME: this is a gross hack to make autoheader put an entry
232    dnl for `HAVE_INTTYPES_H' in config.h.in.
233    AC_CHECK_FUNCS(INTTYPES_H)
234  fi
235  AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
236  [AC_TRY_COMPILE(
237    [#include <sys/types.h>
238#include <inttypes.h>],
239    [uintmax_t i = (uintmax_t) -1;],
240    jm_ac_cv_header_inttypes_h=yes,
241    jm_ac_cv_header_inttypes_h=no)])
242  if test $jm_ac_cv_header_inttypes_h = yes; then
243    ac_kludge=HAVE_INTTYPES_H
244    AC_DEFINE_UNQUOTED($ac_kludge)
245  fi
246])
247
248
249dnl ---------------------------------------------------------------------------
250dnl From Paul Eggert <eggert@twinsun.com>
251
252AC_DEFUN(AC_STRUCT_ST_MTIM_NSEC,
253 [AC_CACHE_CHECK([for nanoseconds member of struct stat.st_mtim],
254   ac_cv_struct_st_mtim_nsec,
255   [ac_save_CPPFLAGS="$CPPFLAGS"
256    ac_cv_struct_st_mtim_nsec=no
257    # tv_nsec -- the usual case
258    # _tv_nsec -- Solaris 2.6, if
259    #   (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
260    #    && !defined __EXTENSIONS__)
261    # st__tim.tv_nsec -- UnixWare 2.1.2
262    for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
263      CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
264      AC_TRY_COMPILE([#include <sys/types.h>
265#include <sys/stat.h>], [struct stat s; s.st_mtim.ST_MTIM_NSEC;],
266        [ac_cv_struct_st_mtim_nsec=$ac_val; break])
267    done
268    CPPFLAGS="$ac_save_CPPFLAGS"])
269
270  if test $ac_cv_struct_st_mtim_nsec != no; then
271    AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec)
272  fi
273 ]
274)
275
276dnl ---------------------------------------------------------------------------
277dnl From Paul Eggert <eggert@twinsun.com>
278
279dnl Define uintmax_t to `unsigned long' or `unsigned long long'
280dnl if <inttypes.h> does not exist.
281
282AC_DEFUN(jm_AC_TYPE_UINTMAX_T,
283[
284  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
285  if test $jm_ac_cv_header_inttypes_h = no; then
286    AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
287    [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
288      [unsigned long long ullmax = (unsigned long long) -1;
289       return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
290      ac_cv_type_unsigned_long_long=yes,
291      ac_cv_type_unsigned_long_long=no)])
292    if test $ac_cv_type_unsigned_long_long = yes; then
293      AC_DEFINE(uintmax_t, unsigned long long)
294    else
295      AC_DEFINE(uintmax_t, unsigned long)
296    fi
297  fi
298])
299
300
301# The following is taken from automake 1.4,
302# except that it prefers the compiler option -Ae to "-Aa -D_HPUX_SOURCE"
303# because only the former supports 64-bit integral types on HP-UX 10.20.
304
305## ----------------------------------------- ##
306## ANSIfy the C compiler whenever possible.  ##
307## From Franc,ois Pinard                     ##
308## ----------------------------------------- ##
309
310# serial 2
311
312# @defmac AC_PROG_CC_STDC
313# @maindex PROG_CC_STDC
314# @ovindex CC
315# If the C compiler in not in ANSI C mode by default, try to add an option
316# to output variable @code{CC} to make it so.  This macro tries various
317# options that select ANSI C on some system or another.  It considers the
318# compiler to be in ANSI C mode if it handles function prototypes correctly.
319#
320# If you use this macro, you should check after calling it whether the C
321# compiler has been set to accept ANSI C; if not, the shell variable
322# @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
323# code in ANSI C, you can make an un-ANSIfied copy of it by using the
324# program @code{ansi2knr}, which comes with Ghostscript.
325# @end defmac
326
327AC_DEFUN(AM_PROG_CC_STDC,
328[AC_REQUIRE([AC_PROG_CC])
329AC_BEFORE([$0], [AC_C_INLINE])
330AC_BEFORE([$0], [AC_C_CONST])
331dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
332dnl a magic option to avoid problems with ANSI preprocessor commands
333dnl like #elif.
334dnl FIXME: can't do this because then AC_AIX won't work due to a
335dnl circular dependency.
336dnl AC_BEFORE([$0], [AC_PROG_CPP])
337AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
338AC_CACHE_VAL(am_cv_prog_cc_stdc,
339[am_cv_prog_cc_stdc=no
340ac_save_CC="$CC"
341# Don't try gcc -ansi; that turns off useful extensions and
342# breaks some systems' header files.
343# AIX                   -qlanglvl=ansi
344# Ultrix and OSF/1      -std1
345# HP-UX                 -Aa -D_HPUX_SOURCE
346# SVR4                  -Xc -D__EXTENSIONS__
347for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
348do
349  CC="$ac_save_CC $ac_arg"
350  AC_TRY_COMPILE(
351[#include <stdarg.h>
352#include <stdio.h>
353#include <sys/types.h>
354#include <sys/stat.h>
355/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
356struct buf { int x; };
357FILE * (*rcsopen) (struct buf *, struct stat *, int);
358static char *e (p, i)
359     char **p;
360     int i;
361{
362  return p[i];
363}
364static char *f (char * (*g) (char **, int), char **p, ...)
365{
366  char *s;
367  va_list v;
368  va_start (v,p);
369  s = g (p, va_arg (v,int));
370  va_end (v);
371  return s;
372}
373int test (int i, double x);
374struct s1 {int (*f) (int a);};
375struct s2 {int (*f) (double a);};
376int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
377int argc;
378char **argv;
379], [
380return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
381],
382[am_cv_prog_cc_stdc="$ac_arg"; break])
383done
384CC="$ac_save_CC"
385])
386if test -z "$am_cv_prog_cc_stdc"; then
387  AC_MSG_RESULT([none needed])
388else
389  AC_MSG_RESULT($am_cv_prog_cc_stdc)
390fi
391case "x$am_cv_prog_cc_stdc" in
392  x|xno) ;;
393  *) CC="$CC $am_cv_prog_cc_stdc" ;;
394esac
395])
396
397dnl ---------------------------------------------------------------------------
398dnl Enable internationalization support for GNU make.
399dnl Original obtained from the libit 0.7 distribution
400dnl Rewritten by Paul D. Smith <psmith@gnu.org>
401dnl This version is much more straightforward than the original (I think);
402dnl If the user doesn't disable NLS, check whether she asked for the
403dnl included gettext.  If so, we use that.  If not, test to see if the
404dnl system gettext is GNU.  If not, use the included gettext.  If so,
405dnl use the system gettext.  We are very strict about testing for GNU
406dnl gettext; not only must the library be GNU gettext, but the libintl.h
407dnl file must also be GNU.
408dnl
409AC_DEFUN(pds_CHECK_SYSTEM_GETTEXT, [
410
411  # OK.  What we're going to do is see if the system gettext is really
412  # GNU gettext, and we're going to make _sure_ (as we can) that if
413  # it's not we'll use the included gettext.
414
415  pds_keep_LIBS="$LIBS"
416
417  # Look around for gettext() and libintl.h on the system
418  AC_CHECK_HEADERS(locale.h)
419  AC_SEARCH_LIBS(gettext, intl)
420  if test "$ac_cv_search_gettext" = no; then
421    with_included_gettext=yes
422
423  else
424    # We only want to deal with GNU's gettext; if we don't have that
425    # we'll just use our own, thanks very much.
426    AC_CACHE_CHECK([whether the system has GNU gettext],
427                   pds_cv_system_gnu_gettext, [
428      AC_TRY_LINK([
429#include <libintl.h>
430#ifdef HAVE_LOCALE_H
431#include <locale.h>
432#endif
433], [
434#if __USE_GNU_GETTEXT
435  extern int _nl_msg_cat_cntr;
436  return _nl_msg_cat_cntr;
437#else
438not GNU gettext
439#endif
440],
441        pds_cv_system_gnu_gettext=yes, pds_cv_system_gnu_gettext=no)])
442
443    if test "x$pds_cv_system_gnu_gettext" = xyes; then
444      with_included_gettext=no
445      AC_DEFINE(HAVE_LIBINTL_H, 1, [Define if you have <libintl.h>.])
446    else
447      with_included_gettext=yes
448      LIBS="$pds_keep_LIBS"
449    fi
450  fi
451])
452
453
454AC_DEFUN(pds_WITH_GETTEXT, [
455
456  AC_MSG_CHECKING(whether NLS is wanted)
457  AC_ARG_ENABLE(nls,
458    [  --disable-nls           disallow Native Language Support],
459    enable_nls=$enableval, enable_nls=yes)
460  AC_MSG_RESULT($enable_nls)
461  use_nls=$enable_nls
462  AM_CONDITIONAL(USE_NLS, test $use_nls = yes)
463
464  if test $enable_nls = yes; then
465    AC_DEFINE(ENABLE_NLS, 1, [Define if NLS is requested.])
466
467    # We don't support catgets at all
468    if test "x$with_catgets" != x; then
469      AC_MSG_WARN([catgets not supported; --with-catgets ignored])
470    fi
471
472    # Find out what the user wants.
473
474    AC_ARG_WITH(included-gettext,
475      [  --with-included-gettext use the GNU gettext library included here],
476      with_included_gettext=yes,
477      with_included_gettext=maybe)
478
479    if test "x$with_included_gettext" != xyes; then
480      pds_CHECK_SYSTEM_GETTEXT
481    fi
482
483    AC_MSG_CHECKING([whether to use included gettext])
484    AC_MSG_RESULT($with_included_gettext)
485
486    if test "$with_included_gettext" = yes; then
487      LIBOBJS="$LIBOBJS gettext.o"
488    fi
489
490    AC_DEFINE(HAVE_GETTEXT, 1, [Define if you have the gettext function.])
491    AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if you have the dcgettext function.])
492
493    AC_CHECK_FUNCS(getcwd setlocale stpcpy)
494    AM_LC_MESSAGES
495
496    if test -z "$ALL_LINGUAS"; then
497      AC_MSG_WARN(This package does not install translations yet.)
498    else
499      ac_items="$ALL_LINGUAS"
500      for ac_item in $ac_items; do
501        ALL_POFILES="$ALL_POFILES $ac_item.po"
502        ALL_MOFILES="$ALL_MOFILES $ac_item.mo"
503      done
504    fi
505    AC_SUBST(ALL_LINGUAS)
506    AC_SUBST(ALL_POFILES)
507    AC_SUBST(ALL_MOFILES)
508
509    AC_MSG_CHECKING(which translations to install)
510    if test -z "$LINGUAS"; then
511      ac_print="$ALL_LINGUAS"
512      MOFILES="$ALL_MOFILES"
513    else
514      ac_items="$LINGUAS"
515      for ac_item in $ac_items; do
516        case "$ALL_LINGUAS" in
517          *$ac_item*)
518            ac_print="$ac_print $ac_item"
519            MOFILES="$MOFILES $ac_item.mo"
520            ;;
521        esac
522      done
523    fi
524    AC_SUBST(MOFILES)
525    if test -z "$ac_print"; then
526      AC_MSG_RESULT(none)
527    else
528      AC_MSG_RESULT($ac_print)
529    fi
530
531    if test "x$prefix" = xNONE; then
532      AC_DEFINE_UNQUOTED(LOCALEDIR, "$ac_default_prefix/share/locale")
533    else
534      AC_DEFINE_UNQUOTED(LOCALEDIR, "$prefix/share/locale")
535    fi
536  fi])
Note: See TracBrowser for help on using the repository browser.