12 COMMIT:=$(shell test -d .git && (git show 2>/dev/null | head -1 | cut -d' ' -f 2) || cat .tarball-version)
13 TARBALL_DIR:=$(PACKAGE)-$(VERSION)
14 TARBALL:=$(OUT)/$(TARBALL_DIR).tar.gz
16 OPT_CLEAN:=$(OPT_CLEAN) $(TARBALL) .tarball-version
18 GIT_ARCHIVE_HEAD:=git archive HEAD --
19 GIT_LS_FILES:=git ls-files
20 ifeq ($(wildcard .git),)
21 GIT_ARCHIVE_HEAD:=tar -cf-
31 test ! -d .git || git diff --exit-code > /dev/null
32 test ! -d .git || git diff --cached --exit-code > /dev/null
33 @echo commit:$(COMMIT)
35 $(TARBALL): tree-clean-p .tarball-version ChangeLog
37 ($(GIT_LS_FILES) --exclude=$(OUT);\
38 echo $^ | tr ' ' '\n' | grep -Ev 'tree-clean-p')\
39 | tar --transform=s,^,$(TARBALL_DIR)/,S -T- -czf $@
42 build-aux/gitlog-to-changelog > $@
44 install: all ChangeLog
45 mkdir -p $(DESTDIR)$(PREFIX)/bin
46 install mes $(DESTDIR)$(PREFIX)/bin/mes
47 install scripts/elf.mes $(DESTDIR)$(PREFIX)/bin/elf.mes
48 install scripts/include.mes $(DESTDIR)$(PREFIX)/bin/include.mes
49 install scripts/mescc.mes $(DESTDIR)$(PREFIX)/bin/mescc.mes
50 install scripts/repl.mes $(DESTDIR)$(PREFIX)/bin/repl.mes
51 install scripts/paren.mes $(DESTDIR)$(PREFIX)/bin/paren.mes
52 mkdir -p $(DESTDIR)$(PREFIX)/share/mes
53 $(GIT_ARCHIVE_HEAD) module\
54 | tar -C $(DESTDIR)$(PREFIX)/share/mes -xf-
55 mkdir -p $(DESTDIR)$(PREFIX)/share/doc/mes
56 $(GIT_ARCHIVE_HEAD) $(READMES) \
57 | tar -C $(DESTDIR)$(PREFIX)/share/doc/mes -xf-
58 $(GIT_ARCHIVE_HEAD) doc \
59 | tar -C $(DESTDIR)$(PREFIX)/share/doc/mes --strip=1 -xf-
60 cp ChangeLog $(DESTDIR)$(PREFIX)/share/doc/mes
62 release: tree-clean-p check dist
64 git push --tags origin master
65 git push origin master