aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2025-01-28 00:42:01 +0000
committerArun Isaac2025-01-28 01:06:59 +0000
commit26bd1eded10a0b493302dbff1c1a9db6a6b04642 (patch)
treec856cad3db6ca63bb2ddc9c4d85d83955cd34690
parent5ea1acc60b6c03181df57e715d8fcef90c36bd73 (diff)
downloadravanan-26bd1eded10a0b493302dbff1c1a9db6a6b04642.tar.gz
ravanan-26bd1eded10a0b493302dbff1c1a9db6a6b04642.tar.lz
ravanan-26bd1eded10a0b493302dbff1c1a9db6a6b04642.zip
Makefile: Add release tarball generation rules.
* Makefile (GIT, GPG, LZIP, config_file_template, distribute_files, dist_archive): New variables. (dist, distsign, $(dist_archive), %.asc): New rules.
-rw-r--r--Makefile22
1 files changed, 22 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 9b457de..aba1a35 100644
--- a/Makefile
+++ b/Makefile
@@ -19,8 +19,11 @@
project = ravanan
version = 0.1.0
+GIT ?= git
+GPG ?= gpg
GUILD ?= guild
GUILE ?= guile
+LZIP ?= lzip
NODE ?= node
SED ?= sed
@@ -33,12 +36,17 @@ guile_effective_version = 3.0
top_level_module_dir = $(project)
config_file = $(top_level_module_dir)/config.scm
+config_file_template = $(config_file).in
sources = $(filter-out $(config_file), \
$(wildcard $(top_level_module_dir)/*.scm) \
$(wildcard $(top_level_module_dir)/work/*.scm))
objects = $(sources:.scm=.go) $(config_file:.scm=.go)
scripts = $(wildcard bin/*)
tests = $(wildcard tests/*.scm) $(wildcard tests/work/*.scm)
+distribute_files = $(sources) $(config_file_template) $(scripts) \
+ $(tests) pre-inst-env guix.scm \
+ .guix/ravanan-package.scm Makefile \
+ COPYING README.md
scmdir = $(datarootdir)/guile/site/$(guile_effective_version)
godir = $(libdir)/guile/$(guile_effective_version)/site-ccache
@@ -67,5 +75,19 @@ install: $(sources) $(config_file) $(objects) $(scripts)
install -D $$object $(godir)/$$object; \
done
+# Build distribution tarball
+
+dist_archive = $(project)-$(version).tar.lz
+
+dist: $(dist_archive)
+distsign: $(dist_archive).asc
+
+$(dist_archive): .git/refs/heads/main
+ $(GIT) archive --prefix $(basename $(basename $@))/ --format=tar main $(distribute_files) \
+ | $(LZIP) --force --output $@
+
+%.asc: %
+ $(GPG) --detach-sign --armor $<
+
clean:
rm -f $(objects) $(config_file)