[dpdk-dev] mk: allow application to override clean

Message ID 1421993948-24785-1-git-send-email-stephen@networkplumber.org (mailing list archive)
State Rejected, archived
Headers

Commit Message

Stephen Hemminger Jan. 23, 2015, 6:19 a.m. UTC
  From: Stephen Hemminger <shemming@brocade.com>

In some cases application may want to have additional rules
for clean. This can be handled by allowing the double colon
form of rule.

 https://www.gnu.org/software/make/manual/html_node/Double_002dColon.html

Single colon and double colon rules for same target causes
an error.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
  

Comments

Thomas Monjalon Jan. 27, 2015, 11:58 a.m. UTC | #1
> In some cases application may want to have additional rules
> for clean. This can be handled by allowing the double colon
> form of rule.
> 
>  https://www.gnu.org/software/make/manual/html_node/Double_002dColon.html
> 
> Single colon and double colon rules for same target causes
> an error.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

I think this need could also be solved by having a pkgconfig-like file
and not using this rte.app.mk.

Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Applied, despite wrong formatting of the patch

Thanks
  
Olivier Matz Jan. 28, 2015, 11 a.m. UTC | #2
Hi Stephen,

On 01/23/2015 07:19 AM, stephen@networkplumber.org wrote:
> From: Stephen Hemminger <shemming@brocade.com>
>
> In some cases application may want to have additional rules
> for clean. This can be handled by allowing the double colon
> form of rule.
>
>   https://www.gnu.org/software/make/manual/html_node/Double_002dColon.html

There is already a way to do that in dpdk makefiles: you can add
the following code in your application Makefile, before the line
that includes $(RTE_SDK)/mk/rte.app.mk:

POSTCLEAN += my_clean

.PHONY: my_clean
my_clean:
	@echo executed after clean


Regards,
Olivier
  
Thomas Monjalon Jan. 29, 2015, 10:52 a.m. UTC | #3
Hi Stephen,

2015-01-28 12:00, Olivier MATZ:
> Hi Stephen,
> 
> On 01/23/2015 07:19 AM, stephen@networkplumber.org wrote:
> > From: Stephen Hemminger <shemming@brocade.com>
> >
> > In some cases application may want to have additional rules
> > for clean. This can be handled by allowing the double colon
> > form of rule.
> >
> >   https://www.gnu.org/software/make/manual/html_node/Double_002dColon.html
> 
> There is already a way to do that in dpdk makefiles: you can add
> the following code in your application Makefile, before the line
> that includes $(RTE_SDK)/mk/rte.app.mk:
> 
> POSTCLEAN += my_clean
> 
> .PHONY: my_clean
> my_clean:
> 	@echo executed after clean

Does it fit with your needs?
Should we revert your patch? Double-colon rules were avoided in DPDK.
"Double-colon rules are somewhat obscure and not often very useful"
  
John McNamara Jan. 29, 2015, 5:07 p.m. UTC | #4
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Thursday, January 29, 2015 10:52 AM
> To: stephen@networkplumber.org
> Cc: dev@dpdk.org; Stephen Hemminger
> Subject: Re: [dpdk-dev] [PATCH] mk: allow application to override clean
> 
> Should we revert your patch? Double-colon rules were avoided in DPDK.
> "Double-colon rules are somewhat obscure and not often very useful"

Hi,

Also, it looks like DPDK applications that had a 'make clean' target, like dpdk-pktgen, now need to change it to a double colon target to avoid a make error like this:

    $ cd pktgen-dpdk/
    $ make
    /tmp/dpdk/mk/rte.app.mk:331: *** target file `clean' has both : and :: entries.  Stop.

This is complaining that the local pktgen 'clean:' rule conflicts with the DPDK 'clean::' rule.

John.
--
  
Thomas Monjalon Jan. 30, 2015, 10:46 a.m. UTC | #5
2015-01-29 22:36, Stephen Hemminger:
> On Thu, 29 Jan 2015 02:52:45 -0800
> Thomas Monjalon <thomas.monjalon@6wind.com> wrote:
> 
> > Hi Stephen,
> > 
> > 2015-01-28 12:00, Olivier MATZ:
> > > Hi Stephen,
> > > 
> > > On 01/23/2015 07:19 AM, stephen@networkplumber.org wrote:
> > > > From: Stephen Hemminger <shemming@brocade.com>
> > > >
> > > > In some cases application may want to have additional rules
> > > > for clean. This can be handled by allowing the double colon
> > > > form of rule.
> > > >
> > > >   https://www.gnu.org/software/make/manual/html_node/Double_002dColon.html
> > > 
> > > There is already a way to do that in dpdk makefiles: you can add
> > > the following code in your application Makefile, before the line
> > > that includes $(RTE_SDK)/mk/rte.app.mk:
> > > 
> > > POSTCLEAN += my_clean
> > > 
> > > .PHONY: my_clean
> > > my_clean:
> > > 	@echo executed after clean
> > 
> > Does it fit with your needs?
> > Should we revert your patch? Double-colon rules were avoided in DPDK.
> > "Double-colon rules are somewhat obscure and not often very useful"
> > 
> 
> Works for me.

So the commit is now reverted:
	http://dpdk.org/browse/dpdk/commit/?id=785e1a0932b67136
  

Patch

--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -325,7 +325,7 @@ 
 # Clean all generated files
 #
 .PHONY: clean
-clean: _postclean
+clean:: _postclean
 	$(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)

 .PHONY: doclean
---
 mk/rte.app.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 40afb2c..9c8b06a 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -325,7 +325,7 @@  $(RTE_OUTPUT)/app/$(APP).map: $(APP)
 # Clean all generated files
 #
 .PHONY: clean
-clean: _postclean
+clean:: _postclean
 	$(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
 
 .PHONY: doclean