Blame view

scripts/Makefile.clean 2.88 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:
371fdc77a   Masahiro Yamada   kbuild: collect s...
8
  include scripts/Kbuild.include
2315c6e42   Sam Ravnborg   kbuild: define cl...
9

2a6914703   Sam Ravnborg   kbuild: fix make ...
10
  # The filename Kbuild has precedence over Makefile
db8c1a7b2   Sam Ravnborg   kbuild: fix build...
11
12
  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
13
14
15
16
17
18
19
20
  
  # 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
21
22
23
24
25
26
  __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...
27
  subdir-ymn      := $(sort $(subdir-ym) $(subdir-))
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
28
29
30
31
  
  # Add subdir path
  
  subdir-ymn	:= $(addprefix $(obj)/,$(subdir-ymn))
3156fd052   Robert P. J. Day   kbuild: fix some ...
32
  # build a list of files to remove, usually relative to the current
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33
  # directory
9d5db8949   Masahiro Yamada   scripts/Makefile....
34
35
  __clean-files	:= $(extra-y) $(extra-m) $(extra-)       \
  		   $(always) $(targets) $(clean-files)   \
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
36
37
  		   $(host-progs)                         \
  		   $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
ef8ff89b5   Michal Marek   kbuild: Really do...
38
  __clean-files   := $(filter-out $(no-clean-files), $(__clean-files))
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
39
40
41
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
  # 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...
80
  PHONY += $(subdir-ymn)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
81
82
  $(subdir-ymn):
  	$(Q)$(MAKE) $(clean)=$@
4f1933620   Paul Smith   kbuild: change kb...
83
84
85
86
  # 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)