Mercurial > hg > nginx
changeset 8129:3c4d81ea1338
Win32: OpenSSL compilation for x64 targets with MSVC.
To ensure proper target selection the NGX_MACHINE variable is now set
based on the MSVC compiler output, and the OpenSSL target is set based
on it.
This is not important as long as "no-asm" is used (as in misc/GNUmakefile
and win32 build instructions), but might be beneficial if someone is trying
to build OpenSSL with assembler code.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 23 Feb 2023 18:16:08 +0300 |
parents | 79c04253bc43 |
children | b0a06c50c1b4 |
files | auto/cc/msvc auto/lib/openssl/make auto/lib/openssl/makefile.msvc |
diffstat | 3 files changed, 30 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/cc/msvc Thu Feb 23 18:15:59 2023 +0300 +++ b/auto/cc/msvc Thu Feb 23 18:16:08 2023 +0300 @@ -22,6 +22,21 @@ ngx_msvc_ver=`echo $NGX_MSVC_VER | sed -e 's/^\([0-9]*\).*/\1/'` +# detect x64 builds + +case "$NGX_MSVC_VER" in + + *x64) + NGX_MACHINE=amd64 + ;; + + *) + NGX_MACHINE=i386 + ;; + +esac + + # optimizations # maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy
--- a/auto/lib/openssl/make Thu Feb 23 18:15:59 2023 +0300 +++ b/auto/lib/openssl/make Thu Feb 23 18:16:08 2023 +0300 @@ -7,11 +7,24 @@ cl) + case "$NGX_MACHINE" in + + amd64) + OPENSSL_TARGET=VC-WIN64A + ;; + + *) + OPENSSL_TARGET=VC-WIN32 + ;; + + esac + cat << END >> $NGX_MAKEFILE $OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE \$(MAKE) -f auto/lib/openssl/makefile.msvc \ - OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT" + OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT" \ + OPENSSL_TARGET="$OPENSSL_TARGET" END
--- a/auto/lib/openssl/makefile.msvc Thu Feb 23 18:15:59 2023 +0300 +++ b/auto/lib/openssl/makefile.msvc Thu Feb 23 18:16:08 2023 +0300 @@ -6,7 +6,7 @@ all: cd $(OPENSSL) - perl Configure VC-WIN32 no-shared no-threads \ + perl Configure $(OPENSSL_TARGET) no-shared no-threads \ --prefix="%cd%/openssl" \ --openssldir="%cd%/openssl/ssl" \ $(OPENSSL_OPT)