1AC_INIT(xinetd/main.c) 2 3AC_CANONICAL_SYSTEM 4 5AC_PROG_CC 6AC_PROG_INSTALL 7AC_PROG_RANLIB 8 9AC_CHECK_LIB(compat, main) 10AC_SEARCH_LIBS(gethostbyname, nsl socket resolv) 11AC_SEARCH_LIBS(getnameinfo, nsl socket resolv) 12AC_SEARCH_LIBS(inet_ntop, nsl socket resolv) 13AC_CHECK_FUNCS(getnameinfo inet_ntop) 14AC_CHECK_FUNCS(difftime, , 15 AC_CHECK_LIB(m, difftime)) 16AC_CHECK_FUNCS(fcvt, , 17 AC_CHECK_LIB(m, fcvt)) 18AC_CHECK_FUNCS(ecvt, , 19 AC_CHECK_LIB(m, ecvt)) 20AC_CHECK_FUNCS(gcvt, , 21 AC_CHECK_LIB(m, gcvt)) 22 23AC_CHECK_FUNC(strerror, [AC_DEFINE(HAVE_STRERROR)]) 24AC_CHECK_FUNC(strcasecmp, [AC_DEFINE(HAVE_STRCASECMP)]) 25AC_CHECK_FUNC(socket, , 26 AC_CHECK_LIB(socket, socket, , 27 AC_CHECK_LIB(nsl, socket))) 28AC_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)])))) 32AC_CHECK_FUNC(setenv,[AC_DEFINE(HAVE_SETENV)]) 33AC_CHECK_FUNC(strsignal, [AC_DEFINE(HAVE_STRSIGNAL)]) 34AC_CHECK_LIB(c, sys_siglist, [AC_DEFINE(HAVE_SYS_SIGLIST)]) 35AC_CHECK_FUNC(gai_strerror,[AC_DEFINE(HAVE_GAI_STRERROR)]) 36AC_CHECK_FUNC(freeaddrinfo,[AC_DEFINE(HAVE_FREEADDRINFO)]) 37AC_CHECK_FUNC(getaddrinfo,[AC_DEFINE(HAVE_GETADDRINFO)]) 38 39AC_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) 40AC_CHECK_HEADER(sys/resource.h, [AC_DEFINE(HAVE_SYS_RESOURCE_H)]) 41AC_CHECK_HEADER(arpa/inet.h, [AC_DEFINE(HAVE_ARPA_INET_H)]) 42AC_CHECK_HEADER(grp.h, [AC_DEFINE(HAVE_GRP_H)]) 43AC_CHECK_HEADER(rpc/pmap_clnt.h, [AC_DEFINE(HAVE_RPC_PMAP_CLNT_H)]) 44AC_CHECK_HEADER(sys/socket.h, [AC_DEFINE(HAVE_SYS_SOCKET_H)]) 45AC_CHECK_HEADER(sys/signal.h, [AC_DEFINE(HAVE_SYS_SIGNAL_H)]) 46AC_CHECK_HEADER(crypt.h, [AC_DEFINE(HAVE_CRYPT_H)]) 47AC_CHECK_HEADER(stdint.h, [AC_DEFINE(HAVE_STDINT_H)]) 48AC_CHECK_HEADER(stdbool.h, [AC_DEFINE(HAVE_STDBOOL_H)]) 49AC_CHECK_HEADER(sys/filio.h, [AC_DEFINE(HAVE_SYS_FILIO_H)]) 50AC_CHECK_HEADER(DNSServiceDiscovery/DNSServiceDiscovery.h, [AC_DEFINE(HAVE_DNSREGISTRATION) AC_DEFINE(HAVE_MDNS)]) 51 52AC_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 68XINETD_CHECK_TYPE(uint16_t, unsigned short) 69XINETD_CHECK_TYPE(uint32_t, unsigned int) 70XINETD_CHECK_TYPE(uint64_t, unsigned long long) 71XINETD_CHECK_TYPE(uid_t, unsigned int) 72XINETD_CHECK_TYPE(gid_t, unsigned int) 73XINETD_CHECK_TYPE(socklen_t, unsigned int) 74XINETD_CHECK_TYPE(rlim_t, long long) 75 76AC_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]) 90if test "x$ac_cv_have_struct_addrinfo" = "xyes" ; then 91 AC_DEFINE(HAVE_STRUCT_ADDRINFO) 92fi 93 94AC_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]) 105if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then 106 AC_DEFINE(HAVE_STRUCT_IN6_ADDR) 107fi 108 109AC_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]) 120if test "x$ac_cv_have_struct_sockaddr_in6" = "xyes" ; then 121 AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6) 122fi 123 124AC_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]) 135if test "x$ac_cv_have_struct_sockaddr_storage" = "xyes" ; then 136 AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE) 137fi 138 139 140case "$target_os" in 141 142solaris*) 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 ;; 165osf*) 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 ;; 183linux*|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 ;; 202darwin* | "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 ;; 242esac 243 244 245AC_CHECK_LIB(c, crypt, [:], [ 246 AC_CHECK_LIB(crypt, crypt, [ 247 LIBS="-lcrypt $LIBS" 248 AC_DEFINE(HAVE_LIBCRYPT) ], []) ]) 249 250AC_CHECK_LIB(m, log10, [ LIBS="-lm $LIBS" ], []) 251 252AC_MSG_CHECKING(whether to default to ipv6) 253AC_ARG_WITH(inet6, [ --with-inet6 Compile in ipv6 support. (obsolete)], 254AC_MSG_RESULT(ignored), AC_MSG_RESULT(ignored) ) 255 256AC_MSG_CHECKING(whether to use libwrap) 257AC_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 292AC_MSG_CHECKING(whether to use labeled-networking) 293AC_ARG_WITH(labeled-networking, 294[ --with-labeled-networking[=PATH] Compile in labeled networking support.], 295[ case "$withval" in 296 no) 297 AC_MSG_RESULT(no) 298 ;; 299 yes) 300 AC_MSG_RESULT(yes) 301 AC_CHECK_LIB(selinux, setexeccon, [ 302 AC_DEFINE(LABELED_NET) 303 LABELLIBS="-lselinux" ]) 304 LIBS="$LABELLIBS $LIBS" 305 ;; 306 *) 307 AC_MSG_RESULT(yes) 308 AC_DEFINE(LABELED_NET) 309 if test -d "$withval"; then 310 LABELLIBS="-L$withval -lselinux" 311 else 312 LABELLIBS="$withval" 313 fi 314 LIBS="$LABELLIBS $LIBS" 315 ;; 316 esac ], 317 AC_MSG_RESULT(no) 318) 319 320AC_FUNC_MMAP 321 322AC_CHECK_FUNCS(isatty) 323AC_CHECK_FUNCS(memcpy) 324AC_CHECK_FUNCS(waitpid) 325AC_CHECK_FUNCS(sigvec) 326AC_CHECK_FUNCS(setsid) 327AC_CHECK_FUNCS(strftime) 328 329# AC_CHECK_TYPE(R_OK,4) 330 331 332mkdir -p libs/src/misc 333mkdir -p libs/src/pset 334mkdir -p libs/src/sio 335mkdir -p libs/src/str 336mkdir -p libs/src/xlog 337mkdir -p libs/include 338mkdir -p libs/lib 339mkdir -p libs/man 340 341AC_CONFIG_HEADER(config.h) 342AC_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) 343 344cp config.h libs/include 345