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

Reply via email to