[PATCH 4/9] kbuild: Add filechk2 function

From: Jiri Olsa
Date: Thu Apr 05 2018 - 11:19:10 EST


Adding filechk2 function that has the same semantics
as filechk, but it takes the target file from the 2nd
argument instead of from the '$@' as in the filechk
function.

This function is needed when we can't have separate
target for the file, like in the following patch.

Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
---
scripts/Kbuild.include | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 065324a8046f..9775ce2771d4 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -67,6 +67,30 @@ define filechk
fi
endef

+# filechk2 is used to check if the content of a generated file is updated.
+# It follows the same logic as the filechk except instead of the $@ target
+# variable, the checked file is passed in 2nd argument.
+#
+# Sample usage:
+# define filechk_sample
+# echo $KERNELRELEASE
+# endef
+# version.h : Makefile
+# $(call filechk2,sample,version.h)
+# endef
+define filechk2
+ $(Q)set -e; \
+ $(kecho) ' CHK $(2)'; \
+ mkdir -p $(dir $(2)); \
+ $(filechk_$(1)) < $< > $(2).tmp; \
+ if [ -r $(2) ] && cmp -s $(2) $(2).tmp; then \
+ rm -f $(2).tmp; \
+ else \
+ $(kecho) ' UPD $(2)'; \
+ mv -f $(2).tmp $(2); \
+ fi
+endef
+
######
# gcc support functions
# See documentation in Documentation/kbuild/makefiles.txt
--
2.13.6