1 dnl $Id: roken-frag.m4,v 1.45.2.1 2004/04/01 07:27:35 joda Exp $
3 dnl some code to get roken working
9 AC_REQUIRE([rk_CONFIG_HEADER])
12 LIB_roken='$(top_builddir)/$1/libroken.la'
13 INCLUDES_roken='-I$(top_builddir)/$1 -I$(top_srcdir)/$1'
15 dnl Checks for programs
16 AC_REQUIRE([AC_PROG_CC])
17 AC_REQUIRE([AC_PROG_AWK])
18 AC_REQUIRE([AC_OBJEXT])
19 AC_REQUIRE([AC_EXEEXT])
20 AC_REQUIRE([AC_PROG_LIBTOOL])
22 AC_REQUIRE([AC_MIPS_ABI])
26 AC_REQUIRE([AC_C___ATTRIBUTE__])
27 AC_REQUIRE([AC_C_INLINE])
28 AC_REQUIRE([AC_C_CONST])
29 AC_WFLAGS(-Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs)
35 AC_REQUIRE([AC_TYPE_SIZE_T])
36 AC_HAVE_TYPE([ssize_t],[#include <unistd.h>])
37 AC_REQUIRE([AC_TYPE_PID_T])
38 AC_REQUIRE([AC_TYPE_UID_T])
39 AC_HAVE_TYPE([long long])
41 AC_REQUIRE([rk_RETSIGTYPE])
43 dnl Checks for header files.
44 AC_REQUIRE([AC_HEADER_STDC])
45 AC_REQUIRE([AC_HEADER_TIME])
95 AC_REQUIRE([CHECK_NETINET_IP_AND_TCP])
97 AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes)
98 AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes)
99 AM_CONDITIONAL(have_ifaddrs_h, test "$ac_cv_header_ifaddrs_h" = yes)
100 AM_CONDITIONAL(have_vis_h, test "$ac_cv_header_vis_h" = yes)
102 dnl Check for functions and libraries
104 AC_FIND_FUNC(socket, socket)
105 AC_FIND_FUNC(gethostbyname, nsl)
106 AC_FIND_FUNC(syslog, syslog)
110 AC_FIND_FUNC(gethostbyname2, inet6 ip6)
112 AC_FIND_FUNC(res_search, resolv,
115 #ifdef HAVE_SYS_TYPES_H
116 #include <sys/types.h>
118 #ifdef HAVE_NETINET_IN_H
119 #include <netinet/in.h>
121 #ifdef HAVE_ARPA_NAMESER_H
122 #include <arpa/nameser.h>
130 AC_FIND_FUNC(res_nsearch, resolv,
133 #ifdef HAVE_SYS_TYPES_H
134 #include <sys/types.h>
136 #ifdef HAVE_NETINET_IN_H
137 #include <netinet/in.h>
139 #ifdef HAVE_ARPA_NAMESER_H
140 #include <arpa/nameser.h>
148 AC_FIND_FUNC(dn_expand, resolv,
151 #ifdef HAVE_SYS_TYPES_H
152 #include <sys/types.h>
154 #ifdef HAVE_NETINET_IN_H
155 #include <netinet/in.h>
157 #ifdef HAVE_ARPA_NAMESER_H
158 #include <arpa/nameser.h>
168 #ifdef HAVE_SYS_TYPES_H
169 #include <sys/types.h>
171 #ifdef HAVE_NETINET_IN_H
172 #include <netinet/in.h>
174 #ifdef HAVE_ARPA_NAMESER_H
175 #include <arpa/nameser.h>
186 if test "$ac_cv_func_glob_working" != yes; then
189 AM_CONDITIONAL(have_glob_h, test "$ac_cv_func_glob_working" = yes)
221 if test "$ac_cv_func_cgetent" = no; then
225 AC_REQUIRE([AC_FUNC_GETLOGIN])
227 AC_REQUIRE([AC_FUNC_MMAP])
229 AC_FIND_FUNC_NO_LIBS(getsockopt,,
230 [#ifdef HAVE_SYS_TYPES_H
231 #include <sys/types.h>
233 #ifdef HAVE_SYS_SOCKET_H
234 #include <sys/socket.h>
237 AC_FIND_FUNC_NO_LIBS(setsockopt,,
238 [#ifdef HAVE_SYS_TYPES_H
239 #include <sys/types.h>
241 #ifdef HAVE_SYS_SOCKET_H
242 #include <sys/socket.h>
246 AC_FIND_IF_NOT_BROKEN(hstrerror, resolv,
257 AC_FOREACH([rk_func], [asprintf vasprintf asnprintf vasnprintf],
260 #include <string.h>],
263 AC_FIND_FUNC_NO_LIBS(bswap16,,
264 [#ifdef HAVE_SYS_BSWAP_H
265 #include <sys/bswap.h>
268 AC_FIND_FUNC_NO_LIBS(bswap32,,
269 [#ifdef HAVE_SYS_BSWAP_H
270 #include <sys/bswap.h>
273 AC_FIND_FUNC_NO_LIBS(pidfile,util,
278 AC_FIND_IF_NOT_BROKEN(getaddrinfo,,
283 AC_FIND_IF_NOT_BROKEN(getnameinfo,,
286 #endif],[0,0,0,0,0,0,0])
288 AC_FIND_IF_NOT_BROKEN(freeaddrinfo,,
293 AC_FIND_IF_NOT_BROKEN(gai_strerror,,
367 AC_FOREACH([rk_func], [strndup strsep strtok_r],
368 [AC_NEED_PROTO([#include <string.h>], rk_func)])
370 AC_FOREACH([rk_func], [strsvis strunvis strvis strvisx svis unvis vis],
371 [AC_NEED_PROTO([#ifdef HAVE_VIS_H
375 AC_BROKEN2(inet_aton,
376 [#ifdef HAVE_SYS_TYPES_H
377 #include <sys/types.h>
379 #ifdef HAVE_SYS_SOCKET_H
380 #include <sys/socket.h>
382 #ifdef HAVE_NETINET_IN_H
383 #include <netinet/in.h>
385 #ifdef HAVE_ARPA_INET_H
386 #include <arpa/inet.h>
390 AC_BROKEN2(inet_ntop,
391 [#ifdef HAVE_SYS_TYPES_H
392 #include <sys/types.h>
394 #ifdef HAVE_SYS_SOCKET_H
395 #include <sys/socket.h>
397 #ifdef HAVE_NETINET_IN_H
398 #include <netinet/in.h>
400 #ifdef HAVE_ARPA_INET_H
401 #include <arpa/inet.h>
405 AC_BROKEN2(inet_pton,
406 [#ifdef HAVE_SYS_TYPES_H
407 #include <sys/types.h>
409 #ifdef HAVE_SYS_SOCKET_H
410 #include <sys/socket.h>
412 #ifdef HAVE_NETINET_IN_H
413 #include <netinet/in.h>
415 #ifdef HAVE_ARPA_INET_H
416 #include <arpa/inet.h>
421 dnl Check for sa_len in struct sockaddr,
422 dnl needs to come before the getnameinfo test
424 AC_HAVE_STRUCT_FIELD(struct sockaddr, sa_len, [#include <sys/types.h>
425 #include <sys/socket.h>])
427 if test "$ac_cv_func_getnameinfo" = "yes"; then
428 rk_BROKEN_GETNAMEINFO
429 if test "$ac_cv_func_getnameinfo_broken" = yes; then
430 AC_LIBOBJ(getnameinfo)
434 if test "$ac_cv_func_getaddrinfo" = "yes"; then
435 rk_BROKEN_GETADDRINFO
436 if test "$ac_cv_func_getaddrinfo_numserv" = no; then
437 AC_LIBOBJ(getaddrinfo)
438 AC_LIBOBJ(freeaddrinfo)
442 AC_NEED_PROTO([#include <stdlib.h>], setenv)
443 AC_NEED_PROTO([#include <stdlib.h>], unsetenv)
444 AC_NEED_PROTO([#include <unistd.h>], gethostname)
445 AC_NEED_PROTO([#include <unistd.h>], mkstemp)
446 AC_NEED_PROTO([#include <unistd.h>], getusershell)
449 #ifdef HAVE_SYS_TYPES_H
450 #include <sys/types.h>
452 #ifdef HAVE_SYS_SOCKET_H
453 #include <sys/socket.h>
455 #ifdef HAVE_NETINET_IN_H
456 #include <netinet/in.h>
458 #ifdef HAVE_ARPA_INET_H
459 #include <arpa/inet.h>
463 AC_FIND_FUNC_NO_LIBS(crypt, crypt)dnl
465 AC_REQUIRE([rk_BROKEN_REALLOC])dnl
467 dnl AC_KRB_FUNC_GETCWD_BROKEN
470 dnl Checks for prototypes and declarations
474 #ifdef HAVE_SYS_TYPES_H
475 #include <sys/types.h>
477 #ifdef HAVE_SYS_SOCKET_H
478 #include <sys/socket.h>
480 #ifdef HAVE_NETINET_IN_H
481 #include <netinet/in.h>
483 #ifdef HAVE_ARPA_INET_H
484 #include <arpa/inet.h>
490 gethostbyname, struct hostent *gethostbyname(const char *))
493 #ifdef HAVE_SYS_TYPES_H
494 #include <sys/types.h>
496 #ifdef HAVE_SYS_SOCKET_H
497 #include <sys/socket.h>
499 #ifdef HAVE_NETINET_IN_H
500 #include <netinet/in.h>
502 #ifdef HAVE_ARPA_INET_H
503 #include <arpa/inet.h>
509 gethostbyaddr, struct hostent *gethostbyaddr(const void *, size_t, int))
512 #ifdef HAVE_SYS_TYPES_H
513 #include <sys/types.h>
515 #ifdef HAVE_SYS_SOCKET_H
516 #include <sys/socket.h>
518 #ifdef HAVE_NETINET_IN_H
519 #include <netinet/in.h>
521 #ifdef HAVE_ARPA_INET_H
522 #include <arpa/inet.h>
528 getservbyname, struct servent *getservbyname(const char *, const char *))
531 #ifdef HAVE_SYS_TYPES_H
532 #include <sys/types.h>
534 #ifdef HAVE_SYS_SOCKET_H
535 #include <sys/socket.h>
538 getsockname, int getsockname(int, struct sockaddr*, socklen_t*))
545 openlog, void openlog(const char *, int, int))
559 rk_CHECK_VAR(h_errno,
560 [#ifdef HAVE_SYS_TYPES_H
561 #include <sys/types.h>
567 rk_CHECK_VAR(h_errlist,
577 rk_CHECK_VAR([__progname],
582 AC_CHECK_DECLARATION([#include <stdlib.h>
586 AC_CHECK_DECLARATION([#include <stdlib.h>
590 AC_CHECK_DECLARATION([#include <stdlib.h>
594 AC_CHECK_DECLARATION([#include <stdlib.h>
599 AC_CHECK_DECLARATION([#include <stdlib.h>], environ)
602 dnl Check for fields in struct tm
605 AC_HAVE_STRUCT_FIELD(struct tm, tm_gmtoff, [#include <time.h>])
606 AC_HAVE_STRUCT_FIELD(struct tm, tm_zone, [#include <time.h>])
609 dnl or do we have a variable `timezone' ?
612 rk_CHECK_VAR(timezone,[#include <time.h>])
613 rk_CHECK_VAR(altzone,[#include <time.h>])
615 AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
616 AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>])
617 AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>])
618 AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
619 AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
620 AC_HAVE_TYPE([struct ifaddrs], [#include <ifaddrs.h>])
621 AC_HAVE_TYPE([struct iovec],[
622 #include <sys/types.h>
625 AC_HAVE_TYPE([struct msghdr],[
626 #include <sys/types.h>
627 #include <sys/socket.h>
631 dnl Check for struct winsize
634 AC_KRB_STRUCT_WINSIZE
637 dnl Check for struct spwd
642 dnl won't work with automake
643 dnl moved to AC_OUTPUT in configure.in
644 dnl AC_CONFIG_FILES($1/Makefile)
646 LIB_roken="${LIB_roken} \$(LIB_crypt) \$(LIB_dbopen)"
648 AC_SUBST(DIR_roken)dnl
649 AC_SUBST(LIB_roken)dnl
650 AC_SUBST(INCLUDES_roken)dnl