From 524df2190b855c4096449a1aaa7b92a15875f7a7 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Wed, 9 Oct 2013 17:57:43 -0700 Subject: Add make target for tarballs --- .gitignore | 1 + real.make | 22 ++++++++++++++++++++++ version.make | 5 ++--- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f3d4750..e1c02bc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /conf-raw/ /obj/ /bin/ +/dist/ # Generated source files /src/map/magic-interpreter-parser.hpp /src/map/magic-interpreter-parser.cpp diff --git a/real.make b/real.make index e04d98e..e8442fe 100644 --- a/real.make +++ b/real.make @@ -335,3 +335,25 @@ conf-raw/str-%.h: FORCE } > $@ FORCE: ; override CPPFLAGS += -I . + +# distribution tarballs +# this only works from within a git checkout +dist/%/version.make: + $(MKDIR_FIRST) + git show HEAD:version.make > $@ + sed 's/^VERSION_FULL := .*/#&\nVERSION_FULL := ${VERSION_FULL}/' -i $@ + sed 's/^VERSION_HASH := .*/#&\nVERSION_HASH := ${VERSION_HASH}/' -i $@ +dist/%-src.tar: dist/%/version.make + git archive --prefix=$*/ -o $@ HEAD + ( cd dist && tar uf $*-src.tar --mtime="$$(git log -n1 --pretty=%cd)" --mode=664 --owner=root --group=root $*/version.make ) + rm dist/$*/version.make + rmdir dist/$*/ +dist/%-attoconf-only.tar: + $(MKDIR_FIRST) + git --git-dir=deps/attoconf/.git archive --prefix=$*/deps/attoconf/ HEAD -o $@ +dist/%-bundled.tar: dist/%-src.tar dist/%-attoconf-only.tar + cp dist/$*-src.tar $@ + tar Af $@ dist/$*-attoconf-only.tar + +dist: dist/tmwa-${VERSION_FULL}-src.tar dist/tmwa-${VERSION_FULL}-bundled.tar +.PHONY: dist diff --git a/version.make b/version.make index 04ba9c3..8df7143 100644 --- a/version.make +++ b/version.make @@ -1,5 +1,3 @@ -# TODO replace this file in tarballs -# for now, only git builds will work. VERSION_FULL := $(shell cd ${SRC_DIR}; git describe --tags HEAD) VERSION_HASH := $(shell cd ${SRC_DIR}; git rev-parse HEAD) @@ -11,7 +9,8 @@ VERSION_DEVEL := $(word 4,${version_bits}) ifeq "${VERSION_DEVEL}" "" VERSION_DEVEL := 0 endif -VERSION_FULL += $(shell cd ${SRC_DIR}; git diff --quiet HEAD || echo dirty) +# tracking dirty trees is more trouble than it's worth +#VERSION_FULL += $(shell cd ${SRC_DIR}; git diff --quiet HEAD || echo dirty) VENDOR := Vanilla VENDOR_VERSION := 0 -- cgit v1.2.3-70-g09d2