Annotation of embedaddon/iperf/config/ax_check_openssl.m4, revision 1.1

1.1     ! misho       1: # ===========================================================================
        !             2: #     https://www.gnu.org/software/autoconf-archive/ax_check_openssl.html
        !             3: # ===========================================================================
        !             4: #
        !             5: # SYNOPSIS
        !             6: #
        !             7: #   AX_CHECK_OPENSSL([action-if-found[, action-if-not-found]])
        !             8: #
        !             9: # DESCRIPTION
        !            10: #
        !            11: #   Look for OpenSSL in a number of default spots, or in a user-selected
        !            12: #   spot (via --with-openssl).  Sets
        !            13: #
        !            14: #     OPENSSL_INCLUDES to the include directives required
        !            15: #     OPENSSL_LIBS to the -l directives required
        !            16: #     OPENSSL_LDFLAGS to the -L or -R flags required
        !            17: #
        !            18: #   and calls ACTION-IF-FOUND or ACTION-IF-NOT-FOUND appropriately
        !            19: #
        !            20: #   This macro sets OPENSSL_INCLUDES such that source files should use the
        !            21: #   openssl/ directory in include directives:
        !            22: #
        !            23: #     #include <openssl/hmac.h>
        !            24: #
        !            25: # LICENSE
        !            26: #
        !            27: #   Copyright (c) 2009,2010 Zmanda Inc. <http://www.zmanda.com/>
        !            28: #   Copyright (c) 2009,2010 Dustin J. Mitchell <dustin@zmanda.com>
        !            29: #
        !            30: #   Copying and distribution of this file, with or without modification, are
        !            31: #   permitted in any medium without royalty provided the copyright notice
        !            32: #   and this notice are preserved. This file is offered as-is, without any
        !            33: #   warranty.
        !            34: 
        !            35: #serial 10
        !            36: 
        !            37: AU_ALIAS([CHECK_SSL], [AX_CHECK_OPENSSL])
        !            38: AC_DEFUN([AX_CHECK_OPENSSL], [
        !            39:     found=false
        !            40:     AC_ARG_WITH([openssl],
        !            41:         [AS_HELP_STRING([--with-openssl=DIR],
        !            42:             [root of the OpenSSL directory])],
        !            43:         [
        !            44:             case "$withval" in
        !            45:             "" | y | ye | yes | n | no)
        !            46:             AC_MSG_ERROR([Invalid --with-openssl value])
        !            47:               ;;
        !            48:             *) ssldirs="$withval"
        !            49:               ;;
        !            50:             esac
        !            51:         ], [
        !            52:             # if pkg-config is installed and openssl has installed a .pc file,
        !            53:             # then use that information and don't search ssldirs
        !            54:             AC_CHECK_TOOL([PKG_CONFIG], [pkg-config])
        !            55:             if test x"$PKG_CONFIG" != x""; then
        !            56:                 OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
        !            57:                 if test $? = 0; then
        !            58:                     OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
        !            59:                     OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
        !            60:                     found=true
        !            61:                 fi
        !            62:             fi
        !            63: 
        !            64:             # no such luck; use some default ssldirs
        !            65:             if ! $found; then
        !            66:                 ssldirs="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr"
        !            67:             fi
        !            68:         ]
        !            69:         )
        !            70: 
        !            71: 
        !            72:     # note that we #include <openssl/foo.h>, so the OpenSSL headers have to be in
        !            73:     # an 'openssl' subdirectory
        !            74: 
        !            75:     if ! $found; then
        !            76:         OPENSSL_INCLUDES=
        !            77:         for ssldir in $ssldirs; do
        !            78:             AC_MSG_CHECKING([for openssl/ssl.h in $ssldir])
        !            79:             if test -f "$ssldir/include/openssl/ssl.h"; then
        !            80:                 OPENSSL_INCLUDES="-I$ssldir/include"
        !            81:                 OPENSSL_LDFLAGS="-L$ssldir/lib"
        !            82:                 OPENSSL_LIBS="-lssl -lcrypto"
        !            83:                 found=true
        !            84:                 AC_MSG_RESULT([yes])
        !            85:                 break
        !            86:             else
        !            87:                 AC_MSG_RESULT([no])
        !            88:             fi
        !            89:         done
        !            90: 
        !            91:         # if the file wasn't found, well, go ahead and try the link anyway -- maybe
        !            92:         # it will just work!
        !            93:     fi
        !            94: 
        !            95:     # try the preprocessor and linker with our new flags,
        !            96:     # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS
        !            97: 
        !            98:     AC_MSG_CHECKING([whether compiling and linking against OpenSSL works])
        !            99:     echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \
        !           100:         "OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&AS_MESSAGE_LOG_FD
        !           101: 
        !           102:     save_LIBS="$LIBS"
        !           103:     save_LDFLAGS="$LDFLAGS"
        !           104:     save_CPPFLAGS="$CPPFLAGS"
        !           105:     LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
        !           106:     LIBS="$OPENSSL_LIBS $LIBS"
        !           107:     CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
        !           108:     AC_LINK_IFELSE(
        !           109:         [AC_LANG_PROGRAM([#include <openssl/ssl.h>], [SSL_new(NULL)])],
        !           110:         [
        !           111:             AC_MSG_RESULT([yes])
        !           112:             $1
        !           113:         ], [
        !           114:             AC_MSG_RESULT([no])
        !           115:             $2
        !           116:         ])
        !           117:     CPPFLAGS="$save_CPPFLAGS"
        !           118:     LDFLAGS="$save_LDFLAGS"
        !           119:     LIBS="$save_LIBS"
        !           120: 
        !           121:     AC_SUBST([OPENSSL_INCLUDES])
        !           122:     AC_SUBST([OPENSSL_LIBS])
        !           123:     AC_SUBST([OPENSSL_LDFLAGS])
        !           124: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>