kbuild: simplify command line creation in scripts/mkmakefile
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 18 Sep 2018 08:45:54 +0000 (17:45 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 4 Oct 2018 13:56:02 +0000 (22:56 +0900)
Assuming we never invoke the generated Makefile from outside of
the $(objtree) directory, $(CURDIR) points to the absolute path
of $(objtree).

BTW, 'lastword' is natively supported by GNU Make 3.81+, which
is the current requirement for building the kernel.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/mkmakefile

index 85995f9..412f13f 100755 (executable)
@@ -20,9 +20,6 @@ fi
 cat << EOF > Makefile
 # Automatically generated by $0: don't edit
 
-lastword = \$(word \$(words \$(1)),\$(1))
-makedir := \$(dir \$(call lastword,\$(MAKEFILE_LIST)))
-
 ifeq ("\$(origin V)", "command line")
 VERBOSE := \$(V)
 endif
@@ -30,15 +27,12 @@ ifneq (\$(VERBOSE),1)
 Q := @
 endif
 
-MAKEARGS := -C $1
-MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$(makedir))
-
 MAKEFLAGS += --no-print-directory
 
 .PHONY: __sub-make \$(MAKECMDGOALS)
 
 __sub-make:
-       \$(Q)\$(MAKE) \$(MAKEARGS) \$(MAKECMDGOALS)
+       \$(Q)\$(MAKE) -C $1 O=\$(CURDIR) \$(MAKECMDGOALS)
 
 \$(filter-out __sub-make, \$(MAKECMDGOALS)): __sub-make
        @: