summaryrefslogtreecommitdiffstats
path: root/tools/gnulib/patches/660-version-stamp.patch
blob: d85c0455cf26e0acb6d3a36badfae1a11a973dd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
From 85599643e2fbf70f7f0bd58831993132ef335705 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Wed, 22 Jan 2025 21:25:27 +0100
Subject: New module 'version-stamp'.

* m4/version-stamp.m4: New file.
* modules/version-stamp: New file.
---
 ChangeLog             |  6 ++++++
 m4/version-stamp.m4   | 35 +++++++++++++++++++++++++++++++++++
 modules/version-stamp | 19 +++++++++++++++++++
 3 files changed, 60 insertions(+)
 create mode 100644 m4/version-stamp.m4
 create mode 100644 modules/version-stamp

--- /dev/null
+++ b/m4/version-stamp.m4
@@ -0,0 +1,35 @@
+# version-stamp.m4
+# serial 1
+dnl Copyright (C) 2025 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# Manages a stamp file, that keeps track when $(VERSION) was last changed.
+#
+# gl_CONFIG_VERSION_STAMP
+# needs to be invoked near the end of the package's top-level configure.ac,
+# before AC_OUTPUT.
+# It makes sure that during the build,
+#   - $(top_srcdir)/.version exists, and
+#   - when $(VERSION) is changed, $(top_srcdir)/.version gets modified.
+#
+# $(top_srcdir)/.version is a stamp file. Its contents wouldn't matter,
+# except that for detecting the change, we store the value of $(VERSION)
+# in it (but we could just as well store it in a different file).
+AC_DEFUN([gl_CONFIG_VERSION_STAMP],
+[
+  AC_CONFIG_COMMANDS([version-timestamp],
+    [if test -f "$ac_top_srcdir/.version" \
+        && test `cat "$ac_top_srcdir/.version"` = "$gl_version"; then
+       # The value of $(VERSION) is the same as last time.
+       :
+     else
+       # The value of $(VERSION) has changed. Update the stamp.
+       echo "$gl_version" > "$ac_top_srcdir/.version"
+     fi
+    ],
+    [gl_version="$VERSION"])
+])
--- /dev/null
+++ b/modules/version-stamp
@@ -0,0 +1,19 @@
+Description:
+Optimized rebuilding of artifacts that depend on $(VERSION).
+
+Files:
+m4/version-stamp.m4
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+
+Include:
+
+License:
+GPLed build tool
+
+Maintainer:
+Bruno Haible