IKIWIKI_OPTIONS ?= \
	--set srcdir='$(CURDIR)/content' \
	--set destdir='$(CURDIR)/build/html' \
	$(IKIWIKI_SHARED_OPTIONS) $(IKIWIKI_CONFIG_OPTIONS)

cssprojects ?= $(wildcard shared/themes/goab styling)

all: build

-include shared/include.mk
-include config/include.mk
-include shared/themes/include.mk

always-make = $(filter -B,$(MAKEFLAGS))
avoid-broken-git = $(shell cd content && git symbolic-ref -q HEAD > /dev/null || echo " --no-rcs")

init: submodules content
	$(MAKE) -B config

submodules:
	git submodule init
	git submodule update --init --recursive

config: submodules
	mkdir -p '$@'
	[ -e '$@/'*.setup ] || ikiwiki $(IKIWIKI_OPTIONS) --dumpsetup '$@/ikiwiki.setup'

content: submodules
	mkdir -p '$@'
	[ -e '$@/index.mdwn' ] || printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn'

build: $(cssprojects)
	$(foreach config,$(shell find config -name '*.setup'),ikiwiki --setup $(config)$(avoid-broken-git)$(if $(always-make), --rebuild);)

.PHONY: all build submodules content