Skip to content

Commit

Permalink
kbuild: make 'archprepare' depend on 'scripts'
Browse files Browse the repository at this point in the history
Before start descending, Kbuild needs to run 'prepare' and 'scripts',
which has been orthogonal to each other.

Going forward, let's consider 'scripts' is a part of the preparation.
This will allow more cleanups.

Move 'scripts' to the prerequisite of 'archprepare', where UML starts
compiling target *.c files.

Signed-off-by: Masahiro Yamada <[email protected]>
  • Loading branch information
masahir0y committed Dec 1, 2018
1 parent 60df1ae commit 059bc9f
Showing 1 changed file with 15 additions and 17 deletions.
32 changes: 15 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
# Error messages still appears in the original language

PHONY += $(vmlinux-dirs)
$(vmlinux-dirs): prepare scripts
$(vmlinux-dirs): prepare
$(Q)$(MAKE) $(build)=$@ need-builtin=1

define filechk_kernel.release
Expand Down Expand Up @@ -1110,7 +1110,7 @@ prepare1: prepare2 $(version_h) $(autoksyms_h) include/generated/utsrelease.h

macroprepare: prepare1 archmacros

archprepare: archheaders archscripts macroprepare scripts_basic gcc-plugins
archprepare: archheaders archscripts macroprepare scripts gcc-plugins

prepare0: archprepare
$(Q)$(MAKE) $(build)=scripts/mod
Expand Down Expand Up @@ -1284,7 +1284,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)

# Target to prepare building external modules
PHONY += modules_prepare
modules_prepare: prepare scripts
modules_prepare: prepare

# Target to install modules
PHONY += modules_install
Expand Down Expand Up @@ -1602,11 +1602,9 @@ help:
@echo ' clean - remove generated files in module directory only'
@echo ''

# Dummies...
PHONY += prepare scripts
PHONY += prepare
prepare:
$(cmd_crmodverdir)
scripts: ;
endif # KBUILD_EXTMOD

clean: $(clean-dirs)
Expand Down Expand Up @@ -1710,33 +1708,33 @@ else
target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
endif

%.s: %.c prepare scripts FORCE
%.s: %.c prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.i: %.c prepare scripts FORCE
%.i: %.c prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.o: %.c prepare scripts FORCE
%.o: %.c prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.lst: %.c prepare scripts FORCE
%.lst: %.c prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.s: %.S prepare scripts FORCE
%.s: %.S prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.o: %.S prepare scripts FORCE
%.o: %.S prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.symtypes: %.c prepare scripts FORCE
%.symtypes: %.c prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.ll: %.c prepare scripts FORCE
%.ll: %.c prepare FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)

# Modules
/: prepare scripts FORCE
/: prepare FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
# Make sure the latest headers are built for Documentation
Documentation/ samples/: headers_install
%/: prepare scripts FORCE
%/: prepare FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
%.ko: prepare scripts FORCE
%.ko: prepare FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir) $(@:.ko=.o)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
Expand Down

0 comments on commit 059bc9f

Please sign in to comment.