kbuild: support simultaneous "make %config" and "make all"
Kbuild is supposed to support mixed targets. (%config and build targets) But "make all" did nothing if it was run with configuration targets. For example, $ LANG=C make defconfig all HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf *** Default configuration is based on 'x86_64_defconfig' # # configuration written to .config # make: Nothing to be done for `all'. This commits allows "make %config all" and makes sure mixed targets are built one by one in the given order. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Michal Marek <mmarek@suse.cz> CC: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
parent
a86fe35373
commit
9319f4539c
2 changed files with 14 additions and 13 deletions
12
Makefile
12
Makefile
|
@ -500,8 +500,16 @@ ifeq ($(mixed-targets),1)
|
|||
# We're called with mixed targets (*config and build targets).
|
||||
# Handle them one by one.
|
||||
|
||||
%:: FORCE
|
||||
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= $@
|
||||
PHONY += $(MAKECMDGOALS) __build_one_by_one
|
||||
|
||||
$(filter-out __build_one_by_one, $(MAKECMDGOALS)): __build_one_by_one
|
||||
@:
|
||||
|
||||
__build_one_by_one:
|
||||
$(Q)set -e; \
|
||||
for i in $(MAKECMDGOALS); do \
|
||||
$(MAKE) -f $(srctree)/Makefile $$i; \
|
||||
done
|
||||
|
||||
else
|
||||
ifeq ($(config-targets),1)
|
||||
|
|
|
@ -42,18 +42,11 @@ MAKEARGS += O=\$(if \$(patsubst /%,,\$(makedir)),\$(CURDIR)/)\$(patsubst %/,%,\$
|
|||
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
.PHONY: all \$(MAKECMDGOALS)
|
||||
.PHONY: __sub-make \$(MAKECMDGOALS)
|
||||
|
||||
all := \$(filter-out all Makefile,\$(MAKECMDGOALS))
|
||||
__sub-make:
|
||||
\$(Q)\$(MAKE) \$(MAKEARGS) \$(MAKECMDGOALS)
|
||||
|
||||
all:
|
||||
\$(Q)\$(MAKE) \$(MAKEARGS) \$(all)
|
||||
|
||||
Makefile:;
|
||||
|
||||
\$(all): all
|
||||
@:
|
||||
|
||||
%/: all
|
||||
\$(filter-out __sub-make, \$(MAKECMDGOALS)): __sub-make
|
||||
@:
|
||||
EOF
|
||||
|
|
Loading…
Reference in a new issue