From 8531c612d3f1bce55c574e4e201f09178d2c1f02 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 22 Jun 2011 00:28:32 +0200 Subject: [PATCH] adding version information to build. --- .gitignore | 1 + Makefile | 10 +++++++++- VERSION-GEN | 18 ++++++++++++++++++ src/archived.c | 3 +++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100755 VERSION-GEN diff --git a/.gitignore b/.gitignore index b97968f..187b62b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.o archived Makefile.local.mk +VERSION test/test_* nbproject config.ini diff --git a/Makefile b/Makefile index 5199ffe..c0d1b0e 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ # # Archived Makefile # +all:: CC = gcc CFLAGS = -O2 -Wall -Ilib @@ -27,10 +28,14 @@ else obj += $(obj-mysql) endif +VERSION : + @$(SHELL) ./VERSION-GEN > VERSION +-include VERSION + .SUFFIXES: .c .o .PHONY : clean distclean -all : $(PROGRAM) +all:: $(PROGRAM) $(PROGRAM) : src/archived.o $(obj) $(QUIET_LD)$(LD) $(sort $(^)) -o $@ $(LDFLAGS) @@ -41,11 +46,14 @@ clean : done @make -C test clean @make -C docs clean + $(RM) VERSION distclean : clean $(RM) $(PROGRAM) $(RM) Makefile.local.mk +src/archived.o : CFLAGS += -DARCHIVED_VERSION='"$(ARCHIVED_VERSION)"' + %.o : %.c $(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@ diff --git a/VERSION-GEN b/VERSION-GEN new file mode 100755 index 0000000..5a326ac --- /dev/null +++ b/VERSION-GEN @@ -0,0 +1,18 @@ +#!/bin/sh + +VERSION=$(git describe --tags --match "v[0-9]*" HEAD 2>/dev/null) + +if [ -n "$(git status --porcelain)" ]; then + VERSION="${VERSION}-dirty" +fi + +if [ -f "${1}" ]; then + OLD=$(cat ${1} | sed 's/VERSION = //') +else + OLD="" +fi + +if [ "${VERSION}" != "${OLD}" ]; then + echo >&2 " Archived ${VERSION}" + echo "ARCHIVED_VERSION = ${VERSION}" +fi diff --git a/src/archived.c b/src/archived.c index c6fe1a2..5bc94ec 100644 --- a/src/archived.c +++ b/src/archived.c @@ -27,6 +27,9 @@ #include "util.h" static const char *archived_usage_str = +#ifdef ARCHIVED_VERSION + "Archived " ARCHIVED_VERSION "\n" +#endif "Usage: archived [-c ] \n" " config - Path to the configuration file (default ./config.ini)\n" " root - Path to indexroot. All subdirectories will be indexed.\n";