Blame view

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