Enable tls psk
[libradsec.git] / configure.ac
1 # -*- Autoconf -*- script for libradsec.
2
3 AC_PREREQ([2.63])
4 AC_INIT([libradsec], [0.0.5], [linus+libradsec@nordu.net])
5 AC_CONFIG_MACRO_DIR([m4])
6 AC_CONFIG_SRCDIR([radsec.c])
7 AC_CONFIG_AUX_DIR([build-aux])
8 AC_CONFIG_HEADERS([config.h])
9 AM_INIT_AUTOMAKE
10 LT_INIT
11
12 # Checks for programs.
13 AC_PROG_CC
14
15 # Checks for libraries.
16 AC_CHECK_LIB([confuse], [cfg_init],,
17     AC_MSG_ERROR([required library libconfuse not found]))
18 AC_CHECK_LIB([event_core], [event_get_version],,
19     AC_MSG_ERROR([required library libevent_core not found]))
20 AH_TEMPLATE([HAVE_PTHREADS], [POSIX threads are available on this system])
21 AC_SEARCH_LIBS([pthread_create], [pthread], AC_DEFINE([HAVE_PTHREADS]))
22
23 # Enable-knobs.
24 ## Enable TLS (RadSec), default on.
25 want_tls=yes
26 AH_TEMPLATE([RS_ENABLE_TLS], [TLS (RadSec) enabled])
27 AH_TEMPLATE([RADPROT_TLS], [])
28 AC_ARG_ENABLE([tls],
29     AS_HELP_STRING([--disable-tls], [disable TLS (RadSec)]),
30     [want_tls=$enableval])
31 AM_CONDITIONAL([RS_ENABLE_TLS], [test $want_tls = yes])
32 if test $want_tls = yes; then
33     AC_CHECK_LIB([event_openssl], [bufferevent_openssl_socket_new],,
34         AC_MSG_ERROR([required library event_openssl not found]))
35     AC_DEFINE([RS_ENABLE_TLS])
36     AC_DEFINE([RADPROT_TLS])
37 else
38     # Define WITHOUT_OPENSSL for radius/client.h.
39     CPPFLAGS="$CPPFLAGS -DWITHOUT_OPENSSL"
40 fi
41 ## Enable TLS-PSK (preshared keys).
42 AH_TEMPLATE([RS_ENABLE_TLS_PSK], [TLS-PSK (TLS preshared keys) enabled])
43 AC_ARG_ENABLE([tls-psk], AS_HELP_STRING([--enable-tls-psk], [enable TLS-PSK (TLS preshared keys)]),
44     [AC_CHECK_LIB([ssl], [SSL_set_psk_client_callback],,
45          AC_MSG_ERROR([required library openssl with SSL_set_psk_client_callback() not found]))
46      AC_DEFINE([RS_ENABLE_TLS_PSK])])
47 AM_CONDITIONAL([RS_ENABLE_TLS_PSK], [test "${enable_tls_psk+set}" = set])
48
49 # Checks for header files.
50 AC_CHECK_HEADERS(
51     [sys/time.h time.h netdb.h netinet/in.h stdint.h stdlib.h strings.h string.h \
52      sys/socket.h unistd.h syslog.h sys/select.h fcntl.h arpa/inet.h pthread.h])
53
54 # Checks for typedefs, structures, and compiler characteristics.
55 AC_TYPE_SIZE_T
56 AC_TYPE_SSIZE_T
57 AC_TYPE_UINT8_T
58
59 # Checks for library functions.
60 AC_CHECK_FUNCS([memset socket strdup strerror strrchr])
61
62 AC_CONFIG_FILES([Makefile libradsec.spec
63                  radsecproxy/Makefile
64                  radius/Makefile
65                  include/Makefile
66                  examples/Makefile
67                  tests/Makefile])
68 AC_OUTPUT