To kick this one back into the park again...

I managed to make the new (Windows) build system work for us, and in particular 
to make it work for OpenSSL1.1.  Thanks for the prod.

I have made a few minor changes to the winbuild system as 
https://github.com/curl/curl/pull/955

To get OpenSSL1.1 working, I needed to use a bit of a blunt tool and so I 
wanted to share it here in case you want to change things (in which case I'll 
offer help so long as I can change a couple of other things we would like!)

To recap, the core issue is that in OpenSSL >= 1.1 the lib names are LIBSSL.LIB 
and LIBCRYPTO.LIB.  Up to now they had been LIBEAY32.LIB and SSLEAY32.LIB.  
Most build systems (including this one) "just know" what the lib names are and 
so this is a bit of a curve-ball.

To make the new build work for OpenSSL I needed a command pretty much like this:

nmake /f Makefile.vc mode=dll WITH_DEVEL=H:\MyBuild\x86 WITH_SSL=dll 
WITH_ZLIB=dll ENABLE_WINSSL=no VC=10 DEBUG=no MAKE="NMAKE /e" 
SSL_LIBS="libssl.lib libcrypto.lib"

The critical bits are the last two:  The line MAKE="NMAKE /e"   tells 
MakefileBuild.vc to listen to the setting of SSL_LIBS on the command line and 
not to its own calculations which are based on the setting of WITH_SSL.

With this in place we build just fine.  

This is sufficient for us because we need to commit similar abuse in order to 
set the ZLIB libraries and paths.  This is because we use VS Paradigm for 
location of files in Windows [Shibboleth/x64/Debug] and we also demand tighter 
control on DLL names because of ABI drift.  This is just a choice, there is no 
right or wrong and I'm not into religious arguments about build technologies, 
but it makes for a cumbersome marriage with this build system unless I hardwire 
the macros and do the "NMAKE /E" thing.

If however you want to add the smarts to MakefileBuild.vc to handle different 
lib names I'd be wanted to expose similar tools to allow us to set similar 
macros on the command line.

Thanks 

Rod


-------------------------------------------------------------------
List admin: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:  https://curl.haxx.se/mail/etiquette.html

Reply via email to