diff options
Diffstat (limited to 'acinclude.m4')
-rw-r--r-- | acinclude.m4 | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index c65e1ab62..de88852b3 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -347,6 +347,39 @@ AC_DEFUN([CURL_CHECK_HEADER_WS2TCPIP], [ ]) +dnl CURL_CHECK_HEADER_WINCRYPT +dnl ------------------------------------------------- +dnl Check for compilable and valid wincrypt.h header + +AC_DEFUN([CURL_CHECK_HEADER_WINCRYPT], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl + AC_CACHE_CHECK([for wincrypt.h], [curl_cv_header_wincrypt_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <windows.h> +#include <wincrypt.h> + ]],[[ + int dummy=2*PROV_RSA_FULL; + ]]) + ],[ + curl_cv_header_wincrypt_h="yes" + ],[ + curl_cv_header_wincrypt_h="no" + ]) + ]) + case "$curl_cv_header_wincrypt_h" in + yes) + AC_DEFINE_UNQUOTED(HAVE_WINCRYPT_H, 1, + [Define to 1 if you have the wincrypt.h header file.]) + ;; + esac +]) + + dnl CURL_CHECK_HEADER_WINLDAP dnl ------------------------------------------------- dnl Check for compilable and valid winldap.h header @@ -2353,11 +2386,54 @@ AC_DEFUN([CURL_CHECK_WIN32_LARGEFILE], [ AC_MSG_RESULT([yes (large file enabled)]) AC_DEFINE_UNQUOTED(USE_WIN32_LARGE_FILES, 1, [Define to 1 if you are building a Windows target with large file support.]) + AC_SUBST(USE_WIN32_LARGE_FILES, [1]) ;; win32_small_files) AC_MSG_RESULT([yes (large file disabled)]) AC_DEFINE_UNQUOTED(USE_WIN32_SMALL_FILES, 1, [Define to 1 if you are building a Windows target without large file support.]) + AC_SUBST(USE_WIN32_SMALL_FILES, [1]) + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +]) + +dnl CURL_CHECK_WIN32_CRYPTO +dnl ------------------------------------------------- +dnl Check if curl's WIN32 crypto lib can be used + +AC_DEFUN([CURL_CHECK_WIN32_CRYPTO], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINCRYPT])dnl + AC_MSG_CHECKING([whether build target supports WIN32 crypto API]) + curl_win32_crypto_api="no" + if test "$curl_cv_header_wincrypt_h" = "yes"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include <windows.h> +#include <wincrypt.h> + ]],[[ + HCRYPTPROV hCryptProv; + if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, + CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) { + CryptReleaseContext(hCryptProv, 0); + } + ]]) + ],[ + curl_win32_crypto_api="yes" + ]) + fi + case "$curl_win32_crypto_api" in + yes) + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(USE_WIN32_CRYPTO, 1, + [Define to 1 if you are building a Windows target with crypto API support.]) + AC_SUBST(USE_WIN32_CRYPTO, [1]) ;; *) AC_MSG_RESULT([no]) |