summaryrefslogtreecommitdiff
path: root/build-aux/Makefile.once.head/10-write-ifchanged.mk
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2017-01-16 22:27:12 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2017-01-16 22:27:12 -0500
commita6170ec03bc3853b697c14ce93c707cb94da4baf (patch)
treeaab138a77dd843f05fdcc83e8ca2081ba41d71df /build-aux/Makefile.once.head/10-write-ifchanged.mk
parent71e4583a0c3b24cc55cc1701f3ed129baa45d0b7 (diff)
parent2d33bd2f34f011c4f025a073b50d536f6a66a4db (diff)
Merge remote-tracking branch 'r-autothing/v3/master'
# Conflicts: # .gitignore # Makefile # README.md # build-aux/Makefile.README.txt
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