Blame view

scripts/Makefile.clean 3.12 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
  # Shorthand for $(Q)$(MAKE) scripts/Makefile.clean obj=dir
  # Usage:
  # $(Q)$(MAKE) $(clean)=dir
5b2389b45   Masahiro Yamada   kbuild: simplify ...
11
  clean := -f $(srctree)/scripts/Makefile.clean obj
2315c6e42   Sam Ravnborg   kbuild: define cl...
12

2a6914703   Sam Ravnborg   kbuild: fix make ...
13
  # The filename Kbuild has precedence over Makefile
db8c1a7b2   Sam Ravnborg   kbuild: fix build...
14
15
  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
16
17
18
19
20
21
22
23
  
  # 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)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
24
25
26
27
28
29
  __subdir-	:= $(patsubst %/,%,$(filter %/, $(obj-)))
  subdir-		+= $(__subdir-)
  
  # Subdirectories we need to descend into
  
  subdir-ym	:= $(sort $(subdir-y) $(subdir-m))
a4954fd77   Masahiro Yamada   kbuild: remove ob...
30
  subdir-ymn      := $(sort $(subdir-ym) $(subdir-))
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
31
32
33
34
  
  # Add subdir path
  
  subdir-ymn	:= $(addprefix $(obj)/,$(subdir-ymn))
3156fd052   Robert P. J. Day   kbuild: fix some ...
35
  # build a list of files to remove, usually relative to the current
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
36
  # directory
9d5db8949   Masahiro Yamada   scripts/Makefile....
37
38
  __clean-files	:= $(extra-y) $(extra-m) $(extra-)       \
  		   $(always) $(targets) $(clean-files)   \
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
39
40
  		   $(host-progs)                         \
  		   $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
ef8ff89b5   Michal Marek   kbuild: Really do...
41
  __clean-files   := $(filter-out $(no-clean-files), $(__clean-files))
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
42
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
  # 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...
83
  PHONY += $(subdir-ymn)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
84
85
86
87
88
89
  $(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...
90
91
92
93
94
95
  
  
  # 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)