On Thu, Sep 10, 2020 at 01:55:25AM +0000, SteveX Yang wrote: > meson build cannot find the header rte_eth_bond.h when build DPDK first > time or never installed DPDK lib after build via meson/ninja. > > Because the corresponding header directory isn't included after enabled > RTE_LIBRTE_PMD_BOND macro. > > Add the header file location and link library to meson.build of test-pmd > > Signed-off-by: SteveX Yang <stevex.y...@intel.com> > ---
While there is a problem here, I think the solution may itself be incomplete. Since the bonding PMD is always enabled by default, it's support should always be enabled in testpmd. Therefore, testpmd should be using the RTE_LIBRTE_BOND_PMD macro internally, not RTE_LIBRTE_PMD_BOND one. Once that macro is changed, the issue you report becomes generally visible. > app/test-pmd/meson.build | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build > index ea56e547b..db0ff02eb 100644 > --- a/app/test-pmd/meson.build > +++ b/app/test-pmd/meson.build > @@ -4,6 +4,11 @@ > # override default name to drop the hyphen > name = 'testpmd' > cflags += '-Wno-deprecated-declarations' > + > +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') > + cflags += '-I' + meson.source_root() + '/drivers/net/bonding' > +endif > + Don't need this block. Adding the dependency automatically pulls in header paths. > sources = files('5tswap.c', > 'cmdline.c', > 'cmdline_flow.c', > @@ -25,6 +30,11 @@ sources = files('5tswap.c', > 'util.c') > > deps += ['ethdev', 'gro', 'gso', 'cmdline', 'metrics', 'meter', 'bus_pci'] > + > +if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') > + deps += 'pmd_bond' > +endif > + The code is right, but just note that the other blocks like this aren't separated by whitespace. Since they are quite readable as they are, I'd avoid adding in the unnecessary whitespace and just keep it consistent. > if dpdk_conf.has('RTE_LIBRTE_PDUMP') > deps += 'pdump' > endif > -- > 2.17.1 >