Annotation of embedaddon/iperf/config/ax_check_openssl.m4, revision 1.1.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>