PROPOSAL: Use Cmake as the build system for Samba

Jelmer Vernooij jelmer at
Thu Feb 18 13:57:13 MST 2010

Hi Andreas,

On Thu, 2010-02-18 at 20:56 +0100, Andreas Schneider wrote:
> On Thursday 18 February 2010 17:15:07 Jelmer Vernooij wrote:
> > We'd have to switch both Samba 3 and Samba 4 at the same time, or move
> > away from the merged build. I'd like to see the CMake migration done in
> > a separate branch that is then merged into mainline Samba the moment we
> > switch.
> I would prefer to start with Samba3 or Samba4. Then the next Samba source and 
> do the merged build in the end. Well the merged build should always be kept in 
> mind so that we don't have to rewrite everything in the end.
I don't think we should add a burden on developers by having them worry
about keeping two different build systems as well as the merged build
> > CMake supports handling custom compilers such as pidl; does it allow for
> > pidl to take multiple input files and generate multiple output files?
> Yes, it does. A look at 'man cmake' and search for add_custom_command. You 
> specify the output files, so that it knows about dependencies.
Perhaps I don't completely understand  what's being said there, but I
don't see how that allows you to only run pidl exactly once and just
with those IDL files that have been changed.

> > Does it support multi-architecture compilations? When cross-compiling we
> > need to build some of the compilers (asn1c, compile_et) for the build
> > platform and target platform and most other things just for the target
> > platform.
> Yes, cross compilation support has been added in CMake 2.6. All you have to do 
> is to write a toolchain file which defines the compilers and paths.
> I've cross-compiled Windows binaries for libssh on Linux with MinGW.
What I'm asking is, is it possible to have a mixed-target-platform
build? We need to create binaries for multiple platforms since some of
the compilers used by Samba have to be built for the platform on which
you're compiling so they can be used inside of the build.

Related to that, is it possible to have custom build commands depend on
particular compilers that might have to be built first?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the samba-technical mailing list