diff options
Diffstat (limited to 'scripts/Makefile.asm-generic')
-rw-r--r-- | scripts/Makefile.asm-generic | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/Makefile.asm-generic b/scripts/Makefile.asm-generic new file mode 100644 index 000000000..32ad8e93f --- /dev/null +++ b/scripts/Makefile.asm-generic @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.0 +# include/asm-generic contains a lot of files that are used +# verbatim by several architectures. +# +# This Makefile reads the file arch/$(SRCARCH)/include/$(src)/Kbuild +# and for each file listed in this file with generic-y creates +# a small wrapper file in $(obj) (arch/$(SRCARCH)/include/generated/$(src)) + +PHONY := all +all: + +kbuild-file := $(srctree)/arch/$(SRCARCH)/include/$(src)/Kbuild +-include $(kbuild-file) + +include scripts/Kbuild.include + +# Create output directory if not already present +_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj)) + +# Stale wrappers when the corresponding files are removed from generic-y +# need removing. +generated-y := $(generic-y) $(generated-y) +all-files := $(patsubst %, $(obj)/%, $(generated-y)) +old-headers := $(wildcard $(obj)/*.h) +unwanted := $(filter-out $(all-files),$(old-headers)) + +quiet_cmd_wrap = WRAP $@ +cmd_wrap = echo "\#include <asm-generic/$*.h>" >$@ + +quiet_cmd_remove = REMOVE $(unwanted) +cmd_remove = rm -f $(unwanted) + +all: $(patsubst %, $(obj)/%, $(generic-y)) FORCE + $(if $(unwanted),$(call cmd,remove),) + @: + +$(obj)/%.h: + $(call cmd,wrap) + +PHONY += FORCE +.PHONY: $(PHONY) +FORCE: ; |