Merge tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub/scm/linux/kerne...
[linux-2.6-block.git] / scripts / Makefile.asm-generic
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
d8ecc5cd
SR
2# include/asm-generic contains a lot of files that are used
3# verbatim by several architectures.
4#
7d0e5c20 5# This Makefile reads the file arch/$(SRCARCH)/include/(uapi/)/asm/Kbuild
d8ecc5cd 6# and for each file listed in this file with generic-y creates
7d0e5c20 7# a small wrapper file in arch/$(SRCARCH)/include/generated/(uapi/)/asm.
d8ecc5cd 8
a7d34df3
MY
9PHONY := all
10all:
11
7d0e5c20
MY
12src := $(subst /generated,,$(obj))
13-include $(src)/Kbuild
d8ecc5cd
SR
14
15include scripts/Kbuild.include
16
7d0e5c20
MY
17generic-y := $(addprefix $(obj)/, $(generic-y))
18generated-y := $(addprefix $(obj)/, $(generated-y))
d8ecc5cd 19
7d0e5c20
MY
20# Remove stale wrappers when the corresponding files are removed from generic-y
21old-headers := $(wildcard $(obj)/*.h)
22unwanted := $(filter-out $(generic-y) $(generated-y),$(old-headers))
cda2c65f 23
d8ecc5cd 24quiet_cmd_wrap = WRAP $@
7d0e5c20 25 cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
d8ecc5cd 26
cda2c65f 27quiet_cmd_remove = REMOVE $(unwanted)
7d0e5c20 28 cmd_remove = rm -f $(unwanted)
cda2c65f 29
7d0e5c20
MY
30all: $(generic-y)
31 $(if $(unwanted),$(call cmd,remove))
181e9763 32 @:
d8ecc5cd
SR
33
34$(obj)/%.h:
35 $(call cmd,wrap)
cda2c65f 36
7d0e5c20
MY
37# Create output directory. Skip it if at least one old header exists
38# since we know the output directory already exists.
39ifeq ($(old-headers),)
40$(shell mkdir -p $(obj))
41endif
42
cda2c65f 43.PHONY: $(PHONY)