From 692a5d228de8215634182d0c459ac7c0b0fda961 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 11 Apr 2012 22:07:07 +0200 Subject: [PATCH] Make fio include the git version in the version output Makes it easier in bug reporting, don't have to ask people what they are running... Here's to you, Kep. Signed-off-by: Jens Axboe Conflicts: Makefile Signed-off-by: Jens Axboe --- FIO-VERSION-GEN | 42 ++++++++++++++++++++++++++++++++++++++++++ Makefile | 21 +++++++++++++++------ init.c | 15 ++++----------- 3 files changed, 61 insertions(+), 17 deletions(-) create mode 100755 FIO-VERSION-GEN diff --git a/FIO-VERSION-GEN b/FIO-VERSION-GEN new file mode 100755 index 00000000..d8122553 --- /dev/null +++ b/FIO-VERSION-GEN @@ -0,0 +1,42 @@ +#!/bin/sh + +GVF=FIO-VERSION-FILE +DEF_VER=v2.0.5.GIT + +LF=' +' + +# First see if there is a version file (included in release tarballs), +# then try git-describe, then default. +if test -f version +then + VN=$(cat version) || VN="$DEF_VER" +elif test -d .git -o -f .git && + VN=$(git describe --match "fio-[0-9]*" --abbrev=4 HEAD 2>/dev/null) && + case "$VN" in + *$LF*) (exit 1) ;; + v[0-9]*) + git update-index -q --refresh + test -z "$(git diff-index --name-only HEAD --)" || + VN="$VN-dirty" ;; + esac +then + VN=$VN +else + VN="$DEF_VER" +fi + +VN=$(expr "$VN" : v*'\(.*\)') + +if test -r $GVF +then + VC=$(sed -e 's/^FIO_VERSION = //' <$GVF) +else + VC=unset +fi +test "$VN" = "$VC" || { + echo >&2 "FIO_VERSION = $VN" + echo "FIO_VERSION = $VN" >$GVF +} + + diff --git a/Makefile b/Makefile index 673107f0..252b0a9f 100644 --- a/Makefile +++ b/Makefile @@ -93,9 +93,18 @@ else mandir = $(prefix)/man endif -all: .depend $(PROGS) $(SCRIPTS) +all: .depend $(PROGS) $(SCRIPTS) FORCE -.c.o: .depend +.PHONY: all install clean +.PHONY: FORCE cscope + +FIO-VERSION-FILE: FORCE + @$(SHELL_PATH) ./FIO-VERSION-GEN +-include FIO-VERSION-FILE + +CFLAGS += -DFIO_VERSION='"$(FIO_VERSION)"' + +.c.o: .depend FORCE $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(CPPFLAGS) $< t/stest: $(T_SMALLOC_OBJS) @@ -110,15 +119,15 @@ fio: $(OBJS) .depend: $(SOURCE) $(QUIET_DEP)$(CC) -MM $(CFLAGS) $(CPPFLAGS) $(SOURCE) 1> .depend -$(PROGS): .depend +$(PROGS): .depend FORCE -clean: - -rm -f .depend $(OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) core.* core +clean: FORCE + -rm -f .depend $(OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) core.* core FIO-VERSION-FILE cscope: @cscope -b -R -install: $(PROGS) $(SCRIPTS) +install: $(PROGS) $(SCRIPTS) FORCE $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) $(INSTALL) $(PROGS) $(SCRIPTS) $(DESTDIR)$(bindir) $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1 diff --git a/init.c b/init.c index 69ed30c7..1eea800c 100644 --- a/init.c +++ b/init.c @@ -25,14 +25,7 @@ #include "fio_version.h" -#if FIO_PATCH > 0 -const char fio_version_string[] = __fio_stringify(FIO_MAJOR) "." \ - __fio_stringify(FIO_MINOR) "." \ - __fio_stringify(FIO_PATCH); -#else -const char fio_version_string[] = __fio_stringify(FIO_MAJOR) "." \ - __fio_stringify(FIO_MINOR); -#endif +const char fio_version_string[] = FIO_VERSION; #define FIO_RANDSEED (0xb1899bedUL) @@ -1188,7 +1181,7 @@ static int fill_def_thread(void) static void usage(const char *name) { - printf("fio %s\n", fio_version_string); + printf("%s\n", fio_version_string); printf("%s [options] [job options] \n", name); printf(" --debug=options\tEnable debug logging. May be one/more of:\n" "\t\t\tprocess,file,io,mem,blktrace,verify,random,parse,\n" @@ -1419,7 +1412,7 @@ int parse_cmd_line(int argc, char *argv[]) break; case 'v': if (!cur_client) { - log_info("fio %s\n", fio_version_string); + log_info("%s\n", fio_version_string); do_exit++; } break; @@ -1645,7 +1638,7 @@ int parse_options(int argc, char *argv[]) } if (!terse_output) - log_info("fio %s\n", fio_version_string); + log_info("%s\n", fio_version_string); return 0; } -- 2.25.1