diff --git a/Makefile b/Makefile index 46df88bb26b180b6e4eedc7d11ceae2315818d6e..38b8448da288b78e6e337d09c2cd13eb1a986048 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ endif CCOPT= $(CFLAGS) $(CCLINK) $(ARCH) $(PROF) DEBUG?= -g -rdynamic -ggdb -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 ziplist.o +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 ziplist.o release.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 CHECKDUMPOBJ = redis-check-dump.o lzf_c.o lzf_d.o @@ -37,12 +37,10 @@ ae_kqueue.o: ae_kqueue.c ae_select.o: ae_select.c anet.o: anet.c fmacros.h anet.h dict.o: dict.c fmacros.h dict.h zmalloc.h -dict2.o: dict2.c fmacros.h dict2.h zmalloc.h linenoise.o: linenoise.c fmacros.h lzf_c.o: lzf_c.c lzfP.h lzf_d.o: lzf_d.c lzfP.h pqsort.o: pqsort.c -printraw.o: printraw.c redis-benchmark.o: redis-benchmark.c fmacros.h ae.h anet.h sds.h adlist.h \ zmalloc.h redis-check-aof.o: redis-check-aof.c fmacros.h config.h @@ -50,10 +48,13 @@ redis-check-dump.o: redis-check-dump.c lzf.h redis-cli.o: redis-cli.c fmacros.h anet.h sds.h adlist.h zmalloc.h \ linenoise.h redis.o: redis.c fmacros.h config.h redis.h ae.h sds.h anet.h dict.h \ - adlist.h zmalloc.h lzf.h pqsort.h zipmap.h staticsymbols.h sha1.h + adlist.h zmalloc.h lzf.h pqsort.h zipmap.h ziplist.h sha1.h release.h \ + staticsymbols.h +release.o: release.c release.h sds.o: sds.c sds.h zmalloc.h +sha1.o: sha1.c sha1.h +ziplist.o: ziplist.c zmalloc.h ziplist.h zipmap.o: zipmap.c zmalloc.h -ziplist.o: ziplist.c zmalloc.h zmalloc.o: zmalloc.c config.h redis-server: $(OBJ) diff --git a/redis.c b/redis.c index 4f5f68a7c9a1caaf78e119931b928c159553c1cb..8f5e8f47f43bce8ec5502f479a6b147171b9cf69 100644 --- a/redis.c +++ b/redis.c @@ -575,6 +575,8 @@ typedef struct iojob { } iojob; /*================================ Prototypes =============================== */ +char *redisGitSHA1(void); +char *redisGitDirty(void); static void freeStringObject(robj *o); static void freeListObject(robj *o); @@ -7760,8 +7762,8 @@ static sds genRedisInfoString(void) { "vm_enabled:%d\r\n" "role:%s\r\n" ,REDIS_VERSION, - REDIS_GIT_SHA1, - strtol(REDIS_GIT_DIRTY,NULL,10) > 0, + redisGitSHA1(), + strtol(redisGitDirty(),NULL,10) > 0, (sizeof(long) == 8) ? "64" : "32", aeGetApiName(), (long) getpid(), @@ -11442,7 +11444,7 @@ static void daemonize(void) { static void version() { printf("Redis server version %s (%s:%d)\n", REDIS_VERSION, - REDIS_GIT_SHA1, atoi(REDIS_GIT_DIRTY) > 0); + redisGitSHA1(), atoi(redisGitDirty()) > 0); exit(0); } diff --git a/release.c b/release.c new file mode 100644 index 0000000000000000000000000000000000000000..64186ec4e1a82290e812217ae402513f451a2af4 --- /dev/null +++ b/release.c @@ -0,0 +1,13 @@ +/* Every time the Redis Git SHA1 or Dirty status changes only this file + * small file is recompiled, as we access this information in all the other + * files using this functions. */ + +#include "release.h" + +char *redisGitSHA1(void) { + return REDIS_GIT_SHA1; +} + +char *redisGitDirty(void) { + return REDIS_GIT_DIRTY; +}