[dpdk-dev] mk: add makefile extention support

Message ID 1455039314-86891-1-git-send-email-keith.wiles@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Wiles, Keith Feb. 9, 2016, 5:35 p.m. UTC
  Adding support to the build system to allow for Makefile.XXX
extention to a subtree, which already has Makefiles. These
Makefiles could be from the autotools and others places. Using
the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree
using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in
that subtree.

The main reason I needed this feature was to integrate a autotool
open source projects with DPDK and keep the original Makefiles.

Signed-off-by: Keith Wiles <keith.wiles@intel.com>
---
 mk/internal/rte.extvars.mk |  2 +-
 mk/rte.bsdmodule.mk        |  6 +++---
 mk/rte.extsubdir.mk        |  2 +-
 mk/rte.module.mk           |  6 +++---
 mk/rte.sdkbuild.mk         | 10 +++++-----
 mk/rte.sdkconfig.mk        |  6 +++---
 mk/rte.sdkdepdirs.mk       | 10 +++++-----
 mk/rte.sdkgcov.mk          |  2 +-
 mk/rte.sdktest.mk          |  2 +-
 mk/rte.subdir.mk           | 14 +++++++-------
 10 files changed, 30 insertions(+), 30 deletions(-)
  

Comments

Wiles, Keith Feb. 24, 2016, 3:22 p.m. UTC | #1
>Adding support to the build system to allow for Makefile.XXX

>extention to a subtree, which already has Makefiles. These

>Makefiles could be from the autotools and others places. Using

>the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree

>using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in

>that subtree.

>

>The main reason I needed this feature was to integrate a autotool

>open source projects with DPDK and keep the original Makefiles.

>

>Signed-off-by: Keith Wiles <keith.wiles@intel.com>


Ping, does this patch reasonable and does anyone have any objections or comments?

>---

> mk/internal/rte.extvars.mk |  2 +-

> mk/rte.bsdmodule.mk        |  6 +++---

> mk/rte.extsubdir.mk        |  2 +-

> mk/rte.module.mk           |  6 +++---

> mk/rte.sdkbuild.mk         | 10 +++++-----

> mk/rte.sdkconfig.mk        |  6 +++---

> mk/rte.sdkdepdirs.mk       | 10 +++++-----

> mk/rte.sdkgcov.mk          |  2 +-

> mk/rte.sdktest.mk          |  2 +-

> mk/rte.subdir.mk           | 14 +++++++-------

> 10 files changed, 30 insertions(+), 30 deletions(-)

>

>diff --git a/mk/internal/rte.extvars.mk b/mk/internal/rte.extvars.mk

>index 040d39f..3361551 100644

>--- a/mk/internal/rte.extvars.mk

>+++ b/mk/internal/rte.extvars.mk

>@@ -48,7 +48,7 @@ ifeq ("$(origin M)", "command line")

> RTE_EXTMK := $(abspath $(M))

> endif

> endif

>-RTE_EXTMK ?= $(RTE_SRCDIR)/Makefile

>+RTE_EXTMK ?= $(RTE_SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX)

> export RTE_EXTMK

> 

> # RTE_SDK_BIN must point to .config, include/ and lib/.

>diff --git a/mk/rte.bsdmodule.mk b/mk/rte.bsdmodule.mk

>index 86b92ff..e8a504a 100644

>--- a/mk/rte.bsdmodule.mk

>+++ b/mk/rte.bsdmodule.mk

>@@ -80,7 +80,7 @@ build: _postbuild

> 

> # build module

> $(MODULE).ko: $(SRCS_LINKS)

