From 395a6aaee59d5a9f7539c8f934b923bc206a4202 Mon Sep 17 00:00:00 2001 From: Quentin Glidic Date: Mon, 30 Jul 2012 17:24:31 +0200 Subject: [PATCH] common.mk: Rework version usage --- Makefile | 4 ++-- common.mk | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index ed0291ed..54d843f3 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ dist: distclean [ ! -d i3-${VERSION} ] || rm -rf i3-${VERSION} [ ! -e i3-${VERSION}.tar.bz2 ] || rm i3-${VERSION}.tar.bz2 mkdir i3-${VERSION} - cp i3-migrate-config-to-v4 generate-command-parser.pl i3-sensible-* i3.config.keycodes DEPENDS LICENSE PACKAGE-MAINTAINER RELEASE-NOTES-${VERSION} i3.config i3.xsession.desktop i3.applications.desktop pseudo-doc.doxygen Makefile i3-${VERSION} + cp i3-migrate-config-to-v4 generate-command-parser.pl i3-sensible-* i3.config.keycodes DEPENDS LICENSE PACKAGE-MAINTAINER RELEASE-NOTES-${VERSION} i3.config i3.xsession.desktop i3.applications.desktop pseudo-doc.doxygen common.mk Makefile i3-${VERSION} cp -r src libi3 i3-msg i3-nagbar i3-config-wizard i3bar i3-dump-log yajl-fallback include man parser-specs i3-${VERSION} # Only copy toplevel documentation (important stuff) mkdir i3-${VERSION}/docs @@ -42,7 +42,7 @@ dist: distclean # Only copy source code from i3-input mkdir i3-${VERSION}/i3-input find i3-input -maxdepth 1 -type f \( -name "*.c" -or -name "*.mk" -or -name "*.h" -or -name "Makefile" \) -exec cp '{}' i3-${VERSION}/i3-input \; - sed -e 's/^GIT_VERSION:=\(.*\)/GIT_VERSION:=$(shell /bin/echo '${GIT_VERSION}' | sed 's/\\/\\\\/g')/g;s/^VERSION:=\(.*\)/VERSION:=${VERSION}/g' common.mk > i3-${VERSION}/common.mk + echo -n '${VERSION} ($(shell git log --pretty=format:%cd --date=short -n1))' > i3-${VERSION}/VERSION # Pre-generate a manpage to allow distributors to skip this step and save some dependencies $(MAKE) mans cp man/*.1 i3-${VERSION}/man/ diff --git a/common.mk b/common.mk index 75f6f269..f202166d 100644 --- a/common.mk +++ b/common.mk @@ -14,9 +14,14 @@ ifndef SYSCONFDIR SYSCONFDIR=$(PREFIX)/etc endif endif -# The escaping is absurd, but we need to escape for shell, sed, make, define -GIT_VERSION:="$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch $(shell [ -f $(TOPDIR)/.git/HEAD ] && sed 's/ref: refs\/heads\/\(.*\)/\\\\\\"\1\\\\\\"/g' $(TOPDIR)/.git/HEAD || echo 'unknown'))" -VERSION:=$(shell git describe --tags --abbrev=0) + +I3_VERSION := '$(shell [ -f $(TOPDIR)/VERSION ] && cat $(TOPDIR)/VERSION)' +ifeq ('',$(I3_VERSION)) +VERSION := $(shell git describe --tags --abbrev=0) +I3_VERSION := '$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch \"$(shell git describe --tags --always --all | sed s:heads/::)\")' +else +VERSION := ${I3_VERSION} +endif ## Generic flags @@ -40,7 +45,7 @@ I3_CFLAGS += -Wall I3_CFLAGS += -Wunused-value I3_CFLAGS += -Iinclude -I3_CPPFLAGS = -DI3_VERSION=\"${GIT_VERSION}\" +I3_CPPFLAGS = -DI3_VERSION=\"${I3_VERSION}\" I3_CPPFLAGS += -DSYSCONFDIR=\"${SYSCONFDIR}\" -- 2.39.2