core: Remove define.
[mes.git] / make / install.make
index 88bb32e59cc175210375a263f89d9cdfa7d5d6f9..b4895d1fbf37ce24c1e7025734efe1eb07911d89 100644 (file)
@@ -1,4 +1,16 @@
+.PHONY: tree-clean-p
+
+READMES:=\
+ ANNOUNCE\
+ ANNOUNCE-2\
+ AUTHORS\
+ COPYING\
+ HACKING\
+ NEWS\
+#
+
 COMMIT:=$(shell test -d .git && (git show 2>/dev/null | head -1 | cut -d' ' -f 2) || cat .tarball-version)
 COMMIT:=$(shell test -d .git && (git show 2>/dev/null | head -1 | cut -d' ' -f 2) || cat .tarball-version)
+GUIX-HASH:=out/guix-hash
 TARBALL_DIR:=$(PACKAGE)-$(VERSION)
 TARBALL:=$(OUT)/$(TARBALL_DIR).tar.gz
 
 TARBALL_DIR:=$(PACKAGE)-$(VERSION)
 TARBALL:=$(OUT)/$(TARBALL_DIR).tar.gz
 
@@ -11,7 +23,7 @@ GIT_ARCHIVE_HEAD:=tar -cf-
 GIT_LS_FILES:=find
 endif
 
 GIT_LS_FILES:=find
 endif
 
-.tarball-version:
+.tarball-version: tree-clean-p
        echo $(COMMIT) > $@
 
 dist: $(TARBALL)
        echo $(COMMIT) > $@
 
 dist: $(TARBALL)
@@ -27,21 +39,50 @@ $(TARBALL): tree-clean-p .tarball-version ChangeLog
                echo $^ | tr ' ' '\n' | grep -Ev 'tree-clean-p')\
                | tar --transform=s,^,$(TARBALL_DIR)/,S -T- -czf $@
 
                echo $^ | tr ' ' '\n' | grep -Ev 'tree-clean-p')\
                | tar --transform=s,^,$(TARBALL_DIR)/,S -T- -czf $@
 
-ChangeLog: tree-clean-p
+ChangeLog:
        build-aux/gitlog-to-changelog > $@
 
        build-aux/gitlog-to-changelog > $@
 
-install:
-       mkdir -p  $(DESTDIR)$(PREFIX)/bin
+install: all ChangeLog
+       mkdir -p $(DESTDIR)$(PREFIX)/bin
        install mes $(DESTDIR)$(PREFIX)/bin/mes
        install scripts/elf.mes $(DESTDIR)$(PREFIX)/bin/elf.mes
        install mes $(DESTDIR)$(PREFIX)/bin/mes
        install scripts/elf.mes $(DESTDIR)$(PREFIX)/bin/elf.mes
+       install scripts/include.mes $(DESTDIR)$(PREFIX)/bin/include.mes
        install scripts/mescc.mes $(DESTDIR)$(PREFIX)/bin/mescc.mes
        install scripts/repl.mes $(DESTDIR)$(PREFIX)/bin/repl.mes
        install scripts/paren.mes $(DESTDIR)$(PREFIX)/bin/paren.mes
        mkdir -p $(DESTDIR)$(PREFIX)/share/mes
        $(GIT_ARCHIVE_HEAD) module\
                | tar -C $(DESTDIR)$(PREFIX)/share/mes -xf-
        install scripts/mescc.mes $(DESTDIR)$(PREFIX)/bin/mescc.mes
        install scripts/repl.mes $(DESTDIR)$(PREFIX)/bin/repl.mes
        install scripts/paren.mes $(DESTDIR)$(PREFIX)/bin/paren.mes
        mkdir -p $(DESTDIR)$(PREFIX)/share/mes
        $(GIT_ARCHIVE_HEAD) module\
                | tar -C $(DESTDIR)$(PREFIX)/share/mes -xf-
+       cp module/mes/read-0.mo $(DESTDIR)$(PREFIX)/share/mes/module/mes
+       sed -i -e 's@module/@$(PREFIX)/share/mes/module/@' \
+               $(DESTDIR)$(PREFIX)/share/mes/module/mes/base-0.mes \
+               $(DESTDIR)$(PREFIX)/bin/elf.mes \
+               $(DESTDIR)$(PREFIX)/bin/mescc.mes \
+               $(DESTDIR)$(PREFIX)/bin/repl.mes \
+               $(DESTDIR)$(PREFIX)/bin/paren.mes
+       mkdir -p $(DESTDIR)$(PREFIX)/share/doc/mes
+       $(GIT_ARCHIVE_HEAD) $(READMES) \
+               | tar -C $(DESTDIR)$(PREFIX)/share/doc/mes -xf-
+       $(GIT_ARCHIVE_HEAD) doc \
+               | tar -C $(DESTDIR)$(PREFIX)/share/doc/mes --strip=1 -xf-
+       cp ChangeLog $(DESTDIR)$(PREFIX)/share/doc/mes
 
 release: tree-clean-p check dist
        git tag v$(VERSION)
        git push --tags origin master
        git push origin master
 
 release: tree-clean-p check dist
        git tag v$(VERSION)
        git push --tags origin master
        git push origin master
+
+$(GUIX-HASH): tree-clean-p
+       rm -rf out/mes && mkdir -p out && git clone . out/mes && guix hash -rx out/mes > $@
+
+update-hash: $(GUIX-HASH) .tarball-version
+       @echo -n hash:
+       cat $^
+       sed -i \
+               -e 's,(base32 "[^"]*"),(base32 "$(shell cat $<)"),'\
+               -e 's,(commit "[^"]*"),(commit "$(shell cat .tarball-version)"),'\
+               -e 's,(version "[^"]*"),(version "$(VERSION).$(shell cut -b1-8 .tarball-version)"),'\
+               guix.scm
+       ! git diff --exit-code
+       git commit -m 'guix hash: $(shell cat $<)' guix.scm
+