From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Cc: nhorman@tuxdriver.com, luca.boccassi@gmail.com,
harry.van.haaren@intel.com,
Bruce Richardson <bruce.richardson@intel.com>
Subject: [dpdk-dev] [PATCH v2 00/17] build DPDK libs and some drivers with meson/ninja
Date: Tue, 12 Sep 2017 11:37:52 +0100 [thread overview]
Message-ID: <20170912103809.140473-1-bruce.richardson@intel.com> (raw)
In-Reply-To: <20170901100416.80264-1-bruce.richardson@intel.com>
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
app/meson.build | 32 +++
app/test-pmd/meson.build | 74 +++++++
buildtools/gen-pmdinfo-cfile.sh | 41 ++++
buildtools/meson.build | 34 ++++
buildtools/pmdinfogen/meson.build | 36 ++++
config/meson.build | 71 +++++++
config/rte_config.h | 121 ++++++++++++
config/x86/meson.build | 70 +++++++
doc/guides/contributing/coding_style.rst | 214 +++++++++++++++++++++
drivers/crypto/meson.build | 35 ++++
drivers/crypto/null/meson.build | 33 ++++
drivers/crypto/openssl/meson.build | 38 ++++
drivers/crypto/qat/meson.build | 41 ++++
drivers/mempool/meson.build | 35 ++++
drivers/mempool/ring/meson.build | 32 +++
drivers/mempool/stack/meson.build | 32 +++
drivers/meson.build | 128 ++++++++++++
drivers/net/af_packet/meson.build | 35 ++++
drivers/net/e1000/base/meson.build | 65 +++++++
drivers/net/e1000/meson.build | 44 +++++
drivers/net/fm10k/base/meson.build | 55 ++++++
drivers/net/fm10k/meson.build | 44 +++++
drivers/net/i40e/base/meson.build | 56 ++++++
drivers/net/i40e/meson.build | 60 ++++++
drivers/net/ixgbe/base/meson.build | 60 ++++++
drivers/net/ixgbe/meson.build | 58 ++++++
drivers/net/meson.build | 36 ++++
drivers/net/null/meson.build | 32 +++
drivers/net/pcap/meson.build | 41 ++++
drivers/net/ring/meson.build | 33 ++++
lib/librte_acl/meson.build | 59 ++++++
lib/librte_bitratestats/meson.build | 34 ++++
lib/librte_cfgfile/meson.build | 34 ++++
lib/librte_cmdline/meson.build | 55 ++++++
lib/librte_compat/meson.build | 36 ++++
lib/librte_cryptodev/meson.build | 40 ++++
lib/librte_distributor/meson.build | 39 ++++
lib/librte_eal/bsdapp/eal/meson.build | 67 +++++++
lib/librte_eal/bsdapp/meson.build | 32 +++
lib/librte_eal/common/arch/meson.build | 33 ++++
lib/librte_eal/common/arch/x86/meson.build | 32 +++
lib/librte_eal/common/include/arch/meson.build | 33 ++++
lib/librte_eal/common/include/arch/x86/meson.build | 48 +++++
lib/librte_eal/common/include/meson.build | 71 +++++++
lib/librte_eal/common/meson.build | 71 +++++++
lib/librte_eal/linuxapp/eal/meson.build | 72 +++++++
lib/librte_eal/linuxapp/igb_uio/Kbuild | 1 +
lib/librte_eal/linuxapp/igb_uio/meson.build | 46 +++++
lib/librte_eal/linuxapp/meson.build | 42 ++++
lib/librte_eal/meson.build | 44 +++++
lib/librte_efd/meson.build | 34 ++++
lib/librte_ether/meson.build | 45 +++++
lib/librte_eventdev/meson.build | 36 ++++
lib/librte_gro/meson.build | 34 ++++
lib/librte_hash/meson.build | 45 +++++
lib/librte_ip_frag/meson.build | 39 ++++
lib/librte_jobstats/meson.build | 33 ++++
lib/librte_kni/meson.build | 38 ++++
lib/librte_kvargs/meson.build | 34 ++++
lib/librte_latencystats/meson.build | 34 ++++
lib/librte_lpm/meson.build | 35 ++++
lib/librte_mbuf/meson.build | 35 ++++
lib/librte_mempool/meson.build | 35 ++++
lib/librte_meter/meson.build | 33 ++++
lib/librte_metrics/meson.build | 33 ++++
lib/librte_net/meson.build | 45 +++++
lib/librte_pdump/meson.build | 34 ++++
lib/librte_pipeline/meson.build | 35 ++++
lib/librte_port/meson.build | 58 ++++++
lib/librte_power/meson.build | 37 ++++
lib/librte_reorder/meson.build | 34 ++++
lib/librte_ring/meson.build | 33 ++++
lib/librte_sched/meson.build | 36 ++++
lib/librte_table/meson.build | 52 +++++
lib/librte_timer/meson.build | 33 ++++
lib/librte_vhost/meson.build | 39 ++++
lib/meson.build | 105 ++++++++++
meson.build | 88 +++++++++
meson_options.txt | 9 +
usertools/meson.build | 32 +++
80 files changed, 3788 insertions(+)
create mode 100644 app/meson.build
create mode 100644 app/test-pmd/meson.build
create mode 100755 buildtools/gen-pmdinfo-cfile.sh
create mode 100644 buildtools/meson.build
create mode 100644 buildtools/pmdinfogen/meson.build
create mode 100644 config/meson.build
create mode 100644 config/rte_config.h
create mode 100644 config/x86/meson.build
create mode 100644 drivers/crypto/meson.build
create mode 100644 drivers/crypto/null/meson.build
create mode 100644 drivers/crypto/openssl/meson.build
create mode 100644 drivers/crypto/qat/meson.build
create mode 100644 drivers/mempool/meson.build
create mode 100644 drivers/mempool/ring/meson.build
create mode 100644 drivers/mempool/stack/meson.build
create mode 100644 drivers/meson.build
create mode 100644 drivers/net/af_packet/meson.build
create mode 100644 drivers/net/e1000/base/meson.build
create mode 100644 drivers/net/e1000/meson.build
create mode 100644 drivers/net/fm10k/base/meson.build
create mode 100644 drivers/net/fm10k/meson.build
create mode 100644 drivers/net/i40e/base/meson.build
create mode 100644 drivers/net/i40e/meson.build
create mode 100644 drivers/net/ixgbe/base/meson.build
create mode 100644 drivers/net/ixgbe/meson.build
create mode 100644 drivers/net/meson.build
create mode 100644 drivers/net/null/meson.build
create mode 100644 drivers/net/pcap/meson.build
create mode 100644 drivers/net/ring/meson.build
create mode 100644 lib/librte_acl/meson.build
create mode 100644 lib/librte_bitratestats/meson.build
create mode 100644 lib/librte_cfgfile/meson.build
create mode 100644 lib/librte_cmdline/meson.build
create mode 100644 lib/librte_compat/meson.build
create mode 100644 lib/librte_cryptodev/meson.build
create mode 100644 lib/librte_distributor/meson.build
create mode 100644 lib/librte_eal/bsdapp/eal/meson.build
create mode 100644 lib/librte_eal/bsdapp/meson.build
create mode 100644 lib/librte_eal/common/arch/meson.build
create mode 100644 lib/librte_eal/common/arch/x86/meson.build
create mode 100644 lib/librte_eal/common/include/arch/meson.build
create mode 100644 lib/librte_eal/common/include/arch/x86/meson.build
create mode 100644 lib/librte_eal/common/include/meson.build
create mode 100644 lib/librte_eal/common/meson.build
create mode 100644 lib/librte_eal/linuxapp/eal/meson.build
create mode 100644 lib/librte_eal/linuxapp/igb_uio/Kbuild
create mode 100644 lib/librte_eal/linuxapp/igb_uio/meson.build
create mode 100644 lib/librte_eal/linuxapp/meson.build
create mode 100644 lib/librte_eal/meson.build
create mode 100644 lib/librte_efd/meson.build
create mode 100644 lib/librte_ether/meson.build
create mode 100644 lib/librte_eventdev/meson.build
create mode 100644 lib/librte_gro/meson.build
create mode 100644 lib/librte_hash/meson.build
create mode 100644 lib/librte_ip_frag/meson.build
create mode 100644 lib/librte_jobstats/meson.build
create mode 100644 lib/librte_kni/meson.build
create mode 100644 lib/librte_kvargs/meson.build
create mode 100644 lib/librte_latencystats/meson.build
create mode 100644 lib/librte_lpm/meson.build
create mode 100644 lib/librte_mbuf/meson.build
create mode 100644 lib/librte_mempool/meson.build
create mode 100644 lib/librte_meter/meson.build
create mode 100644 lib/librte_metrics/meson.build
create mode 100644 lib/librte_net/meson.build
create mode 100644 lib/librte_pdump/meson.build
create mode 100644 lib/librte_pipeline/meson.build
create mode 100644 lib/librte_port/meson.build
create mode 100644 lib/librte_power/meson.build
create mode 100644 lib/librte_reorder/meson.build
create mode 100644 lib/librte_ring/meson.build
create mode 100644 lib/librte_sched/meson.build
create mode 100644 lib/librte_table/meson.build
create mode 100644 lib/librte_timer/meson.build
create mode 100644 lib/librte_vhost/meson.build
create mode 100644 lib/meson.build
create mode 100644 meson.build
create mode 100644 meson_options.txt
create mode 100644 usertools/meson.build
--
2.13.5
next prev parent reply other threads:[~2017-09-12 11:29 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-01 10:03 [dpdk-dev] [PATCH " Bruce Richardson
2017-09-01 10:04 ` [dpdk-dev] [PATCH 01/17] build: add initial infrastructure for meson & ninja builds Bruce Richardson
2017-09-04 13:36 ` Van Haaren, Harry
2017-09-04 13:51 ` Bruce Richardson
2017-09-06 16:18 ` Bruce Richardson
2017-09-07 13:52 ` Bruce Richardson
2017-09-07 16:21 ` [dpdk-dev] [dpdk-dev, " Neil Horman
2017-09-07 16:47 ` Wiles, Keith
2017-09-07 17:12 ` Neil Horman
2017-09-08 8:50 ` Bruce Richardson
2017-09-08 11:57 ` Neil Horman
2017-09-08 13:55 ` Bruce Richardson
2017-09-08 14:00 ` Bruce Richardson
2017-09-08 16:03 ` [dpdk-dev] [PATCH " Van Haaren, Harry
2017-09-08 16:13 ` Richardson, Bruce
2017-09-12 9:56 ` Bruce Richardson
2017-09-01 10:04 ` [dpdk-dev] [PATCH 02/17] eal: add eal library to meson build Bruce Richardson
2017-09-04 13:53 ` Van Haaren, Harry
2017-09-07 16:25 ` [dpdk-dev] [dpdk-dev, " Neil Horman
2017-09-08 8:51 ` Bruce Richardson
2017-09-01 10:04 ` [dpdk-dev] [PATCH 03/17] igb_uio: add igb_uio kmod " Bruce Richardson
2017-09-01 13:32 ` Luca Boccassi
2017-09-01 13:55 ` Bruce Richardson
2017-09-01 14:27 ` Luca Boccassi
2017-09-04 13:57 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 04/17] build: add DPDK libraries to build Bruce Richardson
2017-09-04 14:08 ` Van Haaren, Harry
2017-09-04 14:55 ` Bruce Richardson
2017-09-01 10:04 ` [dpdk-dev] [PATCH 05/17] build: add buildtools to meson build Bruce Richardson
2017-09-04 14:24 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 06/17] build: add infrastructure for building PMDs Bruce Richardson
2017-09-04 14:27 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 07/17] drivers/mempool: add SW mempool drivers to meson build Bruce Richardson
2017-09-04 14:28 ` Van Haaren, Harry
2017-09-04 14:29 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 08/17] drivers/crypto: add crypto drv class and null PMD to meson Bruce Richardson
2017-09-04 14:30 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 09/17] crypto/openssl: add driver to meson build Bruce Richardson
2017-09-04 14:30 ` Van Haaren, Harry
2017-09-04 14:31 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 10/17] crypto/qat: " Bruce Richardson
2017-09-04 14:32 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 11/17] drivers/net: add net driver support " Bruce Richardson
2017-09-04 14:32 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 12/17] drivers/net: add set of vdev PMDs to build Bruce Richardson
2017-09-04 14:34 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 13/17] drivers/net: add drivers for Intel NICs to meson build Bruce Richardson
2017-09-01 10:04 ` [dpdk-dev] [PATCH 14/17] app/test-pmd: add test-pmd " Bruce Richardson
2017-09-04 15:01 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 15/17] usertools: add usertools installation " Bruce Richardson
2017-09-04 15:00 ` Van Haaren, Harry
2017-09-01 10:04 ` [dpdk-dev] [PATCH 16/17] build: add option to version libs using DPDK version Bruce Richardson
2017-09-07 17:07 ` [dpdk-dev] [dpdk-dev, " Neil Horman
2017-09-08 8:58 ` Bruce Richardson
2017-09-01 10:04 ` [dpdk-dev] [PATCH 17/17] doc: add documentation on how to add new components to DPDK Bruce Richardson
2017-09-01 10:38 ` [dpdk-dev] [PATCH 00/17] build DPDK libs and some drivers with meson/ninja Bruce Richardson
2017-09-12 10:37 ` Bruce Richardson [this message]
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 01/17] build: add initial infrastructure for meson & ninja builds Bruce Richardson
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 02/17] eal: add eal library to meson build Bruce Richardson
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 03/17] igb_uio: add igb_uio kmod " Bruce Richardson
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 04/17] build: add DPDK libraries to build Bruce Richardson
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 05/17] build: add buildtools to meson build Bruce Richardson
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 06/17] build: add infrastructure for building PMDs Bruce Richardson
2017-09-12 10:37 ` [dpdk-dev] [PATCH v2 07/17] drivers/mempool: add SW mempool drivers to meson build Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 08/17] drivers/crypto: add crypto drv class and null PMD to meson Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 09/17] crypto/openssl: add driver to meson build Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 10/17] crypto/qat: " Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 11/17] drivers/net: add net driver support " Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 12/17] drivers/net: add set of vdev PMDs to build Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 13/17] drivers/net: add drivers for Intel NICs to meson build Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 14/17] app/test-pmd: add test-pmd " Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 15/17] usertools: add usertools installation " Bruce Richardson
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 16/17] build: add option to version libs using DPDK version Bruce Richardson
2017-09-13 11:32 ` Luca Boccassi
2017-09-13 13:11 ` Bruce Richardson
2017-09-13 17:02 ` Luca Boccassi
2017-09-12 10:38 ` [dpdk-dev] [PATCH v2 17/17] doc: add documentation on how to add new components to DPDK Bruce Richardson
2017-09-12 13:21 ` [dpdk-dev] [PATCH v2 00/17] build DPDK libs and some drivers with meson/ninja Wiles, Keith
2017-09-12 13:24 ` Bruce Richardson
2017-09-12 13:26 ` Wiles, Keith
2017-09-12 14:00 ` Wiles, Keith
2017-09-12 15:46 ` Bruce Richardson
2017-09-12 19:19 ` Neil Horman
2017-09-12 20:36 ` Wiles, Keith
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 " Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 01/17] build: add initial infrastructure for meson & ninja builds Bruce Richardson
2017-09-20 10:10 ` Timothy M. Redaelli
2017-09-20 10:24 ` Bruce Richardson
2017-09-20 10:33 ` Timothy M. Redaelli
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 02/17] eal: add eal library to meson build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 03/17] igb_uio: add igb_uio kmod " Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 04/17] build: add DPDK libraries to build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 05/17] build: add buildtools to meson build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 06/17] build: add infrastructure for building PMDs Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 07/17] drivers/mempool: add SW mempool drivers to meson build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 08/17] drivers/crypto: add crypto drv class and null PMD to meson Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 09/17] crypto/openssl: add driver to meson build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 10/17] crypto/qat: " Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 11/17] drivers/net: add net driver support " Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 12/17] drivers/net: add set of vdev PMDs to build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 13/17] drivers/net: add drivers for Intel NICs to meson build Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 14/17] app/test-pmd: add test-pmd " Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 15/17] usertools: add usertools installation " Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 16/17] build: add option to version libs using DPDK version Bruce Richardson
2017-09-13 14:12 ` [dpdk-dev] [PATCH v3 17/17] doc: add documentation on how to add new components to DPDK Bruce Richardson
2017-09-13 17:01 ` [dpdk-dev] [PATCH v3 00/17] build DPDK libs and some drivers with meson/ninja Luca Boccassi
2017-09-14 13:57 ` Bruce Richardson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170912103809.140473-1-bruce.richardson@intel.com \
--to=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=harry.van.haaren@intel.com \
--cc=luca.boccassi@gmail.com \
--cc=nhorman@tuxdriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).