Annotation of embedaddon/curl/m4/curl-openssl.m4, revision 1.1
1.1 ! misho 1: #***************************************************************************
! 2: # _ _ ____ _
! 3: # Project ___| | | | _ \| |
! 4: # / __| | | | |_) | |
! 5: # | (__| |_| | _ <| |___
! 6: # \___|\___/|_| \_\_____|
! 7: #
! 8: # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
! 9: #
! 10: # This software is licensed as described in the file COPYING, which
! 11: # you should have received as part of this distribution. The terms
! 12: # are also available at https://curl.haxx.se/docs/copyright.html.
! 13: #
! 14: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
! 15: # copies of the Software, and permit persons to whom the Software is
! 16: # furnished to do so, under the terms of the COPYING file.
! 17: #
! 18: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
! 19: # KIND, either express or implied.
! 20: #
! 21: #***************************************************************************
! 22:
! 23: # File version for 'aclocal' use. Keep it a single number.
! 24: # serial 5
! 25:
! 26:
! 27: dnl CURL_CHECK_OPENSSL_API_HEADERS
! 28: dnl -------------------------------------------------
! 29: dnl Find out OpenSSL headers API version, as reported
! 30: dnl by OPENSSL_VERSION_NUMBER. No runtime checks
! 31: dnl allowed here for cross-compilation support.
! 32: dnl HAVE_OPENSSL_API_HEADERS is defined as appropriate
! 33: dnl only for systems which actually run the configure
! 34: dnl script. Config files generated manually or in any
! 35: dnl other way shall not define this.
! 36:
! 37: AC_DEFUN([CURL_CHECK_OPENSSL_API_HEADERS], [
! 38: #
! 39: tst_api="unknown"
! 40: #
! 41: AC_MSG_CHECKING([for OpenSSL headers version])
! 42: CURL_CHECK_DEF([OPENSSL_VERSION_NUMBER], [
! 43: # ifdef USE_OPENSSL
! 44: # include <openssl/crypto.h>
! 45: # else
! 46: # include <crypto.h>
! 47: # endif
! 48: ], [silent])
! 49: if test "$curl_cv_have_def_OPENSSL_VERSION_NUMBER" = "yes"; then
! 50: tst_verlen=`expr "$curl_cv_def_OPENSSL_VERSION_NUMBER" : '.*'`
! 51: case "x$tst_verlen" in
! 52: x6)
! 53: tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3`
! 54: tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 4`
! 55: tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5`
! 56: tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
! 57: ;;
! 58: x11|x10)
! 59: tst_vermaj=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 3`
! 60: tst_vermin=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 5`
! 61: tst_verfix=`echo $curl_cv_def_OPENSSL_VERSION_NUMBER | cut -c 7`
! 62: tst_api=0x$tst_vermaj$tst_vermin$tst_verfix
! 63: ;;
! 64: *)
! 65: tst_api="unknown"
! 66: ;;
! 67: esac
! 68: case $tst_api in
! 69: 0x111) tst_show="1.1.1" ;;
! 70: 0x110) tst_show="1.1.0" ;;
! 71: 0x102) tst_show="1.0.2" ;;
! 72: 0x101) tst_show="1.0.1" ;;
! 73: 0x100) tst_show="1.0.0" ;;
! 74: 0x099) tst_show="0.9.9" ;;
! 75: 0x098) tst_show="0.9.8" ;;
! 76: 0x097) tst_show="0.9.7" ;;
! 77: 0x096) tst_show="0.9.6" ;;
! 78: 0x095) tst_show="0.9.5" ;;
! 79: 0x094) tst_show="0.9.4" ;;
! 80: 0x093) tst_show="0.9.3" ;;
! 81: 0x092) tst_show="0.9.2" ;;
! 82: 0x091) tst_show="0.9.1" ;;
! 83: *) tst_show="unknown" ;;
! 84: esac
! 85: tst_show="$tst_show - $curl_cv_def_OPENSSL_VERSION_NUMBER"
! 86: else
! 87: tst_show="unknown"
! 88: fi
! 89: AC_MSG_RESULT([$tst_show])
! 90: #
! 91: dnl if test "$tst_api" != "unknown"; then
! 92: dnl AC_DEFINE_UNQUOTED(HAVE_OPENSSL_API_HEADERS, $tst_api,
! 93: dnl [OpenSSL headers configure time API. Defined only by configure script.
! 94: dnl No matter what, do not ever define this manually or by any other means.])
! 95: dnl fi
! 96: curl_openssl_api_headers=$tst_api
! 97: ])
! 98:
! 99:
! 100: dnl CURL_CHECK_OPENSSL_API_LIBRARY
! 101: dnl -------------------------------------------------
! 102: dnl Find out OpenSSL library API version, performing
! 103: dnl only link tests in order to avoid getting fooled
! 104: dnl by mismatched OpenSSL headers. No runtime checks
! 105: dnl allowed here for cross-compilation support.
! 106: dnl HAVE_OPENSSL_API_LIBRARY is defined as appropriate
! 107: dnl only for systems which actually run the configure
! 108: dnl script. Config files generated manually or in any
! 109: dnl other way shall not define this.
! 110: dnl
! 111: dnl Most probably we should not bother attempting to
! 112: dnl detect OpenSSL library development API versions
! 113: dnl 0.9.9 and 1.1.0. For our intended use, detecting
! 114: dnl released versions should be good enough.
! 115: dnl
! 116: dnl Given that currently we are not using the result
! 117: dnl of this check, except for informative purposes,
! 118: dnl lets try to figure out everything.
! 119:
! 120: AC_DEFUN([CURL_CHECK_OPENSSL_API_LIBRARY], [
! 121: #
! 122: tst_api="unknown"
! 123: #
! 124: AC_MSG_CHECKING([for OpenSSL library version])
! 125: if test "$tst_api" = "unknown"; then
! 126: AC_LINK_IFELSE([
! 127: AC_LANG_FUNC_LINK_TRY([ERR_clear_last_mark])
! 128: ],[
! 129: tst_api="0x111"
! 130: ])
! 131: fi
! 132: if test "$tst_api" = "unknown"; then
! 133: case $host in
! 134: *-*-vms*)
! 135: AC_LINK_IFELSE([
! 136: AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_not_resumbl_sess_cb])
! 137: ],[
! 138: tst_api="0x110"
! 139: ])
! 140: ;;
! 141: *)
! 142: AC_LINK_IFELSE([
! 143: AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_not_resumable_session_callback])
! 144: ],[
! 145: tst_api="0x110"
! 146: ])
! 147: ;;
! 148: esac
! 149: fi
! 150: if test "$tst_api" = "unknown"; then
! 151: AC_LINK_IFELSE([
! 152: AC_LANG_FUNC_LINK_TRY([SSL_CONF_CTX_new])
! 153: ],[
! 154: tst_api="0x102"
! 155: ])
! 156: fi
! 157: if test "$tst_api" = "unknown"; then
! 158: AC_LINK_IFELSE([
! 159: AC_LANG_FUNC_LINK_TRY([SSL_renegotiate_abbreviated])
! 160: ],[
! 161: tst_api="0x101"
! 162: ])
! 163: fi
! 164: if test "$tst_api" = "unknown"; then
! 165: AC_LINK_IFELSE([
! 166: AC_LANG_FUNC_LINK_TRY([OBJ_add_sigid])
! 167: ],[
! 168: tst_api="0x100"
! 169: ])
! 170: fi
! 171: if test "$tst_api" = "unknown"; then
! 172: AC_LINK_IFELSE([
! 173: AC_LANG_FUNC_LINK_TRY([ERR_set_mark])
! 174: ],[
! 175: tst_api="0x098"
! 176: ])
! 177: fi
! 178: if test "$tst_api" = "unknown"; then
! 179: AC_LINK_IFELSE([
! 180: AC_LANG_FUNC_LINK_TRY([ERR_peek_last_error])
! 181: ],[
! 182: tst_api="0x097"
! 183: ])
! 184: fi
! 185: if test "$tst_api" = "unknown"; then
! 186: AC_LINK_IFELSE([
! 187: AC_LANG_FUNC_LINK_TRY([c2i_ASN1_OBJECT])
! 188: ],[
! 189: tst_api="0x096"
! 190: ])
! 191: fi
! 192: if test "$tst_api" = "unknown"; then
! 193: AC_LINK_IFELSE([
! 194: AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_purpose])
! 195: ],[
! 196: tst_api="0x095"
! 197: ])
! 198: fi
! 199: if test "$tst_api" = "unknown"; then
! 200: AC_LINK_IFELSE([
! 201: AC_LANG_FUNC_LINK_TRY([OBJ_obj2txt])
! 202: ],[
! 203: tst_api="0x094"
! 204: ])
! 205: fi
! 206: if test "$tst_api" = "unknown"; then
! 207: AC_LINK_IFELSE([
! 208: AC_LANG_FUNC_LINK_TRY([SSL_get_verify_depth])
! 209: ],[
! 210: tst_api="0x093"
! 211: ])
! 212: fi
! 213: if test "$tst_api" = "unknown"; then
! 214: AC_LINK_IFELSE([
! 215: AC_LANG_FUNC_LINK_TRY([SSL_library_init])
! 216: ],[
! 217: tst_api="0x092"
! 218: ])
! 219: fi
! 220: if test "$tst_api" = "unknown"; then
! 221: AC_LINK_IFELSE([
! 222: AC_LANG_FUNC_LINK_TRY([SSL_CTX_set_cipher_list])
! 223: ],[
! 224: tst_api="0x091"
! 225: ])
! 226: fi
! 227: case $tst_api in
! 228: 0x111) tst_show="1.1.1" ;;
! 229: 0x110) tst_show="1.1.0" ;;
! 230: 0x102) tst_show="1.0.2" ;;
! 231: 0x101) tst_show="1.0.1" ;;
! 232: 0x100) tst_show="1.0.0" ;;
! 233: 0x099) tst_show="0.9.9" ;;
! 234: 0x098) tst_show="0.9.8" ;;
! 235: 0x097) tst_show="0.9.7" ;;
! 236: 0x096) tst_show="0.9.6" ;;
! 237: 0x095) tst_show="0.9.5" ;;
! 238: 0x094) tst_show="0.9.4" ;;
! 239: 0x093) tst_show="0.9.3" ;;
! 240: 0x092) tst_show="0.9.2" ;;
! 241: 0x091) tst_show="0.9.1" ;;
! 242: *) tst_show="unknown" ;;
! 243: esac
! 244: AC_MSG_RESULT([$tst_show])
! 245: #
! 246: dnl if test "$tst_api" != "unknown"; then
! 247: dnl AC_DEFINE_UNQUOTED(HAVE_OPENSSL_API_LIBRARY, $tst_api,
! 248: dnl [OpenSSL library link time API. Defined only by configure script.
! 249: dnl No matter what, do not ever define this manually or by any other means.])
! 250: dnl fi
! 251: curl_openssl_api_library=$tst_api
! 252: ])
! 253:
! 254:
! 255: dnl CURL_CHECK_OPENSSL_API
! 256: dnl -------------------------------------------------
! 257:
! 258: AC_DEFUN([CURL_CHECK_OPENSSL_API], [
! 259: #
! 260: CURL_CHECK_OPENSSL_API_HEADERS
! 261: CURL_CHECK_OPENSSL_API_LIBRARY
! 262: #
! 263: tst_match="yes"
! 264: #
! 265: AC_MSG_CHECKING([for OpenSSL headers and library versions matching])
! 266: if test "$curl_openssl_api_headers" = "unknown" ||
! 267: test "$curl_openssl_api_library" = "unknown"; then
! 268: tst_match="fail"
! 269: tst_warns="Can not compare OpenSSL headers and library versions."
! 270: elif test "$curl_openssl_api_headers" != "$curl_openssl_api_library"; then
! 271: tst_match="no"
! 272: tst_warns="OpenSSL headers and library versions do not match."
! 273: fi
! 274: AC_MSG_RESULT([$tst_match])
! 275: if test "$tst_match" != "yes"; then
! 276: AC_MSG_WARN([$tst_warns])
! 277: fi
! 278: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>