lkml.org 
[lkml]   [2004]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] kbuild: clean on steroids
Hi Andrew - please apply if you agree on the more effective version

Make the difference between 'make clean' and 'make distclean/mrproper'
more explicit.
make clean now removes all generated files except .config* and .version.
The result is much easier to understand now.

make clean deletes all generated files (except .config* and .version).
make mrproper deletes configuration and all temporary files left by
patch, editors and the like.

Example output:
> make mrproper
CLEAN init
CLEAN usr
CLEAN scripts/kconfig
CLEAN scripts
CLEAN .tmp_versions include/config
CLEAN include/asm-i386/asm_offsets.h include/linux/autoconf.h include/linux/version.h include/asm .tmp_versions
CLEAN .version .config

Form the list of files/directories deleted during make clean, removed all
references that is no longer relevant for the current kernel.

Sam


kbuild-more-cleaning.patch
===== Makefile 1.461 vs edited =====
--- 1.461/Makefile Thu Mar 4 07:08:06 2004
+++ edited/Makefile Fri Mar 5 22:29:38 2004
@@ -757,26 +757,15 @@
# Any core files spread around are deleted as well
# make distclean Remove editor backup files, patch leftover files and the like

-# Files removed with 'make clean'
-CLEAN_FILES += vmlinux System.map MC*
+# Directories & files removed with 'make clean'
+CLEAN_DIRS += $(MODVERDIR) include/config include2
+CLEAN_FILES += vmlinux System.map \
+ include/linux/autoconf.h include/linux/version.h \
+ include/asm include/linux/modversions.h \
+ kernel.spec .tmp*

# Files removed with 'make mrproper'
-MRPROPER_FILES += \
- include/linux/autoconf.h include/linux/version.h \
- .version .config .config.old config.in config.old \
- .menuconfig.log \
- include/asm \
- .hdepend include/linux/modversions.h \
- tags TAGS cscope* kernel.spec \
- .tmp*
-
-# Directories removed with 'make mrproper'
-MRPROPER_DIRS += \
- $(MODVERDIR) \
- .tmp_export-objs \
- include/config \
- include/linux/modules \
- include2
+MRPROPER_FILES += .version .config .config.old tags TAGS cscope*

# clean - Delete all intermediate files
#
@@ -785,28 +774,36 @@
$(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)

-quiet_cmd_rmclean = RM $$(CLEAN_FILES)
-cmd_rmclean = rm -f $(CLEAN_FILES)
+clean: rm-dirs := $(wildcard $(CLEAN_DIRS))
+mrproper: rm-dirs := $(wildcard $(MRPROPER_DIRS))
+quiet_cmd_rmdirs = $(if $(rm-dirs),CLEAN $(rm-dirs))
+ cmd_rmdirs = rm -rf $(rm-dirs)
+
+clean: rm-files := $(wildcard $(CLEAN_FILES))
+mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
+quiet_cmd_rmfiles = $(if $(rm-files),CLEAN $(rm-files))
+ cmd_rmfiles = rm -rf $(rm-files)
+
clean: archclean $(clean-dirs)
- $(call cmd,rmclean)
+ $(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' \) \
-type f -print | xargs rm -f

-# mrproper - delete configuration + modules + core files
+# mrproper
#
-quiet_cmd_mrproper = RM $$(MRPROPER_DIRS) + $$(MRPROPER_FILES)
-cmd_mrproper = rm -rf $(MRPROPER_DIRS) && rm -f $(MRPROPER_FILES)
-mrproper distclean: clean archmrproper
- @echo ' Making $@ in the srctree'
+distclean: mrproper
+mrproper: clean archmrproper
+ $(call cmd,rmdirs)
+ $(call cmd,rmfiles)
@find . $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -size 0 \
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
-type f -print | xargs rm -f
- $(call cmd,mrproper)

# Generate tags for editors
# ---------------------------------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:01    [W:1.296 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site