From b379508eeb26273f6044080788ffa1eb257c96f4 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 25 Jun 2013 16:27:05 +1000 Subject: Makefile/version: use version/date from .git if possible. If being built from a git tree, use the version and date information from the top commit rather than the hard-coded values. Signed-off-by: NeilBrown --- Makefile | 6 ++++++ ReadMe.c | 8 +++++++- makedist | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 043bcea7..76dce908 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,12 @@ DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\" DIRFLAGS += -DFAILED_SLOTS_DIR=\"$(FAILED_SLOTS_DIR)\" CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) +VERSION = $(shell [ -d .git ] && git describe HEAD | sed 's/mdadm-//') +VERS_DATE = $(shell [ -d .git ] && date --date="`git log -n1 --format=format:%cd --date=short`" '+%0dth %B %Y' | sed -e 's/1th/1st/' -e 's/2th/2nd/' -e 's/11st/11th/' -e 's/12nd/12th/') +DVERS = $(if $(VERSION),-DVERSION=\"$(VERSION)\",) +DDATE = $(if $(VERS_DATE),-DVERS_DATE="\"$(VERS_DATE)\"",) +CFLAGS += $(DVERS) $(DDATE) + # The glibc TLS ABI requires applications that call clone(2) to set up # TLS data structures, use pthreads until mdmon implements this support USE_PTHREADS = 1 diff --git a/ReadMe.c b/ReadMe.c index cb0678ab..51a6482a 100644 --- a/ReadMe.c +++ b/ReadMe.c @@ -24,7 +24,13 @@ #include "mdadm.h" -char Version[] = Name " - v3.2.5 - 18th May 2012\n"; +#ifndef VERSION +#define VERSION "3.2.5" +#endif +#ifndef VERS_DATE +#define VERS_DATE "18th May 2012" +#endif +char Version[] = Name " - v" VERSION " - " VERS_DATE "\n"; /* * File: ReadMe.c diff --git a/makedist b/makedist index 6b61eb97..2f639d8d 100755 --- a/makedist +++ b/makedist @@ -14,8 +14,8 @@ then : else echo $target is not a directory exit 2 fi -set `grep '^char Version' ReadMe.c ` -version=`echo $7 | sed 's/v//'` +set `grep '^#define VERSION' ReadMe.c ` +version=`echo $7 | sed -e 's/"//g'` grep "^.TH MDADM 8 .. v$version" mdadm.8.in > /dev/null 2>&1 || { echo mdadm.8.in does not mention version $version. -- cgit v1.2.3