1*4882a593SmuzhiyunFrom a6c35dbab5a2a75c176e031122ee64152e50e5d3 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3*4882a593SmuzhiyunDate: Thu, 1 Jan 2015 12:23:43 +0100
4*4882a593SmuzhiyunSubject: [PATCH] Switch to use pkg-config to detect libevent and openssl
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSwitching to pkg-config fixes a number of problems when detecting the
7*4882a593Smuzhiyunlibraries. For example the detection of libpthread was failing,
8*4882a593Smuzhiyunbecause libevent_threads was added to LIBS before libevent itself,
9*4882a593Smuzhiyuncausing the libpthread test to fail due to missing symbols. pkg-config
10*4882a593Smuzhiyunis anyway nowadays the preferred way for detecting libraries. It also
11*4882a593Smuzhiyunhas the benefit of working properly in static library situations.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunSigned-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
14*4882a593Smuzhiyun---
15*4882a593Smuzhiyun configure.ac | 36 ++++++++++++------------------------
16*4882a593Smuzhiyun 1 file changed, 12 insertions(+), 24 deletions(-)
17*4882a593Smuzhiyun
18*4882a593Smuzhiyundiff --git a/configure.ac b/configure.ac
19*4882a593Smuzhiyunindex d4109ce..fc1cadc 100644
20*4882a593Smuzhiyun--- a/configure.ac
21*4882a593Smuzhiyun+++ b/configure.ac
22*4882a593Smuzhiyun@@ -27,35 +27,20 @@ AC_FUNC_MALLOC
23*4882a593Smuzhiyun AC_FUNC_REALLOC
24*4882a593Smuzhiyun AC_CHECK_FUNCS([memset socket strstr])
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun-AC_CHECK_HEADERS([event2/thread.h], [
27*4882a593Smuzhiyun-					LIBS="-levent_pthreads ${LIBS}"
28*4882a593Smuzhiyun-				    ], [
29*4882a593Smuzhiyun-                                                echo "libevent_pthreads required, failing"
30*4882a593Smuzhiyun-                                                exit -1
31*4882a593Smuzhiyun-                                                ])
32*4882a593Smuzhiyun-AC_CHECK_LIB(pthread, pthread_create, [LIBS="-lpthread ${LIBS}"], [
33*4882a593Smuzhiyun+AC_CHECK_LIB(pthread, pthread_create, [PTHREAD_LIBS="-lpthread"], [
34*4882a593Smuzhiyun                                                 echo "pthreads required, failing"
35*4882a593Smuzhiyun                                                 exit -1
36*4882a593Smuzhiyun                                                 ])
37*4882a593Smuzhiyun-AC_CHECK_LIB(event, event_base_dispatch, [], [
38*4882a593Smuzhiyun-						echo "libevent required, failing"
39*4882a593Smuzhiyun-						exit -1
40*4882a593Smuzhiyun-						])
41*4882a593Smuzhiyun+
42*4882a593Smuzhiyun+PKG_CHECK_MODULES([EVENT], [libevent])
43*4882a593Smuzhiyun+PKG_CHECK_MODULES([EVENT_PTHREAD], [libevent_pthreads])
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun AS_IF([test "x$with_ssl" != "xno"],
46*4882a593Smuzhiyun 	[
47*4882a593Smuzhiyun-  	AC_CHECK_LIB([ssl], [SSL_CTX_new],
48*4882a593Smuzhiyun-  		[
49*4882a593Smuzhiyun-  			LIBS="-lssl ${LIBS}"
50*4882a593Smuzhiyun-  			AC_CHECK_LIB([event_openssl], [bufferevent_openssl_socket_new], [
51*4882a593Smuzhiyun-  				LIBS="-levent_openssl ${LIBS}"
52*4882a593Smuzhiyun-  				have_ssl=yes
53*4882a593Smuzhiyun-  			], [have_ssl=no])
54*4882a593Smuzhiyun-  		],
55*4882a593Smuzhiyun-  		[have_ssl=no])
56*4882a593Smuzhiyun-  	],
57*4882a593Smuzhiyun-  	[have_ssl=no])
58*4882a593Smuzhiyun-
59*4882a593Smuzhiyun+	PKG_CHECK_MODULES([SSL], [openssl], [have_ssl=yes], [have_ssl=no])
60*4882a593Smuzhiyun+	AS_IF([test "x${have_ssl}" = "xyes"],
61*4882a593Smuzhiyun+		[PKG_CHECK_MODULES([EVENT_OPENSSL], [libevent_openssl], [have_ssl=yes], [have_ssl=no])])])
62*4882a593Smuzhiyun+
63*4882a593Smuzhiyun AS_IF([test "x$have_ssl" = "xyes"],
64*4882a593Smuzhiyun 	[
65*4882a593Smuzhiyun 		AC_DEFINE([WEBSOCK_HAVE_SSL], [1], [Define if building SSL support])
66*4882a593Smuzhiyun@@ -63,8 +48,11 @@ AS_IF([test "x$have_ssl" = "xyes"],
67*4882a593Smuzhiyun 	[AS_IF([test "x$with_ssl" = "xyes"],
68*4882a593Smuzhiyun 		[AC_MSG_ERROR([SSL support requested but not found])
69*4882a593Smuzhiyun 	])])
70*4882a593Smuzhiyun-
71*4882a593Smuzhiyun+
72*4882a593Smuzhiyun AM_CONDITIONAL([HAVE_SSL], [test "x$have_ssl" = "xyes"])
73*4882a593Smuzhiyun+
74*4882a593Smuzhiyun+LIBS="${EVENT_LIBS} ${EVENT_PTHREAD_LIBS} ${PTHREAD_LIBS} ${SSL_LIBS} ${EVENT_OPENSSL_LIBS}"
75*4882a593Smuzhiyun+
76*4882a593Smuzhiyun AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_VERSION], ["$PACKAGE_VERSION"], [libwebsock version])
77*4882a593Smuzhiyun AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_STRING], ["$PACKAGE_STRING"], [libwebsock package string])
78*4882a593Smuzhiyun AC_DEFINE_UNQUOTED([WEBSOCK_PACKAGE_NAME], ["$PACKAGE_NAME"], [libwebsock package name])
79*4882a593Smuzhiyun--
80*4882a593Smuzhiyun2.1.0
81*4882a593Smuzhiyun
82