On 02/22/2018 01:56 PM, Daniel P. Berrangé wrote:
> The src/Makefile.am is quite large and has quite poor grouping of rules
> / variables / etc. This makes it increasingly hard to identify all the
> rules relating to a particular area of code.
>
> Traditionally one might create Makefile.am's in each sub-directory and
> let make recurse into each. Recursive make is quite a bad idea in
> general though because it harms parallelization and means that make does
> not have a full view of dependencies.
>
> This series thus takes a different approach to modularization which is
> to make use of the "include" statement to pull in makefile fragments
> from subdirectories. automake fully expands all "include" statements
> when generating the Makefile.in, so we still end up with a single
> monolithic file for the eventual build. Aside from ensuring make still
> has a full view of dependencies, this also means that all variables are
> still in a global namespace.
>
> In doing this split, I've taken the opportunity to santize the variable
> declarations into a consistent style. Any variable that is assigned more
> than one value now uses line continuations with exactly one value per
> line and a trailing $(NULL). It would be nice to enforce this style with
> a syntax-check rule but I've not figured this out yet.
>
> This series only moves the virt drivers. So there's obviously a further
> series to follow behind this to finish the job for other drivers.
>
> Daniel P. Berrangé (16):
> make: split UML driver build rules into uml/Makefile.inc.am
> make: split PHyp driver build rules into phyp/Makefile.inc.am
> make: split test driver build rules into test/Makefile.inc.am
> make: split ESX driver build rules into esx/Makefile.inc.am
> make: split hyperv driver build rules into hyperv/Makefile.inc.am
> make: split vmware driver build rules into vmware/Makefile.inc.am
> make: split vbox driver build rules into vbox/Makefile.inc.am
> make: split openvz driver build rules into openvz/Makefile.inc.am
> make: split qemu driver build rules into qemu/Makefile.inc.am
> make: split bhyve driver build rules into bhyve/Makefile.inc.am
> make: split xenconfig driver build rules into
> xenconfig/Makefile.inc.am
> make: split libxl driver build rules into libxl/Makefile.inc.am
> make: split xen driver build rules into xen/Makefile.inc.am
> make: split xenapi driver build rules into xenapi/Makefile.inc.am
> make: split vz driver build rules into vz/Makefile.inc.am
> make: split lxc driver build rules into lxc/Makefile.inc.am
>
> src/Makefile.am | 872 +++---------------------------------------
> src/bhyve/Makefile.inc.am | 73 ++++
> src/esx/Makefile.inc.am | 90 +++++
> src/hyperv/Makefile.inc.am | 59 +++
> src/libxl/Makefile.inc.am | 104 +++++
> src/lxc/Makefile.inc.am | 207 ++++++++++
> src/openvz/Makefile.inc.am | 28 ++
> src/phyp/Makefile.inc.am | 19 +
> src/qemu/Makefile.inc.am | 148 +++++++
> src/test/Makefile.inc.am | 26 ++
> src/uml/Makefile.inc.am | 46 +++
> src/vbox/Makefile.inc.am | 76 ++++
> src/vmware/Makefile.inc.am | 27 ++
> src/vz/Makefile.inc.am | 38 ++
> src/xen/Makefile.inc.am | 67 ++++
> src/xenapi/Makefile.inc.am | 28 ++
> src/xenconfig/Makefile.inc.am | 28 ++
> 17 files changed, 1122 insertions(+), 814 deletions(-)
> create mode 100644 src/bhyve/Makefile.inc.am
> create mode 100644 src/esx/Makefile.inc.am
> create mode 100644 src/hyperv/Makefile.inc.am
> create mode 100644 src/libxl/Makefile.inc.am
> create mode 100644 src/lxc/Makefile.inc.am
> create mode 100644 src/openvz/Makefile.inc.am
> create mode 100644 src/phyp/Makefile.inc.am
> create mode 100644 src/qemu/Makefile.inc.am
> create mode 100644 src/test/Makefile.inc.am
> create mode 100644 src/uml/Makefile.inc.am
> create mode 100644 src/vbox/Makefile.inc.am
> create mode 100644 src/vmware/Makefile.inc.am
> create mode 100644 src/vz/Makefile.inc.am
> create mode 100644 src/xen/Makefile.inc.am
> create mode 100644 src/xenapi/Makefile.inc.am
> create mode 100644 src/xenconfig/Makefile.inc.am
>
ACK
Michal
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list