fc263de433
* .gitignore: Ignore *.o-32, mes-mini-mes. * scripts/nyacc-calc.mes: Remove. * scripts/nyacc.mes: Remove. * scripts/paren.mes: Remove. * make/install.make (install): Remove them. p* module/mes/mes-0.mes: Remove. * module/mes/loop-0.mes: Remove. * build-aux/mes-snarf.scm (main): Add --mini option. * GNUmakefile (mini-mes): Use it.
84 lines
2.4 KiB
Makefile
84 lines
2.4 KiB
Makefile
.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)
|
|
GUIX-HASH:=out/guix-hash
|
|
TARBALL_DIR:=$(PACKAGE)-$(VERSION)
|
|
TARBALL:=$(OUT)/$(TARBALL_DIR).tar.gz
|
|
|
|
OPT_CLEAN:=$(OPT_CLEAN) $(TARBALL) .tarball-version
|
|
|
|
GIT_ARCHIVE_HEAD:=git archive HEAD --
|
|
GIT_LS_FILES:=git ls-files
|
|
ifeq ($(wildcard .git),)
|
|
GIT_ARCHIVE_HEAD:=tar -cf-
|
|
GIT_LS_FILES:=find
|
|
endif
|
|
|
|
.tarball-version: tree-clean-p
|
|
echo $(COMMIT) > $@
|
|
|
|
dist: $(TARBALL)
|
|
|
|
tree-clean-p:
|
|
test ! -d .git || git diff --exit-code > /dev/null
|
|
test ! -d .git || git diff --cached --exit-code > /dev/null
|
|
@echo commit:$(COMMIT)
|
|
|
|
$(TARBALL): tree-clean-p .tarball-version ChangeLog
|
|
mkdir -p $(OUT)
|
|
($(GIT_LS_FILES) --exclude=$(OUT);\
|
|
echo $^ | tr ' ' '\n' | grep -Ev 'tree-clean-p')\
|
|
| tar --transform=s,^,$(TARBALL_DIR)/,S -T- -czf $@
|
|
|
|
ChangeLog:
|
|
build-aux/gitlog-to-changelog > $@
|
|
|
|
install: all ChangeLog
|
|
mkdir -p $(DESTDIR)$(PREFIX)/bin
|
|
install mes $(DESTDIR)$(PREFIX)/bin/mes
|
|
install scripts/mescc.mes $(DESTDIR)$(PREFIX)/bin/mescc.mes
|
|
install scripts/repl.mes $(DESTDIR)$(PREFIX)/bin/repl.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/mescc.mes \
|
|
$(DESTDIR)$(PREFIX)/bin/repl.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
|
|
|
|
$(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
|
|
|