status of the s4 waf build - go to stage 3?

tridge at tridge at
Sat Apr 24 18:12:35 MDT 2010

Hi Brad,

 > After your encouragement today, I gave this a try.


 > The libLIBFOO stuff looks a bit strange - perhaps something not getting 
 > substituted correctly?

no, that's just what the libraries are called. I kept the same names
as the old build system. The difference is that most of these libs got
rolled into the binaries or other libraries as objects in the old
system, instead of being built as shared libs.

We could certainly rename these libs to use better names :-)

 > Also, the pkgconfig files don't have the right filenames (no -samba4 suffix).
 > [bradh-dev at repens lib]$ cat pkgconfig/dcerpc.pc 
 > prefix=${prefix}
 > exec_prefix=${prefix}
 > libdir=${prefix}/lib
 > includedir=${prefix}/include
 > Name: dcerpc
 > Description: DCE/RPC client library
 > Requires: ndr
 > Version: 0.0.1
 > Libs: -L${libdir} -ldcerpc 
 > Cflags: -I${includedir} -DHAVE_IMMEDIATE_STRUCTURES=1
 > So that isn't going to work for openchange.

The reason this happens is that it is using library bundling, and the
build system is trying to avoid possible conflicts with installed
system libraries. So the pkgconfig and library names are actually as
they are supposed to be.

For libs like, this bundling avoids problems with a
user-installed tdb library conflicting with a system installed tdb

I suggest you have a read of this:

which should explain how the library handling works with the waf build.

There are a few ways we could make this work for openchange:

 1) you could use the --bundled-libraries configure option to force
 Samba4 so not use the bundled library extension for the libraries you

 2) we could mark some of these libraries as not needing
 bundling. This means we'd be saying that they will not be packaged

 3) we could add a configure option to put the bundled library name in
 the pkgconfig file.

Probably (1) is the simplest for your builds. See the web page above
for more information on this. You may also like to use
--builtin-libraries to force some of the libraries to be rolled into
the other libs (as per the old build system).

Cheers, Tridge

More information about the samba-technical mailing list