[dpdk-dev] [PATCH] examples: warn about broken pkg-config

Bruce Richardson bruce.richardson at intel.com
Fri Jan 29 17:05:38 CET 2021


On Fri, Jan 29, 2021 at 04:04:18PM +0000, Burakov, Anatoly wrote:
> On 29-Jan-21 3:55 PM, Bruce Richardson wrote:
> > On Fri, Jan 29, 2021 at 04:47:35PM +0100, Thomas Monjalon wrote:
> > > 19/01/2021 14:03, Bruce Richardson:
> > > > Since the examples are designed to be built by end-users using Make, we
> > > > can detect and warn about broken pkg-config on the user's system as part
> > > > of the build process.
> > > > 
> > > > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> > > > ---
> > > >   examples/bbdev_app/Makefile                          |  8 ++++++++
> > > >   examples/bond/Makefile                               |  8 ++++++++
> > > >   examples/cmdline/Makefile                            |  8 ++++++++
> > > >   examples/distributor/Makefile                        |  8 ++++++++
> > > >   examples/ethtool/ethtool-app/Makefile                |  8 ++++++++
> > > >   examples/eventdev_pipeline/Makefile                  |  8 ++++++++
> > > >   examples/fips_validation/Makefile                    |  8 ++++++++
> > > >   examples/flow_classify/Makefile                      |  8 ++++++++
> > > >   examples/flow_filtering/Makefile                     |  8 ++++++++
> > > >   examples/helloworld/Makefile                         |  8 ++++++++
> > > >   examples/ioat/Makefile                               |  8 ++++++++
> > > >   examples/ip_fragmentation/Makefile                   | 11 ++++++++++-
> > > >   examples/ip_pipeline/Makefile                        |  8 ++++++++
> > > >   examples/ip_reassembly/Makefile                      |  8 ++++++++
> > > >   examples/ipsec-secgw/Makefile                        |  8 ++++++++
> > > >   examples/ipv4_multicast/Makefile                     |  8 ++++++++
> > > >   examples/kni/Makefile                                |  8 ++++++++
> > > >   examples/l2fwd-cat/Makefile                          |  8 ++++++++
> > > >   examples/l2fwd-crypto/Makefile                       |  8 ++++++++
> > > >   examples/l2fwd-event/Makefile                        |  8 ++++++++
> > > >   examples/l2fwd-jobstats/Makefile                     |  8 ++++++++
> > > >   examples/l2fwd-keepalive/Makefile                    |  8 ++++++++
> > > >   examples/l2fwd-keepalive/ka-agent/Makefile           |  8 ++++++++
> > > >   examples/l2fwd/Makefile                              |  8 ++++++++
> > > >   examples/l3fwd-acl/Makefile                          |  8 ++++++++
> > > >   examples/l3fwd-graph/Makefile                        | 12 +++++++++++-
> > > >   examples/l3fwd-power/Makefile                        |  8 ++++++++
> > > >   examples/l3fwd/Makefile                              |  8 ++++++++
> > > >   examples/link_status_interrupt/Makefile              |  8 ++++++++
> > > >   .../client_server_mp/mp_client/Makefile              |  8 ++++++++
> > > >   .../client_server_mp/mp_server/Makefile              |  8 ++++++++
> > > >   examples/multi_process/hotplug_mp/Makefile           |  8 ++++++++
> > > >   examples/multi_process/simple_mp/Makefile            |  8 ++++++++
> > > >   examples/multi_process/symmetric_mp/Makefile         |  8 ++++++++
> > > >   examples/ntb/Makefile                                | 11 ++++++++++-
> > > >   examples/packet_ordering/Makefile                    |  8 ++++++++
> > > >   examples/performance-thread/l3fwd-thread/Makefile    |  8 ++++++++
> > > >   examples/performance-thread/pthread_shim/Makefile    |  8 ++++++++
> > > >   examples/pipeline/Makefile                           |  8 ++++++++
> > > >   examples/ptpclient/Makefile                          |  8 ++++++++
> > > >   examples/qos_meter/Makefile                          |  8 ++++++++
> > > >   examples/qos_sched/Makefile                          |  8 ++++++++
> > > >   examples/rxtx_callbacks/Makefile                     |  8 ++++++++
> > > >   examples/server_node_efd/node/Makefile               |  8 ++++++++
> > > >   examples/server_node_efd/server/Makefile             |  8 ++++++++
> > > >   examples/service_cores/Makefile                      |  8 ++++++++
> > > >   examples/skeleton/Makefile                           |  8 ++++++++
> > > >   examples/timer/Makefile                              |  8 ++++++++
> > > >   examples/vdpa/Makefile                               |  8 ++++++++
> > > >   examples/vhost/Makefile                              |  8 ++++++++
> > > >   examples/vhost_blk/Makefile                          |  8 ++++++++
> > > >   examples/vhost_crypto/Makefile                       |  8 ++++++++
> > > >   examples/vm_power_manager/Makefile                   |  8 ++++++++
> > > >   examples/vm_power_manager/guest_cli/Makefile         |  8 ++++++++
> > > >   examples/vmdq/Makefile                               |  8 ++++++++
> > > >   examples/vmdq_dcb/Makefile                           |  8 ++++++++
> > > >   56 files changed, 455 insertions(+), 3 deletions(-)
> > > 
> > > That's a lot of duplicated code that may need some extension in future.
> > > What about having a file examples/common.mk to include?
> > > With the special syntax -include there will be no error in case
> > > ../common.mk does not exist. Deal?
> > > 
> > > ref: https://www.gnu.org/software/make/manual/html_node/Include.html
> > > 
> > 
> > Yes, and no. There is far more boilerplate already in these files which
> > needs to be consolidated, so I see little point in just trying to extract
> > this part out alone. Therefore, what I'd like to see done (if ever someone
> > has the time) is to extract all the boilerplate out to a common makefile,
> > but also add a postinstall script to flatten out the makefile on install,
> > so that each example is once again self-contained.
> > 
> > I've been thinking about this for a while, just haven't got time for it.
> > 
> > /Bruce
> > 
> 
> These makefiles are supposed to be examples. Meaning, it should be possible
> to just take the example app and compile it as is. That means we can't rely
> on external makefiles, they're supposed to be self-contained.
> 
Exactly. Hence the need to "flatten" out the makefiles, by changing the
include to be the actual contents.


More information about the dev mailing list