@@ -1,213 +1,69 @@ -# -# Include the TEA standard macro set -# - -builtin(include,tclconfig/tcl.m4) - -# -# Add here whatever m4 macros you want to define for your package -# -AC_DEFUN([TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER], [ - dnl Determine if particular SSL version is enabled - if test "[$]$1" = "true" -o "[$]$1" = "force"; then - proto_check='true' - ifelse($5,, [ - AC_CHECK_FUNC($2,, [ - proto_check='false' - ]) - ], [ - AC_LANG_PUSH(C) - AC_MSG_CHECKING([for $3 protocol support]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ -#include -#include -#if (SSLEAY_VERSION_NUMBER >= 0x0907000L) -# include -#endif - ], [ -int x = $5; - ])], [ - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - - proto_check='false' - ]) - AC_LANG_POP([C]) - ]) - - if test "$proto_check" = 'false'; then - if test "[$]$1" = "force"; then - AC_MSG_ERROR([Unable to enable $3]) - fi - - $1='false' - fi - fi - - if test "[$]$1" = "false"; then - AC_DEFINE($4, [1], [Define this to disable $3 in OpenSSL support]) - fi - -]) - -AC_DEFUN([TCLTLS_SSL_OPENSSL], [ - openssldir='' - opensslpkgconfigdir='' - AC_ARG_WITH([openssl-dir], - AS_HELP_STRING( - [--with-openssl-dir=], - [path to root directory of OpenSSL or LibreSSL installation] - ), [ - openssldir="$withval" - ] - ) - AC_ARG_WITH([openssl-pkgconfig], - AS_HELP_STRING( - [--with-openssl-pkgconfig=], - [path to root directory of OpenSSL or LibreSSL pkgconfigdir] - ), [ - opensslpkgconfigdir="$withval" - ] - ) - - if test -n "$openssldir"; then - if test -e "$openssldir/libssl.$SHOBJEXT"; then - TCLTLS_SSL_LIBS="-L$openssldir -lssl -lcrypto" - openssldir="`AS_DIRNAME(["$openssldir"])`" - else - TCLTLS_SSL_LIBS="-L$openssldir/lib -lssl -lcrypto" - fi - TCLTLS_SSL_CFLAGS="-I$openssldir/include" - TCLTLS_SSL_CPPFLAGS="-I$openssldir/include" - fi - - pkgConfigExtraArgs='' - if test "$TCLEXT_BUILD" = "static" -o "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then - pkgConfigExtraArgs='--static' - fi - - dnl Use pkg-config to find the libraries - dnl Temporarily update PKG_CONFIG_PATH - PKG_CONFIG_PATH_SAVE="${PKG_CONFIG_PATH}" - if test -n "${opensslpkgconfigdir}"; then - if ! test -f "${opensslpkgconfigdir}/openssl.pc"; then - AC_MSG_ERROR([Unable to locate ${opensslpkgconfigdir}/openssl.pc]) - fi - - PKG_CONFIG_PATH="${opensslpkgconfigdir}${PATH_SEPARATOR}${PKG_CONFIG_PATH}" - export PKG_CONFIG_PATH - fi - - AC_ARG_VAR([TCLTLS_SSL_LIBS], [libraries to pass to the linker for OpenSSL or LibreSSL]) - AC_ARG_VAR([TCLTLS_SSL_CFLAGS], [C compiler flags for OpenSSL or LibreSSL]) - AC_ARG_VAR([TCLTLS_SSL_CPPFLAGS], [C preprocessor flags for OpenSSL or LibreSSL]) - if test -z "$TCLTLS_SSL_LIBS"; then - TCLTLS_SSL_LIBS="`"${PKGCONFIG}" openssl --libs $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration]) - fi - if test -z "$TCLTLS_SSL_CFLAGS"; then - TCLTLS_SSL_CFLAGS="`"${PKGCONFIG}" openssl --cflags-only-other $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration]) - fi - if test -z "$TCLTLS_SSL_CPPFLAGS"; then - TCLTLS_SSL_CPPFLAGS="`"${PKGCONFIG}" openssl --cflags-only-I $pkgConfigExtraArgs`" || AC_MSG_ERROR([Unable to get OpenSSL Configuration]) - fi - PKG_CONFIG_PATH="${PKG_CONFIG_PATH_SAVE}" - - if test "$TCLEXT_BUILD" = "static"; then - dnl If we are doing a static build, save the linker flags for other programs to consume - rm -f tcltls.${AREXT}.linkadd - AS_ECHO(["$TCLTLS_SSL_LIBS"]) > tcltls.${AREXT}.linkadd - fi - - dnl If we have been asked to statically link to the SSL library, specifically tell the linker to do so - if test "$TCLEXT_TLS_STATIC_SSL" = 'yes'; then - dnl Don't bother doing this if we aren't actually doing the runtime linking - if test "$TCLEXT_BUILD" != "static"; then - dnl Split the libraries into SSL and non-SSL libraries - new_TCLTLS_SSL_LIBS_normal='' - new_TCLTLS_SSL_LIBS_static='' - for arg in $TCLTLS_SSL_LIBS; do - case "${arg}" in - -L*) - new_TCLTLS_SSL_LIBS_normal="${new_TCLTLS_SSL_LIBS_normal} ${arg}" - new_TCLTLS_SSL_LIBS_static="${new_TCLTLS_SSL_LIBS_static} ${arg}" - ;; - -ldl|-lrt|-lc|-lpthread|-lm|-lcrypt|-lidn|-lresolv|-lgcc|-lgcc_s) - new_TCLTLS_SSL_LIBS_normal="${new_TCLTLS_SSL_LIBS_normal} ${arg}" - ;; - -l*) - new_TCLTLS_SSL_LIBS_static="${new_TCLTLS_SSL_LIBS_static} ${arg}" - ;; - *) - new_TCLTLS_SSL_LIBS_normal="${new_TCLTLS_SSL_LIBS_normal} ${arg}" - ;; - esac - done - SHOBJ_DO_STATIC_LINK_LIB([OpenSSL], [$new_TCLTLS_SSL_LIBS_static], [new_TCLTLS_SSL_LIBS_static]) - TCLTLS_SSL_LIBS="${new_TCLTLS_SSL_LIBS_normal} ${new_TCLTLS_SSL_LIBS_static}" - fi - fi - - dnl Save compile-altering variables we are changing - SAVE_LIBS="${LIBS}" - SAVE_CFLAGS="${CFLAGS}" - SAVE_CPPFLAGS="${CPPFLAGS}" - - dnl Update compile-altering variables to include the OpenSSL libraries - LIBS="${TCLTLS_SSL_LIBS} ${SAVE_LIBS} ${TCLTLS_SSL_LIBS}" - CFLAGS="${TCLTLS_SSL_CFLAGS} ${SAVE_CFLAGS} ${TCLTLS_SSL_CFLAGS}" - CPPFLAGS="${TCLTLS_SSL_CPPFLAGS} ${SAVE_CPPFLAGS} ${TCLTLS_SSL_CPPFLAGS}" - - dnl Verify that basic functionality is there - AC_LANG_PUSH(C) - AC_MSG_CHECKING([if a basic OpenSSL program works]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([ -#include -#include -#include - ], [ - SSL_library_init(); - SSL_load_error_strings(); - ])], [ - AC_MSG_RESULT([yes]) - ], [ - AC_MSG_RESULT([no]) - AC_MSG_ERROR([Unable to compile a basic program using OpenSSL]) - ]) - AC_LANG_POP([C]) - - AC_CHECK_FUNCS([TLS_method]) - TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER([tcltls_ssl_ssl2], [SSLv2_method], [sslv2], [NO_SSL2]) - TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER([tcltls_ssl_ssl3], [SSLv3_method], [sslv3], [NO_SSL3]) - TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER([tcltls_ssl_tls1_0], [TLSv1_method], [tlsv1.0], [NO_TLS1]) - TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER([tcltls_ssl_tls1_1], [TLSv1_1_method], [tlsv1.1], [NO_TLS1_1]) - TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER([tcltls_ssl_tls1_2], [TLSv1_2_method], [tlsv1.2], [NO_TLS1_2]) - TCLTLS_SSL_OPENSSL_CHECK_PROTO_VER([tcltls_ssl_tls1_3], [], [tlsv1.3], [NO_TLS1_3], [SSL_OP_NO_TLSv1_3]) - - AC_CACHE_VAL([tcltls_cv_func_tlsext_hostname], [ - AC_LANG_PUSH(C) - AC_MSG_CHECKING([for SSL_set_tlsext_host_name]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([ -#include -#include - ], [ - (void)SSL_set_tlsext_host_name((void *) 0, (void *) 0); - ])], [ - AC_MSG_RESULT([yes]) - tcltls_cv_func_tlsext_hostname='yes' - ], [ - AC_MSG_RESULT([no]) - tcltls_cv_func_tlsext_hostname='no' - ]) - AC_LANG_POP([C]) - ]) - - if test "$tcltls_cv_func_tlsext_hostname" = 'no'; then - AC_DEFINE([OPENSSL_NO_TLSEXT], [1], [Define this if your OpenSSL does not support the TLS Extension for SNI]) - fi - - dnl Restore compile-altering variables - LIBS="${SAVE_LIBS}" - CFLAGS="${SAVE_CFLAGS}" - CPPFLAGS="${SAVE_CPPFLAGS}" -]) +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS + +m4_include([acinclude.m4])