The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/scripts/Makefile.clean

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # ==========================================================================
    2 # Cleaning up
    3 # ==========================================================================
    4 
    5 src := $(obj)
    6 
    7 PHONY := __clean
    8 __clean:
    9 
   10 # Shorthand for $(Q)$(MAKE) scripts/Makefile.clean obj=dir
   11 # Usage:
   12 # $(Q)$(MAKE) $(clean)=dir
   13 clean := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.clean obj
   14 
   15 # The filename Kbuild has precedence over Makefile
   16 kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
   17 include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-dir)/Makefile)
   18 
   19 # Figure out what we need to build from the various variables
   20 # ==========================================================================
   21 
   22 __subdir-y      := $(patsubst %/,%,$(filter %/, $(obj-y)))
   23 subdir-y        += $(__subdir-y)
   24 __subdir-m      := $(patsubst %/,%,$(filter %/, $(obj-m)))
   25 subdir-m        += $(__subdir-m)
   26 __subdir-n      := $(patsubst %/,%,$(filter %/, $(obj-n)))
   27 subdir-n        += $(__subdir-n)
   28 __subdir-       := $(patsubst %/,%,$(filter %/, $(obj-)))
   29 subdir-         += $(__subdir-)
   30 
   31 # Subdirectories we need to descend into
   32 
   33 subdir-ym       := $(sort $(subdir-y) $(subdir-m))
   34 subdir-ymn      := $(sort $(subdir-ym) $(subdir-n) $(subdir-))
   35 
   36 # Add subdir path
   37 
   38 subdir-ymn      := $(addprefix $(obj)/,$(subdir-ymn))
   39 
   40 # build a list of files to remove, usually relative to the current
   41 # directory
   42 
   43 __clean-files   := $(extra-y) $(always)                  \
   44                    $(targets) $(clean-files)             \
   45                    $(host-progs)                         \
   46                    $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
   47 
   48 __clean-files   := $(filter-out $(no-clean-files), $(__clean-files))
   49 
   50 # as clean-files is given relative to the current directory, this adds
   51 # a $(obj) prefix, except for absolute paths
   52 
   53 __clean-files   := $(wildcard                                               \
   54                    $(addprefix $(obj)/, $(filter-out /%, $(__clean-files))) \
   55                    $(filter /%, $(__clean-files)))
   56 
   57 # as clean-dirs is given relative to the current directory, this adds
   58 # a $(obj) prefix, except for absolute paths
   59 
   60 __clean-dirs    := $(wildcard                                               \
   61                    $(addprefix $(obj)/, $(filter-out /%, $(clean-dirs)))    \
   62                    $(filter /%, $(clean-dirs)))
   63 
   64 # ==========================================================================
   65 
   66 quiet_cmd_clean    = CLEAN   $(obj)
   67       cmd_clean    = rm -f $(__clean-files)
   68 quiet_cmd_cleandir = CLEAN   $(__clean-dirs)
   69       cmd_cleandir = rm -rf $(__clean-dirs)
   70 
   71 
   72 __clean: $(subdir-ymn)
   73 ifneq ($(strip $(__clean-files)),)
   74         +$(call cmd,clean)
   75 endif
   76 ifneq ($(strip $(__clean-dirs)),)
   77         +$(call cmd,cleandir)
   78 endif
   79 ifneq ($(strip $(clean-rule)),)
   80         +$(clean-rule)
   81 endif
   82         @:
   83 
   84 
   85 # ===========================================================================
   86 # Generic stuff
   87 # ===========================================================================
   88 
   89 # Descending
   90 # ---------------------------------------------------------------------------
   91 
   92 PHONY += $(subdir-ymn)
   93 $(subdir-ymn):
   94         $(Q)$(MAKE) $(clean)=$@
   95 
   96 # If quiet is set, only print short version of command
   97 
   98 cmd = @$(if $($(quiet)cmd_$(1)),echo '  $($(quiet)cmd_$(1))' &&) $(cmd_$(1))
   99 
  100 
  101 # Declare the contents of the .PHONY variable as phony.  We keep that
  102 # information in a variable se we can use it in if_changed and friends.
  103 
  104 .PHONY: $(PHONY)

Cache object: cd37421337bd0696f263ee8fe5676e31


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.