.POSIX: DATE = 1970-01-01 VERSION = 0.1.0 NAME = gistatic NAME_UC = $(NAME) LANGUAGES = en ## Installation prefix. Defaults to "/usr". PREFIX = /usr BINDIR = $(PREFIX)/bin LIBDIR = $(PREFIX)/lib INCLUDEDIR = $(PREFIX)/include SRCDIR = $(PREFIX)/src/$(NAME) SHAREDIR = $(PREFIX)/share LOCALEDIR = $(SHAREDIR)/locale MANDIR = $(SHAREDIR)/man EXEC = ./ ## Where to store the installation. Empty by default. DESTDIR = LDLIBS = .SUFFIXES: all: include deps.mk sources = \ $(sources.sh) \ derived-assets = \ side-assets = \ ## Default target. Builds all artifacts required for testing ## and installation. all: $(derived-assets) tests/resources/repositories/repo-1/.git \ tests/resources/repositories/repo-2/.git: ln -s .gitdir $@ emit-index: src/gistatic @rm -rf tmp/index/ @./src/gistatic -i -o tmp/index/ ~/dev/published/git-permalink/ ../capim/ ../libedn/ ../listatic/ ../lisp-cli/ @ln -rfs tmp/git-permalink tmp/index/git-permalink emit-repo: src/gistatic @rm -rf tmp/git-permalink/ @time ./src/gistatic -o tmp/git-permalink/ -u FIXME-url-1 ~/dev/published/git-permalink/ run: shellcheck emit-index emit-repo check-unit: check-integration: ## Run all tests. Each test suite is isolated, so that a parallel ## build can run tests at the same time. The required artifacts ## are created if missing. check: check-unit check-integration # tests/resources/repositories/repo-1/.git # tests/resources/repositories/repo-2/.git # sh tests/build-sample.sh # sh tests/integration.sh ## Remove *all* derived artifacts produced during the build. ## A dedicated test asserts that this is always true. clean: rm -rf $(derived-assets) $(side-assets) ## Installs into $(DESTDIR)$(PREFIX). Its dependency target ## ensures that all installable artifacts are crafted beforehand. install: all mkdir -p \ '$(DESTDIR)$(BINDIR)' \ '$(DESTDIR)$(SRCDIR)' \ cp $(sources.sh) '$(DESTDIR)$(BINDIR)' cp $(sources) '$(DESTDIR)$(SRCDIR)' ## Uninstalls from $(DESTDIR)$(PREFIX). This is a perfect mirror ## of the "install" target, and removes *all* that was installed. ## A dedicated test asserts that this is always true. uninstall: rm -rf \ '$(DESTDIR)$(SRCDIR)' \ for f in $(sources.sh); do \ rm -f '$(DESTDIR)$(BINDIR)'/"$${f#src/}"; \ done ALWAYS: