1# include/asm-generic contains a lot of files that are used
2# verbatim by several architectures.
3#
4# This Makefile reads the file arch/$(SRCARCH)/include/$(src)/Kbuild
5# and for each file listed in this file with generic-y creates
6# a small wrapper file in $(obj) (arch/$(SRCARCH)/include/generated/$(src))
7
8kbuild-file := $(srctree)/arch/$(SRCARCH)/include/$(src)/Kbuild
9-include $(kbuild-file)
10
11include scripts/Kbuild.include
12
13# Create output directory if not already present
14_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
15
16# Stale wrappers when the corresponding files are removed from generic-y
17# need removing.
18generated-y   := $(generic-y) $(generated-y)
19all-files     := $(patsubst %, $(obj)/%, $(generated-y))
20old-headers   := $(wildcard $(obj)/*.h)
21unwanted      := $(filter-out $(all-files),$(old-headers))
22
23quiet_cmd_wrap = WRAP    $@
24cmd_wrap = echo "\#include <asm-generic/$*.h>" >$@
25
26quiet_cmd_remove = REMOVE  $(unwanted)
27cmd_remove = rm -f $(unwanted)
28
29all: $(patsubst %, $(obj)/%, $(generic-y)) FORCE
30	$(if $(unwanted),$(call cmd,remove),)
31	@:
32
33$(obj)/%.h:
34	$(call cmd,wrap)
35
36PHONY += FORCE
37.PHONY: $(PHONY)
38FORCE: ;
39