]> git.gir.st - ttxd.git/blob - src/thttpd-2.27/aclocal.m4
initial code import
[ttxd.git] / src / thttpd-2.27 / aclocal.m4
1 dnl
2 dnl Improved version of AC_CHECK_LIB
3 dnl
4 dnl Thanks to John Hawkinson (jhawk@mit.edu)
5 dnl
6 dnl usage:
7 dnl
8 dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
9 dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
10 dnl
11 dnl results:
12 dnl
13 dnl LIBS
14 dnl
15
16 define(AC_LBL_CHECK_LIB,
17 [AC_MSG_CHECKING([for $2 in -l$1])
18 dnl Use a cache variable name containing both the library and function name,
19 dnl because the test really is for library $1 defining function $2, not
20 dnl just for library $1. Separate tests with the same $1 and different $2's
21 dnl may have different results.
22 ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`
23 AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,
24 [ac_save_LIBS="$LIBS"
25 LIBS="-l$1 $5 $LIBS"
26 AC_TRY_LINK(dnl
27 ifelse([$2], [main], , dnl Avoid conflicting decl of main.
28 [/* Override any gcc2 internal prototype to avoid an error. */
29 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
30 extern "C"
31 #endif
32 ])dnl
33 [/* We use char because int might match the return type of a gcc2
34 builtin and then its argument prototype would still apply. */
35 char $2();
36 ]),
37 [$2()],
38 eval "ac_cv_lbl_lib_$ac_lib_var=yes",
39 eval "ac_cv_lbl_lib_$ac_lib_var=no")
40 LIBS="$ac_save_LIBS"
41 ])dnl
42 if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then
43 AC_MSG_RESULT(yes)
44 ifelse([$3], ,
45 [changequote(, )dnl
46 ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
47 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
48 changequote([, ])dnl
49 AC_DEFINE_UNQUOTED($ac_tr_lib)
50 LIBS="-l$1 $LIBS"
51 ], [$3])
52 else
53 AC_MSG_RESULT(no)
54 ifelse([$4], , , [$4
55 ])dnl
56 fi
57 ])
58
59 dnl
60 dnl AC_LBL_LIBRARY_NET
61 dnl
62 dnl This test is for network applications that need socket() and
63 dnl gethostbyname() -ish functions. Under Solaris, those applications
64 dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link
65 dnl with "-lnsl" but should *not* link with "-lsocket" because
66 dnl libsocket.a breaks a number of things (for instance:
67 dnl gethostbyname() under IRIX 5.2, and snoop sockets under most
68 dnl versions of IRIX).
69 dnl
70 dnl Unfortunately, many application developers are not aware of this,
71 dnl and mistakenly write tests that cause -lsocket to be used under
72 dnl IRIX. It is also easy to write tests that cause -lnsl to be used
73 dnl under operating systems where neither are necessary (or useful),
74 dnl such as SunOS 4.1.4, which uses -lnsl for TLI.
75 dnl
76 dnl This test exists so that every application developer does not test
77 dnl this in a different, and subtly broken fashion.
78
79 dnl It has been argued that this test should be broken up into two
80 dnl seperate tests, one for the resolver libraries, and one for the
81 dnl libraries necessary for using Sockets API. Unfortunately, the two
82 dnl are carefully intertwined and allowing the autoconf user to use
83 dnl them independantly potentially results in unfortunate ordering
84 dnl dependancies -- as such, such component macros would have to
85 dnl carefully use indirection and be aware if the other components were
86 dnl executed. Since other autoconf macros do not go to this trouble,
87 dnl and almost no applications use sockets without the resolver, this
88 dnl complexity has not been implemented.
89 dnl
90 dnl The check for libresolv is in case you are attempting to link
91 dnl statically and happen to have a libresolv.a lying around (and no
92 dnl libnsl.a).
93 dnl
94 AC_DEFUN(AC_LBL_LIBRARY_NET, [
95 # Most operating systems have gethostbyname() in the default searched
96 # libraries (i.e. libc):
97 AC_CHECK_FUNC(gethostbyname, ,
98 # Some OSes (eg. Solaris) place it in libnsl:
99 AC_LBL_CHECK_LIB(nsl, gethostbyname, ,
100 # Some strange OSes (SINIX) have it in libsocket:
101 AC_LBL_CHECK_LIB(socket, gethostbyname, ,
102 # Unfortunately libsocket sometimes depends on libnsl.
103 # AC_CHECK_LIB's API is essentially broken so the
104 # following ugliness is necessary:
105 AC_LBL_CHECK_LIB(socket, gethostbyname,
106 LIBS="-lsocket -lnsl $LIBS",
107 AC_CHECK_LIB(resolv, gethostbyname),
108 -lnsl))))
109 AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, ,
110 AC_LBL_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", ,
111 -lnsl)))
112 # DLPI needs putmsg under HPUX so test for -lstr while we're at it
113 AC_CHECK_LIB(str, putmsg)
114 ])
115
116 dnl
117 dnl Checks to see if struct tm has the BSD tm_gmtoff member
118 dnl
119 dnl usage:
120 dnl
121 dnl AC_ACME_TM_GMTOFF
122 dnl
123 dnl results:
124 dnl
125 dnl HAVE_TM_GMTOFF (defined)
126 dnl
127 AC_DEFUN(AC_ACME_TM_GMTOFF,
128 [AC_MSG_CHECKING(if struct tm has tm_gmtoff member)
129 AC_CACHE_VAL(ac_cv_acme_tm_has_tm_gmtoff,
130 AC_TRY_COMPILE([
131 # include <sys/types.h>
132 # include <time.h>],
133 [u_int i = sizeof(((struct tm *)0)->tm_gmtoff)],
134 ac_cv_acme_tm_has_tm_gmtoff=yes,
135 ac_cv_acme_tm_has_tm_gmtoff=no))
136 AC_MSG_RESULT($ac_cv_acme_tm_has_tm_gmtoff)
137 if test $ac_cv_acme_tm_has_tm_gmtoff = yes ; then
138 AC_DEFINE(HAVE_TM_GMTOFF)
139 fi])
140
141 dnl
142 dnl Checks to see if int64_t exists
143 dnl
144 dnl usage:
145 dnl
146 dnl AC_ACME_INT64T
147 dnl
148 dnl results:
149 dnl
150 dnl HAVE_INT64T (defined)
151 dnl
152 AC_DEFUN(AC_ACME_INT64T,
153 [AC_MSG_CHECKING(if int64_t exists)
154 AC_CACHE_VAL(ac_cv_acme_int64_t,
155 AC_TRY_COMPILE([
156 # include <sys/types.h>],
157 [int64_t i64],
158 ac_cv_acme_int64_t=yes,
159 ac_cv_acme_int64_t=no))
160 AC_MSG_RESULT($ac_cv_acme_int64_t)
161 if test $ac_cv_acme_int64_t = yes ; then
162 AC_DEFINE(HAVE_INT64T)
163 fi])
164
165 dnl
166 dnl Checks to see if socklen_t exists
167 dnl
168 dnl usage:
169 dnl
170 dnl AC_ACME_SOCKLENT
171 dnl
172 dnl results:
173 dnl
174 dnl HAVE_SOCKLENT (defined)
175 dnl
176 AC_DEFUN(AC_ACME_SOCKLENT,
177 [AC_MSG_CHECKING(if socklen_t exists)
178 AC_CACHE_VAL(ac_cv_acme_socklen_t,
179 AC_TRY_COMPILE([
180 # include <sys/types.h>
181 # include <sys/socket.h>],
182 [socklen_t slen],
183 ac_cv_acme_socklen_t=yes,
184 ac_cv_acme_socklen_t=no))
185 AC_MSG_RESULT($ac_cv_acme_socklen_t)
186 if test $ac_cv_acme_socklen_t = yes ; then
187 AC_DEFINE(HAVE_SOCKLENT)
188 fi])
Imprint / Impressum