1 # SPDX
-License
-Identifier
: GPL
-2.0
2 # ==========================================================================
4 # ==========================================================================
11 include scripts
/Kbuild
.include
13 # The filename Kbuild has precedence over Makefile
14 kbuild
-dir
:= $(if $(filter
/%,$(src
)),$(src
),$(srctree
)/$(src
))
15 include
$(if $(wildcard
$(kbuild
-dir
)/Kbuild
), $(kbuild
-dir
)/Kbuild
, $(kbuild
-dir
)/Makefile
)
17 # Figure out what we need to build
from the various variables
18 # ==========================================================================
20 subdir
-ymn
:= $(sort
$(subdir
-y
) $(subdir
-m
) $(subdir
-) \
21 $(patsubst
%/,%, $(filter
%/, $(obj
-y
) $(obj
-m
) $(obj
-))))
25 subdir
-ymn
:= $(addprefix
$(obj
)/,$(subdir
-ymn
))
27 # build a list
of files to remove
, usually relative to the current
31 $(clean
-files
) $(targets
) $(hostprogs
) $(userprogs
) \
32 $(extra
-y
) $(extra
-m
) $(extra
-) \
33 $(always
-y
) $(always
-m
) $(always
-) \
34 $(hostprogs
-always
-y
) $(hostprogs
-always
-m
) $(hostprogs
-always
-) \
35 $(userprogs
-always
-y
) $(userprogs
-always
-m
) $(userprogs
-always
-)
38 __clean
-files
+= $(always
) $(hostprogs
-y
) $(hostprogs
-m
) $(hostprogs
-)
40 __clean
-files
:= $(filter
-out
$(no
-clean
-files
), $(__clean
-files
))
42 # clean
-files is given relative to the current directory
, unless it
43 # starts
with $(objtree
)/ (which means
"./", so do not add
"./" unless
44 # you want to delete a file
from the toplevel object directory
).
46 __clean
-files
:= $(wildcard
\
47 $(addprefix
$(obj
)/, $(filter
-out
$(objtree
)/%, $(__clean
-files
))) \
48 $(filter
$(objtree
)/%, $(__clean
-files
)))
50 # ==========================================================================
52 quiet_cmd_clean
= CLEAN
$(obj
)
53 cmd_clean
= rm
-rf
$(__clean
-files
)
55 __clean
: $(subdir
-ymn
)
56 ifneq
($(strip
$(__clean
-files
)),)
62 # ===========================================================================
64 # ===========================================================================
67 # ---------------------------------------------------------------------------
69 PHONY
+= $(subdir
-ymn
)
71 $(Q
)$(MAKE
) $(clean
)=$@