Hi Damjan, This looks really sweet. Finally, good riddance to ebuild. Ebuild has a mix of some brilliant tricks and some useless irritations. The brilliant tricks were primarily designed for the case of building a slew of open source packages, rather than something like VPP that wishes to be a single package (well, certainly vppinfra, svm, vlib, vppapigen, vlib-api, vnet, and vpp wish to be a single package; I have not thought about the rest.)
Very clever that you came up with the idea of directory src -- allowing you to keep most of the existing file paths when you converted Makefile.am's to the new .am files. I would have been too focused on converting path "x/x/..." to "x/..." that I would never have thought of that. I would have ended up with a slower build system that is just a tad closer to the pure automake direction and not pure Peter Miller the way your system is. Well, I had worked with people at Ericcson IPI years ago who liked to talk about Peter Miller's paper, but did not have the competence to put together a nicely designed automake system using his method. So I was always OK with "reasonably fast" pure automake. In other words, their Makefile.am's were oblivit and ugly. I remember hearing that on humongous systems, a single Makefile could mean latency if compiling a single file or if nothing had to be done, but I am guessing that VPP is not that huge. Anyway, I look forward to pulling in the new build system when it is on master and trying it. Thanks, Damjan. Burt On Tue, Dec 27, 2016 at 8:34 PM, Damjan Marion (damarion) < damar...@cisco.com> wrote: > Dear vpp-dev members, > > I just submitted a patch to gerrit[1] which introduces significant > improvement > in VPP build speed and also reduces complexity of the build system. > > Number of autotools instances is reduced to one, and whole code is moved > under the src/ > tree. That effectively means that autoconf is called only once, and build > can be > much more parallelized due to the flat structure of the Makefiles. > > Few plugins are migrated to the new tree, other will be moved later, > mainly because > we need to improve whole japi build process first. > > New autoconf config is much more configurable, so different command line > options > can be used to switch on/off specific components. Currently it looks like: > > --enable-tests Enable unit tests > --enable-dpdk-shared Link dpdk with shared libs > --enable-perftool Enable perftool > --enable-g2 Enable g2 > --disable-vlib Disable vlib and dependant libs and binaries > --disable-svm Disable svm and dependant libs and binaries > --with-dpdk-crypto Use DPDK cryptodev > --with-dpdk Use DPDK > --without-ipsec Disable IPSec > --without-ipv6sr Disable IPv6 SR > --without-apicli Disable binary api CLI > --disable-sixrd-plugin Do not build sixrd plugin > --disable-ila-plugin Do not build ila plugin > --disable-flowperpkt-plugin > Do not build flowperpkt plugin > > > Now whole vpp can be build outside of git tree, i.e. > > mkdir ~/tmp/build > cd ~/tmp/build > ~/src/vpp/src/configure > make > > As this change is intrusive in the way that it moves all code to src/ > please let me know if there is any issue with merging this patch. > Based on the gerrit activity, looks like this is the right time to do it… > > Thanks and Happy Holidays! > > Damjan > > [1] https://gerrit.fd.io/r/#/c/4430/ > > _______________________________________________ > vpp-dev mailing list > vpp-dev@lists.fd.io > https://lists.fd.io/mailman/listinfo/vpp-dev
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev