cURL / Mailing Lists / curl-library / Single Mail

curl-library

RE: obsoleting ONE of the windows build systems

From: Rod Widdowson <rdw_at_steadingsoftware.com>
Date: Thu, 11 Aug 2016 15:04:36 +0100

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
Received on 2016-08-11