Prepare for 0.1 release: make install.
[mes.git] / make / install.make
1 .PHONY: tree-clean-p
2
3 READMES:=\
4  ANNOUNCE\
5  ANNOUNCE-2\
6  AUTHORS\
7  COPYING\
8  HACKING\
9  NEWS\
10 #
11
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
15
16 OPT_CLEAN:=$(OPT_CLEAN) $(TARBALL) .tarball-version
17
18 GIT_ARCHIVE_HEAD:=git archive HEAD --
19 GIT_LS_FILES:=git ls-files
20 ifeq ($(wildcard .git),)
21 GIT_ARCHIVE_HEAD:=tar -cf-
22 GIT_LS_FILES:=find
23 endif
24
25 .tarball-version:
26         echo $(COMMIT) > $@
27
28 dist: $(TARBALL)
29
30 tree-clean-p:
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)
34
35 $(TARBALL): tree-clean-p .tarball-version ChangeLog
36         mkdir -p $(OUT)
37         ($(GIT_LS_FILES) --exclude=$(OUT);\
38                 echo $^ | tr ' ' '\n' | grep -Ev 'tree-clean-p')\
39                 | tar --transform=s,^,$(TARBALL_DIR)/,S -T- -czf $@
40
41 ChangeLog:
42         build-aux/gitlog-to-changelog > $@
43
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
61
62 release: tree-clean-p check dist
63         git tag v$(VERSION)
64         git push --tags origin master
65         git push origin master