summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-06-12 11:24:57 +0200
committerJim Meyering <meyering@redhat.com>2011-06-13 09:17:15 +0200
commit7faccb437cb0c08c52ac061db66e9e028bd690a7 (patch)
tree660e64d290b9691d893c8294b4385f52b7fb39b9
parent929cf564727acb17435e98b6d05e9d6453f10808 (diff)
downloaddiffutils-7faccb437cb0c08c52ac061db66e9e028bd690a7.tar.gz
build: ccache works better without embedded version strings
* src/Makefile.am: Generate version.c and version.h and put the new symbol in a tiny library to be used by each program. (LDADD): Add the new library. * src/cmp.c (main): Use Version, not PACKAGE_VERSION, so the .o file does not change with each commit-derived version increment. * src/diff.c (main): Likewise. * src/diff3.c (main): Likewise. * src/sdiff.c (main): Likewise. * src/system.h: Include "version.h". * .gitignore: Add version.[ch]
-rw-r--r--.gitignore1
-rw-r--r--src/Makefile.am22
-rw-r--r--src/cmp.c2
-rw-r--r--src/diff.c2
-rw-r--r--src/diff3.c2
-rw-r--r--src/sdiff.c2
-rw-r--r--src/system.h1
7 files changed, 28 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index d79a385..56751e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,4 +65,5 @@ src/diff
src/diff3
src/paths.h
src/sdiff
+src/version.[ch]
tests/*.log
diff --git a/src/Makefile.am b/src/Makefile.am
index e94879c..275c155 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -23,6 +23,7 @@ AM_CPPFLAGS = -I../lib -I$(top_srcdir)/lib
AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS)
LDADD = \
+ libver.a \
../lib/libdiffutils.a \
$(LIBCSTACK) \
$(LIBINTL) \
@@ -52,3 +53,24 @@ BUILT_SOURCES = paths.h
paths.h: Makefile.am
$(AM_V_GEN)(echo '#define DEFAULT_DIFF_PROGRAM "'$(gdiff)'"' && \
echo '#define LOCALEDIR "$(localedir)"') >$@t && mv $@t $@
+
+noinst_LIBRARIES = libver.a
+nodist_libver_a_SOURCES = version.c version.h
+
+BUILT_SOURCES += version.c
+version.c: Makefile
+ $(AM_V_GEN)rm -f $@
+ $(AM_V_at)printf '#include <config.h>\n' > $@t
+ $(AM_V_at)printf 'char const *Version = "$(PACKAGE_VERSION)";\n' >> $@t
+ $(AM_V_at)chmod a-w $@t
+ $(AM_V_at)mv $@t $@
+
+BUILT_SOURCES += version.h
+version.h: Makefile
+ $(AM_V_GEN)rm -f $@
+ $(AM_V_at)printf 'extern char const *Version;\n' > $@t
+ $(AM_V_at)chmod a-w $@t
+ $(AM_V_at)mv $@t $@
+
+DISTCLEANFILES = version.c version.h
+MAINTAINERCLEANFILES = $(BUILT_SOURCES)
diff --git a/src/cmp.c b/src/cmp.c
index 92b60bc..adf1cf9 100644
--- a/src/cmp.c
+++ b/src/cmp.c
@@ -248,7 +248,7 @@ main (int argc, char **argv)
break;
case 'v':
- version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, PACKAGE_VERSION,
+ version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
AUTHORS, (char *) NULL);
check_stdout ();
return EXIT_SUCCESS;
diff --git a/src/diff.c b/src/diff.c
index 0aa09e9..fb8a2bc 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -480,7 +480,7 @@ main (int argc, char **argv)
break;
case 'v':
- version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, PACKAGE_VERSION,
+ version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
AUTHORS, (char *) NULL);
check_stdout ();
return EXIT_SUCCESS;
diff --git a/src/diff3.c b/src/diff3.c
index 34e7a8f..0eecb5e 100644
--- a/src/diff3.c
+++ b/src/diff3.c
@@ -280,7 +280,7 @@ main (int argc, char **argv)
strip_trailing_cr = true;
break;
case 'v':
- version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, PACKAGE_VERSION,
+ version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
AUTHORS, (char *) NULL);
check_stdout ();
return EXIT_SUCCESS;
diff --git a/src/sdiff.c b/src/sdiff.c
index 2d53d2f..6d2e72d 100644
--- a/src/sdiff.c
+++ b/src/sdiff.c
@@ -513,7 +513,7 @@ main (int argc, char *argv[])
break;
case 'v':
- version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, PACKAGE_VERSION,
+ version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version,
AUTHORS, (char *) NULL);
check_stdout ();
return EXIT_SUCCESS;
diff --git a/src/system.h b/src/system.h
index 15656bc..594ef6e 100644
--- a/src/system.h
+++ b/src/system.h
@@ -117,6 +117,7 @@ int strcasecmp (char const *, char const *);
#include <stdbool.h>
#include <intprops.h>
#include "propername.h"
+#include "version.h"
/* Type used for fast comparison of several bytes at a time. */