diff --git a/src/Makefile.am b/src/Makefile.am index beb71cdf..cc512b1c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,9 +2,12 @@ sbin_PROGRAMS = tincd tinc sptps_test sptps_keypair -## Make sure version.c is always rebuilt -.PHONY: version.c -version.c: +## Make sure version.c is always rebuilt with the latest git information +.PHONY: version.c version_git.h +version_git.h: + echo >$@ + -GIT_DESCRIPTION="`cd $(@D) && git describe`" && echo "#define GIT_DESCRIPTION \"$$GIT_DESCRIPTION\"" >$@ +version.c: version_git.h if LINUX sbin_PROGRAMS += sptps_speed @@ -91,7 +94,7 @@ tincd_SOURCES = \ tincd.c \ utils.c utils.h \ xalloc.h \ - version.c version.h \ + version.c version.h version_git.h \ ed25519/ecdh.c \ ed25519/ecdsa.c \ $(ed25519_SOURCES) \ @@ -113,7 +116,7 @@ tinc_SOURCES = \ tincctl.c tincctl.h \ top.c top.h \ utils.c utils.h \ - version.c version.h \ + version.c version.h version_git.h \ ed25519/ecdh.c \ ed25519/ecdsa.c \ ed25519/ecdsagen.c \ diff --git a/src/process.c b/src/process.c index 51bd902f..cbc816be 100644 --- a/src/process.c +++ b/src/process.c @@ -223,7 +223,7 @@ bool detach(void) { openlogger(identname, logmode); logger(DEBUG_ALWAYS, LOG_NOTICE, "tincd %s (%s %s) starting, debug level %d", - VERSION, BUILD_DATE, BUILD_TIME, debug_level); + BUILD_VERSION, BUILD_DATE, BUILD_TIME, debug_level); return true; } diff --git a/src/tincctl.c b/src/tincctl.c index 91f63eff..047aab4f 100644 --- a/src/tincctl.c +++ b/src/tincctl.c @@ -88,7 +88,7 @@ static struct option const long_options[] = { static void version(void) { printf("%s version %s (built %s %s, protocol %d.%d)\n", PACKAGE, - VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR); + BUILD_VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR); printf("Copyright (C) 1998-2014 Ivo Timmermans, Guus Sliepen and others.\n" "See the AUTHORS file for a complete list.\n\n" "tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n" diff --git a/src/tincd.c b/src/tincd.c index d497bccc..226f4f5e 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -343,7 +343,7 @@ int main(int argc, char **argv) { if(show_version) { printf("%s version %s (built %s %s, protocol %d.%d)\n", PACKAGE, - VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR); + BUILD_VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR); printf("Copyright (C) 1998-2014 Ivo Timmermans, Guus Sliepen and others.\n" "See the AUTHORS file for a complete list.\n\n" "tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n" diff --git a/src/version.c b/src/version.c index fc62c8a3..325a6f09 100644 --- a/src/version.c +++ b/src/version.c @@ -18,7 +18,14 @@ */ #include "version.h" +#include "version_git.h" +#include "../config.h" /* This file is always rebuilt (even if there are no changes) so that the following is updated */ const char* const BUILD_DATE = __DATE__; const char* const BUILD_TIME = __TIME__; +#ifdef GIT_DESCRIPTION +const char* const BUILD_VERSION = GIT_DESCRIPTION; +#else +const char* const BUILD_VERSION = VERSION; +#endif diff --git a/src/version.h b/src/version.h index d3e4a1f2..9cbecb6e 100644 --- a/src/version.h +++ b/src/version.h @@ -22,5 +22,6 @@ extern const char* const BUILD_DATE; extern const char* const BUILD_TIME; +extern const char* const BUILD_VERSION; #endif /* __TINC_VERSION_H__ */