]> git.kaiwu.me - nginx.git/commitdiff
Win32: compatiblity with OpenSSL 1.1.0.
authorMaxim Dounin <mdounin@mdounin.ru>
Sat, 24 Dec 2016 15:01:14 +0000 (18:01 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Sat, 24 Dec 2016 15:01:14 +0000 (18:01 +0300)
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.

auto/lib/openssl/conf
auto/lib/openssl/makefile.msvc
src/os/win32/ngx_win32_config.h

index 39d96023732accccdbaad5f31b373b803408f2b2..e7d3795b2a8f96642eb1976910a2981ce5fc1545 100644 (file)
@@ -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"
index fc9e57864ae791829eb3a028de5a38ce4ce7b89c..5b90dcb25881a7b41a849725ed1bf889110c5dcd 100644 (file)
@@ -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                                   \
+       )
index 3897730a190d36cd2c7bc05798f7f64d51d47ffd..4824d05a8759a3ca61391205fc27022349eb9cf4 100644 (file)
@@ -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)