Magellan Linux

Annotation of /tags/mkinitrd-6_1_12/busybox/scripts/Makefile.clean

Parent Directory Parent Directory | Revision Log Revision Log


Revision 939 - (hide annotations) (download)
Tue Nov 17 21:24:51 2009 UTC (14 years, 7 months ago) by niro
File size: 3241 byte(s)
tagged 'mkinitrd-6_1_12'
1 niro 532 # ==========================================================================
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 releative to the current
41     # directory
42    
43     __clean-files := $(extra-y) $(EXTRA_TARGETS) $(always) \
44     $(targets) $(clean-files) \
45     $(host-progs) \
46     $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
47    
48     # as clean-files is given relative to the current directory, this adds
49     # a $(obj) prefix, except for absolute paths
50    
51     __clean-files := $(wildcard \
52     $(addprefix $(obj)/, $(filter-out /%, $(__clean-files))) \
53     $(filter /%, $(__clean-files)))
54    
55     # as clean-dirs is given relative to the current directory, this adds
56     # a $(obj) prefix, except for absolute paths
57    
58     __clean-dirs := $(wildcard \
59     $(addprefix $(obj)/, $(filter-out /%, $(clean-dirs))) \
60     $(filter /%, $(clean-dirs)))
61    
62     # ==========================================================================
63    
64     quiet_cmd_clean = CLEAN $(obj)
65     cmd_clean = rm -f $(__clean-files)
66     quiet_cmd_cleandir = CLEAN $(__clean-dirs)
67     cmd_cleandir = rm -rf $(__clean-dirs)
68    
69    
70     __clean: $(subdir-ymn)
71     ifneq ($(strip $(__clean-files)),)
72     +$(call cmd,clean)
73     endif
74     ifneq ($(strip $(__clean-dirs)),)
75     +$(call cmd,cleandir)
76     endif
77     ifneq ($(strip $(clean-rule)),)
78     +$(clean-rule)
79     endif
80     @:
81    
82    
83     # ===========================================================================
84     # Generic stuff
85     # ===========================================================================
86    
87     # Descending
88     # ---------------------------------------------------------------------------
89    
90     PHONY += $(subdir-ymn)
91     $(subdir-ymn):
92     $(Q)$(MAKE) $(clean)=$@
93    
94     # If quiet is set, only print short version of command
95    
96     cmd = @$(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))' &&) $(cmd_$(1))
97    
98    
99     # Declare the contents of the .PHONY variable as phony. We keep that
100     # information in a variable se we can use it in if_changed and friends.
101    
102     .PHONY: $(PHONY)