From d779db6715c4bb1025963e059d1cbfde7aecaa74 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Aug 2013 10:01:54 +0200 Subject: [PATCH] Adding version generation script for Makefile. --- .gitignore | 1 + Makefile | 17 ++++++++++++++++- VERSION-GEN | 18 ++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 VERSION-GEN diff --git a/.gitignore b/.gitignore index 32e01ec..2251108 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .* *.o +VERSION_FILE dlight dlight-* config diff --git a/Makefile b/Makefile index 958c853..6a1bcd4 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,10 @@ +all:: + +VERSION_FILE : FORCE + @$(SHELL) VERSION-GEN $@ +-include VERSION_FILE + CC = gcc LDFLAGS = -lxml2 -lcurl -lpcre CFLAGS = -g -Wall -I/usr/include/libxml2 @@ -9,7 +15,7 @@ ifeq ($(DEBUG), 1) CFLAGS +=-D__DEBUG__ endif -all : $(PROGRAMS) +all:: $(PROGRAMS) install : $(PROGRAMS) cp $^ $(HOME)/bin/ @@ -24,5 +30,14 @@ dlight-filter-check: filter-check.o filter.o error.o version.o dlight-% : %.o $(CC) $(LDFLAGS) -o $@ $^ +version.o : VERSION_FILE FORCE +version.o : EXTRA_CFLAGS = -DDLIGHT_VERSION=\"$(VERSION)\" + +%.o : %.c + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< + clean : $(RM) *.o $(PROGRAMS) + $(RM) VERSION_FILE + +FORCE: diff --git a/VERSION-GEN b/VERSION-GEN new file mode 100644 index 0000000..6f3e731 --- /dev/null +++ b/VERSION-GEN @@ -0,0 +1,18 @@ +#!/bin/sh + +VERSION=$(git describe --always --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=unset +fi + +if [ "${VERSION}" != "${OLD}" ]; then + #echo >&2 "VERSION = ${VERSION}" + echo "VERSION = ${VERSION}" > ${1} +fi