| From 22b08ab1a45eb3773b3c90dc37a31a7574520daa Mon Sep 17 00:00:00 2001 |
| From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| Date: Sat, 4 Mar 2017 14:56:53 +0100 |
| Subject: [PATCH 2/2] configure.ac: switch to pkg-config to find openssl |
| |
| Using AC_CHECK_LIB() doesn't work properly for static linking, because |
| it doesn't return information on transitive dependencies of |
| libraries. For example, if library A internally uses library B, then |
| with dynamic linking, doing -lA is sufficient. However, with static |
| linking, one must do -lA -lB, and AC_CHECK_LIB() will only give the -lA |
| information. This for example causes a build failure when building |
| sngrep statically with openssl enabled: |
| |
| checking for SSL_new in -lssl... no |
| configure: error: You need to have libssl installed to compile sngrep |
| |
| due to undefined symbols in the OpenSSL library. |
| |
| The proper solution for this is to discover the library using |
| pkg-config, because pkg-config properly returns the list of necessary |
| libraries, as it understands the concept of "list of libraries needed |
| when dynamic linking" and "list of libraries needed for static linking". |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| Upstream-status: https://github.com/irontec/sngrep/pull/176 |
| --- |
| configure.ac | 9 +-------- |
| src/Makefile.am | 4 ++++ |
| 2 files changed, 5 insertions(+), 8 deletions(-) |
| |
| diff --git a/configure.ac b/configure.ac |
| index 42e00e9..9f8e6d2 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -129,14 +129,7 @@ AS_IF([test "x$WITH_OPENSSL" == "xyes"], [ |
| AS_IF([test "x$WITH_GNUTLS" == "xyes"], [ |
| AC_MSG_ERROR([ GnuTLS and OpenSSL can not be enabled at the same time ]) |
| ], []) |
| - |
| - AC_CHECK_LIB([ssl], [SSL_new], [], [ |
| - AC_MSG_ERROR([ You need to have libssl installed to compile sngrep]) |
| - ]) |
| - |
| - AC_CHECK_LIB([crypto], [EVP_get_cipherbyname], [], [ |
| - AC_MSG_ERROR([ You need to have libcrypto installed to compile sngrep]) |
| - ]) |
| + PKG_CHECK_MODULES([SSL], [libssl libcrypto]) |
| AC_DEFINE([WITH_OPENSSL],[],[Compile With Openssl compatibility]) |
| ], []) |
| |
| diff --git a/src/Makefile.am b/src/Makefile.am |
| index 961f4a0..3a471b7 100644 |
| --- a/src/Makefile.am |
| +++ b/src/Makefile.am |
| @@ -1,6 +1,8 @@ |
| AUTOMAKE_OPTIONS=subdir-objects |
| bin_PROGRAMS=sngrep |
| sngrep_SOURCES=capture.c |
| +sngrep_CFLAGS= |
| +sngrep_LDADD= |
| if USE_EEP |
| sngrep_SOURCES+=capture_eep.c |
| endif |
| @@ -9,6 +11,8 @@ sngrep_SOURCES+=capture_gnutls.c |
| endif |
| if WITH_OPENSSL |
| sngrep_SOURCES+=capture_openssl.c |
| +sngrep_CFLAGS+=$(SSL_CFLAGS) |
| +sngrep_LDADD+=$(SSL_LIBS) |
| endif |
| sngrep_SOURCES+=address.c packet.c sip.c sip_call.c sip_msg.c sip_attr.c main.c |
| sngrep_SOURCES+=option.c group.c filter.c keybinding.c media.c setting.c rtp.c |
| -- |
| 2.7.4 |
| |