diff options
Diffstat (limited to 'lib/crypto/configure.in')
-rw-r--r-- | lib/crypto/configure.in | 871 |
1 files changed, 0 insertions, 871 deletions
diff --git a/lib/crypto/configure.in b/lib/crypto/configure.in deleted file mode 100644 index 377acccd80..0000000000 --- a/lib/crypto/configure.in +++ /dev/null @@ -1,871 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -*-m4-*- -dnl -dnl %CopyrightBegin% -dnl -dnl Copyright Ericsson AB 2018-2022. All Rights Reserved. -dnl -dnl Licensed under the Apache License, Version 2.0 (the "License"); -dnl you may not use this file except in compliance with the License. -dnl You may obtain a copy of the License at -dnl -dnl http://www.apache.org/licenses/LICENSE-2.0 -dnl -dnl Unless required by applicable law or agreed to in writing, software -dnl distributed under the License is distributed on an "AS IS" BASIS, -dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -dnl See the License for the specific language governing permissions and -dnl limitations under the License. -dnl -dnl %CopyrightEnd% -dnl - -dnl define([AC_CACHE_LOAD], )dnl -dnl define([AC_CACHE_SAVE], )dnl - - -AC_INIT(vsn.mk) - -## Delete previous failed configure results -if test -f ./CONF_INFO; then - rm ./CONF_INFO -fi - -AC_CONFIG_AUX_DIRS(${ERL_TOP}/erts/autoconf) - -if test "X$host" != "Xfree_source" -a "X$host" != "Xwin32"; then - AC_CANONICAL_HOST -else - host_os=win32 -fi - -AC_LANG(C) - -LM_PRECIOUS_VARS - -if test "$cross_compiling" = "yes"; then - CROSS_COMPILING=yes -else - CROSS_COMPILING=no -fi -AC_SUBST(CROSS_COMPILING) - -ERL_XCOMP_SYSROOT_INIT - -AC_PROG_CC -LM_WINDOWS_ENVIRONMENT - -ERL_DED - -AC_MSG_CHECKING([for multiarch directory]) -multiarch_dir= -if test "$GCC" = "yes"; then - multiarch_dir=`$CC $CFLAGS -print-multiarch 2>/dev/null` - if test $? -ne 0; then - multiarch_dir= - fi -fi -if test "$multiarch_dir" = ""; then - AC_MSG_RESULT([not found]) -else - AC_MSG_RESULT([$multiarch_dir]) -fi - -dnl -dnl SSL, SSH and CRYPTO need the OpenSSL libraries -dnl -dnl Check flags --with-ssl, --without-ssl --with-ssl=PATH. -dnl If no option is given or --with-ssl is set without a path then we -dnl search for OpenSSL libraries and header files in the standard locations. -dnl If set to --without-ssl we disable the use of SSL, SSH and CRYPTO. -dnl If set to --with-ssl=PATH we use that path as the prefix, i.e. we -dnl use "PATH/include" and "PATH/lib". - -AC_CHECK_SIZEOF(void *) - -std_ssl_locations="/usr/local /usr/sfw /usr /opt/local /usr/pkg /usr/local/openssl /usr/local/opt/openssl /usr/lib/openssl /usr/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /" - -AC_ARG_WITH(ssl, -AS_HELP_STRING([--with-ssl=PATH], [base location of OpenSSL include and lib directories]) -AS_HELP_STRING([--with-ssl], [use SSL (default)]) -AS_HELP_STRING([--without-ssl], [don't use SSL])) - -AC_ARG_WITH(ssl-lib-subdir, -AS_HELP_STRING([--with-ssl-lib-subdir=RELATIVE_PATH], - [specify extra OpenSSL lib sub-directory to search in (relative to base directory)]), -[ -case "$with_ssl_lib_subdir" in - yes|no) - with_ssl_lib_subdir= - ;; - *) - ;; -esac -], -[with_ssl_lib_subdir=]) #default - -AC_ARG_WITH(ssl-incl, -AS_HELP_STRING([--with-ssl-incl=PATH], - [base location of OpenSSL include dir (if different than base location specified by --with-ssl=PATH)]), -[ -case X$with_ssl in - X | Xyes | Xno) AC_MSG_ERROR([--with-ssl-incl=PATH set without --with-ssl=PATH]);; -esac -], -[with_ssl_incl=$with_ssl]) #default - -AC_ARG_WITH(ssl-zlib, -AS_HELP_STRING([--with-ssl-zlib=PATH], [Path to static zlib library to link the - crypto NIF with. This zlib library is most - often not necessary but might be needed in - order to link the NIF in some cases.]), -[], [with_ssl_zlib=default]) #default - -AC_ARG_WITH(ssl-rpath, -AS_HELP_STRING([--with-ssl-rpath=yes|no|PATHS], - [runtime library path for OpenSSL. Default is "yes", which equates to a - number of standard locations. If "no", then no runtime - library paths will be used. Anything else should be a - comma or colon separated list of paths.]), -[ -case X$with_ssl in - Xno) AC_MSG_ERROR([--with-ssl-rpath set without --with-ssl]);; -esac -], -[with_ssl_rpath=default]) #default - - -AC_ARG_ENABLE(dynamic-ssl-lib, -AS_HELP_STRING([--enable-dynamic-ssl-lib], - [enable using dynamic openssl libraries when linking the crypto NIF]) -AS_HELP_STRING([--disable-dynamic-ssl-lib], - [disable using dynamic openssl libraries when linking the crypto NIF]), -[ case "$enableval" in - no) enable_dynamic_ssl=no ;; - *) enable_dynamic_ssl=yes ;; - esac ], enable_dynamic_ssl=undefined) - -AC_ARG_ENABLE(evp-dh, -AS_HELP_STRING([--disable-evp-dh], - [intentionally undocumented workaround]), -[ case "$enableval" in - no) DISABLE_EVP_DH=1;; - *) DISABLE_EVP_DH=0;; - esac ], DISABLE_EVP_DH=0) - - -AC_ARG_ENABLE(evp-hmac, -AS_HELP_STRING([--disable-evp-hmac], - [intentionally undocumented workaround]), -[ case "$enableval" in - no) DISABLE_EVP_HMAC=1;; - *) DISABLE_EVP_HMAC=0;; - esac ], DISABLE_EVP_HMAC=0) - - -AC_ARG_ENABLE(otp-test-engine, -AS_HELP_STRING([--disable-otp-test-engine], - [Disable build of the otp_test_engine. (default is --enable-otp-test-engine, unless for LibreSSL >= 3.5.0 where default is --disable-otp-test-engine)]), -[ case "$enableval" in - no) DISABLE_OTP_TEST_ENGINE=yes;; - *) DISABLE_OTP_TEST_ENGINE=no;; - esac ], DISABLE_OTP_TEST_ENGINE=default) - -AC_ARG_ENABLE(deprecated_warnings, -AS_HELP_STRING([--disable-deprecated-warnings], - [disable warnings for deprecated functions in cryptolib (default is to warn, except for OpenSSL 3.x where the default is not to warn)]), -[ case "$enableval" in - no) deprecated_warnings=no;; - *) deprecated_warnings=yes;; - esac ], deprecated_warnings=default_yes) - -AC_DEFUN([ERL_LINK_CRYPTO_IFELSE], [ - test_cflags=$1 - test_ldflags=$2 - test_libs=$3 - - saveCFLAGS="$CFLAGS" - saveLDFLAGS="$LDFLAGS" - saveLIBS="$LIBS" - CFLAGS="$DED_BASIC_CFLAGS $test_cflags" - LDFLAGS="$DED_LDFLAGS_CONFTEST $test_ldflags" - LIBS="$LIBS $test_libs" - - AC_LINK_IFELSE( - [AC_LANG_PROGRAM( - [[ - #include <stdio.h> - #include <openssl/hmac.h> - ]], - [[ - HMAC(0, 0, 0, 0, 0, 0, 0); - ]])], - [ - $4 - ], - [ - $5 - ]) - - CFLAGS="$saveCFLAGS" - LDFLAGS="$saveLDFLAGS" - LIBS="$saveLIBS" -]) - -AC_DEFUN([ERL_CRYPTO_CHECK_LIB], [ - # Check for static and dynamic crypto library in the directory - # given as argument... - # - # Written as a macro in order to avoid writing the tests twice... - idir=$1 - prfx=$2 - rdir=$3 - dir="$prfx$rdir" - static_crypto_lib_name=crypto - static_ssl_lib_name=ssl - static_extra_libs="$forced_static_zlib" - static_lib_dir= - dynamic_crypto_lib_name=crypto - dynamic_ssl_lib_name=ssl - dynamic_extra_libs="$forced_static_zlib" - dynamic_lib_dir= - dynamic_runtime_lib_dir= - found_static_lib=no - found_dynamic_lib=no - - save_CPPFLAGS=$CPPFLAGS - CPPFLAGS="-I$idir/include" - AC_EGREP_CPP(^yes.?$,[ -#include <openssl/opensslv.h> -#if OPENSSL_VERSION_NUMBER >= 0x0090803fL -yes -#endif - ], - [valid_include=yes], - [valid_include=no]) - AC_EGREP_CPP(^yes.?$,[ -#include <openssl/opensslv.h> -#if OPENSSL_VERSION_MAJOR == 3 -yes -#endif - ], - [v3_include=yes], - [v3_include=no]) - -if test "x$DISABLE_OTP_TEST_ENGINE" = "xdefault"; then -# Get default value for the --disable-otp-test-engine. Depends on cryptolib version - AC_EGREP_CPP(^yes.?$,[ -#include <openssl/opensslv.h> -#if LIBRESSL_VERSION_NUMBER >= 0x3050000fL -yes -#endif - ], - [DISABLE_OTP_TEST_ENGINE=yes], - [DISABLE_OTP_TEST_ENGINE=no]) - fi - - CPPFLAGS="$save_CPPFLAGS" - - if test $valid_include != yes; then - static_crypto_lib_name= - static_ssl_lib_name= - static_extra_libs= - static_lib_dir= - dynamic_crypto_lib_name= - dynamic_ssl_lib_name= - dynamic_extra_libs= - dynamic_lib_dir= - dynamic_runtime_lib_dir= - elif test "$host_os" = "win32" ; then - if test -f "$dir/lib/VC/static/libcrypto${lib_bits}MD.lib"; then - static_crypto_lib_name=libcrypto${lib_bits}MD - static_ssl_lib_name="libssl${lib_bits}MD" - static_extra_libs="$static_extra_libs -lCRYPT32 -lWS2_32" - static_lib_dir="$dir/lib/VC/static" - found_static_lib=yes - fi - if test -f "$dir/lib/VC/libcrypto${lib_bits}MD.lib"; then - dynamic_crypto_lib_name=libcrypto${lib_bits}MD - dynamic_ssl_lib_name="libssl${lib_bits}MD" - dynamic_runtime_lib_dir="$rdir/lib/VC" - dynamic_lib_dir="$dir/lib/VC" - found_dynamic_lib=yes - fi - else # Non windows... - - case "$host_os" in - darwin*) - static_ext=.a - dynamic_ext=.dylib;; - *) - static_ext=.a - dynamic_ext=.so;; - esac - for sdir in $search_subdirs; do - if test -f "$dir/$sdir/lib$dynamic_crypto_lib_name$dynamic_ext"; then - found_dynlib=yes - else - found_dynlib=no - case $host_os in - openbsd*) - # libcrypto.so got a suffix on (at least some) openbsd. - # If we find libcrypto.so with suffix, we try to link - # to it using -lcrypto ... - for f in "$dir/$sdir/lib$dynamic_crypto_lib_name$dynamic_ext"*; do - test -f "$f" && found_dynlib=yes - break - done;; - *) - ;; - esac - fi - if test $found_dynlib = yes; then - # Found dynamic library; check if it links... - dynamic_lib_dir="$dir/$sdir" - dynamic_runtime_lib_dir="$rdir/$sdir" - ERL_LINK_CRYPTO_IFELSE( - ["-I$idir/include"], - ["-L$dynamic_lib_dir"], - ["-l$dynamic_crypto_lib_name $dynamic_extra_libs"], - [found_dynamic_lib=yes], - [found_dynamic_lib=no]) - if test $found_dynamic_lib = no -a $static_zlib != no; then - # No, but linking with zlib as well might help... - dynamic_extra_libs="$dynamic_extra_libs $static_zlib" - ERL_LINK_CRYPTO_IFELSE( - ["-I$idir/include"], - ["-L$dynamic_lib_dir"], - ["-l$dynamic_crypto_lib_name $dynamic_extra_libs"], - [found_dynamic_lib=yes], - [found_dynamic_lib=no]) - fi - fi - if test -f "$dir/$sdir/lib$static_crypto_lib_name$static_ext"; then - # Found static library; check if it links... - static_lib_dir="$dir/$sdir" - ERL_LINK_CRYPTO_IFELSE( - ["-I$idir/include"], - [], - ["$dir/$sdir/lib$static_crypto_lib_name$static_ext $static_extra_libs"], - [found_static_lib=yes], - [found_static_lib=no]) - if test $found_static_lib = no -a $static_zlib != no; then - # No, but inking with zlib as well might help... - static_extra_libs="$static_extra_libs $static_zlib" - ERL_LINK_CRYPTO_IFELSE( - ["-I$idir/include"], - [], - ["$dir/$sdir/lib$static_crypto_lib_name$static_ext $static_extra_libs"], - [found_static_lib=yes], - [found_static_lib=no]) - fi - fi - if test $found_static_lib = yes -o $found_dynamic_lib = yes; then - break - fi - done - fi -]) - -# Remove all SKIP files from previous runs -for a in ssl crypto ssh; do - rm -f "$ERL_TOP/lib/$a/SKIP" -done - -# Setup subdirectories to search in... -search_subdirs="lib" -if test "$ac_cv_sizeof_void_p" = "8"; then - search_subdirs="$search_subdirs lib64 lib/64" -else - search_subdirs="$search_subdirs lib32 lib/32" -fi -test "$multiarch_dir" = "" || search_subdirs="lib/$multiarch_dir $search_subdirs" -test "$with_ssl_lib_subdir" = "" || search_subdirs="$with_ssl_lib_subdir $search_subdirs" - -# We might need to link with zlib, so first check if we can find -# a static zlib to use if needed... -static_zlib=no -forced_static_zlib= -case "$with_ssl_zlib" in - no) - ;; - default | yes) - AC_MSG_CHECKING([for static zlib]) - for dir in $std_ssl_locations; do - for sdir in $search_subdirs; do - if test -f "$erl_xcomp_sysroot$dir/$sdir/libz.a"; then - static_zlib="$erl_xcomp_sysroot$dir/$sdir/libz.a" - break - fi - done - test "$static_zlib" = "no" || break - done - AC_MSG_RESULT([$static_zlib]) - if test $with_ssl_zlib = yes; then - if test $static_zlib = no; then - AC_MSG_ERROR([linking with zlib requested by user, but no such library was found]) - fi - forced_static_zlib="$static_zlib" - static_zlib=no - fi;; - *) # PATH - AC_MSG_CHECKING([for static zlib]) - if test -f "$with_ssl_zlib/libz.a"; then - forced_static_zlib="$with_ssl_zlib/libz.a" - else - for sdir in $search_subdirs; do - if test -f "$with_ssl_zlib/$sdir/libz.a"; then - forced_static_zlib="$with_ssl_zlib/$sdir/libz.a" - break - fi - done - fi - if test "$forced_static_zlib" = ""; then - AC_MSG_ERROR([linking with zlib requested by user, but no such library was found in $with_ssl_zlib]) - fi - AC_MSG_RESULT([$forced_static_zlib]) - ;; -esac - -if test $enable_dynamic_ssl = undefined; then - if test "$host_os" = "win32" ; then - enable_dynamic_ssl=default_no - else - enable_dynamic_ssl=default_yes - fi -fi - -case $enable_dynamic_ssl in - yes|default_yes) - SSL_DYNAMIC_ONLY=yes;; - *) - SSL_DYNAMIC_ONLY=no;; -esac - -case "$erl_xcomp_without_sysroot-$with_ssl" in - yes-* | no-no) - SSL_APP= - CRYPTO_APP= - SSH_APP= - if test "$with_ssl" != "no"; then - skip="Cannot search for ssl; missing cross system root (erl_xcomp_sysroot)." - fi - for a in ssl crypto ssh; do - echo "$skip" > $ERL_TOP/lib/$a/SKIP - done - ;; - no-yes | no- ) - # We search for OpenSSL in the common OS standard locations. - SSL_APP=ssl - CRYPTO_APP=crypto - SSH_APP=ssh - - if test "$host_os" = "win32" ; then - if test "x$ac_cv_sizeof_void_p" = "x8"; then - std_win_ssl_locations="/mnt/c/OpenSSL-Win64 /c/OpenSSL-Win64 /mnt/c/opt/local64/pgm/OpenSSL /opt/local64/pgm/OpenSSL /cygdrive/c/OpenSSL-Win64" - lib_bits=64 - else - std_win_ssl_locations="/mnt/c/OpenSSL-Win32 /c/OpenSSL-Win32 /mnt/c/OpenSSL /c/OpenSSL /cygdrive/c/OpenSSL /opt/local/pgm/OpenSSL /opt/local32/pgm/OpenSSL /mnt/c/opt/local/pgm/OpenSSL /mnt/c/opt/local32/pgm/OpenSSL /cygdrive/c/OpenSSL-Win32" - lib_bits=32 - fi - else - std_win_ssl_locations="" - fi - - usable_crypto=no - AC_MSG_CHECKING([for OpenSSL crypto library with version >= 0.9.8c in standard locations]) - for rdir in $std_win_ssl_locations $std_ssl_locations; do - if test -f "$erl_xcomp_isysroot$rdir/include/openssl/opensslv.h"; then - SSL_INCDIR="$erl_xcomp_isysroot$rdir" - SSL_INCLUDE="-I$SSL_INCDIR/include" - ERL_CRYPTO_CHECK_LIB(["$SSL_INCDIR"], ["$erl_xcomp_sysroot"], ["$rdir"]) - case $enable_dynamic_ssl-$found_dynamic_lib-$found_static_lib in - no-*-no) - ;; # Dynamic linking against ssl library disabled by user, and no static library found - yes-no-*) - ;; # Static linking against ssl library disabled by user, and no dynamic library found - *-no-no) - ;; # Neither static nor dynamic ssl library found - no-*-yes | default_no-*-yes | default_yes-no-yes) - # Link statically... - SSL_CRYPTO_LIBNAME=$static_crypto_lib_name - SSL_SSL_LIBNAME=$static_ssl_lib_name - SSL_LIBDIR="$static_lib_dir" - SSL_EXTRA_LIBS="$static_extra_libs" - SSL_RUNTIME_LIBDIR= - SSL_DYNAMIC_ONLY=no - usable_crypto=yes - break;; - *-yes-*) - # Link dynamically... - SSL_CRYPTO_LIBNAME=$dynamic_crypto_lib_name - SSL_SSL_LIBNAME=$dynamic_ssl_lib_name - SSL_EXTRA_LIBS="$dynamic_extra_libs" - SSL_LIBDIR="$dynamic_lib_dir" - SSL_RUNTIME_LIBDIR="$dynamic_runtime_lib_dir" - SSL_DYNAMIC_ONLY=yes - usable_crypto=yes - break;; - esac - fi - done - - if test $usable_crypto = yes ; then - if test $SSL_DYNAMIC_ONLY = yes; then - AC_MSG_RESULT([dynamic $SSL_CRYPTO_LIBNAME library in $SSL_LIBDIR]) - else - AC_MSG_RESULT([static $SSL_CRYPTO_LIBNAME library in $SSL_LIBDIR]) - fi - else - AC_MSG_RESULT([no]) - SSL_APP= - CRYPTO_APP= - SSH_APP= - - SSL_INCDIR= - SSL_INCLUDE= - SSL_CRYPTO_LIBNAME= - SSL_SSL_LIBNAME= - SSL_INCDIR= - SSL_RUNTIME_LIBDIR= - SSL_LIBDIR= - - case "$with_ssl-$enable_dynamic_ssl" in - yes-yes) - AC_MSG_ERROR([crypto library with dynamic linking requested by user, but no such library was found]) - ;; - yes-no) - AC_MSG_ERROR([crypto library with static linking requested by user, but no such library was found]) - ;; - yes-*) - AC_MSG_ERROR([crypto library requested by user, but no such library was found]) - ;; - *) - AC_MSG_WARN([No (usable) OpenSSL found, skipping ssl, ssh and crypto applications]) - ;; - esac - - for a in ssl crypto ssh; do - echo "No usable OpenSSL found" > $ERL_TOP/lib/$a/SKIP - done - fi - ;; - *) - # Option given with PATH to package - if test ! -d "$with_ssl" ; then - AC_MSG_ERROR(Invalid path to option --with-ssl=PATH) - fi - if test ! -d "$with_ssl_incl" ; then - AC_MSG_ERROR(Invalid path to option --with-ssl-incl=PATH) - fi - AC_MSG_CHECKING([for OpenSSL header in $with_ssl_incl]) - if test -f "$with_ssl_incl/include/openssl/opensslv.h"; then - AC_MSG_RESULT([yes]) - else - AC_MSG_ERROR([no OpenSSL header found in $with_ssl_incl]) - fi - SSL_INCDIR="$with_ssl_incl" - AC_MSG_CHECKING([for OpenSSL in $with_ssl]) - ERL_CRYPTO_CHECK_LIB(["$with_ssl_incl"], [""], ["$with_ssl"]) - case $enable_dynamic_ssl-$found_dynamic_lib-$found_static_lib in - no-*-no) - AC_MSG_ERROR([dynamic linking against crypto library disabled by user, but no static library found in $with_ssl]);; - yes-no-*) - AC_MSG_ERROR([static linking against crypto library disabled by user, but no dynamic library found in $with_ssl]);; - *-no-no) - AC_MSG_ERROR([neither static nor dynamic crypto library found in $with_ssl]);; - no-*-yes | default_no-*-yes | default_yes-no-yes) - # Link statically... - SSL_CRYPTO_LIBNAME=$static_crypto_lib_name - SSL_SSL_LIBNAME=$static_ssl_lib_name - SSL_LIBDIR="$static_lib_dir" - SSL_EXTRA_LIBS="$static_extra_libs" - SSL_RUNTIME_LIBDIR= - SSL_DYNAMIC_ONLY=no;; - *-yes-*) - # Link dynamically... - SSL_CRYPTO_LIBNAME=$dynamic_crypto_lib_name - SSL_SSL_LIBNAME=$dynamic_ssl_lib_name - SSL_EXTRA_LIBS="$dynamic_extra_libs" - SSL_LIBDIR="$dynamic_lib_dir" - SSL_RUNTIME_LIBDIR="$dynamic_runtime_lib_dir" - SSL_DYNAMIC_ONLY=yes;; - esac - if test $SSL_DYNAMIC_ONLY = yes; then - AC_MSG_RESULT([dynamic $SSL_CRYPTO_LIBNAME library in $SSL_LIBDIR]) - else - AC_MSG_RESULT([static $SSL_CRYPTO_LIBNAME library in $SSL_LIBDIR]) - fi - SSL_INCLUDE="-I$with_ssl_incl/include" - SSL_APP=ssl - CRYPTO_APP=crypto - SSH_APP=ssh - if test "$cross_compiling" = "yes"; then - SSL_RUNTIME_LIBDIR=`echo "$SSL_LIBDIR" | sed -n "s|^$erl_xcomp_sysroot\(/*\)\(.*\)\$|/\2|p"` - else - SSL_RUNTIME_LIBDIR="$SSL_LIBDIR" - fi -esac - -SSL_DED_LD_RUNTIME_LIBRARY_PATH= -ded_ld_rflg="$DED_LD_FLAG_RUNTIME_LIBRARY_PATH" - - -case "$with_ssl_rpath" in - -yes | default) # Use standard lib locations for ssl runtime library path - - AC_MSG_CHECKING([for runtime library path to use]) - - if test $enable_dynamic_ssl = no -a "$with_ssl_rpath" = yes; then - AC_MSG_ERROR([requested by user, but user also requested static linking]) - fi - - if test "$CRYPTO_APP" = ""; then - if test "$with_ssl_rpath" = yes; then - AC_MSG_ERROR([requested by user, but could not be used since no crypto library was found]) - fi - AC_MSG_RESULT([]) - elif test "$ded_ld_rflg" = ""; then - if test "$with_ssl_rpath" = yes; then - AC_MSG_ERROR([requested by user, but cannot be set on this platform]) - fi - AC_MSG_RESULT([]) - elif test "$SSL_DYNAMIC_ONLY" != "yes"; then - if test "$with_ssl_rpath" = yes; then - AC_MSG_WARN([requested by user, but dynamic linking will not be used]) - else - AC_MSG_RESULT([]) - fi - else - - libdirs="/lib" - - dir_lib64=no - dir_lib_64=no - dir_lib32=no - dir_lib_32=no - dir_multiarch=no - dir_with_ssl_lib_subdir=no - - test "$multiarch_dir" = "" || dir_multiarch=yes - test "$with_ssl_lib_subdir" = "" || dir_with_ssl_lib_subdir=yes - - case "$SSL_RUNTIME_LIBDIR" in - */lib/64 | */lib/64/ ) dir_lib_64=yes;; - */lib64 | */lib64/ ) dir_lib64=yes;; - */lib/32 | */lib/32/ ) dir_lib_32=yes;; - */lib32 | */lib32/ ) dir_lib32=yes;; - *) ;; - esac - - for dir in $std_ssl_locations; do - if test "$ac_cv_sizeof_void_p" = "8"; then - test $dir_lib_64 = no && - test -d "$erl_xcomp_sysroot$dir/lib/64" && - dir_lib_64=yes - test $dir_lib64 = no && - test -d "$erl_xcomp_sysroot$dir/lib64" && - dir_lib64=yes - else - test $dir_lib_32 = no && - test -d "$erl_xcomp_sysroot$dir/lib/32" && - dir_lib_32=yes - test $dir_lib32 = no && - test -d "$erl_xcomp_sysroot$dir/lib32" && - dir_lib32=yes - fi - test $dir_multiarch = no && - test -d "$erl_xcomp_sysroot$dir/lib/$multiarch_dir" && - dir_multiarch=yes - done - - test $dir_with_ssl_lib_subdir = yes && libdirs="/$with_ssl_lib_subdir $libdirs" - test $dir_multiarch = yes && libdirs="/lib/$multiarch_dir $libdirs" - test $dir_lib_64 = yes && libdirs="/lib/64 $libdirs" - test $dir_lib64 = yes && libdirs="/lib64 $libdirs" - test $dir_lib_32 = yes && libdirs="/lib/32 $libdirs" - test $dir_lib32 = yes && libdirs="/lib32 $libdirs" - - # - # We try the following runtime paths in the - # following order: - # 1. Standard ssl locations with all variations - # of lib subdirectories that we know of - # 2. Standard ssl locations with all variations - # of lib subdirectories that we know of and - # exist on this machine - # 3. Determined $SSL_RUNTIME_LIBDIR - # If none of the above links, we skip runtime - # library path... - # - for type in std x_std curr; do - - ded_ld_rpath="$ded_ld_rflg$SSL_RUNTIME_LIBDIR" - rpath="$SSL_RUNTIME_LIBDIR" - - if test $type != curr; then - for ldir in $libdirs; do - for dir in $std_ssl_locations; do - test "$SSL_RUNTIME_LIBDIR" != "$dir$ldir" || continue - test $type != x_std || test -d "$erl_xcomp_sysroot$dir$ldir" || continue - if test "$dir" = "/"; then - libdir="$ldir" - else - libdir="$dir$ldir" - fi - ded_ld_rpath="$ded_ld_rpath $ded_ld_rflg$libdir" - rpath="$rpath:$libdir" - done - done - fi - - # Check that it still links when we add the runtime path... - ERL_LINK_CRYPTO_IFELSE( - ["$SSL_INCLUDE"], - ["$ded_ld_rpath -L$SSL_LIBDIR"], - ["-l$SSL_CRYPTO_LIBNAME $SSL_EXTRA_LIBS"], - [rpath_success=yes], - [rpath_success=no]) - - test "$rpath_success" = "yes" && break - done - - test "$rpath_success" = "yes" || { ded_ld_rpath=; rpath=; } - - SSL_DED_LD_RUNTIME_LIBRARY_PATH="$ded_ld_rpath" - - if test "$rpath" != ""; then - AC_MSG_RESULT([$rpath]) - elif test "$with_ssl_rpath" = yes; then - AC_MSG_ERROR([requested by user, but could not be used]) - else - AC_MSG_WARN([unable to set run path during linking]) - fi - fi - ;; - -no) # Use no ssl runtime library path - SSL_DED_LD_RUNTIME_LIBRARY_PATH= - ;; - -*) # Use ssl runtime library paths set by --with-ssl-rpath (without any check) - AC_MSG_CHECKING([whether runtime library path can be set]) - - if test $enable_dynamic_ssl = no; then - AC_MSG_ERROR([runtime library path requested by user, but user also requested static linking]) - elif test "$CRYPTO_APP" = ""; then - if test "$with_ssl_rpath" = yes; then - AC_MSG_ERROR([runtime library path requested by user, but could not be set since no crypto library was found]) - fi - AC_MSG_RESULT([]) - elif test "$ded_ld_rflg" = ""; then - if test "$with_ssl_rpath" = yes; then - AC_MSG_ERROR([runtime library path requested by user, but cannot be set on this platform]) - fi - AC_MSG_RESULT([]) - elif test "$SSL_DYNAMIC_ONLY" != "yes"; then - if test "$with_ssl_rpath" = yes; then - AC_MSG_WARN([runtime library path requested by user, but dynamic linking will not be used]) - else - AC_MSG_RESULT([]) - fi - else - ded_ld_rpath= - delimit= - rpath= - rpath_delimit= - save_ifs="$IFS"; IFS=",:" - for dir in $with_ssl_rpath; do - ded_ld_rpath="$ded_ld_rpath$delimit$ded_ld_rflg$dir" - delimit=" " - rpath="$rpath$rpath_delimit$dir" - rpath_delimit=":" - done - IFS="$save_ifs" - SSL_DED_LD_RUNTIME_LIBRARY_PATH="$ded_ld_rpath" - ERL_LINK_CRYPTO_IFELSE( - ["$SSL_INCLUDE"], - ["$ded_ld_rpath -L$SSL_LIBDIR"], - ["-l$SSL_CRYPTO_LIBNAME $SSL_EXTRA_LIBS"], - [rpath_success=yes], - [rpath_success=no]) - if test "$rpath_success" = yes; then - AC_MSG_RESULT([yes; using $rpath]) - else - AC_MSG_ERROR([runtime library path requested by user, but link failed]) - fi - fi - ;; - -esac - - -AC_ARG_ENABLE(fips, -AS_HELP_STRING([--enable-fips], [enable OpenSSL FIPS mode support]) -AS_HELP_STRING([--disable-fips], [disable OpenSSL FIPS mode support (default)]), -[ case "$enableval" in - yes) enable_fips_support=yes ;; - *) enable_fips_support=no ;; - esac ], enable_fips_support=no) - -if test "x$enable_fips_support" = "xyes" && test "$CRYPTO_APP" != ""; then - saveCFLAGS="$CFLAGS" - saveLDFLAGS="$LDFLAGS" - saveLIBS="$LIBS" - CFLAGS="$DED_BASIC_CFLAGS $SSL_INCLUDE" - if test $SSL_DYNAMIC_ONLY = yes; then - LDFLAGS="$DED_LDFLAGS_CONFTEST $ded_ld_rpath -L$SSL_LIBDIR" - LIBS="$LIBS -l$SSL_CRYPTO_LIBNAME $SSL_EXTRA_LIBS" - else - LDFLAGS="$DED_LDFLAGS_CONFTEST" - if test "$host_os" = "win32" ; then - LIBS="$LIBS $SSL_LIBDIR/$SSL_CRYPTO_LIBNAME.lib $SSL_EXTRA_LIBS" - else - LIBS="$LIBS $SSL_LIBDIR/lib$SSL_CRYPTO_LIBNAME.a $SSL_EXTRA_LIBS" - fi - fi - AC_CHECK_FUNC([FIPS_mode_set], - [SSL_FLAGS="-DFIPS_SUPPORT"], - [SSL_FLAGS=]) - CFLAGS="$saveCFLAGS" - LDFLAGS="$saveLDFLAGS" - LIBS="$saveLIBS" -else - SSL_FLAGS= -fi - -if test "x$v3_include" = "xyes"; then - echo "Using OpenSSL 3.0 is not yet recommended for production code." >> ./CONF_INFO - AC_MSG_WARN(******************************************************************) - AC_MSG_WARN(* Using OpenSSL 3.0 is not yet recommended for production code. *) - - if test "x$SSL_DYNAMIC_ONLY" = "xno" ; then - echo "Static linking with OpenSSL 3.0 *MAY* require special configuring of the cryptolib." >> ./CONF_INFO - AC_MSG_WARN(* Static linking *MAY* require re-configuring the 3.0 cryptolib. *) - fi - AC_MSG_WARN(******************************************************************) -fi - -if test "x$v3_include" = "xyes" && test "x$deprecated_warnings" = "xdefault_yes" && test "$CRYPTO_APP" != ""; then - deprecated_warnings=no -fi - -if test "x$deprecated_warnings" = "xno" && test "$CRYPTO_APP" != "" ; then - SSL_FLAGS="$SSL_FLAGS -Wno-deprecated-declarations" -fi - -AC_SUBST(SSL_INCLUDE) -AC_SUBST(SSL_INCDIR) -AC_SUBST(SSL_LIBDIR) -AC_SUBST(SSL_FLAGS) -AC_SUBST(SSL_CRYPTO_LIBNAME) -AC_SUBST(SSL_SSL_LIBNAME) -AC_SUBST(SSL_EXTRA_LIBS) -AC_SUBST(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -AC_SUBST(SSL_DYNAMIC_ONLY) -AC_SUBST(DISABLE_EVP_DH) -AC_SUBST(DISABLE_EVP_HMAC) -AC_SUBST(DISABLE_OTP_TEST_ENGINE) - -AC_OUTPUT(c_src/$host/Makefile:c_src/Makefile.in) - |