IKIWIKI_DEFAULTS ?= \ --rcs git \ --set cgi_wrappermode=00755 \ --set git_wrappermode=06755 \ $(IKIWIKI_SHARED_DEFAULTS) IKIWIKI_OPTIONS ?= \ --set srcdir='$(CURDIR)/content' \ --set destdir='$(CURDIR)/build/html$(iki_flavor:%=-%)' \ --set cgi_wrapper='$(CURDIR)/build/cgi$(iki_flavor:%=-%)/ikiwiki.cgi' \ --set git_wrapper='$(CURDIR)/build/git/post-update-ikiwiki$(iki_flavor:%=-%)' \ --set wikistatedir='$(CURDIR)/.ikiwiki$(iki_flavor:%=-%)' \ $(IKIWIKI_SHARED_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") iki_configfiles := $(or $(patsubst %.in,%,$(wildcard config/ikiwiki*.setup.in)),config/ikiwiki.setup) init: $(iki_configfiles) content shared/.git: git submodule init git submodule update --init --recursive $(iki_configfiles): iki_flavor = $(if $(filter config/ikiwiki-%.setup,$@),$(@:config/ikiwiki-%.setup=%)) $(iki_configfiles): % : %.in shared/.git $(if $(wildcard config),,mkdir config) ikiwiki $(IKIWIKI_DEFAULTS) $(patsubst %,--setup %,$(wildcard $<)) $(IKIWIKI_OPTIONS) --dumpsetup $@ content: notempty = $(wildcard $@/*.mdwn) content: shared/.git $(if $(notempty),,mkdir -p '$@') $(if $(notempty),,printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn') build: $(if $(cssprojects),$(MAKE) $(cssprojects)) $(foreach config,$(shell find config -name '*.setup'),ikiwiki --setup $(config)$(avoid-broken-git)$(if $(always-make), --rebuild);) .PHONY: all build