configure: correctly detect libssl using pkg-config

This allows the openssl version to be easily overridden using standard
PKG_CONFIG_PATH overrides, which is required for modern distros that use
openssl 1.1 by default.

Also print diagnostics for the libssl flavor in use, and constrain the
version when using openssl to < 1.1.
This commit is contained in:
Eli Schwartz 2017-12-26 09:28:16 -05:00
parent 498d542588
commit 861617a708
No known key found for this signature in database
GPG Key ID: CEB167EFB5722BD6

44
configure vendored
View File

@ -675,43 +675,21 @@ else
fi fi
# #
# OpenSSL libssl with pkg-config support is required when building # libssl with pkg-config support is required.
# the static binaries.
# #
if [ "$BUILD_STATIC" = "yes" ]; then printf "Checking for libssl via pkg-config ... "
printf "Checking for OpenSSL via pkg-config ... " if $PKGCONFIG_BIN --exists 'libssl < 1.1' && ! $PKGCONFIG_BIN --exists libtls ; then
if ! $PKGCONFIG_BIN --exists libssl; then echo "found OpenSSL version $($PKGCONFIG_BIN --modversion libssl)."
echo "libssl.pc file not found, exiting." elif $PKGCONFIG_BIN --exists libssl libtls; then
exit 1 echo "found LibreSSL version $($PKGCONFIG_BIN --modversion libssl)."
else
echo "found version $($PKGCONFIG_BIN --modversion libssl)."
echo "CFLAGS += $($PKGCONFIG_BIN --cflags libssl)" >>$CONFIG_MK
echo "LDFLAGS += $($PKGCONFIG_BIN --libs libssl)" >>$CONFIG_MK
echo "STATIC_LIBS += $($PKGCONFIG_BIN --libs --static libssl)" \
>>$CONFIG_MK
fi
else else
func=SHA256 echo "libssl.pc file not found or incompatible version detected, exiting."
printf "Checking for OpenSSL $func() ... "
cat <<EOF > _$func.c
#include <openssl/sha.h>
int main(void) {
SHA256(NULL, NULL, 0);
return 0;
}
EOF
if $XCC _$func.c -lcrypto -o _$func 2>/dev/null; then
echo yes.
echo "LDFLAGS += -lcrypto" >>$CONFIG_MK
else
CRYPTO_SHA256=no
fi
rm -f _$func.c _$func
if [ "$CRYPTO_SHA256" = "no" ]; then
echo "Failed to link with your system's OpenSSL library, can't continue..."
exit 1 exit 1
fi
fi fi
echo "CFLAGS += $($PKGCONFIG_BIN --cflags libssl)" >>$CONFIG_MK
echo "LDFLAGS += $($PKGCONFIG_BIN --libs libssl)" >>$CONFIG_MK
echo "STATIC_LIBS += $($PKGCONFIG_BIN --libs --static libssl)" \
>>$CONFIG_MK
# #
# If --enable-static enabled, build static binaries. # If --enable-static enabled, build static binaries.