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.richard...@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

Reply via email to