]> git.sur5r.net Git - i3/i3/commitdiff
common.mk: Rework version usage
authorQuentin Glidic <sardemff7+git@sardemff7.net>
Mon, 30 Jul 2012 15:24:31 +0000 (17:24 +0200)
committerQuentin Glidic <sardemff7+git@sardemff7.net>
Mon, 30 Jul 2012 19:13:03 +0000 (21:13 +0200)
Makefile
common.mk

index ed0291ed41823e2def93f86b852599f420fb62e0..54d843f39135c4e790eef1e1ad8a3c3ed2aee2a9 100644 (file)
--- 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/
index 75f6f269aa8e86244f8e2b9d19a681b56f215837..f202166df5b1f20b576a23fcbc3fd8ce1577ab12 100644 (file)
--- 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}\"