Next revision | Previous revisionLast revisionBoth sides next revision |
c:build:build-openssl-statically-on-windows-vs2017 [2020/06/29 22:52] – created odefta | c:build:build-openssl-statically-on-windows-vs2017 [2020/07/01 01:14] – odefta |
---|
| ===== Prerequisites ===== |
| |
- Download and install [[http://strawberryperl.com/download/5.30.2.1/strawberry-perl-5.30.2.1-32bit.msi|strawberryperl]] | - Download and install [[http://strawberryperl.com/download/5.30.2.1/strawberry-perl-5.30.2.1-32bit.msi|strawberryperl]] |
- Add it to the system environment PATH variable | - Add it to the system environment PATH variable |
- Download and install [[https://www.nasm.us/pub/nasm/releasebuilds/2.15.01/win32/nasm-2.15.01-installer-x86.exe|nasm]] | - Download and install [[https://www.nasm.us/pub/nasm/releasebuilds/2.15.01/win32/nasm-2.15.01-installer-x86.exe|nasm]] |
- Add it to the system environment PATH variable | - Add it to the system environment PATH variable |
- Download [[https://www.openssl.org/source/openssl-1.1.1g.tar.gz|openssl]] | - Download [[https://www.openssl.org/source/openssl-1.1.1g.tar.gz|openssl]] sources |
- Extract it to a folder - D:\OpenSSL | - Extract it to a folder - D:\OpenSSL |
- Open Visual Studio 2017 native tools x86 (or x64 to build 64 bit library): | - Open Visual Studio 2017 native tools x86 (or x64 to build 64 bit library) \\ {{:c:build:pasted:20200629-225156.png}} |
{{:c:build:pasted:20200629-225156.png}} | - cd D:\OpenSSL |
| - cpan -i Text::Template |
| - cpan -i Test::More |
| - mkdir out |
| - mkdir out\SSL |
| |
| ===== Win 32 static debug build ===== |
| |
| <code> |
| perl Configure debug-VC-WIN32 no-shared --debug zlib enable-zlib --with-zlib-include=D:/zlib --with-zlib-lib=D:/zlib/zlib.lib --prefix=D:\OpenSSL\out --openssldir=D:\OpenSSL\out\SSL |
| </code> |
| <code> |
| Configuring OpenSSL version 1.1.1g (0x1010107fL) for debug-VC-WIN32 |
| Using os-specific seed configuration |
| Creating configdata.pm |
| Creating makefile |
| |
| ********************************************************************** |
| *** *** |
| *** OpenSSL has been successfully configured *** |
| *** *** |
| *** If you encounter a problem while building, please open an *** |
| *** issue on GitHub <https://github.com/openssl/openssl/issues> *** |
| *** and include the output from the following command: *** |
| *** *** |
| *** perl configdata.pm --dump *** |
| *** *** |
| *** (If you are new to OpenSSL, you might want to consult the *** |
| *** 'Troubleshooting' section in the INSTALL file first) *** |
| *** *** |
| ********************************************************************** |
| </code> |
| |
| nmake |
| |
| <code> |
| Microsoft (R) Program Maintenance Utility Version 14.16.27034.0 |
| Copyright (C) Microsoft Corporation. All rights reserved. |
| |
| "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl" "-omakefile" "include\crypto\bn_conf.h.in" > include\crypto\bn_conf.h |
| "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl" "-omakefile" "include\crypto\dso_conf.h.in" > include\crypto\dso_conf.h |
| "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl" "-omakefile" "include\openssl\opensslconf.h.in" > include\openssl\opensslconf.h |
| "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe" / depend && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe" / _all |
| |
| Microsoft (R) Program Maintenance Utility Version 14.16.27034.0 |
| Copyright (C) Microsoft Corporation. All rights reserved. |
| |
| |
| Microsoft (R) Program Maintenance Utility Version 14.16.27034.0 |
| Copyright (C) Microsoft Corporation. All rights reserved. |
| |
| cl /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MDd /W3 /wd4090 /nologo /Od /I "." /I "include" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSL_CPUID_OBJ" -D"OPENSSL_BN_ASM_PART_WORDS" -D"OPENSSL_IA32_SSE2" -D"OPENSSL_BN_ASM_MONT" -D"OPENSSL_BN_ASM_GF2m" -D"SHA1_ASM" -D"SHA256_ASM" -D"SHA512_ASM" -D"RC4_ASM" -D"MD5_ASM" -D"RMD160_ASM" -D"AESNI_ASM" -D"VPAES_ASM" -D"WHIRLPOOL_ASM" -D"GHASH_ASM" -D"ECP_NISTZ256_ASM" -D"POLY1305_ASM" -D"OPENSSLDIR=\"D:\\OpenSSL\\out\\SSL\"" -D"ENGINESDIR=\"D:\\OpenSSL\\out\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"OPENSSL_USE_APPLINK" -c /Foapps\app_rand.obj "apps\app_rand.c" |
| app_rand.c |
| cl /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MDd /W3 /wd4090 /nologo /Od /I "." /I "include" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSL_CPUID_OBJ" -D"OPENSSL_BN_ASM_PART_WORDS" -D"OPENSSL_IA32_SSE2" -D"OPENSSL_BN_ASM_MONT" -D"OPENSSL_BN_ASM_GF2m" -D"SHA1_ASM" -D"SHA256_ASM" -D"SHA512_ASM" -D"RC4_ASM" -D"MD5_ASM" -D"RMD160_ASM" -D"AESNI_ASM" -D"VPAES_ASM" -D"WHIRLPOOL_ASM" -D"GHASH_ASM" -D"ECP_NISTZ256_ASM" -D"POLY1305_ASM" -D"OPENSSLDIR=\"D:\\OpenSSL\\out\\SSL\"" -D"ENGINESDIR=\"D:\\OpenSSL\\out\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"OPENSSL_USE_APPLINK" /Zs /showIncludes "apps\app_rand.c" 2>&1 > apps\app_rand.d |
| cl /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MDd /W3 /wd4090 /nologo /Od /I "." /I "include" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSL_CPUID_OBJ" -D"OPENSSL_BN_ASM_PART_WORDS" -D"OPENSSL_IA32_SSE2" -D"OPENSSL_BN_ASM_MONT" -D"OPENSSL_BN_ASM_GF2m" -D"SHA1_ASM" -D"SHA256_ASM" -D"SHA512_ASM" -D"RC4_ASM" -D"MD5_ASM" -D"RMD160_ASM" -D"AESNI_ASM" -D"VPAES_ASM" -D"WHIRLPOOL_ASM" -D"GHASH_ASM" -D"ECP_NISTZ256_ASM" -D"POLY1305_ASM" -D"OPENSSLDIR=\"D:\\OpenSSL\\out\\SSL\"" -D"ENGINESDIR=\"D:\\OpenSSL\\out\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"OPENSSL_USE_APPLINK" -c /Foapps\apps.obj "apps\apps.c" |
| apps.c |
| ... |
| x509_time_test.c |
| cl /Zi /Fdapp.pdb /MDd /Gs0 /GF /Gy /MDd /W3 /wd4090 /nologo /Od /I "include" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"OPENSSL_USE_APPLINK" /Zs /showIncludes "test\x509_time_test.c" 2>&1 > test\x509_time_test.d |
| IF EXIST test\x509_time_test.exe.manifest DEL /F /Q test\x509_time_test.exe.manifest |
| link /nologo /debug /subsystem:console /opt:ref /nologo /debug /out:test\x509_time_test.exe @C:\Users\ovidi\AppData\Local\Temp\nmE3EA.tmp |
| IF EXIST test\x509_time_test.exe.manifest mt -nologo -manifest test\x509_time_test.exe.manifest -outputresource:test\x509_time_test.exe |
| cl /Zi /Fdapp.pdb /MDd /Gs0 /GF /Gy /MDd /W3 /wd4090 /nologo /Od /I "include" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"OPENSSL_USE_APPLINK" -c /Fotest\x509aux.obj "test\x509aux.c" |
| x509aux.c |
| cl /Zi /Fdapp.pdb /MDd /Gs0 /GF /Gy /MDd /W3 /wd4090 /nologo /Od /I "include" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG" -D"OPENSSL_USE_APPLINK" /Zs /showIncludes "test\x509aux.c" 2>&1 > test\x509aux.d |
| IF EXIST test\x509aux.exe.manifest DEL /F /Q test\x509aux.exe.manifest |
| link /nologo /debug /subsystem:console /opt:ref /nologo /debug /out:test\x509aux.exe @C:\Users\ovidi\AppData\Local\Temp\nmE63D.tmp |
| IF EXIST test\x509aux.exe.manifest mt -nologo -manifest test\x509aux.exe.manifest -outputresource:test\x509aux.exe |
| "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl" "-omakefile" "apps\CA.pl.in" > "apps\CA.pl" |
| "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl" "-omakefile" "apps\tsget.in" > "apps\tsget.pl" |
| "C:\Strawberry\perl\bin\perl.exe" "-I." -Mconfigdata "util\dofile.pl" "-omakefile" "tools\c_rehash.in" > "tools\c_rehash.pl" |
| </code> |
| |
| nmake install |
| |
| <code> |
| Microsoft (R) Program Maintenance Utility Version 14.16.27034.0 |
| Copyright (C) Microsoft Corporation. All rights reserved. |
| |
| "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe" / depend && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\nmake.exe" / _build_libs |
| |
| Microsoft (R) Program Maintenance Utility Version 14.16.27034.0 |
| Copyright (C) Microsoft Corporation. All rights reserved. |
| |
| |
| Microsoft (R) Program Maintenance Utility Version 14.16.27034.0 |
| Copyright (C) Microsoft Corporation. All rights reserved. |
| |
| *** Installing runtime libraries |
| *** Installing development files |
| Copying: ./include/openssl/aes.h to D:/OpenSSL/out/include/openssl/aes.h |
| Copying: ./include/openssl/asn1.h to D:/OpenSSL/out/include/openssl/asn1.h |
| Copying: ./include/openssl/asn1_mac.h to D:/OpenSSL/out/include/openssl/asn1_mac.h |
| Copying: ./include/openssl/asn1err.h to D:/OpenSSL/out/include/openssl/asn1err.h |
| ... |
| D:\OpenSSL\out\html\man7\ossl_store.html |
| D:\OpenSSL\out\html\man7\passphrase-encoding.html |
| D:\OpenSSL\out\html\man7\proxy-certificates.html |
| D:\OpenSSL\out\html\man7\RAND.html |
| D:\OpenSSL\out\html\man7\RAND_DRBG.html |
| D:\OpenSSL\out\html\man7\RSA-PSS.html |
| D:\OpenSSL\out\html\man7\scrypt.html |
| D:\OpenSSL\out\html\man7\SM2.html |
| D:\OpenSSL\out\html\man7\ssl.html |
| D:\OpenSSL\out\html\man7\X25519.html |
| D:\OpenSSL\out\html\man7\X448.html -> D:\OpenSSL\out\html\man7\X25519.html |
| D:\OpenSSL\out\html\man7\x509.html |
| </code> |
| |
| Output library files (D:\OpenSSL\out\lib): |
| |
| {{:c:build:pasted:20200629-235101.png}} \\ |
| |
| ===== Win 32 static release build ===== |
| |
| nmake clean |
| <code> |
| perl Configure VC-WIN32 no-shared zlib enable-zlib --with-zlib-include=D:/zlib --with-zlib-lib=D:/zlib/zlib.lib LDFLAGS=/NODEFAULTLIB:msvcrt.lib --prefix=D:\OpenSSL\out --openssldir=D:\OpenSSL\out\SSL |
| </code> |
| nmake \\ |
| nmake install |
| |
| |