Masahiro-san On 11/09/2017 11:41 PM, Masahiro Yamada wrote: > The previous commit largely optimized the object directory creation. > We can optimize it more for incremental build. > > There are already *.cmd files in the output directory. The existing > *.cmd files have been picked up by $(wildcard ...). Obviously, > directories containing them exist too, so we can skip "mkdir -p". > > With this, Kbuild runs almost zero "mkdir -p" in incremental building. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > --- > > scripts/Makefile.build | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index 89ac180..90ea7a5 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -583,8 +583,13 @@ endif > ifneq ($(KBUILD_SRC),) > # Create directories for object files if directory does not exist > obj-dirs := $(sort $(obj) $(patsubst %/,%, $(dir $(targets)))) > +# If cmd_files exist, their directories apparently exist. Skip mkdir. > +exist-dirs := $(sort $(patsubst %/,%, $(dir $(cmd_files)))) > +obj-dirs := $(strip $(filter-out . $(exist-dirs), $(obj-dirs))) First I am not sure if the dot "." here is necessary, because I guess kbuild always descend into subdir do recursive make, so, very $(cmd_files) should have at least 1 level dir. Second, Assuming that "." probably exists, would it be "./"? because it is what "dir" function returns. -- Sincerely, Cao jin > +ifneq ($(obj-dirs),) > $(shell mkdir -p $(obj-dirs)) > endif > +endif > -- 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