[zeromq-dev] Building on Windows

Martin Sustrik sustrik at fastmq.com
Sun Jan 4 11:15:29 CET 2009


Pieter,

Happy new year to you!

Pieter Hintjens wrote:
> On Sun, Jan 4, 2009 at 12:29 AM, Martin Sustrik <sustrik at fastmq.com> wrote:
> 
>> Fair enough. .NET extension is already under development - we won't be
>> able to build it without MSVC. Damn, why does MSFT have to make things
>> that complex :(
> 
> It's called lock-in.  It would be best IMO if 0MQ was as independent
> as possible of build systems and autoconf, so that it could be built
> using any tool.  For example I'd like to try making a boom package
> (boom is the iMatix build tool) but the sources seem tied to
> autocconf/make (am I wrong?)

Actually, no. The only relevant thing that's done by autotools is to 
generate libzmq/zmq/plaform.hpp file which contains a single macro 
definition specifying the OS you are building 0MQ for. This way:

#define ZMQ_HAVE_LINUX 1

Of course, we can require the macro to be passed on compiler's command 
line to make it easier for alternative build systems.

> If you do use MSVC to build the .NET extension, you should not force
> that on the rest of the product.

I am thinking of separating individual language extensions (Java, 
Python, C, .NET) into separate projects. Each of them has special build 
requirements (paths, env vars, etc.) anyway...

> You can usually detect and handle compiler differences inside the
> source code, though obviously you will need to build project files and
> build scripts properly.  Some kind of manifest (such as the XML
> project.pdl files we use in iMatix) would make it possible for random
> people to make random build scripts for the project.
> 
> So at that stage you can delegate this issue to the community, which
> is really what you want to do.

Still, we want to release new versions ourselves, if only to have single 
authority for assigning version numbers. To that end we have to have 
single toolchain to create the packages (although N alternative build 
systems may happily coexist in the project). So my question was about 
this "vanilla" toolchain rather than about build systems in general.

Martin



More information about the zeromq-dev mailing list