aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorArun Isaac2023-01-11 23:29:29 +0000
committerArun Isaac2023-01-16 00:36:09 +0000
commit595fe32e7680e75bca74addff27471138cfeb139 (patch)
tree131f95b54044363c88768dc9409b04a86842acd3 /Makefile
parent5cc34d6be3daada501ff952fc9edf1ac04d9c24a (diff)
downloadguile-email-595fe32e7680e75bca74addff27471138cfeb139.tar.gz
guile-email-595fe32e7680e75bca74addff27471138cfeb139.tar.lz
guile-email-595fe32e7680e75bca74addff27471138cfeb139.zip
Makefile: Add release tarball generation rules.
* Makefile (version, GIT, GPG, LZIP, distribute_files, dist_archive): New variables. (dist, $(dist_archive), %.asc): New rules. (.PHONY): Add dist.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile21
1 files changed, 20 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 979c4f1..cc69eed 100644
--- a/Makefile
+++ b/Makefile
@@ -18,12 +18,16 @@
# <http://www.gnu.org/licenses/>.
project = guile-email
+version = $(subst v,,$(shell git describe --abbrev=0))
# FIXME: Do not hardcode the effective version.
guile_effective_version = 3.0
EMACS ?= emacs
+GIT ?= git
+GPG ?= gpg
GUILD ?= guild
GUILE ?= guile
+LZIP ?= lzip
MAKEINFO ?= makeinfo
prefix ?= /usr/local
@@ -39,11 +43,15 @@ tests = $(wildcard tests/*.scm)
doc_texi = doc/$(project).texi
doc_html = $(doc_texi:.texi=.html)
doc_info = $(doc_texi:.texi=.info)
+distribute_files = $(sources) tests $(doc_texi) \
+ build-aux/test-driver.scm \
+ COPYING NEWS README.org \
+ guix.scm Makefile
scmdir = $(datarootdir)/guile/site/$(guile_effective_version)
godir = $(libdir)/guile/$(guile_effective_version)/site-ccache
-.PHONY: all check install clean
+.PHONY: all check install clean dist
all: $(objects)
@@ -70,6 +78,17 @@ website/manual/dev/en: $(doc_html)
check: $(tests)
$(GUILE) --no-auto-compile -L . build-aux/test-driver.scm $^
+dist_archive = $(project)-$(version).tar.lz
+
+dist: $(dist_archive) $(dist_archive).asc
+
+$(dist_archive): .git/refs/heads/master
+ $(GIT) archive --prefix $(basename $(basename $@))/ --format=tar master $(distribute_files) \
+ | $(LZIP) --force --output $@
+
+%.asc: %
+ $(GPG) --detach-sign --armor $<
+
install: $(doc_info)
mkdir -p $(scmdir) $(godir)
cp --parents -vr $(sources) $(scmdir)