summaryrefslogtreecommitdiff
path: root/build-aux/Makefile.once.head/10-write-ifchanged.mk
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2017-08-20 16:54:15 -0400
committerLuke Shumaker <lukeshu@lukeshu.com>2017-08-20 16:54:15 -0400
commitdbd9fa35e5dd40d33d8be9c899f3d56918aba34f (patch)
tree8c6f5beaecdad99caa724516643e33c2070fedc9 /build-aux/Makefile.once.head/10-write-ifchanged.mk
parente4b0a9391be1d21ca15d9610b977f989ccee833a (diff)
parenteaf336a9265399520e3cf71d4979446b98bdf48d (diff)
Merge remote-tracking branch 'r-autothing/v3/master'
Diffstat (limited to 'build-aux/Makefile.once.head/10-write-ifchanged.mk')
-rw-r--r--build-aux/Makefile.once.head/10-write-ifchanged.mk23
1 files changed, 23 insertions, 0 deletions
diff --git a/build-aux/Makefile.once.head/10-write-ifchanged.mk b/build-aux/Makefile.once.head/10-write-ifchanged.mk
new file mode 100644
index 0000000..649aab9
--- /dev/null
+++ b/build-aux/Makefile.once.head/10-write-ifchanged.mk
@@ -0,0 +1,23 @@
+mod.write-ifchanged.description = `write-ifchanged` auxiliary build script
+mod.write-ifchanged.files += $(topsrcdir)/build-aux/write-ifchanged
+define mod.write-ifchanged.doc
+# User variables:
+# - `WRITE_IFCHANGED ?= $(topsrcdir)/build-aux/write-ifchanged`
+# Inputs:
+# (none)
+# Outputs:
+# (none)
+#
+# The $(WRITE_IFCHANGED) program reads a file from stdin, and writes it to the
+# file named in argv[1], but does so atomically, but more importantly, does so
+# in a way that does not bump the file's ctime if the new content is the same
+# as the old content.
+#
+# That is, the following lines are almost equivalient:
+#
+# ... > $@
+# ... | $(WRITE_ATOMIC) $@
+endef
+mod.write-ifchanged.doc := $(value mod.write-ifchanged.doc)
+
+WRITE_IFCHANGED ?= $(topsrcdir)/build-aux/write-ifchanged