aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2023-03-24 10:20:27 -0300
committerEuAndreh <eu@euandre.org>2023-03-24 10:20:27 -0300
commitb400302e679f17fa25e4d1423e3dbf1f3be29caa (patch)
tree737bedde107d586a1f72bf8b5260511a94159e8c /Makefile
parentMakefile: Add check-debian-x86_64-deb (diff)
downloadpackage-repository-b400302e679f17fa25e4d1423e3dbf1f3be29caa.tar.gz
package-repository-b400302e679f17fa25e4d1423e3dbf1f3be29caa.tar.xz
Makefile: Use ".sentinel" files to fix dependency graph of Guix and Nix build
Diffstat (limited to '')
-rw-r--r--Makefile38
1 files changed, 23 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index b1d570d..6e30e3b 100644
--- a/Makefile
+++ b/Makefile
@@ -15,12 +15,12 @@
all: EuAndreh.key guix nix debian homebrew src/bin/paku
-EuAndreh.key: paku.lock
- gpg --armour --export eu@euandre.org > $@
-
paku.lock: src/bin/paku Makefile
touch $@
+EuAndreh.key: paku.lock
+ gpg --armour --export eu@euandre.org > $@
+
test-config-files = \
tests/internet/etc/postfix/main.cf \
@@ -30,15 +30,18 @@ test-config-files = \
derived-assets = \
$(test-config-files) \
-guix: src/org/euandre/packages.scm result-packages result-services
+guix: src/org/euandre/packages.scm result-packages.sentinel \
+ result-services.sentinel
src/org/euandre/packages.scm: paku.lock
paku guix > src/org/euandre/packages.scm
-result-packages:
- guix build -r $@ -v3 -Lsrc/ -K \
+result-packages.sentinel: src/org/euandre/packages.scm src/org/euandre/queue.scm
+ rm -f result-packages
+ guix build -r result-packages -v3 -Lsrc/ -K \
-f src/org/euandre/packages.scm \
-f src/org/euandre/queue.scm
+ touch $@
local-files = \
/etc/postfix/master.cf \
@@ -50,29 +53,34 @@ internet-files = \
/etc/dkimproxyout.conf \
/etc/dovecot/dovecot.conf \
-result-local: result-packages
- guix system -v3 -Lsrc/ -K -r $@ build tests/local/system.scm
+result-services.sentinel: result-local.sentinel result-internet.sentinel
+ touch $@
+
+result-local.sentinel: result-packages.sentinel
+ rm -f result-local
+ guix system -v3 -Lsrc/ -K -r result-local build tests/local/system.scm
for f in $(local-files); do \
diff -U5 --color=always result-local$$f tests/local$$f; \
done
+ touch $@
-result-internet: result-packages
- $(MAKE) $(test-config-files)
- guix system -v3 -Lsrc/ -K -r $@ build tests/internet/system.scm
+result-internet.sentinel: result-packages.sentinel $(test-config-files)
+ rm -f result-internet
+ guix system -v3 -Lsrc/ -K -r result-internet build tests/internet/system.scm
for f in $(internet-files); do \
diff -U5 --color=always result-internet$$f tests/internet$$f; \
done
-
-result-services: result-local result-internet
+ touch $@
-nix: default.nix result
+nix: default.nix result.sentinel
default.nix: paku.lock
paku nix > $@
-result:
+result.sentinel: default.nix
nix-build build.nix
+ touch $@
debian.mk: paku.lock