[libvirt] [PATCH v1 00/16] Start to modularize src/Makefile.am

Daniel P. Berrangé berrange at redhat.com
Thu Feb 22 12:56:01 UTC 2018


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

-- 
2.14.3




More information about the libvir-list mailing list