aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rw-r--r--scripts/Makefile.asm-generic37
2 files changed, 23 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index 00630cf04d84..6f3df2d786dd 100644
--- a/Makefile
+++ b/Makefile
@@ -1119,13 +1119,13 @@ prepare0: archprepare
1119prepare: prepare0 prepare-objtool 1119prepare: prepare0 prepare-objtool
1120 1120
1121# Support for using generic headers in asm-generic 1121# Support for using generic headers in asm-generic
1122asm-generic := -f $(srctree)/scripts/Makefile.asm-generic obj
1123
1122PHONY += asm-generic uapi-asm-generic 1124PHONY += asm-generic uapi-asm-generic
1123asm-generic: uapi-asm-generic 1125asm-generic: uapi-asm-generic
1124 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \ 1126 $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/asm
1125 src=asm obj=arch/$(SRCARCH)/include/generated/asm
1126uapi-asm-generic: 1127uapi-asm-generic:
1127 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \ 1128 $(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm
1128 src=uapi/asm obj=arch/$(SRCARCH)/include/generated/uapi/asm
1129 1129
1130PHONY += prepare-objtool 1130PHONY += prepare-objtool
1131prepare-objtool: $(objtool_target) 1131prepare-objtool: $(objtool_target)
diff --git a/scripts/Makefile.asm-generic b/scripts/Makefile.asm-generic
index 32ad8e93fbe1..760323e70ebc 100644
--- a/scripts/Makefile.asm-generic
+++ b/scripts/Makefile.asm-generic
@@ -2,41 +2,42 @@
2# include/asm-generic contains a lot of files that are used 2# include/asm-generic contains a lot of files that are used
3# verbatim by several architectures. 3# verbatim by several architectures.
4# 4#
5# This Makefile reads the file arch/$(SRCARCH)/include/$(src)/Kbuild 5# This Makefile reads the file arch/$(SRCARCH)/include/(uapi/)/asm/Kbuild
6# and for each file listed in this file with generic-y creates 6# and for each file listed in this file with generic-y creates
7# a small wrapper file in $(obj) (arch/$(SRCARCH)/include/generated/$(src)) 7# a small wrapper file in arch/$(SRCARCH)/include/generated/(uapi/)/asm.
8 8
9PHONY := all 9PHONY := all
10all: 10all:
11 11
12kbuild-file := $(srctree)/arch/$(SRCARCH)/include/$(src)/Kbuild 12src := $(subst /generated,,$(obj))
13-include $(kbuild-file) 13-include $(src)/Kbuild
14 14
15include scripts/Kbuild.include 15include scripts/Kbuild.include
16 16
17# Create output directory if not already present 17generic-y := $(addprefix $(obj)/, $(generic-y))
18_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj)) 18generated-y := $(addprefix $(obj)/, $(generated-y))
19 19
20# Stale wrappers when the corresponding files are removed from generic-y 20# Remove stale wrappers when the corresponding files are removed from generic-y
21# need removing. 21old-headers := $(wildcard $(obj)/*.h)
22generated-y := $(generic-y) $(generated-y) 22unwanted := $(filter-out $(generic-y) $(generated-y),$(old-headers))
23all-files := $(patsubst %, $(obj)/%, $(generated-y))
24old-headers := $(wildcard $(obj)/*.h)
25unwanted := $(filter-out $(all-files),$(old-headers))
26 23
27quiet_cmd_wrap = WRAP $@ 24quiet_cmd_wrap = WRAP $@
28cmd_wrap = echo "\#include <asm-generic/$*.h>" >$@ 25 cmd_wrap = echo "\#include <asm-generic/$*.h>" > $@
29 26
30quiet_cmd_remove = REMOVE $(unwanted) 27quiet_cmd_remove = REMOVE $(unwanted)
31cmd_remove = rm -f $(unwanted) 28 cmd_remove = rm -f $(unwanted)
32 29
33all: $(patsubst %, $(obj)/%, $(generic-y)) FORCE 30all: $(generic-y)
34 $(if $(unwanted),$(call cmd,remove),) 31 $(if $(unwanted),$(call cmd,remove))
35 @: 32 @:
36 33
37$(obj)/%.h: 34$(obj)/%.h:
38 $(call cmd,wrap) 35 $(call cmd,wrap)
39 36
40PHONY += FORCE 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
41.PHONY: $(PHONY) 43.PHONY: $(PHONY)
42FORCE: ;