Hi Yamada-san, On 19/02/2019 09:33, Masahiro Yamada wrote: > gdb-scripts is not a real object, but (ab)used like a phony target. > > Rewrite the code in a more Kbuild-ish way. Add symlinks to extra-y > and use if_changed. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > --- > > scripts/gdb/linux/Makefile | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/scripts/gdb/linux/Makefile b/scripts/gdb/linux/Makefile > index 7545806..3df395a 100644 > --- a/scripts/gdb/linux/Makefile > +++ b/scripts/gdb/linux/Makefile > @@ -1,13 +1,17 @@ > # SPDX-License-Identifier: GPL-2.0 > -always := gdb-scripts > > -SRCTREE := $(abspath $(srctree)) > - > -$(obj)/gdb-scripts: > ifneq ($(KBUILD_SRC),) > - $(Q)ln -fsn $(SRCTREE)/$(obj)/*.py $(objtree)/$(obj) > + > +symlinks := $(patsubst $(srctree)/$(src)/%,%,$(wildcard $(srctree)/$(src)/*.py)) > + > +quiet_cmd_symlink = SYMLINK $@ > + cmd_symlink = ln -fsn $(patsubst $(obj)/%,$(abspath $(srctree))/$(src)/%,$@) $@ > + > +extra-y += $(symlinks) > +$(addprefix $(obj)/, $(symlinks)): FORCE > + $(call if_changed,symlink) > + > endif > - @: > > quiet_cmd_gen_constants_py = GEN $@ > cmd_gen_constants_py = \ > @@ -18,4 +22,4 @@ extra-y += constants.py > $(obj)/constants.py: $(src)/constants.py.in FORCE > $(call if_changed_dep,gen_constants_py) > > -clean-files := *.pyc *.pyo $(if $(KBUILD_SRC),*.py) > +clean-files := *.pyc *.pyo Perhaps this answers my earlier question. I guess the extra-y hook is somehow handling the clean up of these files? Aha - yes, I've just found it in Documentation/kbuild/makefiles.txt: > === 5 Kbuild clean infrastructure > ... > Kbuild knows targets listed in $(hostprogs-y), $(hostprogs-m), $(always), $(extra-y) and $(targets). They are all deleted during "make clean". Perfect, so this is much better. Reviewed-by: Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx> -- Regards -- Kieran