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,1,[Define if you have function $1])
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
87
88dnl ---------------------------------------------------------------------------
89dnl From Paul Eggert <eggert@twinsun.com>
90
91AC_DEFUN(AC_STRUCT_ST_MTIM_NSEC,
92 [AC_CACHE_CHECK([for nanoseconds field of struct stat.st_mtim],
93   ac_cv_struct_st_mtim_nsec,
94   [ac_save_CPPFLAGS="$CPPFLAGS"
95    ac_cv_struct_st_mtim_nsec=no
96    # tv_nsec -- the usual case
97    # _tv_nsec -- Solaris 2.6, if
98    #	(defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
99    #	 && !defined __EXTENSIONS__)
100    # st__tim.tv_nsec -- UnixWare 2.1.2
101    for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
102      CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
103      AC_TRY_COMPILE([#include <sys/types.h>
104#include <sys/stat.h>], [struct stat s; s.st_mtim.ST_MTIM_NSEC;],
105        [ac_cv_struct_st_mtim_nsec=$ac_val; break])
106    done
107    CPPFLAGS="$ac_save_CPPFLAGS"])
108
109  if test $ac_cv_struct_st_mtim_nsec != no; then
110    AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec, [Define if 'struct stat' contains a nanoseconds field])
111  fi
112 ]
113)
114
115
116dnl ---------------------------------------------------------------------------
117dnl This will be in the next version of autoconf; take this out then!
118
119# make_FUNC_SETVBUF_REVERSED
120# ------------------------
121AC_DEFUN([make_FUNC_SETVBUF_REVERSED],
122[AC_REQUIRE([AC_C_PROTOTYPES])dnl
123AC_CACHE_CHECK(whether setvbuf arguments are reversed,
124  ac_cv_func_setvbuf_reversed,
125  [ac_cv_func_setvbuf_reversed=no
126   AC_LINK_IFELSE(
127     [AC_LANG_PROGRAM(
128	[[#include <stdio.h>
129#	  if PROTOTYPES
130	   int (setvbuf) (FILE *, int, char *, size_t);
131#	  endif]],
132	[[char buf; return setvbuf (stdout, _IOLBF, &buf, 1);]])],
133     [AC_LINK_IFELSE(
134	[AC_LANG_PROGRAM(
135	   [[#include <stdio.h>
136#	     if PROTOTYPES
137	      int (setvbuf) (FILE *, int, char *, size_t);
138#	     endif]],
139	   [[char buf; return setvbuf (stdout, &buf, _IOLBF, 1);]])],
140	[# It compiles and links either way, so it must not be declared
141	 # with a prototype and most likely this is a K&R C compiler.
142	 # Try running it.
143	 AC_RUN_IFELSE(
144	   [AC_LANG_PROGRAM(
145	      [[#include <stdio.h>]],
146	      [[/* This call has the arguments reversed.
147		   A reversed system may check and see that the address of buf
148		   is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
149		char buf;
150		if (setvbuf (stdout, _IOLBF, &buf, 1) != 0)
151		  exit (1);
152		putchar ('\r');
153		exit (0); /* Non-reversed systems SEGV here.  */]])],
154	   ac_cv_func_setvbuf_reversed=yes,
155	   rm -f core core.* *.core,
156	   [[: # Assume setvbuf is not reversed when cross-compiling.]])]
157	ac_cv_func_setvbuf_reversed=yes)])])
158if test $ac_cv_func_setvbuf_reversed = yes; then
159  AC_DEFINE(SETVBUF_REVERSED, 1,
160            [Define to 1 if the `setvbuf' function takes the buffering type as
161             its second argument and the buffer pointer as the third, as on
162             System V before release 3.])
163fi
164])# make_FUNC_SETVBUF_REVERSED
165