From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH 03/11] mk: fix build dependency of drivers on pmdinfogen Date: Thu, 07 Jul 2016 18:21:49 +0200 Message-ID: <2767602.pXmPdzu3XJ@xps13> References: <1467905790-10597-1-git-send-email-thomas.monjalon@6wind.com> <1467905790-10597-4-git-send-email-thomas.monjalon@6wind.com> <20160707155655.GD26064@hmsreliant.think-freely.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Neil Horman Return-path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by dpdk.org (Postfix) with ESMTP id D60BA47CD for ; Thu, 7 Jul 2016 18:21:50 +0200 (CEST) Received: by mail-wm0-f46.google.com with SMTP id z126so155046993wme.0 for ; Thu, 07 Jul 2016 09:21:50 -0700 (PDT) In-Reply-To: <20160707155655.GD26064@hmsreliant.think-freely.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2016-07-07 11:56, Neil Horman: > On Thu, Jul 07, 2016 at 05:36:22PM +0200, Thomas Monjalon wrote: > > When compiling the drivers, some code is generated with pmdinfogen. > > A fresh parallel build can fail if a driver is compiled before pmdinfogen: > > build/buildtools/dpdk-pmdinfogen: Permission denied > > > > There was a dependency declared in drivers/Makefile but it cannot work > > because this file is based on mk/rte.subdir.mk which do not handle > > dependencies. > > > > It is fixed by declaring the whole buildtools as (order only) prerequisite > > of drivers. [...] > > --- a/drivers/Makefile > > +++ b/drivers/Makefile > > @@ -34,6 +34,4 @@ include $(RTE_SDK)/mk/rte.vars.mk > > DIRS-y += net > > DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += crypto > > > > -DEPDIRS-y += buildtools/pmdinfo > > - > > include $(RTE_SDK)/mk/rte.subdir.mk > > diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk > > index fb68af2..354f006 100644 > > --- a/mk/rte.sdkbuild.mk > > +++ b/mk/rte.sdkbuild.mk > > @@ -49,6 +49,7 @@ $(1): $(sort $(LOCAL_DEPDIRS-$(1))) > > endef > > > > $(foreach d,$(ROOTDIRS-y),$(eval $(call depdirs_rule,$(d)))) > > +drivers: | buildtools > > > I'm not sure i understand the reasoning here, DEPDIRS is meant to declare > prerequisites to a directory (and its children) getting built, right? A > parallel make should block any drivers getting built prior to pmdinfogen getting > built. What am I missing? DEPDIRS-y is not parsed at all in the context of rte.subdir.mk. That's why this line was ignored by the build system.