-
Try to build with Platform SDK's Windows 2000 build environment for manual NMake invokation.
-
I try to avoid asm for the sake of CPU compatibility.
-
Static seems to be fine, but requires additional steps.
-
What I also do now is build the deps in their own prefixes then merge for making the build of Visual Git easier.
-
I also link MSVCRT statically.
/MTover/MD.
If building a static zlib, you should change /MD to /MT in Makefile.msc,
so that it will link against the static CRT.
See also: http://wp.xin.at/archives/4479
-
Use ActiveState Perl, Strawberry includes a GCC that will foul MSVC/CMake.
-
An EP curve file needs patching, just init a value (because -Werror). Builds fine otherwise. (1.0)
-
For 1.1.1, correct long long refs/constants, and make sure for NT 4,
CryptAcquireContextis missing the silent option, or it will fail. -
I actually bounced up to 1.1.1, here are the options you need:
perl Configure vc-win32 --with-zlib-include=C:\zlib\include --with-zlib-lib=C:\zlib\lib\zlib.lib --prefix=C:\openssl -D_WIN32_WINNT=0x0406 no-dynamic-engine no-engine no-shared no-dso no-asm zlib no-async-
zlibinstead ofzlib_dynamic, even for dynamic builds. Point to the right.libfor dynamic or static. -
I disabled engines because it complicates both a relocatable dynamic and static setups. Means we're missing stuff like SChannel integration, but it matters less. Also because a func is missing on 2000/NT4.
-
no-asyncis required for 2000, missing a fiber func. -
OpenSSL prefix should be installed to
c:/opensslsince CMake looks there. Probably could be changed. -
Not sure if I need to explicitly set the target SDK.
-
NMake or VC++6 generator is fine. VC++6 makes it easier to fix any
/MDto/MTflags though. -
For shared,
_WINDLLdefined or it'll foul exports, not generating a.lib. -
vsnprintfis weird, use same shim forvscprintfand prepare to fix refs, like inmisc.c. -
If it doesn't find the OpenSSL library files, (IDK if this is due to 1.1.1 or static), specify the
OPENSSL_ROOTand maybe specify ssleay/libeay files for release mode manually from CMake GUI.
Patchset trying to be cleaned up and upstreamed, but notices for builders:
- VC++6 generator (NMake probably fine?)
- Use static CRT+no shared libs or not depending on sitch
- No Clar (involves Python)
- Use SSH, with additional variables because autodetect is dumb
LIBSSH2_FOUNDBOOL:YESLIBSSH2_INCLUDE_DIRSFILEPATH:C:/libssh2/includeLIBSSH2_LIBRARY_DIRSFILEPATH:C:/libssh2/libLIBSSH2_LIBRARIESSTRING:libssh2(good for both static/shared)- XXX: embedded libssh2 is supported, but mandates CNG (Vista)
- You may need to copy
thread.c.objin bothsrcandsrc/win32asthread.obj, unknown why. - Disable WinHTTP for using OpenSSL. Using WinHTTP is probably preferable for Windows 7+. Available on 2000 or newer.
XXX: Investigate