>-	$(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi

>+	$(Q)if [ ! -f $(notdir Makefile)$(RTE_MKFILE_SUFFIX) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi

> 	$(Q)if [ ! -f $(notdir BSDmakefile) ]; then ln -nfs $(SRCDIR)/BSDmakefile . ; fi

> 	$(Q)MAKEFLAGS= $(BSDMAKE)

> 

>@@ -100,11 +100,11 @@ clean: _postclean

> # do a make clean and remove links

> .PHONY: doclean

> doclean:

>-	$(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi

>+	$(Q)if [ ! -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi

> 	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean

> 	$(Q)$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\

> 		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)

>-	$(Q)if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi

>+	$(Q)if [ -h $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then rm -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ; fi

> 	$(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \

> 		$(INSTALL-FILES-all)

> 

>diff --git a/mk/rte.extsubdir.mk b/mk/rte.extsubdir.mk

>index f50f006..55d4e16 100644

>--- a/mk/rte.extsubdir.mk

>+++ b/mk/rte.extsubdir.mk

>@@ -45,7 +45,7 @@ clean: $(DIRS-y)

> $(DIRS-y):

> 	@echo "== $@"

> 	$(Q)$(MAKE) -C $(@) \

>-		M=$(CURDIR)/$(@)/Makefile \

>+		M=$(CURDIR)/$(@)/Makefile$(RTE_MKFILE_SUFFIX) \

> 		O=$(BASE_OUTPUT)/$(CUR_SUBDIR)/$(@)/$(RTE_TARGET) \

> 		BASE_OUTPUT=$(BASE_OUTPUT) \

> 		CUR_SUBDIR=$(CUR_SUBDIR)/$(@) \

>diff --git a/mk/rte.module.mk b/mk/rte.module.mk

>index 53ed4fe..6477bbe 100644

>--- a/mk/rte.module.mk

>+++ b/mk/rte.module.mk

>@@ -76,7 +76,7 @@ build: _postbuild

> 

> # build module

> $(MODULE).ko: $(SRCS_LINKS)

>-	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi

>+	@if [ ! -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi

> 	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \

> 		CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)

> 

>@@ -97,11 +97,11 @@ clean: _postclean

> # do a make clean and remove links

> .PHONY: doclean

> doclean:

>-	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi

>+	@if [ ! -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi

> 	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean

> 	@$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\

> 		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)

>-	@if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi

>+	@if [ -h $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then rm -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ; fi

> 	@rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \

> 		$(INSTALL-FILES-all)

> 

>diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk

>index 85f603c..3860843 100644

>--- a/mk/rte.sdkbuild.mk

>+++ b/mk/rte.sdkbuild.mk

>@@ -76,15 +76,15 @@ clean: $(CLEANDIRS)

> $(ROOTDIRS-y):

> 	@[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@

> 	@echo "== Build $@"

>-	$(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all

>+	$(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile$(RTE_MKFILE_SUFFIX) -C $(BUILDDIR)/$@ all

> 	@if [ $@ = drivers -a $(CONFIG_RTE_BUILD_COMBINE_LIBS) = y ]; then \

>-		$(MAKE) -f $(RTE_SDK)/lib/Makefile sharelib; \

>+	$(MAKE) -f $(RTE_SDK)/lib/Makefile$(RTE_MKFILE_SUFFIX) sharelib; \

> 	fi

> 

> %_clean:

> 	@echo "== Clean $*"

>-	$(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile -a -d $(BUILDDIR)/$* ]; then \

>-		$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* clean ; \

>+	$(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -a -d $(BUILDDIR)/$* ]; then \

>+	$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -C $(BUILDDIR)/$* clean ; \

> 	fi

> 

> RTE_MAKE_SUBTARGET ?= all

>@@ -93,7 +93,7 @@ RTE_MAKE_SUBTARGET ?= all

> 	@echo $(addsuffix _sub,$(FULL_DEPDIRS-$(*)))

> 	@[ -d $(BUILDDIR)/$* ] || mkdir -p $(BUILDDIR)/$*

> 	@echo "== Build $*"

>-	$(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* \

>+	$(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -C $(BUILDDIR)/$* \

> 		$(RTE_MAKE_SUBTARGET)

> 

> .PHONY: all

>diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk

>index f8d95b1..48d377a 100644

>--- a/mk/rte.sdkconfig.mk

>+++ b/mk/rte.sdkconfig.mk

>@@ -61,7 +61,7 @@ notemplate:

> ifeq ($(RTE_CONFIG_TEMPLATE),)

> config: notemplate

> else

>-config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile

>+config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)

> 	$(Q)$(MAKE) depdirs

> 	@echo "Configuration done"

> endif

>@@ -93,9 +93,9 @@ SDK_RELPATH=$(shell $(RTE_SDK)/scripts/relpath.sh $(abspath $(RTE_SRCDIR)) \

> 				$(abspath $(RTE_OUTPUT)))

> OUTPUT_RELPATH=$(shell $(RTE_SDK)/scripts/relpath.sh $(abspath $(RTE_OUTPUT)) \

> 				$(abspath $(RTE_SRCDIR)))

>-$(RTE_OUTPUT)/Makefile: | $(RTE_OUTPUT)

>+$(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX): | $(RTE_OUTPUT)

> 	$(Q)$(RTE_SDK)/scripts/gen-build-mk.sh $(SDK_RELPATH) $(OUTPUT_RELPATH) \

>-		> $(RTE_OUTPUT)/Makefile

>+		> $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)

> 

> # clean installed files, and generate a new config header file

> # if NODOTCONF variable is defined, don't try to rebuild .config

>diff --git a/mk/rte.sdkdepdirs.mk b/mk/rte.sdkdepdirs.mk

>index bebaf2a..06c49fc 100644

>--- a/mk/rte.sdkdepdirs.mk

>+++ b/mk/rte.sdkdepdirs.mk

>@@ -32,7 +32,7 @@

> ifeq (,$(wildcard $(RTE_OUTPUT)/.config))

>   $(error "need a make config first")

> endif

>-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))

>+ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)))

>   $(error "need a make config first")

> endif

> 

>@@ -43,9 +43,9 @@ depdirs: $(RTE_OUTPUT)/.depdirs

> $(RTE_OUTPUT)/.depdirs: $(RTE_OUTPUT)/.config

> 	@rm -f $(RTE_OUTPUT)/.depdirs ; \

> 	for d in $(ROOTDIRS-y); do \

>-		if [ -f $(RTE_SRCDIR)/$$d/Makefile ]; then \

>+		if [ -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \

> 			[ -d $(BUILDDIR)/$$d ] || mkdir -p $(BUILDDIR)/$$d ; \

>-			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile depdirs \

>+			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depdirs \

> 				>> $(RTE_OUTPUT)/.depdirs ; \

> 		fi ; \

> 	done

>@@ -57,8 +57,8 @@ depgraph:

> 	echo "    node [color=lightblue2, style=filled];" ; \

> 	for d in $(ROOTDIRS-y); do \

> 		echo "    \"root\" -> \"$$d\"" ; \

>-		if [ -f $(RTE_SRCDIR)/$$d/Makefile ]; then \

>-			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile depgraph ; \

>+		if [ -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \

>+			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depgraph ; \

> 		fi ; \

> 	done ; \

> 	echo "}"

>diff --git a/mk/rte.sdkgcov.mk b/mk/rte.sdkgcov.mk

>index fd20fd7..42e4445 100644

>--- a/mk/rte.sdkgcov.mk

>+++ b/mk/rte.sdkgcov.mk

>@@ -40,7 +40,7 @@ ifeq (,$(wildcard $(RTE_OUTPUT)/.config))

> else

>   include $(RTE_SDK)/mk/rte.vars.mk

> endif

>-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))

>+ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)))

>   $(error "need a make config first")

> endif

> 

>diff --git a/mk/rte.sdktest.mk b/mk/rte.sdktest.mk

>index ee25f28..932e853 100644

>--- a/mk/rte.sdktest.mk

>+++ b/mk/rte.sdktest.mk

>@@ -34,7 +34,7 @@ ifeq (,$(wildcard $(RTE_OUTPUT)/.config))

> else

>   include $(RTE_SDK)/mk/rte.vars.mk

> endif

>-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))

