.POSIX: .SUFFIXES: .SUFFIXES: .in .in: sed \ -e "s|@HOSTNAME@|`hostname`|g" \ < $< > $@ if [ -x $< ]; then chmod +x $@; fi test-config-files = \ tests/internet/etc/postfix/main.cf \ tests/internet/etc/dkimproxyout.conf \ tests/internet/etc/dovecot/dovecot.conf \ derived-assets = \ $(test-config-files) \ src/bin/paku \ all: guix nix debian homebrew $(derived-assets) paku.lock: src/bin/paku Makefile touch $@ guix: src/org/euandre/packages.scm channel-key.sentinel \ result-packages.sentinel result-services.sentinel channel-key.sentinel: paku.lock F="$$( perl -MJSON -0777 -E 'say $${decode_json <>}{maintainer}{name}' < paku.lock).key"; \ ID="$$(perl -MJSON -0777 -E 'say $${decode_json <>}{maintainer}{email}' < paku.lock)"; \ gpg --armour --export "$$ID" > "$$F" touch $@ src/org/euandre/packages.scm: paku.lock paku guix > src/org/euandre/packages.scm result-packages 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 result-packages.sentinel local-files = \ /etc/postfix/master.cf \ /etc/postfix/main.cf \ internet-files = \ $(local-files) \ /etc/sasl2/smtpd.conf \ /etc/dkimproxyout.conf \ /etc/dovecot/dovecot.conf \ result-services.sentinel: result-local.sentinel result-internet.sentinel touch $@ result-local 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-local.sentinel result-internet 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 touch result-internet.sentinel nix: default.nix result.sentinel default.nix: paku.lock paku nix > $@ result result.sentinel: default.nix nix-build build.nix touch result.sentinel debian.mk: paku.lock paku debian > $@ debian: debian.mk @$(MAKE) -f debian.mk homebrew: Formula Formula: paku.lock mkdir -p $@ paku homebrew $@ touch $@ public/debian: debian mkdir -p $(@D) rsync -avzP --delete `$(MAKE) -s -f debian.mk public-dir`/ $@/ public/paku.html: paku.lock mkdir -p $(@D) paku html > $@ public: public/debian public/paku.html upload: public rsync -avzP --delete public/ euandre.org:/srv/www/s/package-repository/ clean: rm -rf \ $(derived-assets) result* .paku/ public/ debian.mk \ *.sentinel \ HTTP-REMOTE = 'https://euandre.org/s/package-repository' GIT-REMOTE = 'git://euandre.org/package-repository' check-ubuntu-x86_64-deb: sh tests/vm-check.sh -x -H ubuntu-x86_64-headless -r $(HTTP-REMOTE) -t deb check-ubuntu-x86_64-homebrew: sh tests/vm-check.sh -x -H ubuntu-x86_64-headless -r $(GIT-REMOTE) -t homebrew check-ubuntu: check-ubuntu-x86_64-deb check-ubuntu-x86_64-homebrew check-debian-x86_64-deb: sh tests/vm-check.sh -x -H debian-x86_64-headless -r $(HTTP-REMOTE) -t deb check-debian: check-debian-x86_64-deb check: check-ubuntu check-debian