r10100: Check for more networking headers so the resolv.h test can succeed.
[sfrench/samba-autobuild/.git] / source4 / heimdal_build / config.m4
1 m4_define([upcase],`echo $1 | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`)dnl
2
3 dnl love_FIND_FUNC(func, includes, arguments)
4 dnl kind of like AC_CHECK_FUNC, but with headerfiles
5 AC_DEFUN([love_FIND_FUNC], [
6
7 AC_MSG_CHECKING([for $1])
8 AC_CACHE_VAL(ac_cv_love_func_$1,
9 [
10 AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[$1($3)]])],
11 [eval "ac_cv_love_func_$1=yes"],[eval "ac_cv_love_func_$1=no"])])
12
13 eval "ac_res=\$ac_cv_love_func_$1"
14
15 if false; then
16         AC_CHECK_FUNCS($1)
17 fi
18 # $1
19 eval "ac_tr_func=HAVE_[]upcase($1)"
20
21 case "$ac_res" in
22         yes)
23         AC_DEFINE_UNQUOTED($ac_tr_func)
24         AC_MSG_RESULT([yes])
25         ;;
26         no)
27         AC_MSG_RESULT([no])
28         ;;
29 esac
30
31
32 ])
33
34
35
36 AC_CHECK_HEADERS([                              \
37         crypt.h                                 \
38         curses.h                                \
39         errno.h                                 \
40         inttypes.h                              \
41         netdb.h                                 \
42         signal.h                                \
43         sys/bitypes.h                           \
44         sys/bswap.h                             \
45         sys/file.h                              \
46         sys/stropts.h                           \
47         sys/timeb.h                             \
48         sys/times.h                             \
49         sys/uio.h                               \
50         sys/un.h                                \
51         sys/utsname.h                           \
52         term.h                                  \
53         termcap.h                               \
54         time.h                                  \
55         timezone.h                              \
56         ttyname.h                               \
57         netinet/in.h                            \
58         netinet/in6.h                           \
59         netinet6/in6.h
60 ])
61
62 AC_CHECK_FUNCS([                                \
63         atexit                                  \
64         cgetent                                 \
65         inet_ntop                               \
66         inet_aton                               \
67         gethostname                             \
68         getnameinfo                             \
69         iruserok                                \
70         putenv                                  \
71         rcmd                                    \
72         readv                                   \
73         sendmsg                                 \
74         setitimer                               \
75         socket                                  \
76         strlwr                                  \
77         strncasecmp                             \
78         strptime                                \
79         strsep                                  \
80         strsep_copy                             \
81         strtok_r                                \
82         strupr                                  \
83         swab                                    \
84         umask                                   \
85         uname                                   \
86         unsetenv                                \
87         closefrom                               \
88         hstrerror                               \
89         err                                     \
90         errx                                    \
91         warnx                                   \
92         flock                                   \
93         getaddrinfo                             \
94         freeaddrinfo                            \
95         getipnodebyname                         \
96         getipnodebyaddr                         \
97         freehostent                             \
98         writev
99 ])
100
101 love_FIND_FUNC(bswap16, [#ifdef HAVE_SYS_BSWAP_H
102 #include <sys/bswap.h>
103 #endif], 0)
104
105 love_FIND_FUNC(bswap32, [#ifdef HAVE_SYS_BSWAP_H
106 #include <sys/bswap.h>
107 #endif], 0)
108
109
110 dnl AC_HAVE_TYPE(TYPE,INCLUDES)
111 AC_DEFUN([AC_HAVE_TYPE], [
112 AC_REQUIRE([AC_HEADER_STDC])
113 cv=`echo "$1" | sed 'y%./+- %__p__%'`
114 AC_MSG_CHECKING(for $1)
115 AC_CACHE_VAL([ac_cv_type_$cv],
116 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
117 #include <sys/types.h>
118 #if STDC_HEADERS
119 #include <stdlib.h>
120 #include <stddef.h>
121 #endif
122 $2]],
123 [[$1 foo;]])],
124 [eval "ac_cv_type_$cv=yes"],
125 [eval "ac_cv_type_$cv=no"]))dnl
126 ac_foo=`eval echo \\$ac_cv_type_$cv`
127 AC_MSG_RESULT($ac_foo)
128 if test "$ac_foo" = yes; then
129   ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'`
130 if false; then
131         AC_CHECK_TYPES($1)
132 fi
133   AC_DEFINE_UNQUOTED($ac_tr_hdr, 1, [Define if you have type `$1'])
134 fi
135 ])
136
137 AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
138 AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>])
139 AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>])
140 AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
141 AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
142 AC_HAVE_TYPE([struct ifaddrs], [#include <ifaddrs.h>])
143
144
145 AC_DEFUN([AC_KRB_STRUCT_WINSIZE], [
146 AC_MSG_CHECKING(for struct winsize)
147 AC_CACHE_VAL(ac_cv_struct_winsize, [
148 ac_cv_struct_winsize=no
149 for i in sys/termios.h sys/ioctl.h; do
150 AC_EGREP_HEADER(
151 struct[[        ]]*winsize,dnl
152 $i, ac_cv_struct_winsize=yes; break)dnl
153 done
154 ])
155 if test "$ac_cv_struct_winsize" = "yes"; then
156   AC_DEFINE(HAVE_STRUCT_WINSIZE, 1, [define if struct winsize is declared in sys/termios.h])
157 fi
158 AC_MSG_RESULT($ac_cv_struct_winsize)
159 AC_EGREP_HEADER(ws_xpixel, termios.h, 
160         AC_DEFINE(HAVE_WS_XPIXEL, 1, [define if struct winsize has ws_xpixel]))
161 AC_EGREP_HEADER(ws_ypixel, termios.h, 
162         AC_DEFINE(HAVE_WS_YPIXEL, 1, [define if struct winsize has ws_ypixel]))
163 ])
164
165 AC_KRB_STRUCT_WINSIZE
166
167 AC_TYPE_SIGNAL
168 if test "$ac_cv_type_signal" = "void" ; then
169         AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
170 fi
171 AC_SUBST(VOID_RETSIGTYPE)
172
173
174 sinclude(heimdal/cf/check-var.m4)
175
176 rk_CHECK_VAR(h_errno, 
177 [#ifdef HAVE_SYS_TYPES_H
178 #include <sys/types.h>
179 #endif
180 #ifdef HAVE_NETDB_H
181 #include <netdb.h>
182 #endif])
183
184 sinclude(heimdal/cf/find-func.m4)
185 sinclude(heimdal/cf/find-func-no-libs.m4)
186 sinclude(heimdal/cf/find-func-no-libs2.m4)
187 sinclude(heimdal/cf/resolv.m4)
188
189 smb_save_LIBS=$LIBS
190 RESOLV_LIBS=""
191 LIBS=""
192
193 dnl  This fills in the global LIBS...
194 rk_RESOLV
195
196 dnl AC_CHECK_LIB_EXT(resolv, RESOLV_LIBS, res_search)
197         SMB_EXT_LIB_ENABLE(RESOLV,YES)
198
199 if test x"$LIBS" != "x"; then
200         RESOLV_LIBS=$LIBS
201 fi
202
203 LIBS=$smb_save_LIBS
204
205 SMB_EXT_LIB(RESOLV,[${RESOLV_LIBS}],[${RESOLV_CFLAGS}],[${RESOLV_CPPFLAGS}],[${RESOLV_LDFLAGS}])
206
207
208 # these are disabled unless heimdal is found below
209 SMB_SUBSYSTEM_ENABLE(KERBEROS_LIB, NO)
210 SMB_BINARY_ENABLE(asn1_compile, NO)
211 SMB_BINARY_ENABLE(compile_et, NO)
212
213 AC_PROG_LEX
214 AC_PROG_YACC
215
216 AC_CHECK_TYPES(u_int32_t)
217 AC_CHECK_TYPES(u_int16_t)
218 AC_CHECK_TYPES(u_int8_t)
219
220 # to enable kerberos, unpack a heimdal source tree in the heimdal directory
221 # of the samba source tree
222 if test -d heimdal; then
223         AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
224         CFLAGS="${CFLAGS} -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/gssapi -Iheimdal/lib/asn1 -Iheimdal/lib/com_err -Iheimdal/lib/hdb -Iheimdal/kdc -Iheimdal/lib/roken -Iheimdal/lib/des"
225         HAVE_KRB5=YES
226         SMB_SUBSYSTEM_ENABLE(KERBEROS_LIB, YES)
227         SMB_BINARY_ENABLE(asn1_compile, YES)
228         SMB_BINARY_ENABLE(compile_et, YES)
229 fi
230
231 # only add getaddrinfo and related functions if needed
232 SMB_SUBSYSTEM_ENABLE(HEIMDAL_ROKEN_ADDRINFO, NO)
233 if test t$ac_cv_func_getaddrinfo != tyes; then
234         SMB_SUBSYSTEM_ENABLE(HEIMDAL_ROKEN_ADDRINFO, YES)
235 fi
236
237 # only add inet_aton if needed
238 SMB_SUBSYSTEM_ENABLE(HEIMDAL_ROKEN_INET_ATON, NO)
239 if test t$ac_cv_func_inet_aton != tyes; then
240         SMB_SUBSYSTEM_ENABLE(HEIMDAL_ROKEN_INET_ATON, YES)
241 fi
242
243 # only add gai_strerror if needed
244 SMB_SUBSYSTEM_ENABLE(HEIMDAL_ROKEN_GAI_STRERROR, NO)
245 AC_CHECK_FUNC(gai_strerror)
246 if test t$ac_cv_func_gai_strerror != tyes; then
247     AC_SEARCH_LIBS_EXT(gai_strerror, [xnet], XNET_LIBS)
248     AC_CHECK_FUNC_EXT(gai_strerror, $XNET_LIBS)
249     if test t$ac_cv_func_ext_gai_strerror != tyes; then
250         SMB_SUBSYSTEM_ENABLE(HEIMDAL_ROKEN_GAI_STRERROR, YES)
251     else
252         AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether gai_strerror() is available])
253     fi
254 else
255     AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether gai_strerror() is available])
256 fi
257 SMB_EXT_LIB(XNET,[${XNET_LIBS}],[${XNET_CFLAGS}],[${XNET_CPPFLAGS}],[${XNET_LDFLAGS}])