>+ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)))

>   $(error "need a make config first")

> endif

> 

>diff --git a/mk/rte.subdir.mk b/mk/rte.subdir.mk

>index 256e64e..999585e 100644

>--- a/mk/rte.subdir.mk

>+++ b/mk/rte.subdir.mk

>@@ -60,15 +60,15 @@ build: _postbuild

> $(DIRS-y):

> 	@[ -d $(CURDIR)/$@ ] || mkdir -p $(CURDIR)/$@

> 	@echo "== Build $S/$@"

>-	@$(MAKE) S=$S/$@ -f $(SRCDIR)/$@/Makefile -C $(CURDIR)/$@ all

>+	@$(MAKE) S=$S/$@ -f $(SRCDIR)/$@/Makefile$(RTE_MKFILE_SUFFIX) -C $(CURDIR)/$@ all

> 

> .PHONY: clean

> clean: _postclean

> 

> %_clean:

> 	@echo "== Clean $S/$*"

>-	@if [ -f $(SRCDIR)/$*/Makefile -a -d $(CURDIR)/$* ]; then \

>-		$(MAKE) S=$S/$* -f $(SRCDIR)/$*/Makefile -C $(CURDIR)/$* clean ; \

>+	@if [ -f $(SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -a -d $(CURDIR)/$* ]; then \

>+	$(MAKE) S=$S/$* -f $(SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -C $(CURDIR)/$* clean ; \

> 	fi

> 	@rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)

> 

>@@ -90,8 +90,8 @@ $(foreach d,$(DIRS-y),$(eval $(call depdirs_rule,$(d))))

> .PHONY: depdirs

> depdirs:

> 	@for d in $(DIRS-y); do \

>-		if [ -f $(SRCDIR)/$$d/Makefile ]; then \

>-			$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile depdirs ; \

>+	if [ -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \

>+		$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depdirs ; \

> 		fi ; \

> 	done

> 

>@@ -99,8 +99,8 @@ depdirs:

> depgraph:

> 	@for d in $(DIRS-y); do \

> 		echo "    \"$(S)\" -> \"$(S)/$$d\"" ; \

>-		if [ -f $(SRCDIR)/$$d/Makefile ]; then \

>-			$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile depgraph ; \

>+		if [ -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \

>+			$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depgraph ; \

> 		fi ; \

> 	done

> 

>-- 

>2.7.0

>

>



Regards,
Keith
  
Thomas Monjalon Feb. 28, 2016, 9 p.m. UTC | #2
Hi,

2016-02-09 11:35, Keith Wiles:
> Adding support to the build system to allow for Makefile.XXX
> extention to a subtree, which already has Makefiles. These
> Makefiles could be from the autotools and others places. Using
> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree
> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in
> that subtree.
> 
> The main reason I needed this feature was to integrate a autotool
> open source projects with DPDK and keep the original Makefiles.

Sorry I fail to understand why it is needed.
Are you trying to add autotool in DPDK? I don't think it is a good approach.
The DPDK must provide a pkgconfig interface to be integrated anywhere.
  
Wiles, Keith Feb. 28, 2016, 9:47 p.m. UTC | #3
>Hi,

>

>2016-02-09 11:35, Keith Wiles:

>> Adding support to the build system to allow for Makefile.XXX

>> extention to a subtree, which already has Makefiles. These

>> Makefiles could be from the autotools and others places. Using

>> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree

>> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in

>> that subtree.

>> 

>> The main reason I needed this feature was to integrate a autotool

>> open source projects with DPDK and keep the original Makefiles.

>

>Sorry I fail to understand why it is needed.

>Are you trying to add autotool in DPDK? I don't think it is a good approach.

>The DPDK must provide a pkgconfig interface to be integrated anywhere.


I was not trying to add autotools to DPDK. On a number of times I wanted to integrate a open source project(s) with DPDK and use DPDK’s build system, but because the open source project already contained Makefile files you can not use DPDK build system without modify or moving the original Makefile files. Using this method I can just add a exported variable and supply my own Makefile.XXX files.

One case was building FreeBSD source, but I did not want to modify FreeBSD Makefiles (or reply on previous built Makefiles as they would not work on Linux anyway) as I was pulling the source down from freebsd.org repo. Using a patch to add the Makefiles with a different suffix allows me to build FreeBSD using DPDK, without having to modify or own the FreeBSD source. I have had this problem a number of times with open source code I did not want to modify, but just build within DPDK build system and adding the support for a different suffix to DPDK provided a clean way. The change does not effect the correct build system and just allows someone to define a new suffix for a given subtree in the code.

>



Regards,
Keith
  
Thomas Monjalon Feb. 29, 2016, 8:21 a.m. UTC | #4
2016-02-28 21:47, Wiles, Keith:
> >Hi,
> >
> >2016-02-09 11:35, Keith Wiles:
> >> Adding support to the build system to allow for Makefile.XXX
> >> extention to a subtree, which already has Makefiles. These
> >> Makefiles could be from the autotools and others places. Using
> >> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree
> >> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in
> >> that subtree.
> >> 
> >> The main reason I needed this feature was to integrate a autotool
> >> open source projects with DPDK and keep the original Makefiles.
> >
> >Sorry I fail to understand why it is needed.
> >Are you trying to add autotool in DPDK? I don't think it is a good approach.
> >The DPDK must provide a pkgconfig interface to be integrated anywhere.
> 
> I was not trying to add autotools to DPDK. On a number of times I wanted to integrate a open source project(s) with DPDK and use DPDK’s build system, but because the open source project already contained Makefile files you can not use DPDK build system without modify or moving the original Makefile files. Using this method I can just add a exported variable and supply my own Makefile.XXX files.
> 
> One case was building FreeBSD source, but I did not want to modify FreeBSD Makefiles (or reply on previous built Makefiles as they would not work on Linux anyway) as I was pulling the source down from freebsd.org repo. Using a patch to add the Makefiles with a different suffix allows me to build FreeBSD using DPDK, without having to modify or own the FreeBSD source. I have had this problem a number of times with open source code I did not want to modify, but just build within DPDK build system and adding the support for a different suffix to DPDK provided a clean way. The change does not effect the correct build system and just allows someone to define a new suffix for a given subtree in the code.

Why would you like to have another project inside the DPDK files tree?
If you want to integrate the lib inside an existing project, the solution
is pkgconfig.
  
Wiles, Keith Feb. 29, 2016, 2:12 p.m. UTC | #5
>2016-02-28 21:47, Wiles, Keith:

>> >Hi,

>> >

>> >2016-02-09 11:35, Keith Wiles:

>> >> Adding support to the build system to allow for Makefile.XXX

>> >> extention to a subtree, which already has Makefiles. These

>> >> Makefiles could be from the autotools and others places. Using

>> >> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree

>> >> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in

>> >> that subtree.

>> >> 

>> >> The main reason I needed this feature was to integrate a autotool

>> >> open source projects with DPDK and keep the original Makefiles.

>> >

>> >Sorry I fail to understand why it is needed.

>> >Are you trying to add autotool in DPDK? I don't think it is a good approach.

>> >The DPDK must provide a pkgconfig interface to be integrated anywhere.

>> 

>> I was not trying to add autotools to DPDK. On a number of times I wanted to integrate a open source project(s) with DPDK and use DPDK’s build system, but because the open source project already contained Makefile files you can not use DPDK build system without modify or moving the original Makefile files. Using this method I can just add a exported variable and supply my own Makefile.XXX files.

>> 

>> One case was building FreeBSD source, but I did not want to modify FreeBSD Makefiles (or reply on previous built Makefiles as they would not work on Linux anyway) as I was pulling the source down from freebsd.org repo. Using a patch to add the Makefiles with a different suffix allows me to build FreeBSD using DPDK, without having to modify or own the FreeBSD source. I have had this problem a number of times with open source code I did not want to modify, but just build within DPDK build system and adding the support for a different suffix to DPDK provided a clean way. The change does not effect the correct build system and just allows someone to define a new suffix for a given subtree in the code.

>

>Why would you like to have another project inside the DPDK files tree?

>If you want to integrate the lib inside an existing project, the solution

>is pkgconfig.


The goal for me was to use DPDK build system for that project, instead of using autotools or some other makefile system. In the case of FreeBSD code, the FreeBSD build system requires FreeBSD tools to be built as the ‘make’ and the Makefiles are very different on a Linux machine.
>



Regards,
Keith
  
Wiles, Keith March 3, 2016, 2:55 p.m. UTC | #6
>>2016-02-28 21:47, Wiles, Keith:

>>> >Hi,

>>> >

>>> >2016-02-09 11:35, Keith Wiles:

>>> >> Adding support to the build system to allow for Makefile.XXX

>>> >> extention to a subtree, which already has Makefiles. These

>>> >> Makefiles could be from the autotools and others places. Using

>>> >> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree

>>> >> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in

>>> >> that subtree.

>>> >> 

>>> >> The main reason I needed this feature was to integrate a autotool

>>> >> open source projects with DPDK and keep the original Makefiles.

>>> >

>>> >Sorry I fail to understand why it is needed.

>>> >Are you trying to add autotool in DPDK? I don't think it is a good approach.

>>> >The DPDK must provide a pkgconfig interface to be integrated anywhere.

>>> 

>>> I was not trying to add autotools to DPDK. On a number of times I wanted to integrate a open source project(s) with DPDK and use DPDK’s build system, but because the open source project already contained Makefile files you can not use DPDK build system without modify or moving the original Makefile files. Using this method I can just add a exported variable and supply my own Makefile.XXX files.

>>> 

>>> One case was building FreeBSD source, but I did not want to modify FreeBSD Makefiles (or reply on previous built Makefiles as they would not work on Linux anyway) as I was pulling the source down from freebsd.org repo. Using a patch to add the Makefiles with a different suffix allows me to build FreeBSD using DPDK, without having to modify or own the FreeBSD source. I have had this problem a number of times with open source code I did not want to modify, but just build within DPDK build system and adding the support for a different suffix to DPDK provided a clean way. The change does not effect the correct build system and just allows someone to define a new suffix for a given subtree in the code.

>>

>>Why would you like to have another project inside the DPDK files tree?

>>If you want to integrate the lib inside an existing project, the solution

>>is pkgconfig.

>

>The goal for me was to use DPDK build system for that project, instead of using autotools or some other makefile system. In the case of FreeBSD code, the FreeBSD build system requires FreeBSD tools to be built as the ‘make’ and the Makefiles are very different on a Linux machine.


Does anyone find this patch useful, I would hate to see this one die as it does not effect the current builds, but adds support for using DPDK build system without having to modify or move the existing Makefiles.

Thanks
++Keith
>>

>

>

>Regards,

>Keith

>

>

>

>

>



Regards,
Keith
  
Thomas Monjalon March 3, 2016, 4:33 p.m. UTC | #7
2016-03-03 14:55, Wiles, Keith:
> >>2016-02-28 21:47, Wiles, Keith:
> >>> >Hi,
> >>> >
> >>> >2016-02-09 11:35, Keith Wiles:
> >>> >> Adding support to the build system to allow for Makefile.XXX
> >>> >> extention to a subtree, which already has Makefiles. These
> >>> >> Makefiles could be from the autotools and others places. Using
> >>> >> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree
> >>> >> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in
> >>> >> that subtree.
> >>> >> 
> >>> >> The main reason I needed this feature was to integrate a autotool
> >>> >> open source projects with DPDK and keep the original Makefiles.
> >>> >
> >>> >Sorry I fail to understand why it is needed.
> >>> >Are you trying to add autotool in DPDK? I don't think it is a good approach.
> >>> >The DPDK must provide a pkgconfig interface to be integrated anywhere.
> >>> 
> >>> I was not trying to add autotools to DPDK. On a number of times I wanted to integrate a open source project(s) with DPDK and use DPDK’s build system, but because the open source project already contained Makefile files you can not use DPDK build system without modify or moving the original Makefile files. Using this method I can just add a exported variable and supply my own Makefile.XXX files.
> >>> 
> >>> One case was building FreeBSD source, but I did not want to modify FreeBSD Makefiles (or reply on previous built Makefiles as they would not work on Linux anyway) as I was pulling the source down from freebsd.org repo. Using a patch to add the Makefiles with a different suffix allows me to build FreeBSD using DPDK, without having to modify or own the FreeBSD source. I have had this problem a number of times with open source code I did not want to modify, but just build within DPDK build system and adding the support for a different suffix to DPDK provided a clean way. The change does not effect the correct build system and just allows someone to define a new suffix for a given subtree in the code.
> >>
> >>Why would you like to have another project inside the DPDK files tree?
> >>If you want to integrate the lib inside an existing project, the solution
> >>is pkgconfig.
> >
> >The goal for me was to use DPDK build system for that project, instead of using autotools or some other makefile system. In the case of FreeBSD code, the FreeBSD build system requires FreeBSD tools to be built as the ‘make’ and the Makefiles are very different on a Linux machine.
> 
> Does anyone find this patch useful, I would hate to see this one die as it does not effect the current builds, but adds support for using DPDK build system without having to modify or move the existing Makefiles.

I would hate making the build system even more complicated to use it
for something which is not its role.
It opens the door to feature requests which are clearly out of its scope.
  
Wiles, Keith March 3, 2016, 5:53 p.m. UTC | #8
>2016-03-03 14:55, Wiles, Keith:

>> >>2016-02-28 21:47, Wiles, Keith:

>> >>> >Hi,

>> >>> >

>> >>> >2016-02-09 11:35, Keith Wiles:

>> >>> >> Adding support to the build system to allow for Makefile.XXX

>> >>> >> extention to a subtree, which already has Makefiles. These

>> >>> >> Makefiles could be from the autotools and others places. Using

>> >>> >> the Makefile extention RTE_MKFILE_SUFFIX in a makefile subtree

>> >>> >> using 'export RTE_MKFILE_SUFFIX=.XXX' to use Makefile.XXX in

>> >>> >> that subtree.

>> >>> >> 

>> >>> >> The main reason I needed this feature was to integrate a autotool

>> >>> >> open source projects with DPDK and keep the original Makefiles.

>> >>> >

>> >>> >Sorry I fail to understand why it is needed.

>> >>> >Are you trying to add autotool in DPDK? I don't think it is a good approach.

>> >>> >The DPDK must provide a pkgconfig interface to be integrated anywhere.

>> >>> 

>> >>> I was not trying to add autotools to DPDK. On a number of times I wanted to integrate a open source project(s) with DPDK and use DPDK’s build system, but because the open source project already contained Makefile files you can not use DPDK build system without modify or moving the original Makefile files. Using this method I can just add a exported variable and supply my own Makefile.XXX files.

>> >>> 

>> >>> One case was building FreeBSD source, but I did not want to modify FreeBSD Makefiles (or reply on previous built Makefiles as they would not work on Linux anyway) as I was pulling the source down from freebsd.org repo. Using a patch to add the Makefiles with a different suffix allows me to build FreeBSD using DPDK, without having to modify or own the FreeBSD source. I have had this problem a number of times with open source code I did not want to modify, but just build within DPDK build system and adding the support for a different suffix to DPDK provided a clean way. The change does not effect the correct build system and just allows someone to define a new suffix for a given subtree in the code.

>> >>

>> >>Why would you like to have another project inside the DPDK files tree?

>> >>If you want to integrate the lib inside an existing project, the solution

>> >>is pkgconfig.

>> >

>> >The goal for me was to use DPDK build system for that project, instead of using autotools or some other makefile system. In the case of FreeBSD code, the FreeBSD build system requires FreeBSD tools to be built as the ‘make’ and the Makefiles are very different on a Linux machine.

>> 

>> Does anyone find this patch useful, I would hate to see this one die as it does not effect the current builds, but adds support for using DPDK build system without having to modify or move the existing Makefiles.

>

>I would hate making the build system even more complicated to use it

>for something which is not its role.

>It opens the door to feature requests which are clearly out of its scope.


Ok, Thanks I will change the status in patchwork to rejected.
>

>



Regards,
Keith
  

Patch

diff --git a/mk/internal/rte.extvars.mk b/mk/internal/rte.extvars.mk
index 040d39f..3361551 100644
--- a/mk/internal/rte.extvars.mk
+++ b/mk/internal/rte.extvars.mk
@@ -48,7 +48,7 @@  ifeq ("$(origin M)", "command line")
 RTE_EXTMK := $(abspath $(M))
 endif
 endif
-RTE_EXTMK ?= $(RTE_SRCDIR)/Makefile
+RTE_EXTMK ?= $(RTE_SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX)
 export RTE_EXTMK
 
 # RTE_SDK_BIN must point to .config, include/ and lib/.
diff --git a/mk/rte.bsdmodule.mk b/mk/rte.bsdmodule.mk
index 86b92ff..e8a504a 100644
--- a/mk/rte.bsdmodule.mk
+++ b/mk/rte.bsdmodule.mk
@@ -80,7 +80,7 @@  build: _postbuild
 
 # build module
 $(MODULE).ko: $(SRCS_LINKS)
-	$(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
+	$(Q)if [ ! -f $(notdir Makefile)$(RTE_MKFILE_SUFFIX) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi
 	$(Q)if [ ! -f $(notdir BSDmakefile) ]; then ln -nfs $(SRCDIR)/BSDmakefile . ; fi
 	$(Q)MAKEFLAGS= $(BSDMAKE)
 
@@ -100,11 +100,11 @@  clean: _postclean
 # do a make clean and remove links
 .PHONY: doclean
 doclean:
-	$(Q)if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
+	$(Q)if [ ! -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi
 	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
 	$(Q)$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
 		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
-	$(Q)if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
+	$(Q)if [ -h $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then rm -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ; fi
 	$(Q)rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \
 		$(INSTALL-FILES-all)
 
diff --git a/mk/rte.extsubdir.mk b/mk/rte.extsubdir.mk
index f50f006..55d4e16 100644
--- a/mk/rte.extsubdir.mk
+++ b/mk/rte.extsubdir.mk
@@ -45,7 +45,7 @@  clean: $(DIRS-y)
 $(DIRS-y):
 	@echo "== $@"
 	$(Q)$(MAKE) -C $(@) \
-		M=$(CURDIR)/$(@)/Makefile \
+		M=$(CURDIR)/$(@)/Makefile$(RTE_MKFILE_SUFFIX) \
 		O=$(BASE_OUTPUT)/$(CUR_SUBDIR)/$(@)/$(RTE_TARGET) \
 		BASE_OUTPUT=$(BASE_OUTPUT) \
 		CUR_SUBDIR=$(CUR_SUBDIR)/$(@) \
diff --git a/mk/rte.module.mk b/mk/rte.module.mk
index 53ed4fe..6477bbe 100644
--- a/mk/rte.module.mk
+++ b/mk/rte.module.mk
@@ -76,7 +76,7 @@  build: _postbuild
 
 # build module
 $(MODULE).ko: $(SRCS_LINKS)
-	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
+	@if [ ! -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi
 	@$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) \
 		CC="$(KERNELCC)" CROSS_COMPILE=$(CROSS) V=$(if $V,1,0)
 
@@ -97,11 +97,11 @@  clean: _postclean
 # do a make clean and remove links
 .PHONY: doclean
 doclean:
-	@if [ ! -f $(notdir Makefile) ]; then ln -nfs $(SRCDIR)/Makefile . ; fi
+	@if [ ! -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then ln -nfs $(SRCDIR)/Makefile$(RTE_MKFILE_SUFFIX) . ; fi
 	$(Q)$(MAKE) -C $(RTE_KERNELDIR) M=$(CURDIR) O=$(RTE_KERNELDIR) clean
 	@$(foreach FILE,$(SRCS-y) $(SRCS-n) $(SRCS-),\
 		if [ -h $(notdir $(FILE)) ]; then rm -f $(notdir $(FILE)) ; fi ;)
-	@if [ -h $(notdir Makefile) ]; then rm -f $(notdir Makefile) ; fi
+	@if [ -h $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ]; then rm -f $(notdir Makefile$(RTE_MKFILE_SUFFIX)) ; fi
 	@rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS) \
 		$(INSTALL-FILES-all)
 
diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk
index 85f603c..3860843 100644
--- a/mk/rte.sdkbuild.mk
+++ b/mk/rte.sdkbuild.mk
@@ -76,15 +76,15 @@  clean: $(CLEANDIRS)
 $(ROOTDIRS-y):
 	@[ -d $(BUILDDIR)/$@ ] || mkdir -p $(BUILDDIR)/$@
 	@echo "== Build $@"
-	$(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile -C $(BUILDDIR)/$@ all
+	$(Q)$(MAKE) S=$@ -f $(RTE_SRCDIR)/$@/Makefile$(RTE_MKFILE_SUFFIX) -C $(BUILDDIR)/$@ all
 	@if [ $@ = drivers -a $(CONFIG_RTE_BUILD_COMBINE_LIBS) = y ]; then \
-		$(MAKE) -f $(RTE_SDK)/lib/Makefile sharelib; \
+	$(MAKE) -f $(RTE_SDK)/lib/Makefile$(RTE_MKFILE_SUFFIX) sharelib; \
 	fi
 
 %_clean:
 	@echo "== Clean $*"
-	$(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile -a -d $(BUILDDIR)/$* ]; then \
-		$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* clean ; \
+	$(Q)if [ -f $(RTE_SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -a -d $(BUILDDIR)/$* ]; then \
+	$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -C $(BUILDDIR)/$* clean ; \
 	fi
 
 RTE_MAKE_SUBTARGET ?= all
@@ -93,7 +93,7 @@  RTE_MAKE_SUBTARGET ?= all
 	@echo $(addsuffix _sub,$(FULL_DEPDIRS-$(*)))
 	@[ -d $(BUILDDIR)/$* ] || mkdir -p $(BUILDDIR)/$*
 	@echo "== Build $*"
-	$(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile -C $(BUILDDIR)/$* \
+	$(Q)$(MAKE) S=$* -f $(RTE_SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -C $(BUILDDIR)/$* \
 		$(RTE_MAKE_SUBTARGET)
 
 .PHONY: all
diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk
index f8d95b1..48d377a 100644
--- a/mk/rte.sdkconfig.mk
+++ b/mk/rte.sdkconfig.mk
@@ -61,7 +61,7 @@  notemplate:
 ifeq ($(RTE_CONFIG_TEMPLATE),)
 config: notemplate
 else
-config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile
+config: $(RTE_OUTPUT)/include/rte_config.h $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)
 	$(Q)$(MAKE) depdirs
 	@echo "Configuration done"
 endif
@@ -93,9 +93,9 @@  SDK_RELPATH=$(shell $(RTE_SDK)/scripts/relpath.sh $(abspath $(RTE_SRCDIR)) \
 				$(abspath $(RTE_OUTPUT)))
 OUTPUT_RELPATH=$(shell $(RTE_SDK)/scripts/relpath.sh $(abspath $(RTE_OUTPUT)) \
 				$(abspath $(RTE_SRCDIR)))
-$(RTE_OUTPUT)/Makefile: | $(RTE_OUTPUT)
+$(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX): | $(RTE_OUTPUT)
 	$(Q)$(RTE_SDK)/scripts/gen-build-mk.sh $(SDK_RELPATH) $(OUTPUT_RELPATH) \
-		> $(RTE_OUTPUT)/Makefile
+		> $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)
 
 # clean installed files, and generate a new config header file
 # if NODOTCONF variable is defined, don't try to rebuild .config
diff --git a/mk/rte.sdkdepdirs.mk b/mk/rte.sdkdepdirs.mk
index bebaf2a..06c49fc 100644
--- a/mk/rte.sdkdepdirs.mk
+++ b/mk/rte.sdkdepdirs.mk
@@ -32,7 +32,7 @@ 
 ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
   $(error "need a make config first")
 endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
+ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)))
   $(error "need a make config first")
 endif
 
@@ -43,9 +43,9 @@  depdirs: $(RTE_OUTPUT)/.depdirs
 $(RTE_OUTPUT)/.depdirs: $(RTE_OUTPUT)/.config
 	@rm -f $(RTE_OUTPUT)/.depdirs ; \
 	for d in $(ROOTDIRS-y); do \
-		if [ -f $(RTE_SRCDIR)/$$d/Makefile ]; then \
+		if [ -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \
 			[ -d $(BUILDDIR)/$$d ] || mkdir -p $(BUILDDIR)/$$d ; \
-			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile depdirs \
+			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depdirs \
 				>> $(RTE_OUTPUT)/.depdirs ; \
 		fi ; \
 	done
@@ -57,8 +57,8 @@  depgraph:
 	echo "    node [color=lightblue2, style=filled];" ; \
 	for d in $(ROOTDIRS-y); do \
 		echo "    \"root\" -> \"$$d\"" ; \
-		if [ -f $(RTE_SRCDIR)/$$d/Makefile ]; then \
-			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile depgraph ; \
+		if [ -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \
+			$(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depgraph ; \
 		fi ; \
 	done ; \
 	echo "}"
diff --git a/mk/rte.sdkgcov.mk b/mk/rte.sdkgcov.mk
index fd20fd7..42e4445 100644
--- a/mk/rte.sdkgcov.mk
+++ b/mk/rte.sdkgcov.mk
@@ -40,7 +40,7 @@  ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
 else
   include $(RTE_SDK)/mk/rte.vars.mk
 endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
+ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)))
   $(error "need a make config first")
 endif
 
diff --git a/mk/rte.sdktest.mk b/mk/rte.sdktest.mk
index ee25f28..932e853 100644
--- a/mk/rte.sdktest.mk
+++ b/mk/rte.sdktest.mk
@@ -34,7 +34,7 @@  ifeq (,$(wildcard $(RTE_OUTPUT)/.config))
 else
   include $(RTE_SDK)/mk/rte.vars.mk
 endif
-ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
+ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile$(RTE_MKFILE_SUFFIX)))
   $(error "need a make config first")
 endif
 
diff --git a/mk/rte.subdir.mk b/mk/rte.subdir.mk
index 256e64e..999585e 100644
--- a/mk/rte.subdir.mk
+++ b/mk/rte.subdir.mk
@@ -60,15 +60,15 @@  build: _postbuild
 $(DIRS-y):
 	@[ -d $(CURDIR)/$@ ] || mkdir -p $(CURDIR)/$@
 	@echo "== Build $S/$@"
-	@$(MAKE) S=$S/$@ -f $(SRCDIR)/$@/Makefile -C $(CURDIR)/$@ all
+	@$(MAKE) S=$S/$@ -f $(SRCDIR)/$@/Makefile$(RTE_MKFILE_SUFFIX) -C $(CURDIR)/$@ all
 
 .PHONY: clean
 clean: _postclean
 
 %_clean:
 	@echo "== Clean $S/$*"
-	@if [ -f $(SRCDIR)/$*/Makefile -a -d $(CURDIR)/$* ]; then \
-		$(MAKE) S=$S/$* -f $(SRCDIR)/$*/Makefile -C $(CURDIR)/$* clean ; \
+	@if [ -f $(SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -a -d $(CURDIR)/$* ]; then \
+	$(MAKE) S=$S/$* -f $(SRCDIR)/$*/Makefile$(RTE_MKFILE_SUFFIX) -C $(CURDIR)/$* clean ; \
 	fi
 	@rm -f $(_BUILD_TARGETS) $(_INSTALL_TARGETS) $(_CLEAN_TARGETS)
 
@@ -90,8 +90,8 @@  $(foreach d,$(DIRS-y),$(eval $(call depdirs_rule,$(d))))
 .PHONY: depdirs
 depdirs:
 	@for d in $(DIRS-y); do \
-		if [ -f $(SRCDIR)/$$d/Makefile ]; then \
-			$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile depdirs ; \
+	if [ -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \
+		$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depdirs ; \
 		fi ; \
 	done
 
@@ -99,8 +99,8 @@  depdirs:
 depgraph:
 	@for d in $(DIRS-y); do \
 		echo "    \"$(S)\" -> \"$(S)/$$d\"" ; \
-		if [ -f $(SRCDIR)/$$d/Makefile ]; then \
-			$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile depgraph ; \
+		if [ -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) ]; then \
+			$(MAKE) S=$S/$$d -f $(SRCDIR)/$$d/Makefile$(RTE_MKFILE_SUFFIX) depgraph ; \
 		fi ; \
 	done