use the new flag by default
[packages/xinetd.git] / configure.in
1 AC_INIT(xinetd/main.c)
2
3 AC_CANONICAL_SYSTEM
4
5 AC_PROG_CC
6 AC_PROG_INSTALL
7 AC_PROG_RANLIB
8
9 AC_CHECK_LIB(compat, main)
10 AC_SEARCH_LIBS(gethostbyname, nsl socket resolv)
11 AC_SEARCH_LIBS(getnameinfo, nsl socket resolv)
12 AC_SEARCH_LIBS(inet_ntop, nsl socket resolv)
13 AC_CHECK_FUNCS(getnameinfo inet_ntop)
14 AC_CHECK_FUNCS(difftime, ,
15    AC_CHECK_LIB(m, difftime))
16 AC_CHECK_FUNCS(fcvt, ,
17    AC_CHECK_LIB(m, fcvt))
18 AC_CHECK_FUNCS(ecvt, ,
19    AC_CHECK_LIB(m, ecvt))
20 AC_CHECK_FUNCS(gcvt, ,
21    AC_CHECK_LIB(m, gcvt))
22
23 AC_CHECK_FUNC(strerror, [AC_DEFINE(HAVE_STRERROR)])
24 AC_CHECK_FUNC(strcasecmp, [AC_DEFINE(HAVE_STRCASECMP)])
25 AC_CHECK_FUNC(socket, ,
26    AC_CHECK_LIB(socket, socket, ,
27       AC_CHECK_LIB(nsl, socket)))
28 AC_CHECK_FUNC(inet_aton, ,
29         AC_CHECK_LIB(nsl, inet_aton, ,
30                 AC_CHECK_LIB(socket, inet_aton, ,
31                         AC_CHECK_LIB(resolv, inet_aton, ,[AC_DEFINE(NO_INET_ATON)]))))
32 AC_CHECK_FUNC(setenv,[AC_DEFINE(HAVE_SETENV)])
33 AC_CHECK_FUNC(strsignal, [AC_DEFINE(HAVE_STRSIGNAL)])
34 AC_CHECK_LIB(c, sys_siglist, [AC_DEFINE(HAVE_SYS_SIGLIST)])
35 AC_CHECK_FUNC(gai_strerror,[AC_DEFINE(HAVE_GAI_STRERROR)])
36 AC_CHECK_FUNC(freeaddrinfo,[AC_DEFINE(HAVE_FREEADDRINFO)])
37 AC_CHECK_FUNC(getaddrinfo,[AC_DEFINE(HAVE_GETADDRINFO)])
38
39 AC_CHECK_HEADERS(sys/types.h sys/termios.h termios.h sys/ioctl.h sys/select.h rpc/rpc.h rpc/rpcent.h sys/file.h ftw.h machine/reg.h netdb.h)
40 AC_CHECK_HEADER(sys/resource.h, [AC_DEFINE(HAVE_SYS_RESOURCE_H)])
41 AC_CHECK_HEADER(arpa/inet.h, [AC_DEFINE(HAVE_ARPA_INET_H)])
42 AC_CHECK_HEADER(grp.h, [AC_DEFINE(HAVE_GRP_H)])
43 AC_CHECK_HEADER(rpc/pmap_clnt.h, [AC_DEFINE(HAVE_RPC_PMAP_CLNT_H)])
44 AC_CHECK_HEADER(sys/socket.h, [AC_DEFINE(HAVE_SYS_SOCKET_H)])
45 AC_CHECK_HEADER(sys/signal.h, [AC_DEFINE(HAVE_SYS_SIGNAL_H)])
46 AC_CHECK_HEADER(crypt.h, [AC_DEFINE(HAVE_CRYPT_H)])
47 AC_CHECK_HEADER(stdint.h, [AC_DEFINE(HAVE_STDINT_H)])
48 AC_CHECK_HEADER(stdbool.h, [AC_DEFINE(HAVE_STDBOOL_H)])
49 AC_CHECK_HEADER(sys/filio.h, [AC_DEFINE(HAVE_SYS_FILIO_H)])
50 AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [AC_DEFINE(HAVE_DNSREGISTRATION) AC_DEFINE(HAVE_MDNS)])
51
52 AC_ARG_WITH(howl, [  --with-howl=PATH        Compile in howl support.  
53                           PATH is the prefix where howl is installed,
54                           and is not optional.],
55    [ OLDCFLAGS=$CFLAGS; CFLAGS="-I$withval/include/howl/ $CFLAGS"; 
56      OLDLDFLAGS=$LDFLAGS; LDFLAGS="-L$withval/lib/ $LDFLAGS"; 
57      OLDCPPFLAGS=$CPPFLAGS; CPPFLAGS="-I$withval/include/howl/ $CPPFLAGS";
58      AC_CHECK_HEADER($withval/include/howl/howl.h, 
59         [AC_DEFINE(HAVE_HOWL) AC_DEFINE(HAVE_MDNS)], 
60         [CFLAGS=$OLDCFLAGS; LDFLAGS=$OLDLDFLAGS; CPPFLAGS=$OLDCPPFLAGS;]) 
61      AC_CHECK_LIB(howl, sw_discovery_publish, [LIBS="-lhowl $LIBS"], [
62         OLDLIBS=$LIBS; LIBS="-lpthread $LIBS"; 
63         AC_CHECK_LIB(howl, main, [LIBS="-lhowl $LIBS"],
64            [LIBS=$OLDLIBS]) 
65      ])
66    ])
67
68 XINETD_CHECK_TYPE(uint16_t, unsigned short)
69 XINETD_CHECK_TYPE(uint32_t, unsigned int)
70 XINETD_CHECK_TYPE(uint64_t, unsigned long long)
71 XINETD_CHECK_TYPE(uid_t, unsigned int)
72 XINETD_CHECK_TYPE(gid_t, unsigned int)
73 XINETD_CHECK_TYPE(socklen_t, unsigned int)
74 XINETD_CHECK_TYPE(rlim_t, long long)
75
76 AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [
77         AC_TRY_COMPILE(
78                 [
79 #include <sys/types.h>
80 #include <sys/socket.h>
81 #ifdef HAVE_NETDB_H
82 #include <netdb.h>
83 #endif
84                 ],
85                 [ struct addrinfo s; s.ai_flags = AI_PASSIVE; ],
86                 [ ac_cv_have_struct_addrinfo="yes" ],
87                 [ ac_cv_have_struct_addrinfo="no" ]
88         )
89 ])
90 if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then
91         AC_DEFINE(HAVE_STRUCT_ADDRINFO)
92 fi
93
94 AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [
95         AC_TRY_COMPILE(
96                 [
97 #include <sys/types.h>
98 #include <netinet/in.h>
99                 ],
100                 [ struct in6_addr s; s.s6_addr[0] = 0; ],
101                 [ ac_cv_have_struct_in6_addr="yes" ],
102                 [ ac_cv_have_struct_in6_addr="no" ]
103         )
104 ])
105 if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then
106         AC_DEFINE(HAVE_STRUCT_IN6_ADDR)
107 fi
108
109 AC_CACHE_CHECK([for struct sockaddr_in6], ac_cv_have_struct_sockaddr_in6, [
110         AC_TRY_COMPILE(
111                 [
112 #include <sys/types.h>
113 #include <netinet/in.h>
114                 ],
115                 [ struct sockaddr_in6 s; s.sin6_family = 0; ],
116                 [ ac_cv_have_struct_sockaddr_in6="yes" ],
117                 [ ac_cv_have_struct_sockaddr_in6="no" ]
118         )
119 ])
120 if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then
121         AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6)
122 fi
123
124 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_have_struct_sockaddr_storage, [
125         AC_TRY_COMPILE(
126                 [
127 #include <sys/types.h>
128 #include <sys/socket.h>
129                 ],
130                 [ struct sockaddr_storage s; ],
131                 [ ac_cv_have_struct_sockaddr_storage="yes" ],
132                 [ ac_cv_have_struct_sockaddr_storage="no" ]
133         )
134 ])
135 if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then
136         AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE)
137 fi
138
139
140 case "$target_os" in
141
142 solaris*)
143         AC_DEFINE(N0_SIGLIST)
144         AC_DEFINE(solaris)
145
146         AC_MSG_CHECKING(whether to compile in loadavg)
147         AC_ARG_WITH(loadavg,
148         [  --with-loadavg[=PATH]   Compile in loadavg support.],
149         [ case "$withval" in
150                 no)
151                         AC_MSG_RESULT(no)
152                         ;;
153                 yes)
154                         AC_MSG_RESULT(yes)
155                         AC_CHECK_LIB(kstat, main)
156                         AC_CHECK_HEADER(kstat.h, [AC_DEFINE(HAVE_KSTAT_H)])
157                         AC_DEFINE(HAVE_LOADAVG)
158                         ;;
159                 *)
160                         AC_MSG_RESULT(yes)
161                         AC_DEFINE(HAVE_LOADAVG)
162                         ;;
163         esac ], AC_MSG_RESULT(no) )
164         ;;
165 osf*)
166         LDFLAGS=-oldstyle_liblookup
167         AC_MSG_CHECKING(whether to compile in loadavg)
168         AC_ARG_WITH(loadavg,,
169         [ case "$withval" in
170                 no)
171                         AC_MSG_RESULT(no)
172                         ;;
173                 yes)
174                         AC_MSG_RESULT(yes)
175                         AC_DEFINE(HAVE_LOADAVG)
176                         ;;
177                 *)
178                         AC_MSG_RESULT(yes)
179                         AC_DEFINE(HAVE_LOADAVG)
180                         ;;
181         esac ], AC_MSG_RESULT(no))
182         ;;
183 linux*|freebsd*)
184         AC_CHECK_LIB(crypt, main)
185
186         AC_MSG_CHECKING(whether to compile in loadavg)
187         AC_ARG_WITH(loadavg,,
188         [ case "$withval" in
189                 no)
190                         AC_MSG_RESULT(no)
191                         ;;
192                 yes)
193                         AC_MSG_RESULT(yes)
194                         AC_DEFINE(HAVE_LOADAVG)
195                         ;;
196                 *)
197                         AC_MSG_RESULT(yes)
198                         AC_DEFINE(HAVE_LOADAVG)
199                         ;;
200         esac ], AC_MSG_RESULT(no))
201         ;;
202 darwin* | "Mac OS"*)
203         ac_cv_prog_RANLIB="ranlib"
204         # AC_CHECK_FUNCS doesn't look in the proper header file...
205         AC_DEFINE(HAVE_ISATTY)
206         CFLAGS="$CFLAGS -no-cpp-precomp"
207         AC_MSG_CHECKING(whether to compile in loadavg)
208         AC_ARG_WITH(loadavg,,
209         [ case "$withval" in
210                 no)
211                         AC_MSG_RESULT(no)
212                         ;;
213                 yes)
214                         AC_MSG_RESULT(yes)
215                         AC_DEFINE(HAVE_LOADAVG)
216                         ;;
217                 *)
218                         AC_MSG_RESULT(yes)
219                         AC_DEFINE(HAVE_LOADAVG)
220                         ;;
221         esac ], AC_MSG_RESULT(no))
222         ;;
223 *bsdi*)
224        AC_MSG_CHECKING(whether to compile in loadavg)
225        AC_ARG_WITH(loadavg,,
226        [ case "$withval" in
227                no)
228                        AC_MSG_RESULT(no)
229                        ;;
230                yes)
231                        AC_MSG_RESULT(yes)
232                        AC_DEFINE(bsdi)
233                        AC_DEFINE(HAVE_LOADAVG)
234                        ;;
235                *)
236                        AC_MSG_RESULT(yes)
237                        AC_DEFINE(bsdi)
238                        AC_DEFINE(HAVE_LOADAVG)
239                        ;;
240        esac ], AC_MSG_RESULT(no))
241        ;;
242 esac
243
244
245 AC_CHECK_LIB(c, crypt, [:], [
246  AC_CHECK_LIB(crypt, crypt, [
247   LIBS="-lcrypt $LIBS"
248   AC_DEFINE(HAVE_LIBCRYPT) ], []) ])
249
250 AC_CHECK_LIB(m, log10, [ LIBS="-lm $LIBS" ], [])
251
252 AC_MSG_CHECKING(whether to default to ipv6)
253 AC_ARG_WITH(inet6, [  --with-inet6    Compile in ipv6 support. (obsolete)],
254 AC_MSG_RESULT(ignored), AC_MSG_RESULT(ignored) )
255
256 AC_MSG_CHECKING(whether to use libwrap)
257 AC_ARG_WITH(libwrap,
258 [  --with-libwrap[=PATH]   Compile in libwrap (tcp_wrappers) support.],
259 [ case "$withval" in
260         no)
261                 AC_MSG_RESULT(no)
262                 ;;
263         yes)
264                 AC_MSG_RESULT(yes)
265                 AC_CHECK_LIB(wrap, request_init, [
266                         AC_DEFINE(LIBWRAP)
267                         WRAPLIBS="-lwrap"
268                         AC_DEFINE(HAVE_LIBWRAP) ])
269                 AC_CHECK_LIB(nsl, yp_get_default_domain, [ 
270                         WRAPLIBS="$WRAPLIBS -lnsl" ])
271                 LIBS="$WRAPLIBS $LIBS"
272                 ;;
273         *)
274                 AC_MSG_RESULT(yes)
275                 AC_DEFINE(LIBWRAP)
276                 if test -d "$withval"; then
277                         WRAPLIBS="-L$withval -lwrap"
278                 else
279                         WRAPLIBS="$withval"
280                 fi
281                 AC_CHECK_LIB(nsl, yp_get_default_domain, [ 
282                         WRAPLIBS="$WRAPLIBS -lnsl" ])
283                 OLDLIBS="$LIBS"
284                 LIBS="$WRAPLIBS $LIBS"
285                 AC_TRY_LINK([ int allow_severity; int deny_severity; ], 
286                         [ hosts_access(); ], [], [ AC_MSG_ERROR(Could not find the $withval library.  You must first install tcp_wrappers.) ])
287                 ;;
288         esac ],
289         AC_MSG_RESULT(no)
290 )
291
292 AC_FUNC_MMAP
293
294 AC_CHECK_FUNCS(isatty)
295 AC_CHECK_FUNCS(memcpy)
296 AC_CHECK_FUNCS(waitpid)
297 AC_CHECK_FUNCS(sigvec)
298 AC_CHECK_FUNCS(setsid)
299 AC_CHECK_FUNCS(strftime)
300
301 # AC_CHECK_TYPE(R_OK,4)
302
303
304 mkdir -p libs/src/misc
305 mkdir -p libs/src/pset
306 mkdir -p libs/src/sio
307 mkdir -p libs/src/str
308 mkdir -p libs/src/xlog
309 mkdir -p libs/include
310 mkdir -p libs/lib
311 mkdir -p libs/man
312
313 AC_CONFIG_HEADER(config.h)
314 AC_OUTPUT(Makefile libs/src/misc/Makefile libs/src/pset/Makefile libs/src/sio/Makefile libs/src/str/Makefile libs/src/xlog/Makefile libs/src/portable/Makefile xinetd/Makefile)
315
316 cp config.h libs/include