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