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