[dpdk-dev] [PATCH v3 00/17] build DPDK libs and some drivers with meson/ninja

Bruce Richardson bruce.richardson at intel.com
Thu Sep 14 15:57:14 CEST 2017


On Wed, Sep 13, 2017 at 06:01:25PM +0100, Luca Boccassi wrote:
> On Wed, 2017-09-13 at 15:12 +0100, Bruce Richardson wrote:
> > V3 changes:
> > * used two-digit version numbers when globally versioning
> > libs+drivers
> > * removed symlinks with single-digit version numbers in same case
> > * moved driver install location from $prefix/dpdk to
> > $prefix/share/dpdk
> > 
> > V2 changes:
> > * fixed copyright notices, updated 2016 to 2017
> > * removed dependency on kconfig file in kernel build tree
> > * marked pmdinfogen as a "native" binary, in preparation for future
> > cross-
> >   compilation work
> > * added in additional warning flags for compatibility with existing
> > system
> > ---
> > 
> > Following on from the two previous RFCs [1] [2], here is a cleaned up
> > patchset to serve as a start-point for getting all of DPDK building
> > with
> > meson and ninja.
> > 
> > What's covered:
> > * Basic infrastructure for feature detection and DPDK compilation
> > * Building of all DPDK libraries - as either static or shared
> > * Compilation of igb_uio driver for Linux
> > * Building a number of mempool, crypto and net drivers.
> > * Installation of compiled libraries and headers
> > * Installation of usertools scripts
> > * Compilation of testpmd as dpdk-testpmd and install of same
> > * Generation and installation of pkgconfig file for DPDK
> > * Contributors guide document addition describing how to add build
> > scripts
> > 
> > What's not implemented:
> > * Just about everything else :-), including
> > * Support for non-x86 architectures, including cross-compilation
> > * Lots of PMDs
> > * Support for building and running the unit tests
> > 
> > Some key differences from RFC2:
> > * Removed duplication between the different driver meson files by
> > moving
> >   the build logic up one level to the driver/meson.build file.
> > * Added a build option to allow versioning the libraries using the
> > DPDK
> >   version number, rather than individual .so versions.
> > * Made EAL a default dependency for libs, to simplify meson.build
> > files for
> >   a number of them.
> > * Made the build variables used for libraries and drivers more
> > consistent.
> > * Moved responsibility for determining if a given driver or library
> > should
> >   be built to the driver/library's own build file, giving a single
> > place
> >   where all details about that component are placed, and saving
> > having lots
> >   of environment detection logic in higher-level build files.
> > * Begun adding in developer documentation to make it easier for
> > driver
> >   authors/maintainers to contribute.
> > 
> > Meson 0.41 and ninja are needed, and ideally meson 0.42 is
> > recommended.
> > Ninja is available in most distributions, and meson - if an updated
> > version
> > is not available on your distro of choice - can be easily got using 
> > 	"pip3 install meson"
> > 
> > To build and install then use:
> > 
> > 	meson build # use default compiler and shared libs
> > 	cd build
> > 	ninja
> > 	sudo ninja install
> > 
> > Thereafter to use DPDK in other build systems one can use:
> > 
> > 	pkg-config --cflags DPDK
> > 	pkt-config --libs DPDK
> > 
> > to query the needed DPDK build parameters.
> > 
> > Once reviewed and tested a bit, I hope to apply this set - or a new
> > revision of it - to the build-next tree, to serve as a baseline for
> > others
> > to use and to add the missing functionality to.
> > 
> > Regards,
> > /Bruce
> > 
> > [1] http://dpdk.org/ml/archives/dev/2017-June/067429.html
> > [2] http://dpdk.org/ml/archives/dev/2017-August/072818.html
> > 
> > Bruce Richardson (17):
> >   build: add initial infrastructure for meson & ninja builds
> >   eal: add eal library to meson build
> >   igb_uio: add igb_uio kmod to meson build
> >   build: add DPDK libraries to build
> >   build: add buildtools to meson build
> >   build: add infrastructure for building PMDs
> >   drivers/mempool: add SW mempool drivers to meson build
> >   drivers/crypto: add crypto drv class and null PMD to meson
> >   crypto/openssl: add driver to meson build
> >   crypto/qat: add driver to meson build
> >   drivers/net: add net driver support to meson build
> >   drivers/net: add set of vdev PMDs to build
> >   drivers/net: add drivers for Intel NICs to meson build
> >   app/test-pmd: add test-pmd to meson build
> >   usertools: add usertools installation to meson build
> >   build: add option to version libs using DPDK version
> >   doc: add documentation on how to add new components to DPDK
> > 
> 
> Acked-by: Luca Boccassi <luca.boccassi at gmail.com>
> 
Pushed to dpdk-next-build.

Thanks to all for the reviews and acks.

/Bruce


More information about the dev mailing list