Hi Wei, 2017-02-23 0:08 GMT+09:00 Wei Yang <richard.weiyang@xxxxxxxxx>: > Current kbuild will build the target again if we run "make M=dir" and "make > M=dir/" by turns, since if_changed will see the prerequisite is changed. > The behavior may confuse the user a little, since actually we are building > the same target and no difference. > > According to current implementation in scripts/Makefile.build, the obj > passed to next level is a directory name with last slash stripped. This > patch strips the last slash in KBUILD_EXTMOD which is assigned from "M=". > > Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx> > --- > Makefile | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index b1037774e8e8..db6ed60928ab 100644 > --- a/Makefile > +++ b/Makefile > @@ -184,13 +184,15 @@ endif > # Old syntax make ... SUBDIRS=$PWD is still supported > # Setting the environment variable KBUILD_EXTMOD take precedence > ifdef SUBDIRS > - KBUILD_EXTMOD ?= $(SUBDIRS) > + __KBUILD_EXTMOD ?= $(SUBDIRS) > endif > > ifeq ("$(origin M)", "command line") > - KBUILD_EXTMOD := $(M) > + __KBUILD_EXTMOD := $(M) > endif > > +KBUILD_EXTMOD = $(patsubst %/,%,$(__KBUILD_EXTMOD)) > + > # If building an external module we do not care about the all: rule > # but instead _all depend on modules > PHONY += all This patch would break a use-case where KBUILD_EXTMOD is given as an environment. Maybe adding the following should be enough? KBUILD_EXTMOD := $(patsubst %/,%,$(KBUILD_EXTMOD)) -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html