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

Michal Privoznik mprivozn at redhat.com
Fri Feb 23 10:12:27 UTC 2018


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




More information about the libvir-list mailing list