Version:  2.0.40 2.2.26 2.4.37 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Linux/scripts/Makefile.clean

  1 # ==========================================================================
  2 # Cleaning up
  3 # ==========================================================================
  4 
  5 src := $(obj)
  6 
  7 PHONY := __clean
  8 __clean:
  9 
 10 include scripts/Kbuild.include
 11 
 12 # The filename Kbuild has precedence over Makefile
 13 kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
 14 include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-dir)/Makefile)
 15 
 16 # Figure out what we need to build from the various variables
 17 # ==========================================================================
 18 
 19 __subdir-y      := $(patsubst %/,%,$(filter %/, $(obj-y)))
 20 subdir-y        += $(__subdir-y)
 21 __subdir-m      := $(patsubst %/,%,$(filter %/, $(obj-m)))
 22 subdir-m        += $(__subdir-m)
 23 __subdir-       := $(patsubst %/,%,$(filter %/, $(obj-)))
 24 subdir-         += $(__subdir-)
 25 
 26 # Subdirectories we need to descend into
 27 
 28 subdir-ym       := $(sort $(subdir-y) $(subdir-m))
 29 subdir-ymn      := $(sort $(subdir-ym) $(subdir-))
 30 
 31 # Add subdir path
 32 
 33 subdir-ymn      := $(addprefix $(obj)/,$(subdir-ymn))
 34 
 35 # build a list of files to remove, usually relative to the current
 36 # directory
 37 
 38 __clean-files   := $(extra-y) $(extra-m) $(extra-)       \
 39                    $(always) $(targets) $(clean-files)   \
 40                    $(host-progs)                         \
 41                    $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
 42                    $(hostlibs-y) $(hostlibs-m) $(hostlibs-) \
 43                    $(hostcxxlibs-y) $(hostcxxlibs-m)
 44 
 45 __clean-files   := $(filter-out $(no-clean-files), $(__clean-files))
 46 
 47 # clean-files is given relative to the current directory, unless it
 48 # starts with $(objtree)/ (which means "./", so do not add "./" unless
 49 # you want to delete a file from the toplevel object directory).
 50 
 51 __clean-files   := $(wildcard                                               \
 52                    $(addprefix $(obj)/, $(filter-out $(objtree)/%, $(__clean-files))) \
 53                    $(filter $(objtree)/%, $(__clean-files)))
 54 
 55 # same as clean-files
 56 
 57 __clean-dirs    := $(wildcard                                               \
 58                    $(addprefix $(obj)/, $(filter-out $(objtree)/%, $(clean-dirs)))    \
 59                    $(filter $(objtree)/%, $(clean-dirs)))
 60 
 61 # ==========================================================================
 62 
 63 quiet_cmd_clean    = CLEAN   $(obj)
 64       cmd_clean    = rm -f $(__clean-files)
 65 quiet_cmd_cleandir = CLEAN   $(__clean-dirs)
 66       cmd_cleandir = rm -rf $(__clean-dirs)
 67 
 68 
 69 __clean: $(subdir-ymn)
 70 ifneq ($(strip $(__clean-files)),)
 71         +$(call cmd,clean)
 72 endif
 73 ifneq ($(strip $(__clean-dirs)),)
 74         +$(call cmd,cleandir)
 75 endif
 76         @:
 77 
 78 
 79 # ===========================================================================
 80 # Generic stuff
 81 # ===========================================================================
 82 
 83 # Descending
 84 # ---------------------------------------------------------------------------
 85 
 86 PHONY += $(subdir-ymn)
 87 $(subdir-ymn):
 88         $(Q)$(MAKE) $(clean)=$@
 89 
 90 # Declare the contents of the .PHONY variable as phony.  We keep that
 91 # information in a variable se we can use it in if_changed and friends.
 92 
 93 .PHONY: $(PHONY)

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us