PREFIX ?= / CLOUDS = $(sort $(notdir $(patsubst %/,%,$(wildcard lib/tiny-cloud/cloud/*/)))) MAN1PAGES = docs/imds.1 MAN5PAGES = docs/tiny-cloud.conf.5 docs/cloud-config.5 docs/alpine-config.5 MAN8PAGES = docs/tiny-cloud.8 SUBPACKAGES = core openrc $(CLOUDS) .PHONY: check install $(SUBPACKAGES) install: $(SUBPACKAGES) core: $(MAN1PAGES) $(MAN5PAGES) $(MAN8PAGES) install -Dm755 -t "$(PREFIX)"/usr/bin \ bin/imds install -Dm644 -t "$(PREFIX)"/usr/share/man/man1 \ $(MAN1PAGES) install -Dm644 -t "$(PREFIX)"/usr/share/man/man5 \ $(MAN5PAGES) install -Dm644 -t "$(PREFIX)"/usr/share/man/man8 \ $(MAN8PAGES) install -Dm644 -t "$(PREFIX)"/usr/lib/tiny-cloud \ lib/tiny-cloud/common \ lib/tiny-cloud/init \ lib/tiny-cloud/tiny-cloud.conf install -Dm644 -t "$(PREFIX)"/usr/lib/tiny-cloud/user-data \ lib/tiny-cloud/user-data/* install -Dm644 lib/tiny-cloud/tiny-cloud.conf \ "$(PREFIX)"/etc/tiny-cloud.conf install -Dm755 -t "$(PREFIX)"/usr/sbin \ sbin/tiny-cloud openrc: install -Dm755 -t "$(PREFIX)"/etc/init.d \ dist/openrc/* $(CLOUDS): install -Dm644 -t "$(PREFIX)"/usr/lib/tiny-cloud/cloud/$@ \ lib/tiny-cloud/cloud/$@/* [ -f "$(PREFIX)"/usr/lib/tiny-cloud/cloud/$@/autodetect ] && \ chmod 0755 "$(PREFIX)"/usr/lib/tiny-cloud/cloud/$@/autodetect check: tests/Kyuafile Kyuafile kyua --variable parallelism=$(shell nproc) test || (kyua report --verbose && exit 1) tests/Kyuafile: $(wildcard tests/*.test) echo "syntax(2)" > $@.tmp echo "test_suite('tiny-cloud')" >> $@.tmp for i in $(notdir $(wildcard tests/*.test)); do \ echo "atf_test_program{name='$$i',timeout=5}" >> $@.tmp ; \ done mv $@.tmp $@ Kyuafile: echo "syntax(2)" > $@.tmp echo "test_suite('tiny-cloud')" >> $@.tmp echo "include('tests/Kyuafile')" >> $@.tmp mv $@.tmp $@ docs/%.1: docs/%.1.scd scdoc < $< > $@ docs/%.5: docs/%.5.scd scdoc < $< > $@ docs/%.8: docs/%.8.scd scdoc < $< > $@