On Thu, Oct 30, 2008 at 03:44:20PM +0100, Daniel Veillard wrote:
On Thu, Oct 30, 2008 at 01:38:56PM +0000, Daniel P. Berrange wrote:
> The configure script lets users turn on/of individual drivers. Their
> choices get fed into a LIBVIRT_FEATURES macro, which has one or more
> -DWITH_XEN -DWITH_OPENVZ, etc, etc. The compiler args become rather
> long when we have all the drivers enabled. So this patch tweaks the
> configure file to instead put all these WITH_XEN, WITH_QEMU macros
> into the config.h file.
>
> Secondly, the Makefile.am has a few places where we do nested conditionals
> to determine whether to build QEMU, eg
>
> if WITH_LIBVIRTD
> if WITH_QEMU
>
> This patch also tweaks the configure script so that WITH_QEMU is never
> defined, unless WITH_LIBVIRTD is also defined. Now the makefile.am
> can just do
>
> if WITH_QEMU
>
> which makes things a little more readable, and helps avoid errors where
> we miss the WITH_LIBVIRTD wrapper.
>
> There is no functional code change here, its all just playing with the
> way makefile/macro conditionals are done.
Hum, this can get a bit crazy, I hope we will never get to the 2
pages of --with/without options of libxml2 (but we are getting closer
every month) and while it easilly get impossible to test all combination,
since we are doing background builds of HEAD every night, would it be
possible to at least test compilation with some of the main options
enabled or disabled. The mingw compile tests the bare minimum. Maybe
a compile with only each of the hypervisor activated, and maybe one
without avahi/SELinux/polkit/numactl to test compilation in a restricted
environment, would be useful to catch this kind of troubles.
The later patches in this series which move every driver into a libtool
convenience library, and then the subsquent dlopen support could help
us here by making cross-file dependancies much more obvious. So we
will catch many more problem at compile time even with all drivers
enabled. I can probably tweak the compile find even more problems
in this way, as well as documenting where the boundaries are in our
internal APIs.
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|