aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2016-12-24 18:01:14 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2016-12-24 18:01:14 +0300
commit77471dbdbb73f637eaa1205b7e1dbdb770ad27f2 (patch)
tree74be5a6573bc491c6c0105f4908e035bdd3ae5aa
parent1c2c11fb6fdf408754df3044ce2306ce2eea9e16 (diff)
downloadnginx-77471dbdbb73f637eaa1205b7e1dbdb770ad27f2.tar.gz
nginx-77471dbdbb73f637eaa1205b7e1dbdb770ad27f2.zip
Win32: compatiblity with OpenSSL 1.1.0.
OpenSSL 1.1.0 now uses normal "nmake; nmake install" instead of using custom "ms\do_ms.bat" script and "ms\nt.mak" makefile. And Configure now requires --prefix to be absolute, and no longer derives --openssldir from prefix (so it's specified explicitly). Generated libraries are now called "libcrypto.lib" and "libssl.lib" instead of "libeay32.lib" and "ssleay32.lib". Appropriate tests added to support both old and new variants. Additionally, openssl/lhash.h now triggers warning C4090 ('function' : different 'const' qualifiers), so the warning was disabled.
-rw-r--r--auto/lib/openssl/conf12
-rw-r--r--auto/lib/openssl/makefile.msvc17
-rw-r--r--src/os/win32/ngx_win32_config.h3
3 files changed, 25 insertions, 7 deletions
diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
index 39d960237..e7d3795b2 100644
--- a/auto/lib/openssl/conf
+++ b/auto/lib/openssl/conf
@@ -15,8 +15,16 @@ if [ $OPENSSL != NONE ]; then
CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+
+ if [ -f $OPENSSL/ms/do_ms.bat ]; then
+ # before OpenSSL 1.1.0
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+ else
+ # OpenSSL 1.1.0+
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
+ fi
# libeay32.lib requires gdi32.lib
CORE_LIBS="$CORE_LIBS gdi32.lib"
diff --git a/auto/lib/openssl/makefile.msvc b/auto/lib/openssl/makefile.msvc
index fc9e57864..5b90dcb25 100644
--- a/auto/lib/openssl/makefile.msvc
+++ b/auto/lib/openssl/makefile.msvc
@@ -6,9 +6,16 @@
all:
cd $(OPENSSL)
- perl Configure VC-WIN32 no-shared --prefix=openssl $(OPENSSL_OPT)
+ perl Configure VC-WIN32 no-shared \
+ --prefix="%cd%/openssl" \
+ --openssldir="%cd%/openssl/ssl" \
+ $(OPENSSL_OPT)
- ms\do_ms
-
- $(MAKE) -f ms\nt.mak
- $(MAKE) -f ms\nt.mak install
+ if exist ms\do_ms.bat ( \
+ ms\do_ms \
+ && $(MAKE) -f ms\nt.mak \
+ && $(MAKE) -f ms\nt.mak install \
+ ) else ( \
+ $(MAKE) \
+ && $(MAKE) install_sw \
+ )
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index 3897730a1..4824d05a8 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -88,6 +88,9 @@ typedef long time_t;
/* 'type cast': from data pointer to function pointer */
#pragma warning(disable:4055)
+/* 'function' : different 'const' qualifiers */
+#pragma warning(disable:4090)
+
/* unreferenced formal parameter */
#pragma warning(disable:4100)