]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Include git revision info in version number
authorJoel Rosdahl <joel@rosdahl.net>
Wed, 9 Jun 2010 19:10:03 +0000 (21:10 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Wed, 9 Jun 2010 19:10:03 +0000 (21:10 +0200)
.gitignore
Makefile.in
ccache.c
ccache.h
configure.ac
dev.mk.in

index a9601264d9ae78574a2bd7b45469b986853deca4..839fdf94eefab33c77e05d78bd34eb66434643bf 100644 (file)
@@ -18,3 +18,4 @@ configure
 dev.mk
 perfdir.*
 testdir.*
+version.c
index 494ebe1b3768007685646d879f12ff82b54d2a43..b59a0a6d764492d09b82d53a5d56ef6ebbc0f7e9 100644 (file)
@@ -17,7 +17,7 @@ EXEEXT = @EXEEXT@
 libs = @LIBS@ -lm
 
 sources = \
-    ccache.c mdfour.c hash.c execute.c util.c args.c stats.c \
+    ccache.c mdfour.c hash.c execute.c util.c args.c stats.c version.c \
     cleanup.c snprintf.c unify.c manifest.c hashtable.c hashtable_itr.c \
     murmurhashneutral2.c hashutil.c getopt_long.c
 all_sources = $(sources) @extra_sources@
@@ -68,7 +68,7 @@ check: test
 
 .PHONY: distclean
 distclean: clean
-       rm -rf Makefile dev.mk config.h config.log config.status .deps
+       rm -rf Makefile dev.mk config.h config.log config.status .deps version.c
 
 .PHONY: installcheck
 installcheck:
index db9b40d16640d79a09150953a0419d2cfd55f56f..9e424e3f187f3e591eeae0f59cfa00fccfb05a97 100644 (file)
--- a/ccache.c
+++ b/ccache.c
@@ -38,7 +38,7 @@
 #include <unistd.h>
 
 static const char VERSION_TEXT[] =
-"ccache version " CCACHE_VERSION "\n"
+"ccache version %s\n"
 "\n"
 "Copyright (C) 2002-2007 Andrew Tridgell\n"
 "Copyright (C) 2009-2010 Joel Rosdahl\n"
@@ -1998,7 +1998,7 @@ static int ccache_main(int argc, char *argv[])
        while ((c = getopt_long(argc, argv, "hszcCF:M:V", long_options, &option_index)) != -1) {
                switch (c) {
                case 'V':
-                       fputs(VERSION_TEXT, stdout);
+                       fprintf(stdout, VERSION_TEXT, CCACHE_VERSION);
                        exit(0);
 
                case 'h':
index 389af21586cedfc4397544e3359e181cb53635d8..8caa243cbf87d05557df289a537d78a0e2283b3d 100644 (file)
--- a/ccache.h
+++ b/ccache.h
@@ -1,8 +1,6 @@
 #ifndef CCACHE_H
 #define CCACHE_H
 
-#define CCACHE_VERSION "3.0pre1"
-
 #include "config.h"
 #include "mdfour.h"
 
@@ -23,6 +21,8 @@
 #define MYNAME "ccache"
 #endif
 
+extern const char CCACHE_VERSION[];
+
 /* statistics fields in storage order */
 enum stats {
        STATS_NONE=0,
index 965c8d039b5245b584e8097322d5098ff94172ad..151cf0af2338bbe0f4806aae591e06ea2f978260 100644 (file)
@@ -290,6 +290,9 @@ cat config.h >>config.h.tmp
 echo '#endif' >>config.h.tmp
 mv config.h.tmp config.h
 
+version=`(git describe --dirty 2>/dev/null || echo vunknown) | cut -b 2-`
+echo "const char CCACHE_VERSION@<:@@:>@ = \"$version\";" >version.c
+
 mkdir -p .deps
 
 if test x$use_bundled_zlib = xyes; then
index 8961de7628479a27d063533c93d5267b54257e4e..37763a3f71172b420f2a5418e44f904795b896ba 100644 (file)
--- a/dev.mk.in
+++ b/dev.mk.in
@@ -7,8 +7,9 @@ ASCIIDOC = asciidoc
 XSLTPROC = xsltproc
 MANPAGE_XSL = /etc/asciidoc/docbook-xsl/manpage.xsl
 
-version = $(shell sed -n 's/^\#define CCACHE_VERSION "\(.*\)"/\1/p' \
-                         $(srcdir)/ccache.h)
+version := \
+    $(shell (git describe --dirty 2>/dev/null || echo vunknown) | cut -b 2-)
+
 dist_dir = ccache-$(version)
 dist_archive_tar_bz2 = ccache-$(version).tar.bz2
 dist_archive_tar_gz = ccache-$(version).tar.gz
@@ -17,7 +18,7 @@ generated_docs = ccache.1 INSTALL.html manual.html NEWS.html README.html
 built_dist_files = $(generated_docs)
 
 files_to_clean += $(dist_archive_tar_bz2) $(dist_archive_tar_gz) .deps/*
-files_to_clean += $(built_dist_files)
+files_to_clean += $(built_dist_files) version.c
 
 source_dist_files = \
     $(sources) $(headers) zlib/*.c zlib/*.h \
@@ -27,6 +28,11 @@ dist_files = \
     $(addprefix $(srcdir)/, $(source_dist_files)) \
     $(built_dist_files)
 
+ifneq ($(shell sed 's/.*"\(.*\)".*/\1/' version.c 2>/dev/null),$(version))
+  $(shell echo 'const char CCACHE_VERSION[] = "$(version)";' >version.c)
+endif
+version.o: version.c
+
 .PHONY: dist
 dist: $(dist_archive_tar_bz2) $(dist_archive_tar_gz)