kbuild: Really don't clean bounds.h and asm-offsets.h
authorMichal Marek <mmarek@suse.cz>
Tue, 9 Mar 2010 15:00:20 +0000 (16:00 +0100)
committerMichal Marek <mmarek@suse.cz>
Thu, 11 Mar 2010 10:15:22 +0000 (11:15 +0100)
Commit 7d3cc8b tried to keep bounds.h and asm-offsets.h during make
clean by filtering these out of $(clean-files), but they are listed in
$(targets) and $(always) and thus removed automatically. Introduce a new
$(no-clean-files) variable to really skip such files in Makefile.clean.

Signed-off-by: Michal Marek <mmarek@suse.cz>
Documentation/kbuild/makefiles.txt
Kbuild
scripts/Makefile.clean

index 01351554df60eb88e1589eacabd988ad20ca74e4..fcd1a981523aac5f9c01e00e5d3c281e5c70fbe5 100644 (file)
@@ -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
 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/",
 but in the architecture makefiles where the kbuild infrastructure
 is not sufficient this sometimes needs to be explicit.
diff --git a/Kbuild b/Kbuild
index e3737ad72b5a7ab8ad916b5b6b2725eaf89122a1..18a8bfbb353bb076ce87c5c9eae118080f94f091 100644 (file)
--- a/Kbuild
+++ b/Kbuild
@@ -94,5 +94,5 @@ PHONY += missing-syscalls
 missing-syscalls: scripts/checksyscalls.sh FORCE
        $(call cmd,syscalls)
 
-# Delete all targets during make clean
-clean-files := $(addprefix $(objtree)/,$(filter-out $(bounds-file) $(offsets-file),$(targets)))
+# Keep these two files during make clean
+no-clean-files := $(bounds-file) $(offsets-file)
index 6f89fbb56256987bf0c002683f85941ccddc861a..686cb0d31c7c956943693dd0d517d878cf99b7a0 100644 (file)
@@ -45,6 +45,8 @@ __clean-files := $(extra-y) $(always)                  \
                   $(host-progs)                         \
                   $(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
 # a $(obj) prefix, except for absolute paths