ARG_WITH("openssl", "OpenSSL support", "no");
if (PHP_OPENSSL != "no") {
- if (CHECK_LIB("ssleay32.lib", "openssl", PHP_OPENSSL) &&
- CHECK_LIB("libeay32.lib", "openssl", PHP_OPENSSL) &&
- CHECK_LIB("crypt32.lib", "openssl") &&
- CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", "CFLAGS_OPENSSL")) {
- EXTENSION("openssl", "openssl.c xp_ssl.c");
+ var ret = SETUP_OPENSSL("openssl", PHP_OPENSSL);
+ if (ret > 0) {
+ EXTENSION("openssl", "openssl.c xp_ssl.c");
AC_DEFINE("HAVE_OPENSSL_EXT", PHP_OPENSSL_SHARED ? 0 : 1, "Have openssl");
AC_DEFINE("HAVE_OPENSSL", 1);
- AC_DEFINE("HAVE_DSA_DEFAULT_METHOD", 1);
+
+ switch (ret) {
+ /* Openssl 1.0.x and lower */
+ case 1:
+ AC_DEFINE("HAVE_DSA_DEFAULT_METHOD", 1);
+ break;
+ /* Openssl 1.1.x */
+ case 2:
+ break;
+ }
}
}
return !!PHP_ALL_SHARED && "yes" == PHP_ALL_SHARED;
}
+function SETUP_OPENSSL(target, path_to_check, common_name, use_env, add_dir_part, add_to_flag_only)
+{
+ var ret = 0;
+ var cflags_var = "CFLAGS_" + target.toUpperCase();
+
+ if (CHECK_LIB("ssleay32.lib", target, path_to_check, common_name) &&
+ CHECK_LIB("libeay32.lib", target, path_to_check, common_name) &&
+ CHECK_LIB("crypt32.lib", target, path_to_check, common_name) &&
+ CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", cflags_var, path_to_check, use_env, add_dir_part, add_to_flag_only)) {
+ /* Openssl 1.0.x and lower */
+ return 1;
+ } else if (CHECK_LIB("libcrypto.lib", target, path_to_check) &&
+ CHECK_LIB("libssl.lib", target, path_to_check) &&
+ CHECK_LIB("crypt32.lib", target, path_to_check, common_name) &&
+ CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", cflags_var, path_to_check, use_env, add_dir_part, add_to_flag_only)) {
+ /* Openssl 1.1.x */
+ return 2;
+ }
+
+ return ret;
+}
+