[IOMultiplexerV2] fixed win32 EWOULDBLOCK error
[NextIRCd.git] / configure.ac
1 # Process this file with autoconf to produce a configure script.
2
3 AC_PREREQ([2.67])
4 AC_INIT([IOMultiplexer], [2.0], [iohandler@pk910.de], [pk910], [http://pk910.de])
5 AC_PREFIX_DEFAULT([~/iotest])
6 AC_CONFIG_MACRO_DIR([m4])
7 AM_INIT_AUTOMAKE([foreign])
8 AM_SILENT_RULES([yes])
9 AC_CONFIG_HEADERS([config.h])
10
11 LT_INIT([disable-static])
12
13 AC_MSG_RESULT($MODULES)
14 AC_SUBST(MODULES)
15
16 # Checks for programs.
17 AC_PROG_AWK
18 AC_PROG_CC
19 AC_PROG_CXX
20 AC_PROG_INSTALL
21 AC_PROG_MAKE_SET
22 AC_PROG_LIBTOOL
23
24 AC_ARG_ENABLE([debug],
25   [AS_HELP_STRING([--enable-debug], [debug mode (compile using -O0 -Wall -Wshadow -Werror)])],
26   [CFLAGS='-g -O0 -Wall -Wshadow -Werror'],
27   [CFLAGS='-g -O2']
28 )
29
30 # Checks for libraries.
31
32 CFLAGS="$CFLAGS -D_GNU_SOURCE"
33
34 AC_FUNC_MALLOC
35 AC_CHECK_FUNCS([usleep select socket inet_pton inet_ntop])
36 AC_CHECK_HEADERS([fcntl.h sys/socket.h sys/select.h sys/time.h sys/types.h unistd.h windows.h winsock2.h errno.h sys/epoll.h sys/event.h])
37
38
39
40 AC_CHECK_LIB(ws2_32, main, [ 
41   LIBS="$LIBS -lws2_32" 
42   is_win32="yes"
43 ], [
44   is_win32="no"
45 ])
46
47 have_gnutls="no"
48 AC_CHECK_LIB(gnutls, gnutls_init, [
49   AC_CHECK_HEADERS(gnutls/gnutls.h, [
50     LIBS="$LIBS -lgnutls"
51     have_gnutls="yes"
52   ])
53 ])
54 if test x"$have_gnutls" = xno; then
55   if test x$is_win32 = xyes ; then
56     openssl_deps="-lcrypto -lgdi32"
57   else
58     openssl_deps="-lcrypto"
59   fi
60   AC_CHECK_LIB([ssl],[SSL_library_init], [
61     LIBS="$LIBS -lssl $openssl_deps"
62   ], [AC_MSG_ERROR([OpenSSL libraries required])], $openssl_deps)
63 fi
64
65 AC_CHECK_LIB(pthread, pthread_create, [
66   AC_CHECK_HEADERS(pthread.h, [
67     LIBS="$LIBS -lpthread"
68   ])
69 ])
70 AC_CHECK_LIB(cares, ares_init, [
71   AC_CHECK_HEADERS(ares.h, [
72     LIBS="$LIBS -lcares"
73   ])
74 ])
75
76
77 AC_CONFIG_FILES([
78   Makefile
79   src/Makefile
80   src/IOHandler/Makefile
81   src/IOHandler++/Makefile
82   src/IOHandler_test/Makefile
83   src/IOHandler_test/client/Makefile
84   src/IOHandler_test/client++/Makefile
85   src/IOHandler_test/client_ssl/Makefile
86   src/IOHandler_test/server/Makefile
87   src/IOHandler_test/server_ssl/Makefile
88   src/IOHandler_test/timer/Makefile
89   src/IOHandler_test/timer++/Makefile
90   src/IOHandler_test/resolv/Makefile
91 ])
92 AC_OUTPUT