[dpdk-dev] [PATCH 0/8] Support sample applications with new build system

Bruce Richardson bruce.richardson at intel.com
Thu Oct 19 10:39:13 CEST 2017


On Wed, Oct 18, 2017 at 06:11:51PM +0100, Luca Boccassi wrote:
> On Tue, 2017-10-17 at 17:12 +0100, Bruce Richardson wrote:
> > This patchset enables sample apps to be used with the new meson build
> > system. The work is really three-fold:
> > 
> > * fix issues and pre-requisites to get the sample apps compiling,
> > such as
> >   ensuring that all needed PMDs are enabled, e.g. bond PMD for bond
> > example
> > * allow examples - one or more - to built as part of a regular build,
> > so as
> >   to allow easier testing of feature X using its sample app
> > * change the example app Makefiles so that when compiled as
> > standalone
> >   entities they use the pkg-config information when available, and
> > only the
> >   DPDK makefile system if pkgconfig info is not installed.
> > 
> > Bruce Richardson (8):
> >   build: add maths library to libs in pkg-config file
> >   build: add detection and use of libnuma
> >   lpm: install vector header files
> >   event: add skeleton and sw eventdevs to meson build
> >   net/bonding: add to meson build
> >   examples: allow building examples as part of a meson build
> >   examples: put app name and sources at top of makefiles
> >   examples: use pkg-config info when building examples
> > 
> >  config/meson.build                            | 11 ++++
> >  drivers/event/meson.build                     | 35 ++++++++++
> >  drivers/event/skeleton/meson.build            | 32 +++++++++
> >  drivers/event/sw/meson.build                  | 37 +++++++++++
> >  drivers/meson.build                           |  2 +-
> >  drivers/net/bonding/meson.build               | 39 +++++++++++
> >  drivers/net/meson.build                       |  3 +-
> >  examples/bond/Makefile                        | 35 ++++++++--
> >  examples/bond/meson.build                     | 40 ++++++++++++
> >  examples/cmdline/Makefile                     | 29 +++++++++
> >  examples/cmdline/meson.build                  | 39 +++++++++++
> >  examples/distributor/Makefile                 | 35 ++++++++--
> >  examples/distributor/meson.build              | 40 ++++++++++++
> >  examples/eventdev_pipeline_sw_pmd/Makefile    | 35 ++++++++--
> >  examples/eventdev_pipeline_sw_pmd/meson.build | 40 ++++++++++++
> >  examples/exception_path/Makefile              | 35 ++++++++--
> >  examples/exception_path/meson.build           | 39 +++++++++++
> >  examples/helloworld/Makefile                  | 35 ++++++++--
> >  examples/helloworld/meson.build               | 39 +++++++++++
> >  examples/ip_fragmentation/Makefile            | 35 ++++++++--
> >  examples/ip_fragmentation/meson.build         | 40 ++++++++++++
> >  examples/ip_pipeline/Makefile                 | 93
> > ++++++++++++++++++---------
> >  examples/ip_pipeline/meson.build              | 63
> > ++++++++++++++++++
> >  examples/ip_reassembly/Makefile               | 35 ++++++++--
> >  examples/ip_reassembly/meson.build            | 40 ++++++++++++
> >  examples/ipsec-secgw/Makefile                 | 55 +++++++++++-----
> >  examples/ipsec-secgw/meson.build              | 41 ++++++++++++
> >  examples/ipv4_multicast/Makefile              | 35 ++++++++--
> >  examples/ipv4_multicast/meson.build           | 40 ++++++++++++
> >  examples/kni/Makefile                         | 34 ++++++++--
> >  examples/kni/meson.build                      | 40 ++++++++++++
> >  examples/l2fwd-cat/Makefile                   | 37 +++++++++--
> >  examples/l2fwd-cat/meson.build                | 42 ++++++++++++
> >  examples/l2fwd-crypto/Makefile                | 34 ++++++++--
> >  examples/l2fwd-crypto/meson.build             | 40 ++++++++++++
> >  examples/l2fwd-jobstats/Makefile              | 34 ++++++++--
> >  examples/l2fwd-jobstats/meson.build           | 40 ++++++++++++
> >  examples/l2fwd-keepalive/Makefile             | 36 +++++++++--
> >  examples/l2fwd-keepalive/meson.build          | 40 ++++++++++++
> >  examples/l2fwd/Makefile                       | 34 ++++++++--
> >  examples/l2fwd/meson.build                    | 39 +++++++++++
> >  examples/l3fwd-acl/Makefile                   | 34 ++++++++--
> >  examples/l3fwd-acl/meson.build                | 40 ++++++++++++
> >  examples/l3fwd-power/Makefile                 | 34 ++++++++--
> >  examples/l3fwd-power/meson.build              | 40 ++++++++++++
> >  examples/l3fwd-vf/Makefile                    | 34 ++++++++--
> >  examples/l3fwd-vf/meson.build                 | 40 ++++++++++++
> >  examples/l3fwd/Makefile                       | 34 ++++++++--
> >  examples/l3fwd/meson.build                    | 40 ++++++++++++
> >  examples/link_status_interrupt/Makefile       | 34 ++++++++--
> >  examples/link_status_interrupt/meson.build    | 39 +++++++++++
> >  examples/load_balancer/Makefile               | 34 ++++++++--
> >  examples/load_balancer/meson.build            | 40 ++++++++++++
> >  examples/meson.build                          | 59 +++++++++++++++++
> >  examples/multi_process/l2fwd_fork/Makefile    | 12 ++--
> >  examples/packet_ordering/Makefile             | 34 ++++++++--
> >  examples/packet_ordering/meson.build          | 40 ++++++++++++
> >  examples/ptpclient/Makefile                   | 34 ++++++++--
> >  examples/ptpclient/meson.build                | 39 +++++++++++
> >  examples/qos_meter/Makefile                   | 34 ++++++++--
> >  examples/qos_meter/meson.build                | 40 ++++++++++++
> >  examples/qos_sched/Makefile                   | 34 ++++++++--
> >  examples/qos_sched/meson.build                | 41 ++++++++++++
> >  examples/rxtx_callbacks/Makefile              | 34 ++++++++--
> >  examples/rxtx_callbacks/meson.build           | 39 +++++++++++
> >  examples/skeleton/Makefile                    | 34 ++++++++--
> >  examples/skeleton/meson.build                 | 39 +++++++++++
> >  examples/tep_termination/Makefile             | 34 ++++++++--
> >  examples/tep_termination/meson.build          | 40 ++++++++++++
> >  examples/timer/Makefile                       | 34 ++++++++--
> >  examples/timer/meson.build                    | 40 ++++++++++++
> >  examples/vhost/Makefile                       | 34 ++++++++--
> >  examples/vhost/meson.build                    | 40 ++++++++++++
> >  examples/vhost_scsi/Makefile                  | 39 ++++++++---
> >  examples/vhost_scsi/meson.build               | 41 ++++++++++++
> >  examples/vmdq/Makefile                        | 34 ++++++++--
> >  examples/vmdq/meson.build                     | 39 +++++++++++
> >  examples/vmdq_dcb/Makefile                    | 34 ++++++++--
> >  examples/vmdq_dcb/meson.build                 | 39 +++++++++++
> >  lib/librte_eal/linuxapp/eal/meson.build       |  3 +
> >  lib/librte_lpm/meson.build                    |  3 +
> >  lib/librte_vhost/meson.build                  |  3 +
> >  meson.build                                   |  5 ++
> >  meson_options.txt                             |  2 +
> >  84 files changed, 2699 insertions(+), 248 deletions(-)
> >  create mode 100644 drivers/event/meson.build
> >  create mode 100644 drivers/event/skeleton/meson.build
> >  create mode 100644 drivers/event/sw/meson.build
> >  create mode 100644 drivers/net/bonding/meson.build
> >  create mode 100644 examples/bond/meson.build
> >  create mode 100644 examples/cmdline/meson.build
> >  create mode 100644 examples/distributor/meson.build
> >  create mode 100644 examples/eventdev_pipeline_sw_pmd/meson.build
> >  create mode 100644 examples/exception_path/meson.build
> >  create mode 100644 examples/helloworld/meson.build
> >  create mode 100644 examples/ip_fragmentation/meson.build
> >  create mode 100644 examples/ip_pipeline/meson.build
> >  create mode 100644 examples/ip_reassembly/meson.build
> >  create mode 100644 examples/ipsec-secgw/meson.build
> >  create mode 100644 examples/ipv4_multicast/meson.build
> >  create mode 100644 examples/kni/meson.build
> >  create mode 100644 examples/l2fwd-cat/meson.build
> >  create mode 100644 examples/l2fwd-crypto/meson.build
> >  create mode 100644 examples/l2fwd-jobstats/meson.build
> >  create mode 100644 examples/l2fwd-keepalive/meson.build
> >  create mode 100644 examples/l2fwd/meson.build
> >  create mode 100644 examples/l3fwd-acl/meson.build
> >  create mode 100644 examples/l3fwd-power/meson.build
> >  create mode 100644 examples/l3fwd-vf/meson.build
> >  create mode 100644 examples/l3fwd/meson.build
> >  create mode 100644 examples/link_status_interrupt/meson.build
> >  create mode 100644 examples/load_balancer/meson.build
> >  create mode 100644 examples/meson.build
> >  create mode 100644 examples/packet_ordering/meson.build
> >  create mode 100644 examples/ptpclient/meson.build
> >  create mode 100644 examples/qos_meter/meson.build
> >  create mode 100644 examples/qos_sched/meson.build
> >  create mode 100644 examples/rxtx_callbacks/meson.build
> >  create mode 100644 examples/skeleton/meson.build
> >  create mode 100644 examples/tep_termination/meson.build
> >  create mode 100644 examples/timer/meson.build
> >  create mode 100644 examples/vhost/meson.build
> >  create mode 100644 examples/vhost_scsi/meson.build
> >  create mode 100644 examples/vmdq/meson.build
> >  create mode 100644 examples/vmdq_dcb/meson.build
> 
> Reviewed-by: Luca Boccassi <bluca at debian.org>
> 
> Forgot to write that regardless of what we can do with the static +
> dynamic builds, the series looks good. Thanks!
> 
Yes, still a few loose ends on the static+dynamic, e.g. how to link
testpmd and samples by default. My current thinking is to use the meson
"default_library" option to select that.

/Bruce


More information about the dev mailing list