From 5436146c8dcd95c5ef3809f2830fb9c08edc4177 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Mon, 17 May 2010 22:21:01 +0200 Subject: create release.h in make process and add this information to INFO listing --- .gitignore | 1 + Makefile | 9 ++++++++- redis.c | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5463a1408..ed57c1bf9 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ mkrelease.sh release myredis.conf misc/* +release.h diff --git a/Makefile b/Makefile index c6cbf320e..635cb1893 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,8 @@ endif CCOPT= $(CFLAGS) $(CCLINK) $(ARCH) $(PROF) DEBUG?= -g -rdynamic -ggdb +GIT_SHA1:=$(shell sh -c '(git show-ref --head --hash=8 2> /dev/null || echo 00000000) | head -n1') +GIT_DIRTY:=$(shell sh -c 'git status -s 2> /dev/null | wc -l') OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o BENCHOBJ = ae.o anet.o redis-benchmark.o sds.o adlist.o zmalloc.o CLIOBJ = anet.o sds.o adlist.o redis-cli.o zmalloc.o linenoise.o @@ -54,7 +56,7 @@ sds.o: sds.c sds.h zmalloc.h zipmap.o: zipmap.c zmalloc.h zmalloc.o: zmalloc.c config.h -redis-server: $(OBJ) +redis-server: releaseheader $(OBJ) $(CC) -o $(PRGNAME) $(CCOPT) $(DEBUG) $(OBJ) @echo "" @echo "Hint: To run the test-redis.tcl script is a good idea." @@ -74,6 +76,11 @@ redis-check-dump: $(CHECKDUMPOBJ) redis-check-aof: $(CHECKAOFOBJ) $(CC) -o $(CHECKAOFPRGNAME) $(CCOPT) $(DEBUG) $(CHECKAOFOBJ) +releaseheader: + @echo "#define REDIS_GIT_SHA1 \"$(GIT_SHA1)\"" > release.h + @echo "#define REDIS_GIT_DIRTY $(GIT_DIRTY)" >> release.h + @touch redis.c # force recompile of redis.c + .c.o: $(CC) -c $(CFLAGS) $(DEBUG) $(COMPILE_TIME) $< diff --git a/redis.c b/redis.c index eddbc26bc..8ace1898a 100644 --- a/redis.c +++ b/redis.c @@ -76,6 +76,7 @@ #include "pqsort.h" /* Partial qsort for SORT+LIMIT */ #include "zipmap.h" /* Compact dictionary-alike data structure */ #include "sha1.h" /* SHA1 is used for DEBUG DIGEST */ +#include "release.h" /* Release and/or git repository information */ /* Error codes */ #define REDIS_OK 0 @@ -7175,6 +7176,8 @@ static sds genRedisInfoString(void) { bytesToHuman(hmem,zmalloc_used_memory()); info = sdscatprintf(sdsempty(), "redis_version:%s\r\n" + "redis_git_sha1:%s\r\n" + "redis_git_dirty:%d\r\n" "arch_bits:%s\r\n" "multiplexing_api:%s\r\n" "process_id:%ld\r\n" @@ -7199,6 +7202,8 @@ static sds genRedisInfoString(void) { "vm_enabled:%d\r\n" "role:%s\r\n" ,REDIS_VERSION, + REDIS_GIT_SHA1, + REDIS_GIT_DIRTY > 0, (sizeof(long) == 8) ? "64" : "32", aeGetApiName(), (long) getpid(), -- cgit v1.2.1