From 3d43382c7864753728b181ac356222d67bdd4a3f Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 21 Mar 2012 22:25:22 +0100 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 --- FIO-VERSION-GEN | 42 ++++++++++++++++++++++++++++++++++++++++++ Makefile | 23 ++++++++++++++++------- init.c | 15 ++++----------- 3 files changed, 62 insertions(+), 18 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 ddf257f3..50b827b8 100644 --- a/Makefile +++ b/Makefile @@ -100,9 +100,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) $< goptions.o: goptions.c goptions.h @@ -129,7 +138,7 @@ t/stest: $(T_SMALLOC_OBJS) t/ieee754: $(T_IEEE_OBJS) $(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_IEEE_OBJS) $(LIBS) $(LDFLAGS) -fio: $(FIO_OBJS) +fio: $(FIO_OBJS) FORCE $(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(FIO_OBJS) $(LIBS) $(LDFLAGS) gfio: $(GFIO_OBJS) @@ -138,15 +147,15 @@ gfio: $(GFIO_OBJS) .depend: $(SOURCE) $(QUIET_DEP)$(CC) -MM $(CFLAGS) $(CPPFLAGS) $(SOURCE) 1> .depend -$(PROGS): .depend +$(PROGS): .depend FORCE -clean: - -rm -f .depend $(GFIO_OBJS) $(FIO_OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) core.* core gfio +clean: FORCE + -rm -f .depend $(GFIO_OBJS) $(FIO_OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) core.* core gfio 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 261e02e1..a04198f3 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) @@ -1182,7 +1175,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" @@ -1455,7 +1448,7 @@ int parse_cmd_line(int argc, char *argv[], int client_type) break; case 'v': if (!cur_client) { - log_info("fio %s\n", fio_version_string); + log_info("%s\n", fio_version_string); do_exit++; } break; @@ -1694,7 +1687,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