diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2020-04-30 14:13:55 +0900 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-05-04 09:00:34 +0200 |
commit | 0cfd8c0ca0768e36eaebe95910bbcb5ab765a22b (patch) | |
tree | 34a477fe9cd2d87c5f4cd7f75ca9a17a0a58b963 /scripts | |
parent | 7ec32876a47508d1808a7b98531b68378ffda0a4 (diff) | |
download | barebox-0cfd8c0ca0768e36eaebe95910bbcb5ab765a22b.tar.gz barebox-0cfd8c0ca0768e36eaebe95910bbcb5ab765a22b.tar.xz |
kbuild: sync filechk rule with Linux 5.7-rc2
The 'filechk' in the latest Linux works more simply, reliably.
- Do not show CHK every time
- Delete the *.tmp file when the filechk_$(1) fails
- Do not open the first prerequisite. This is unneeded in most cases.
I deleted pointeless dependency on Makefile.
Also delete the meaningless assignment to 'targets' because filechk
does not generate .cmd file.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Kbuild.include | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 227a022b41..983329e40d 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -37,11 +37,11 @@ kecho := $($(quiet)kecho) ### # filechk is used to check if the content of a generated file is updated. # Sample usage: -# define filechk_sample -# echo $KERNELRELEASE -# endef -# version.h : Makefile +# +# filechk_sample = echo $(KERNELRELEASE) +# version.h: FORCE # $(call filechk,sample) +# # The rule defined shall write to stdout the content of the new file. # The existing file will be compared with the new one. # - If no file exist it is created @@ -50,15 +50,13 @@ kecho := $($(quiet)kecho) # - stdin is piped in from the first prerequisite ($<) so one has # to specify a valid file as first prerequisite (often the kbuild file) define filechk - $(Q)set -e; \ - $(kecho) ' CHK $@'; \ - mkdir -p $(dir $@); \ - $(filechk_$(1)) < $< > $@.tmp; \ - if [ -r $@ ] && cmp -s $@ $@.tmp; then \ - rm -f $@.tmp; \ - else \ - $(kecho) ' UPD $@'; \ - mv -f $@.tmp $@; \ + $(Q)set -e; \ + mkdir -p $(dir $@); \ + trap "rm -f $(dot-target).tmp" EXIT; \ + { $(filechk_$(1)); } > $(dot-target).tmp; \ + if [ ! -r $@ ] || ! cmp -s $@ $(dot-target).tmp; then \ + $(kecho) ' UPD $@'; \ + mv -f $(dot-target).tmp $@; \ fi endef |