X-Git-Url: http://www.project-moonshot.org/gitweb/?p=radsecproxy.git;a=blobdiff_plain;f=configure.ac;h=d99bab4c898f1acde3351ecd23fc85f8b687bf4a;hp=e6b62c021c442e2ccc209dc82ef454619aa2e25e;hb=HEAD;hpb=fbe80be3a33d0e14b43ac0ac31bb076751c3fb02 diff --git a/configure.ac b/configure.ac index e6b62c0..d99bab4 100644 --- a/configure.ac +++ b/configure.ac @@ -1,87 +1,68 @@ -AC_INIT(radsecproxy, 1.4-devel, radsecproxy@uninett.no) -AC_CANONICAL_TARGET +# -*- Autoconf -*- script for libradsec. + +AC_PREREQ([2.63]) +AC_INIT([libradsec], [0.0.5], [linus+libradsec@nordu.net]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_SRCDIR([radsec.c]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE +LT_INIT + +# Checks for programs. AC_PROG_CC -AM_PROG_CC_C_O -udp=yes -AC_ARG_ENABLE(udp, - [ --enable-udp whether to enable UDP transport: yes/no; default yes ], - [ if test "x$enableval" = "xyes" -o "x$enableval" = "xno" ; then - udp=$enableval - else - echo "--enable-udp argument must be yes or no" - exit -1 - fi - ]) - -tcp=yes -AC_ARG_ENABLE(tcp, - [ --enable-tcp whether to enable TCP transport: yes/no; default yes ], - [ if test "x$enableval" = "xyes" -o "x$enableval" = "xno" ; then - tcp=$enableval - else - echo "--enable-tcp argument must be yes or no" - exit -1 - fi - ]) - -tls=yes -AC_ARG_ENABLE(tls, - [ --enable-tls whether to enable TLS (RadSec) transport: yes/no; default yes ], - [ if test "x$enableval" = "xyes" -o "x$enableval" = "xno" ; then - tls=$enableval - else - echo "--enable-tls argument must be yes or no" - exit -1 - fi - ]) - -dtls=yes -AC_ARG_ENABLE(dtls, - [ --enable-dtls whether to enable DTLS transport: yes/no; default yes ], - [ if test "x$enableval" = "xyes" -o "x$enableval" = "xno" ; then - dtls=$enableval - else - echo "--enable-dtls argument must be yes or no" - exit -1 - fi - ]) - -dnl Check if we're on Solaris and set CFLAGS accordingly -AC_CANONICAL_SYSTEM -case "${target_os}" in - solaris*) - TARGET_CFLAGS="-DSYS_SOLARIS9 -D_POSIX_PTHREAD_SEMANTICS" - if test "$GCC" != yes ; then - TARGET_CFLAGS="$TARGET_CFLAGS -mt" - else - TARGET_CFLAGS="$TARGET_CFLAGS -pthreads" - fi - TARGET_LDFLAGS="-lpthread -lsocket -lnsl" - ;; - *) - TARGET_CFLAGS="-Wall -pedantic -pthread" - TARGET_LDFLAGS="" - esac -dnl Adding enabled options -if test "x$udp" = "xyes" ; then - echo "UDP transport enabled" - TARGET_CFLAGS="$TARGET_CFLAGS -DRADPROT_UDP" + +# Checks for libraries. +AC_CHECK_LIB([confuse], [cfg_init],, + AC_MSG_ERROR([required library libconfuse not found])) +AC_CHECK_LIB([event_core], [event_get_version],, + AC_MSG_ERROR([required library libevent_core not found])) +AH_TEMPLATE([HAVE_PTHREADS], [POSIX threads are available on this system]) +AC_SEARCH_LIBS([pthread_create], [pthread], AC_DEFINE([HAVE_PTHREADS])) + +# Enable-knobs. +## Enable TLS (RadSec), default on. +want_tls=yes +AH_TEMPLATE([RS_ENABLE_TLS], [TLS (RadSec) enabled]) +AH_TEMPLATE([RADPROT_TLS], []) +AC_ARG_ENABLE([tls], + AS_HELP_STRING([--disable-tls], [disable TLS (RadSec)]), + [want_tls=$enableval]) +AM_CONDITIONAL([RS_ENABLE_TLS], [test $want_tls = yes]) +if test $want_tls = yes; then + AC_CHECK_LIB([event_openssl], [bufferevent_openssl_socket_new],, + AC_MSG_ERROR([required library event_openssl not found])) + AC_DEFINE([RS_ENABLE_TLS]) + AC_DEFINE([RADPROT_TLS]) +else + # Define WITHOUT_OPENSSL for radius/client.h. + CPPFLAGS="$CPPFLAGS -DWITHOUT_OPENSSL" fi -if test "x$tcp" = "xyes" ; then - echo "TCP transport enabled" - TARGET_CFLAGS="$TARGET_CFLAGS -DRADPROT_TCP" -fi -if test "x$tls" = "xyes" ; then - echo "TLS (RadSec) transport enabled" - TARGET_CFLAGS="$TARGET_CFLAGS -DRADPROT_TLS" -fi -if test "x$dtls" = "xyes" ; then - echo "DTLS transport enabled" - TARGET_CFLAGS="$TARGET_CFLAGS -DRADPROT_DTLS" -fi - -AC_SUBST(TARGET_CFLAGS) -AC_SUBST(TARGET_LDFLAGS) -AX_CHECK_SSL -AC_OUTPUT(Makefile) +## Enable TLS-PSK (preshared keys). +AH_TEMPLATE([RS_ENABLE_TLS_PSK], [TLS-PSK (TLS preshared keys) enabled]) +AC_ARG_ENABLE([tls-psk], AS_HELP_STRING([--enable-tls-psk], [enable TLS-PSK (TLS preshared keys)]), + [AC_CHECK_LIB([ssl], [SSL_set_psk_client_callback],, + AC_MSG_ERROR([required library openssl with SSL_set_psk_client_callback() not found])) + AC_DEFINE([RS_ENABLE_TLS_PSK])]) +AM_CONDITIONAL([RS_ENABLE_TLS_PSK], [test "${enable_tls_psk+set}" = set]) + +# Checks for header files. +AC_CHECK_HEADERS( + [sys/time.h time.h netdb.h netinet/in.h stdint.h stdlib.h strings.h string.h \ + sys/socket.h unistd.h syslog.h sys/select.h fcntl.h arpa/inet.h pthread.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_CHECK_FUNCS([memset socket strdup strerror strrchr]) + +AC_CONFIG_FILES([Makefile libradsec.spec + radsecproxy/Makefile + radius/Makefile + include/Makefile + examples/Makefile + tests/Makefile]) +AC_OUTPUT