1dnl Process this file with autoconf to produce a configure script.
2AC_INIT
3AC_PREREQ(2.50)
4AC_CONFIG_SRCDIR([configure.ac])
5AM_INIT_AUTOMAKE(iksemel,1.5)
6AM_CONFIG_HEADER(include/config.h)
7
8AC_CANONICAL_HOST
9
10dnl Checks for programs
11AC_PROG_CC
12AC_PROG_INSTALL
13AC_CHECK_TOOL(OBJDUMP, objdump, :)
14AM_PROG_LIBTOOL
15AC_LANG_C
16PKG_PROG_PKG_CONFIG
17
18dnl Checks for header files
19AC_HEADER_STDC
20AC_CHECK_HEADERS(unistd.h strings.h errno.h)
21
22dnl Checks for typedefs and structures
23AC_C_CONST
24AC_C_INLINE
25AC_TYPE_SIZE_T
26AC_CHECK_MEMBERS([struct stat.st_blksize])
27
28dnl Special check for windows
29case "$host_os" in
30	*mingw*)
31		AC_CHECK_LIB(wsock32, main, , AC_MSG_ERROR(Winsock is needed for a Win32 build.))
32		;;
33esac
34
35dnl Check for posix io
36AC_ARG_ENABLE(default-io,
37  AS_HELP_STRING([--disable-default-io],[disable builtin socket transport code]),
38  defio=$enableval, defio=yes)
39if test "$defio" = yes; then
40  AC_DEFINE(USE_DEFAULT_IO,1,[Define this is you want default transport])
41fi
42AM_CONDITIONAL(DO_POSIX, test "x$defio" = "xyes")
43
44dnl Checks for library functions
45AC_SEARCH_LIBS(recv,socket)
46AC_CHECK_FUNCS(getopt_long)
47AC_CHECK_FUNCS(getaddrinfo)
48
49dnl Check -Wall flag of GCC
50if test "x$GCC" = "xyes"; then
51  if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
52    CFLAGS="$CFLAGS -Wall"
53  fi
54fi
55
56dnl Options for overriding TLS checks
57AC_ARG_WITH([openssl],
58  AS_HELP_STRING([--without-openssl],[disable checking for openssl]),
59  [with_openssl=$enableval],
60  [with_openssl=yes]
61)
62AC_ARG_WITH([gnutls],
63  AS_HELP_STRING([--without-gnutls],[disable checking for GNU TLS]),
64  [with_gnutls=$enableval],
65  [with_gnutls=yes]
66)
67
68dnl Check OpenSSL
69if test "x$with_openssl" = "xyes"; then
70  PKG_CHECK_MODULES([OPENSSL], openssl >= 0.9.8, have_openssl=yes, have_openssl=no)
71  if test "x$have_openssl" = "xyes"; then
72    LIBOPENSSL_CFLAGS="$OPENSSL_CFLAGS"
73    LIBOPENSSL_LIBS="$OPENSSL_LIBS"
74    AC_SUBST(LIBOPENSSL_CFLAGS)
75    AC_SUBST(LIBOPENSSL_LIBS)
76    AC_DEFINE(HAVE_OPENSSL, 1, [whether to use OpenSSL support.])
77  fi
78fi
79
80dnl Check GNU TLS
81if test "x$with_gnutls" = "xyes"; then
82  if test "x$have_openssl" != "xyes"; then
83    PKG_CHECK_MODULES([GNUTLS], gnutls >= 2.0.0, have_gnutls=yes, have_gnutls=no)
84    if test "x$have_gnutls" = "xyes"; then
85      LIBGNUTLS_CFLAGS="$GNUTLS_CFLAGS"
86      LIBGNUTLS_LIBS="$GNUTLS_LIBS"
87      AC_SUBST(LIBGNUTLS_CFLAGS)
88      AC_SUBST(LIBGNUTLS_LIBS)
89      AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.])
90    fi
91  fi
92fi
93
94dnl Option for overriding Python check
95AC_ARG_ENABLE([python],
96  AS_HELP_STRING([--disable-python],[disable checking for Python bindings]),
97  [with_python=$enableval],
98  [with_python=yes]
99)
100
101dnl a macro to check for ability to create python extensions
102dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
103dnl function also defines PYTHON_INCLUDES
104AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
105[AC_REQUIRE([AM_PATH_PYTHON])
106AC_MSG_CHECKING(for headers required to compile python extensions)
107dnl deduce PYTHON_INCLUDES
108py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
109py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
110PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
111if test "$py_prefix" != "$py_exec_prefix"; then
112  PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
113fi
114AC_SUBST(PYTHON_INCLUDES)
115dnl check if the headers exist:
116save_CPPFLAGS="$CPPFLAGS"
117CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
118AC_TRY_CPP([#include <Python.h>],dnl
119[AC_MSG_RESULT(found)
120$1],dnl
121[AC_MSG_RESULT(not found)
122$2])
123CPPFLAGS="$save_CPPFLAGS"
124])
125
126dnl Check Python for binding
127if test "x$with_python" = "xyes"; then
128  with_python=no
129  AM_PATH_PYTHON([2.2], , [:])
130  AM_CHECK_PYTHON_HEADERS(with_python=yes,[AC_MSG_ERROR(could not find Python headers)])
131fi
132AM_CONDITIONAL([DO_PYTHON], [test "x$with_python" = "xyes"])
133
134dnl Generating makefiles
135AC_CONFIG_FILES([
136Makefile
137iksemel.pc
138src/Makefile
139include/Makefile
140tools/Makefile
141python/Makefile
142test/Makefile
143doc/Makefile
144])
145AC_OUTPUT
146