aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile15
-rw-r--r--src/Version/Version.c2
2 files changed, 15 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index b63fc83..910cd50 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,14 @@ PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
DESTDIR ?=
+GIT_HASH := $(shell git rev-parse --short HEAD)
+GIT_DATE := $(shell git log -1 --format='%ad' --date='format:%y.%m.%d')
+GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
+GIT_REMOTE := $(shell git remote get-url origin)
+GIT_TAG := $(shell git describe --tags --exact-match HEAD 2>/dev/null)
+
+VERSION := $(if $(GIT_TAG),$(GIT_TAG),$(GIT_DATE)+$(GIT_HASH)_$(GIT_BRANCH))
+
TARGET := bin/yapssg
SOURCES := src/Main.c $(wildcard src/*/*.c)
OBJECTS := $(patsubst src/%.c,obj/%.o,$(SOURCES))
@@ -12,7 +20,7 @@ CPPFLAGS += -Isrc $(shell $(PKG_CONFIG) --cflags libxml-2.0 luajit)
CFLAGS ?= -O2 -Wall -Wextra -Werror -std=c99
LDLIBS += $(shell $(PKG_CONFIG) --libs libxml-2.0 luajit)
-.PHONY: all clean install
+.PHONY: all clean install FORCE
all: $(TARGET)
@@ -23,6 +31,11 @@ obj/%.o: src/%.c
mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c $< -o $@
+obj/Version/Version.o: CPPFLAGS += -DYAPSSG_VERSION=\"$(VERSION)\"
+obj/Version/Version.o: FORCE
+
+FORCE:
+
bin:
mkdir -p $@
diff --git a/src/Version/Version.c b/src/Version/Version.c
index 4f4a1ea..944d55b 100644
--- a/src/Version/Version.c
+++ b/src/Version/Version.c
@@ -1,3 +1,3 @@
#include "Version/Version.h"
-const char yapssg_version[] = "0.1.0";
+const char yapssg_version[] = YAPSSG_VERSION;