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:
parent
498d542588
commit
861617a708
40
configure
vendored
40
configure
vendored
@ -675,43 +675,21 @@ else
|
||||
fi
|
||||
|
||||
#
|
||||
# OpenSSL libssl with pkg-config support is required when building
|
||||
# the static binaries.
|
||||
# libssl with pkg-config support is required.
|
||||
#
|
||||
if [ "$BUILD_STATIC" = "yes" ]; then
|
||||
printf "Checking for OpenSSL via pkg-config ... "
|
||||
if ! $PKGCONFIG_BIN --exists libssl; then
|
||||
echo "libssl.pc file not found, exiting."
|
||||
exit 1
|
||||
printf "Checking for libssl via pkg-config ... "
|
||||
if $PKGCONFIG_BIN --exists 'libssl < 1.1' && ! $PKGCONFIG_BIN --exists libtls ; then
|
||||
echo "found OpenSSL version $($PKGCONFIG_BIN --modversion libssl)."
|
||||
elif $PKGCONFIG_BIN --exists libssl libtls; then
|
||||
echo "found LibreSSL version $($PKGCONFIG_BIN --modversion libssl)."
|
||||
else
|
||||
echo "found version $($PKGCONFIG_BIN --modversion libssl)."
|
||||
echo "libssl.pc file not found or incompatible version detected, exiting."
|
||||
exit 1
|
||||
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
|
||||
fi
|
||||
else
|
||||
func=SHA256
|
||||
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
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# If --enable-static enabled, build static binaries.
|
||||
|
Loading…
Reference in New Issue
Block a user