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