]>
Commit | Line | Data |
---|---|---|
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 |
9 | PHONY := all |
10 | all: | |
11 | ||
7d0e5c20 MY |
12 | src := $(subst /generated,,$(obj)) |
13 | -include $(src)/Kbuild | |
d8ecc5cd SR |
14 | |
15 | include scripts/Kbuild.include | |
16 | ||
7cbbbb8b MY |
17 | redundant := $(filter $(mandatory-y) $(generated-y), $(generic-y)) |
18 | redundant += $(foreach f, $(generic-y), $(if $(wildcard $(srctree)/$(src)/$(f)),$(f))) | |
19 | redundant := $(sort $(redundant)) | |
20 | $(if $(redundant),\ | |
21 | $(warning redundant generic-y found in $(src)/Kbuild: $(redundant))) | |
22 | ||
91998731 MY |
23 | # If arch does not implement mandatory headers, fallback to asm-generic ones. |
24 | mandatory-y := $(filter-out $(generated-y), $(mandatory-y)) | |
25 | generic-y += $(foreach f, $(mandatory-y), $(if $(wildcard $(srctree)/$(src)/$(f)),,$(f))) | |
26 | ||
7d0e5c20 MY |
27 | generic-y := $(addprefix $(obj)/, $(generic-y)) |
28 | generated-y := $(addprefix $(obj)/, $(generated-y)) | |
d8ecc5cd | 29 | |
7d0e5c20 MY |
30 | # Remove stale wrappers when the corresponding files are removed from generic-y |
31 | old-headers := $(wildcard $(obj)/*.h) | |
32 | unwanted := $(filter-out $(generic-y) $(generated-y),$(old-headers)) | |
cda2c65f | 33 | |
d8ecc5cd | 34 | quiet_cmd_wrap = WRAP $@ |
7d0e5c20 | 35 | cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@ |
d8ecc5cd | 36 | |
cda2c65f | 37 | quiet_cmd_remove = REMOVE $(unwanted) |
7d0e5c20 | 38 | cmd_remove = rm -f $(unwanted) |
cda2c65f | 39 | |
7d0e5c20 MY |
40 | all: $(generic-y) |
41 | $(if $(unwanted),$(call cmd,remove)) | |
181e9763 | 42 | @: |
d8ecc5cd SR |
43 | |
44 | $(obj)/%.h: | |
45 | $(call cmd,wrap) | |
cda2c65f | 46 | |
7d0e5c20 MY |
47 | # Create output directory. Skip it if at least one old header exists |
48 | # since we know the output directory already exists. | |
49 | ifeq ($(old-headers),) | |
50 | $(shell mkdir -p $(obj)) | |
51 | endif | |
52 | ||
cda2c65f | 53 | .PHONY: $(PHONY) |