]> jfr.im git - solanum.git/blame - librb/configure.ac
TLS Backends: Harmomise the rb_ssl_get_cipher() function
[solanum.git] / librb / configure.ac
CommitLineData
db137867
AC
1dnl Process this file with autoconf to produce a configure script.
2
3dnl TODO: clean up all the OpenSSL and shared module checking stuff;
4dnl the most major changes have already been made and it looks like
5dnl said functions need to be just about as complex as they already are.
6
030272f3 7AC_PREREQ(2.63)
db137867
AC
8AUTOMAKE_OPTIONS = 1.10
9dnl Sneaky way to get an Id tag into the configure script
fe037171 10AC_INIT([librb],[devel])
eec2776c 11AM_INIT_AUTOMAKE([subdir-objects])
c52df125 12AM_SILENT_RULES([yes])
db137867 13
fe037171 14AM_CONFIG_HEADER(include/librb_config.h)
db137867 15
fe037171 16AC_PREFIX_DEFAULT(/usr/local/librb)
db137867
AC
17AC_GNU_SOURCE
18
19dnl Checks for programs.
20AC_PROG_CC_C99
21
22if test x"$ac_cv_prog_cc_c99" = "xno"; then
fe037171 23 AC_ERROR([charybdis requires a C99 capable compiler])
db137867 24fi
5203cba5 25
db137867
AC
26
27AC_PROG_INSTALL
28AC_PROG_EGREP
29AC_PROG_SED
30
31F77=no
32CXX=no
33GCJ=no
34
35AM_DISABLE_STATIC
36AM_ENABLE_SHARED
37AM_MAINTAINER_MODE
38
39AC_ISC_POSIX
40AC_C_INLINE
41AC_C_CONST
f171dafb 42AC_C_BIGENDIAN
db137867
AC
43AC_PROG_MAKE_SET
44AC_PROG_INSTALL
45AC_PATH_PROG(AUTOMAKE, automake)
46AC_PATH_PROG(ACLOCAL, aclocal)
47AC_PATH_PROG(AUTOHEADER, autoheader)
48AC_PATH_PROG(AS, as)
49AC_PATH_PROG(RM, rm)
50AC_PATH_PROG(CP, cp)
51AC_PATH_PROG(MV, mv)
52AC_PATH_PROG(LN, ln)
db137867
AC
53AC_PATH_PROG(TOUCH, touch)
54AC_LANG(C)
55
56AC_PROG_LIBTOOL
57
58LIBTOOL="$LIBTOOL --silent"
59
db137867
AC
60case "$host_os" in
61*cygwin*)
62 AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a Cygwin system])
63 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
64 ;;
36b3cff7 65*mingw* | *msys*)
db137867
AC
66 AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system])
67 AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system])
68 AC_CHECK_HEADER(windows.h, , [AC_MSG_ERROR([** MinGW and no windows.h. I give up.])])
69 AC_CHECK_HEADER(winsock2.h, , [AC_MSG_ERROR([** MinGW and no winsock2.h. I give up.])])
3202e249
VY
70 AC_DEFINE_UNQUOTED(HAVE_WINSOCK2_H, 1, [Have WINSOCK2_H])
71 AC_DEFINE_UNQUOTED(HAVE_WINSOCK_H, 1, [Have WINSOCK_H])
db137867
AC
72 LIBS="$LIBS -lws2_32 -liphlpapi"
73 is_mingw="yes"
74 ;;
75*interix*)
76 CPPFLAGS="$CFLAGS -D_ALL_SOURCE -D_XOPEN_SOURCE=500"
77 ;;
030272f3
VY
78*solaris*)
79 CPPFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_XPG4_2"
db137867
AC
80 ;;
81*)
82 ;;
83esac
84
85AM_CONDITIONAL([MINGW], [test "$is_mingw" = "yes"])
86
87
88# backwards support for IRC_CFLAGS
3202e249 89CFLAGS="$IRC_CFLAGS $CFLAGS -Wall"
db137867
AC
90
91dnl use directory structure of cached as default (hack)
92if test "$libexecdir" = '${exec_prefix}/libexec' &&
93 test "$localstatedir" = '${prefix}/var'; then
94 libexecdir='${bindir}'
95 localstatedir='${prefix}'
96fi
97
db137867
AC
98AC_TYPE_PID_T
99AC_TYPE_SIZE_T
100AC_TYPE_SSIZE_T
101AC_TYPE_UID_T
102
103
104dnl Checks for header files.
105AC_HEADER_STDC
106
7b2c764f 107AC_CHECK_HEADERS([crypt.h unistd.h sys/socket.h sys/stat.h sys/time.h time.h netinet/in.h netinet/tcp.h arpa/inet.h errno.h sys/uio.h spawn.h sys/poll.h sys/epoll.h sys/select.h sys/devpoll.h sys/event.h port.h signal.h sys/signalfd.h sys/timerfd.h])
db137867
AC
108AC_HEADER_TIME
109
110dnl Networking Functions
111dnl ====================
112
113AC_SEARCH_LIBS(socket, [socket],,)
114
115
116AC_CHECK_MEMBER([struct sockaddr.sa_len], [AC_DEFINE(SOCKADDR_IN_HAS_LEN, 1, [Define to 1 if sockaddr has a 'sa_len'
117member.])],,[[
118#ifdef HAVE_SYS_TYPES_H
119#include <sys/types.h>
120#endif
121#ifdef HAVE_SYS_SOCKET_H
122#include <sys/socket.h>
123#endif
124#ifdef HAVE_WINSOCK2_H
125#include <winsock2.h>
126#endif
127]])
128
030272f3 129AC_CHECK_TYPE([socklen_t], rb_cv_socklen_t=socklen_t,[
a9fb3ed0 130 AC_MSG_CHECKING([for socklen_t equivalent])
030272f3 131 AC_CACHE_VAL([rb_cv_socklen_t],
a9fb3ed0
VY
132 [
133 # Systems have either "struct sockaddr *" or
134 # "void *" as the second argument to getpeername
030272f3 135 rb_cv_socklen_t=
a9fb3ed0
VY
136 for arg2 in "struct sockaddr" void; do
137 for t in int size_t unsigned long "unsigned long"; do
138 AC_TRY_COMPILE([
3202e249 139#ifdef HAVE_SYS_TYPES_H
db137867 140#include <sys/types.h>
3202e249
VY
141#endif
142#ifdef HAVE_SYS_SOCKET_H
db137867 143#include <sys/socket.h>
3202e249
VY
144#endif
145#ifdef HAVE_WINSOCK2_H
146#include <winsock2.h>
eb558775 147#include <ws2tcpip.h>
3202e249 148#endif
a9fb3ed0
VY
149int getpeername (int, $arg2 *, $t *);
150],[
151$t len;
152getpeername(0,0,&len);
153],[
030272f3 154 rb_cv_socklen_t="$t"
a9fb3ed0 155 break
db137867 156])
a9fb3ed0
VY
157 done
158 done
159
030272f3 160 if test "x$rb_cv_socklen_t" = x; then
3202e249 161 AC_MSG_WARN([Cannot find a type to use in place of socklen_t using int])
030272f3 162 rb_cv_socklen_t=int
a9fb3ed0
VY
163 fi
164 ])
030272f3 165 AC_MSG_RESULT($rb_cv_socklen_t)],
a9fb3ed0
VY
166 [#include <sys/types.h>
167#include <sys/socket.h>])
168
030272f3
VY
169rb_socklen_t=$rb_cv_socklen_t
170
a9fb3ed0
VY
171
172
173
db137867
AC
174
175AC_ARG_ENABLE(ipv6,AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),[ipv6=$enableval],[ipv6=yes])
176
177if test x$ipv6 != xyes; then
178 have_v6="no"
179else
180
181have_v6=yes
182RB_PROTO_INET6([], [
183 AC_MSG_NOTICE([Disabling IPv6 support: PF_INET6 not found])
184 have_v6=no
185 ])
186
187 if test "X$have_v6" = "Xyes"; then
188 RB_TYPE_STRUCT_SOCKADDR_IN6([], [
189 AC_MSG_NOTICE([Disabling IPv6 support: struct sockaddr_in6 not found])
190 have_v6=no
191 ])
192 fi
193
5203cba5 194fi
db137867
AC
195
196AC_CHECK_TYPES([struct sockaddr_storage],[
197 rb_have_sockaddr_storage=yes
198 ],[], [
199 #include <sys/types.h>
200 #include <sys/socket.h>
201 ])
5203cba5 202
db137867 203
db137867 204dnl Check for stdarg.h - if we cant find it, halt configure
fe037171 205AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - librb will not compile without it **])])
db137867
AC
206
207AC_CHECK_TYPE([sa_family_t], [],
208[AC_DEFINE(sa_family_t, [u_int16_t], [If system does not define sa_family_t, define it here.])],
209[[#include <sys/types.h>
210#include <sys/socket.h>]])
211
212
213dnl check for various functions...
508e25a8 214AC_CHECK_FUNCS([snprintf vsnprintf socketpair gettimeofday writev sendmsg gmtime_r strtok_r usleep posix_spawn getexecname strlcpy strlcat strnlen strcasestr strcasecmp strncasecmp fstat signalfd select poll kevent port_create epoll_ctl arc4random getrusage timerfd_create])
db137867 215
790e4dce 216AC_SEARCH_LIBS(dlinfo, dl, AC_DEFINE(HAVE_DLINFO, 1, [Define if you have dlinfo]))
db137867
AC
217AC_SEARCH_LIBS(nanosleep, rt posix4, AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if you have nanosleep]))
218AC_SEARCH_LIBS(timer_create, rt, AC_DEFINE(HAVE_TIMER_CREATE, 1, [Define if you have timer_create]))
219RB_CHECK_TIMER_CREATE
3202e249 220RB_CHECK_TIMERFD_CREATE
db137867
AC
221
222AC_FUNC_ALLOCA
223AC_FUNC_VFORK
224AC_FUNC_MMAP
225
226AC_MSG_CHECKING(for /dev/poll)
227if test -c "/dev/poll"; then
228 AC_MSG_RESULT(yes)
229 AC_DEFINE(HAVE_DEVPOLL, [1], [Define to 1 if you have devpoll])
230else
5203cba5 231 AC_MSG_RESULT(no)
db137867
AC
232fi
233
234
235if test "$is_mingw" = "yes"; then
236 AC_DEFINE(HAVE_WIN32, [1], [Define to 1 if you are on windows])
237fi
238
239
240dnl OpenSSL support
241AC_MSG_CHECKING(for OpenSSL)
242AC_ARG_ENABLE(openssl,
243[AC_HELP_STRING([--enable-openssl[=DIR]],[Enable OpenSSL support (DIR optional).])
244AC_HELP_STRING([--disable-openssl],[Disable OpenSSL support.])],
245[cf_enable_openssl=$enableval],
246[cf_enable_openssl="auto"])
247
248if test "$cf_enable_openssl" != "no" ; then
249 cf_openssl_basedir=""
250 if test "$cf_enable_openssl" != "auto" &&
251 test "$cf_enable_openssl" != "yes" ; then
252 dnl Support for --enable-openssl=/some/place
253 cf_openssl_basedir="`echo ${cf_enable_openssl} | sed 's/\/$//'`"
254 else
255 dnl Do the auto-probe here. Check some common directory paths.
256 for dirs in /usr/local/ssl /usr/pkg /usr/local \
257 /usr/local/openssl ; do
258 if test -f "${dirs}/include/openssl/opensslv.h" ; then
259 cf_openssl_basedir="${dirs}"
260 break
261 fi
262 done
263 unset dirs
264 fi
265 dnl Now check cf_openssl_found to see if we found anything.
266 if test ! -z "$cf_openssl_basedir"; then
267 if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" ; then
c2ac22cc 268 SSL_CFLAGS="-I${cf_openssl_basedir}/include"
db137867
AC
269 SSL_LIBS="-L${cf_openssl_basedir}/lib"
270 else
271 dnl OpenSSL wasn't found in the directory specified. Naughty
272 dnl administrator...
273 cf_openssl_basedir=""
274 fi
275 else
276 dnl Check for stock FreeBSD 4.x and 5.x systems, since their files
277 dnl are in /usr/include and /usr/lib. In this case, we don't want to
278 dnl change INCLUDES or LIBS, but still want to enable OpenSSL.
279 dnl We can't do this check above, because some people want two versions
280 dnl of OpenSSL installed (stock FreeBSD 4.x/5.x and /usr/local/ssl)
281 dnl and they want /usr/local/ssl to have preference.
282 if test -f "/usr/include/openssl/opensslv.h" ; then
283 cf_openssl_basedir="/usr"
284 fi
285 fi
286
287 dnl If we have a basedir defined, then everything is okay. Otherwise,
288 dnl we have a problem.
289 if test ! -z "$cf_openssl_basedir"; then
290 AC_MSG_RESULT($cf_openssl_basedir)
291 cf_enable_openssl="yes"
292 else
293 AC_MSG_RESULT([not found. Specify a correct path?])
294 cf_enable_openssl="no"
295 fi
296 unset cf_openssl_basedir
297else
298 dnl If --disable-openssl was specified
299 AC_MSG_RESULT(disabled)
300fi
301
302save_CPPFLAGS="$CPPFLAGS"
c2ac22cc 303CPPFLAGS="$CPPFLAGS $SSL_CFLAGS"
db137867
AC
304save_LIBS="$LIBS"
305LIBS="$LIBS $SSL_LIBS"
306if test "$cf_enable_openssl" != no; then
307 dnl Check OpenSSL version (must be 0.9.7 or above!)
308 AC_MSG_CHECKING(for OpenSSL 0.9.7 or above)
309 AC_RUN_IFELSE(
d5ef3fd3 310 [AC_LANG_PROGRAM(
db137867
AC
311 [#include <openssl/opensslv.h>
312 #include <stdlib.h>],
313 [[if (OPENSSL_VERSION_NUMBER >= 0x00907000)
d5ef3fd3 314 exit(0); else exit(1);]])],
db137867
AC
315 cf_enable_openssl=yes,
316 cf_enable_openssl=no,
317 cf_enable_openssl=no)
318
319 if test "$cf_enable_openssl" != no; then
320 AC_MSG_RESULT(found)
321 else
322 AC_MSG_RESULT(no - OpenSSL support disabled)
323 fi
324
325fi
326
327
328if test "$cf_enable_openssl" != no; then
329 CPPFLAGS="$CPPFLAGS $SSL_LIBS"
5203cba5 330 AC_CHECK_LIB(crypto, RAND_status,
db137867
AC
331 [cf_enable_openssl=yes],
332 [cf_enable_openssl=no])
333fi
334
db137867
AC
335if test "$cf_enable_openssl" != no; then
336 CPPFLAGS="$CPPFLAGS $SSL_LIBS"
5203cba5 337 AC_CHECK_LIB(ssl, SSL_read,
3202e249 338 [SSL_LIBS="$SSL_LIBS -lssl -lcrypto"],
db137867
AC
339 [cf_enable_openssl=no], [-lcrypto])
340fi
341
c2ac22cc 342
6f57a957
AC
343dnl mbedTLS support
344AC_ARG_ENABLE(mbedtls,
345[AC_HELP_STRING([--enable-mbedtls], [Enable mbedTLS support.])
346AC_HELP_STRING([--disable-mbedtls], [Disable mbedTLS support.])],
347[cf_enable_mbedtls=$enableval],
348[cf_enable_mbedtls="auto"])
349
350if test "$cf_enable_mbedtls" != no; then
351 save_CPPFLAGS="$CPPFLAGS"
352 save_LIBS="$LIBS"
353 LIBS="$LIBS $MBEDTLS_LIBS"
354 AC_CHECK_LIB(mbedtls, mbedtls_ssl_init, [
bf3bcbb5 355 MBEDTLS_LIBS="$MBEDTLS_LIBS -lmbedtls -lmbedx509 -lmbedcrypto"
6f57a957 356 cf_enable_mbedtls=yes
bf3bcbb5 357 ], [cf_enable_mbedtls=no], [-lmbedx509 -lmbedcrypto])
6f57a957 358fi
c2ac22cc 359
2bd29df9
AB
360dnl GnuTLS support
361AC_MSG_CHECKING(for GnuTLS)
362AC_ARG_ENABLE(gnutls,
363[AC_HELP_STRING([--enable-gnutls],[Enable GnuTLS support.])
364AC_HELP_STRING([--disable-gnutls],[Disable GnuTLS support.])],
365[cf_enable_gnutls=$enableval],
366[cf_enable_gnutls="auto"])
5203cba5 367
2bd29df9
AB
368if test "$cf_enable_gnutls" != no; then
369 PKG_CHECK_MODULES(GNUTLS, [gnutls], [
5203cba5
VI
370 cf_enable_gnutls="yes"
371 ], [cf_enable_gnutls="no"])
2bd29df9
AB
372fi
373
6f57a957
AC
374dnl mbed TLS is given highest preference when no specified TLS library is provided
375if test "$cf_enable_openssl" = "auto" -a "$cf_enable_mbedtls" = "yes"; then
376 cf_enable_openssl="no"
377fi
378
379if test "$cf_enable_gnutls" = "auto" -a "$cf_enable_openssl" = "yes" -a "$cf_enable_mbedtls" = "yes"; then
2bd29df9
AB
380 cf_enable_gnutls="no"
381fi
382
c2ac22cc 383if test x"$cf_enable_openssl" != xno; then
db137867 384 AC_DEFINE(HAVE_OPENSSL,1,[Has OpenSSL])
2bd29df9
AB
385 GNUTLS_CFLAGS=""
386 GNUTLS_LIBS=""
6f57a957
AC
387 MBEDTLS_LIBS=""
388 MBEDTLS_CFLAGS=""
c2ac22cc 389 SSL_TYPE="openssl"
6f57a957
AC
390elif test x"$cf_enable_mbedtls" != xno; then
391 AC_DEFINE(HAVE_MBEDTLS, 1, [Has mbedTLS])
392 SSL_LIBS=""
5203cba5 393 SSL_CFLAGS=""
6f57a957
AC
394 GNUTLS_CFLAGS=""
395 GNUTLS_LIBS=""
5203cba5 396 SSL_TYPE="mbedtls"
2bd29df9
AB
397elif test x"$cf_enable_gnutls" != xno; then
398 AC_DEFINE(HAVE_GNUTLS, 1, [Has GnuTLS])
399 SSL_LIBS=""
6f57a957
AC
400 SSL_CFLAGS=""
401 MBEDTLS_LIBS=""
402 MBEDTLS_CFLAGS=""
2bd29df9 403 SSL_TYPE="gnutls"
db137867
AC
404fi
405
406
c2ac22cc
VY
407
408
db137867
AC
409CPPFLAGS="$save_CPPFLAGS"
410LIBS="$save_LIBS"
411
412dnl End OpenSSL detection
413
414
415
416
417dnl Debug-related options
418dnl =====================
419
420AC_ARG_ENABLE(assert,
421AC_HELP_STRING([--enable-assert],[Enable assert(). Choose between soft(warnings) and hard(aborts the daemon)]),
422[assert=$enableval], [assert=no])
423
424if test "$assert" = no; then
425 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
426elif test "$assert" = soft; then
427 AC_DEFINE(SOFT_ASSERT, 1, [Define this to enable soft asserts.])
428 AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.])
429elif test "$assert" = yes; then
430 assert = "hard";
431fi
432
433AC_MSG_CHECKING(if you want to do a profile build)
434AC_ARG_ENABLE(profile,
435AC_HELP_STRING([--enable-profile],[Enable profiling]),
436[profile=$enableval], [profile=no])
437
438if test "$profile" = yes; then
439 if test "$ac_cv_c_compiler_gnu" = yes; then
440 CFLAGS="$CFLAGS -pg -static"
441 AC_MSG_RESULT([yes, adding -pg -static])
3a29f678 442 AC_DEFINE(RB_PROFILE, 1, [Defined to mark profiling is enabled])
db137867
AC
443 else
444 AC_MSG_RESULT([no, profile builds only work with gcc])
445 fi
446else
447 AC_MSG_RESULT(no)
448fi
449
db137867
AC
450AC_ARG_ENABLE(warnings,
451AC_HELP_STRING([--enable-warnings],[Enable all sorts of warnings for debugging.]),
452[CFLAGS="$CFLAGS -Wall -Werror -Wcast-qual -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -W -Wno-unused -Wunused-function -Wunused-variable"],[])
453
454AC_SUBST(LDFLAGS)
455AC_SUBST(PICFLAGS)
456AC_SUBST(CFLAGS)
457AC_SUBST(SEDOBJ)
c2ac22cc 458AC_SUBST(SSL_CFLAGS)
db137867 459AC_SUBST(SSL_LIBS)
2bd29df9
AB
460AC_SUBST(GNUTLS_CFLAGS)
461AC_SUBST(GNUTLS_LIBS)
cd492e44
AC
462AC_SUBST(MBEDTLS_CFLAGS)
463AC_SUBST(MBEDTLS_LIBS)
db137867 464
5203cba5 465if test "$prefix" = "NONE"; then
fe037171 466 AC_DEFINE_UNQUOTED(RB_PREFIX, "$ac_default_prefix", [Prefix where librb is installed.])
db137867
AC
467
468else
469
470dnl Don't get bitten by Cygwin's stupidity if the user specified
471dnl a custom prefix with a trailing slash
472
473 prefix=`echo $prefix | sed 's/\/$//'`
fe037171 474 AC_DEFINE_UNQUOTED(RB_PREFIX, "$prefix", [Prefix where librb is installed.])
5203cba5 475
db137867
AC
476fi
477
478AC_SUBST(RB_PREFIX)
479
db137867
AC
480AC_CONFIG_COMMANDS([include/librb-config.h],
481[
482 outfile=include/librb-config.h.tmp
483 cat > $outfile <<\_______EOF
5203cba5 484/*
fe037171 485 * librb-config.h: librb config file. Please modify configure.ac
db137867 486 */
5203cba5 487
db137867
AC
488#ifndef __LIBRB_CONFIG_H
489#define __LIBRB_CONFIG_H
490
5203cba5 491_______EOF
db137867
AC
492
493if test "x$rb_have_ipv6" = "xyes"; then
494 echo "#define RB_IPV6 1" >> $outfile
495fi
496
497if test "x$rb_windows_h" = "xyes"; then
498 echo '#define WIN32_LEAN_AND_MEAN 1' >> $outfile
499 echo '#include <windows.h>' >> $outfile
500 echo '#include <winsock2.h>' >> $outfile
fe277230 501 echo '#include <ws2tcpip.h>' >> $outfile
db137867
AC
502 echo '#include <iphlpapi.h>' >> $outfile
503fi
504
505if test "x$rb_alloca_h" = "xyes"; then
506 echo '#define RB_HAVE_ALLOCA_H 1' >> $outfile
507fi
508
509if test "x$rb_header_stdc" = "xyes"; then
510 echo '#include <stdlib.h>' >> $outfile
511 echo '#include <stddef.h>' >> $outfile
512elif test "x$rb_header_stdlib" = "xyes"; then
513 echo '#include <stdlib.h>' >> $outfile
514fi
515
516if test "x$rb_header_string_h" = "xyes"; then
517 echo '#include <string.h>' >> $outfile
518fi
519
520if test "x$rb_stdint_h" = "xyes"; then
521 echo '#include <stdint.h>' >> $outfile
522fi
523
524if test "x$rb_inttypes_h" = "xyes"; then
525 echo '#include <inttypes.h>' >> $outfile
526fi
527
528if test "x$rb_sys_types_h" = "xyes"; then
529 echo '#include <sys/types.h>' >> $outfile
530fi
531if test "x$rb_sys_time_h" = "xyes"; then
532 echo '#include <sys/time.h>' >> $outfile
533fi
534if test "x$rb_sys_stat_h" = "xyes"; then
535 echo '#include <sys/stat.h>' >> $outfile
536fi
537if test "x$rb_time_h" = "xyes"; then
538 echo '#include <time.h>' >> $outfile
539fi
540
541if test "x$rb_sys_socket_h" = "xyes"; then
542 echo '#include <sys/socket.h>' >> $outfile
543fi
544
545if test "x$rb_netinet_in_h" = "xyes"; then
546 echo '#include <netinet/in.h>' >> $outfile
547fi
548
468ef960
EM
549if test "x$rb_netinet_tcp_h" == "xyes"; then
550 echo '#include <netinet/tcp.h>' >> $outfile
551fi
552
db137867
AC
553if test "x$rb_arpa_inet_h" = "xyes"; then
554 echo '#include <arpa/inet.h>' >> $outfile
555fi
556
557if test "x$rb_unistd_h" = "xyes"; then
558 echo '#include <unistd.h>' >> $outfile
559fi
560
561if test "x$rb_crypt_h" = "xyes"; then
562 echo '#include <crypt.h>' >> $outfile
563fi
564
565if test "x$rb_errno_h" = "xyes"; then
566 echo '#include <errno.h>' >> $outfile
567fi
568
a9fb3ed0
VY
569echo "typedef $rb_socklen_t rb_socklen_t;" >> $outfile
570
571
db137867
AC
572if test "x$rb_sockaddr_sa_len" = "xyes"; then
573 echo '#define RB_SOCKADDR_HAS_SA_LEN 1' >> $outfile
574fi
575
db137867
AC
576if test "x$rb_sockaddr_storage" = "xyes"; then
577 echo '#define rb_sockaddr_storage sockaddr_storage' >> $outfile
578else
3202e249 579 echo 'struct rb_sockaddr_storage { uint8_t _padding[[128]]; };' >> $outfile
db137867
AC
580fi
581
582cat >> $outfile <<\_______EOF
583#endif /* __LIBRB_CONFIG_H */
584_______EOF
585
586if cmp -s $outfile include/librb-config.h; then
587 AC_MSG_NOTICE([include/librb-config.h is unchanged])
588 ${rb_rm} -f $outfile
589else
590 ${rb_mv} $outfile include/librb-config.h
591fi
592
593],[
db137867
AC
594 if test x$ac_cv_header_stdc = xyes; then
595 rb_header_stdc=yes
596 fi
597 if test x$ac_cv_header_stdlib_h = xyes; then
598 rb_header_stdlib_h=yes
599 fi
600 if test x$ac_cv_header_string_h = xyes; then
601 rb_header_string_h=yes
602 fi
603 if test x$ac_cv_header_memory_h = xyes; then
604 rb_header_memory_h=yes
605 fi
606 if test "x${ac_cv_working_alloca_h+set}" = xset ; then
607 rb_alloca_h="$ac_cv_working_alloca_h"
608 else
609 rb_alloc_h="$ac_cv_header_alloca_h"
610 fi
611 if test x$ac_cv_member_struct_sockaddr_sa_len = xyes; then
612 rb_sockaddr_sa_len=yes
613 fi
614 if test x$ac_cv_header_sys_socket_h = xyes; then
615 rb_sys_socket_h=yes
616 fi
617 if test x$ac_cv_header_sys_types_h = xyes; then
618 rb_sys_types_h=yes
619 fi
620 if test x$ac_cv_header_sys_stat_h = xyes; then
621 rb_sys_stat_h=yes
622 fi
623 if test x$ac_cv_header_sys_time_h = xyes; then
624 rb_sys_time_h=yes
625 fi
626 if test x$ac_cv_header_time = xyes; then
627 rb_time_h=yes
628 fi
629
630 if test x$ac_cv_header_stdint_h = xyes; then
631 rb_stdint_h=yes
632 fi
633 if test x$ac_cv_header_inttypes_h = xyes; then
634 rb_inttypes_h=yes
635 fi
636 if test x$ac_cv_header_netinet_in_h = xyes; then
637 rb_netinet_in_h=yes
638 fi
468ef960
EM
639 if test x$ac_cv_header_netinet_tcp_h = xyes; then
640 rb_netinet_tcp_h=yes
641 fi
db137867
AC
642
643 if test x$ac_cv_header_crypt_h = xyes; then
644 rb_crypt_h=yes
645 fi
646 if test x$ac_cv_header_errno_h = xyes; then
647 rb_errno_h=yes
648 fi
649 if test x$ac_cv_header_unistd_h = xyes; then
650 rb_unistd_h=yes
651 fi
652 if test x$ac_cv_header_windows_h = xyes; then
653 rb_windows_h=yes
654 fi
655 if test x$ac_cv_header_winsock2_h = xyes; then
656 rb_winsock2_h=yes
657 fi
a9fb3ed0
VY
658
659 rb_socklen_t=$rb_socklen_t
660
db137867 661 if test "x$rb_have_sockaddr_storage" = "xyes"; then
5203cba5 662 rb_sockaddr_storage="yes"
db137867
AC
663 else
664 rb_sockaddr_storage="no"
665 fi
5203cba5 666
db137867 667 rb_have_ipv6="$have_v6"
5203cba5 668
db137867
AC
669 rb_mv="$MV"
670 rb_rm="$RM"
5203cba5 671
db137867 672]
5203cba5 673
db137867
AC
674
675)
676
c2ac22cc
VY
677
678AC_CONFIG_FILES( \
679 src/Makefile \
680 Makefile \
c83f2f5e 681 librb.pc
c2ac22cc 682)
db137867
AC
683
684AC_OUTPUT
685
686dnl Make it look sexay!
687
688echo
689echo "Compiling $PACKAGE_NAME $PACKAGE_VERSION"
690echo
691
692echo "Installing into: $prefix"
693
694echo "IPv6 support ................... $have_v6"
695echo "Assert debugging ............... $assert"
c2ac22cc 696echo "SSL Type........................ $SSL_TYPE"
db137867 697echo