Commit 60eab877 authored by Michal Marek's avatar Michal Marek

Merge branch 'kbuild/clean' into kbuild/kbuild

parents c3e2f196 88d7be03
...@@ -779,6 +779,13 @@ This will delete the directory debian, including all subdirectories. ...@@ -779,6 +779,13 @@ This will delete the directory debian, including all subdirectories.
Kbuild will assume the directories to be in the same relative path as the Kbuild will assume the directories to be in the same relative path as the
Makefile if no absolute path is specified (path does not start with '/'). Makefile if no absolute path is specified (path does not start with '/').
To exclude certain files from make clean, use the $(no-clean-files) variable.
This is only a special case used in the top level Kbuild file:
Example:
#Kbuild
no-clean-files := $(bounds-file) $(offsets-file)
Usually kbuild descends down in subdirectories due to "obj-* := dir/", Usually kbuild descends down in subdirectories due to "obj-* := dir/",
but in the architecture makefiles where the kbuild infrastructure but in the architecture makefiles where the kbuild infrastructure
is not sufficient this sometimes needs to be explicit. is not sufficient this sometimes needs to be explicit.
......
...@@ -94,5 +94,5 @@ PHONY += missing-syscalls ...@@ -94,5 +94,5 @@ PHONY += missing-syscalls
missing-syscalls: scripts/checksyscalls.sh FORCE missing-syscalls: scripts/checksyscalls.sh FORCE
$(call cmd,syscalls) $(call cmd,syscalls)
# Delete all targets during make clean # Keep these two files during make clean
clean-files := $(addprefix $(objtree)/,$(filter-out $(bounds-file) $(offsets-file),$(targets))) no-clean-files := $(bounds-file) $(offsets-file)
...@@ -1119,21 +1119,13 @@ MRPROPER_FILES += .config .config.old .version .old_version \ ...@@ -1119,21 +1119,13 @@ MRPROPER_FILES += .config .config.old .version .old_version \
# #
clean: rm-dirs := $(CLEAN_DIRS) clean: rm-dirs := $(CLEAN_DIRS)
clean: rm-files := $(CLEAN_FILES) clean: rm-files := $(CLEAN_FILES)
clean-dirs := $(addprefix _clean_,$(srctree) $(vmlinux-alldirs) Documentation) clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation)
PHONY += $(clean-dirs) clean archclean PHONY += $(clean-dirs) clean archclean
$(clean-dirs): $(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
clean: archclean $(clean-dirs) clean: archclean
$(call cmd,rmdirs)
$(call cmd,rmfiles)
@find . $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name modules.builtin -o -name '.tmp_*.o.*' \
-o -name '*.gcno' \) -type f -print | xargs rm -f
# mrproper - Delete all generated files, including .config # mrproper - Delete all generated files, including .config
# #
...@@ -1331,16 +1323,7 @@ $(clean-dirs): ...@@ -1331,16 +1323,7 @@ $(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
clean: rm-dirs := $(MODVERDIR) clean: rm-dirs := $(MODVERDIR)
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers \ clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers
$(KBUILD_EXTMOD)/modules.order \
$(KBUILD_EXTMOD)/modules.builtin
clean: $(clean-dirs)
$(call cmd,rmdirs)
$(call cmd,rmfiles)
@find $(KBUILD_EXTMOD) $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.gcno' \) -type f -print | xargs rm -f
help: help:
@echo ' Building external modules.' @echo ' Building external modules.'
...@@ -1357,6 +1340,16 @@ prepare: ; ...@@ -1357,6 +1340,16 @@ prepare: ;
scripts: ; scripts: ;
endif # KBUILD_EXTMOD endif # KBUILD_EXTMOD
clean: $(clean-dirs)
$(call cmd,rmdirs)
$(call cmd,rmfiles)
@find $(or $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name modules.builtin -o -name '.tmp_*.o.*' \
-o -name '*.gcno' \) -type f -print | xargs rm -f
# Generate tags for editors # Generate tags for editors
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
quiet_cmd_tags = GEN $@ quiet_cmd_tags = GEN $@
......
...@@ -45,6 +45,8 @@ __clean-files := $(extra-y) $(always) \ ...@@ -45,6 +45,8 @@ __clean-files := $(extra-y) $(always) \
$(host-progs) \ $(host-progs) \
$(hostprogs-y) $(hostprogs-m) $(hostprogs-) $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
__clean-files := $(filter-out $(no-clean-files), $(__clean-files))
# as clean-files is given relative to the current directory, this adds # as clean-files is given relative to the current directory, this adds
# a $(obj) prefix, except for absolute paths # a $(obj) prefix, except for absolute paths
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment