From a6c35dbab5a2a75c176e031122ee64152e50e5d3 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Thu, 1 Jan 2015 12:23:43 +0100 Subject: [PATCH] Switch to use pkg-config to detect libevent and openssl Switching to pkg-config fixes a number of problems when detecting the libraries. For example the detection of libpthread was failing, because libevent_threads was added to LIBS before libevent itself, causing the libpthread test to fail due to missing symbols. pkg-config is anyway nowadays the preferred way for detecting libraries. It also has the benefit of working properly in static library situations. Signed-off-by: Thomas Petazzoni --- configure.ac | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/configure.ac b/configure.ac index d4109ce..fc1cadc 100644 --- a/configure.ac +++ b/configure.ac @@ -27,35 +27,20 @@ AC_FUNC_MALLOC AC_FUNC_REALLOC AC_CHECK_FUNCS([memset socket strstr]) -AC_CHECK_HEADERS([event2/thread.h], [ - LIBS="-levent_pthreads ${LIBS}" - ], [ - echo "libevent_pthreads required, failing" - exit -1 - ]) -AC_CHECK_LIB(pthread, pthread_create, [LIBS="-lpthread ${LIBS}"], [ +AC_CHECK_LIB(pthread, pthread_create, [PTHREAD_LIBS="-lpthread"], [ echo "pthreads required, failing" exit -1 ]) -AC_CHECK_LIB(event, event_base_dispatch, [], [ - echo "libevent required, failing" - exit -1 - ]) + +PKG_CHECK_MODULES([EVENT], [libevent]) +PKG_CHECK_MODULES([EVENT_PTHREAD], [libevent_pthreads]) AS_IF([test "x$with_ssl" != "xno"], [ - AC_CHECK_LIB([ssl], [SSL_CTX_new], - [ - LIBS="-lssl ${LIBS}" - AC_CHECK_LIB([event_openssl], [bufferevent_openssl_socket_new], [ - LIBS="-levent_openssl ${LIBS}" - have_ssl=yes - ], [have_ssl=no]) - ], - [have_ssl=no]) - ], - [have_ssl=no]) - + PKG_CHECK_MODULES([SSL], [openssl], [have_ssl=yes], [have_ssl=no]) + AS_IF([test "x${have_ssl}" = "xyes"], + [PKG_CHECK_MODULES([EVENT_OPENSSL], [libevent_openssl], [have_ssl=yes], [have_ssl=no])])]) + AS_IF([test "x$have_ssl" = "xyes"], [ AC_DEFINE([WEBSOCK_HAVE_SSL], [1], [Define if building SSL support]) @@ -63,8 +48,11 @@ AS_IF([test "x$have_ssl" = "xyes"], [AS_IF([test "x$with_ssl" = "xyes"], [AC_MSG_ERROR([SSL support requested but not found]) ])]) - + AM_CONDITIONAL([HAVE_SSL], [test "x$have_ssl" = "xyes"]) + +LIBS="${EVENT_LIBS} ${EVENT_PTHREAD_LIBS} ${PTHREAD_LIBS} ${SSL_LIBS} ${EVENT_OPENSSL_LIBS}" + AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_VERSION], ["$PACKAGE_VERSION"], [libwebsock version]) AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_STRING], ["$PACKAGE_STRING"], [libwebsock package string]) AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_NAME], ["$PACKAGE_NAME"], [libwebsock package name]) -- 2.1.0