IKIWIKI_DEFAULTS ?= \ --rcs git \ --set cgi_wrappermode=00755 \ --set git_wrappermode=06755 \ --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_DEFAULTS) export CURDIR cssprojects ?= $(wildcard shared/themes/goab styling) sass_includes ?= shared/themes/default /usr/share/sass /usr/share/sass/stylesheets /usr/share/compass/frameworks/normalize-scss/stylesheets all: build -include shared/include.mk -include config/include.mk -include shared/themes/include.mk always-make = $(findstring 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) iki_projects = $(patsubst config/%.setup,build-iki/%,$(iki_configfiles)) form_projects := $(patsubst forms/%.cgi,build-form/%,$(wildcard forms/*.cgi forms/*/*.cgi)) init: shared/.git content $(MAKE) $(iki_configfiles) shared/.git: git submodule init git submodule update --init --recursive config/ikiwiki.setup.in: $(if $(wildcard config),,mkdir config) $(if $(wildcard config/ikiwiki.setup.in),,touch config/ikiwiki.setup.in) configfiles: $(iki_configfiles) $(iki_configfiles): iki_flavor = $(if $(filter config/ikiwiki-%.setup,$@),$(@:config/ikiwiki-%.setup=%)) $(iki_configfiles): % : %.in ikiwiki $(IKIWIKI_DEFAULTS) \ $(if $(IKIWIKI_UNDERLAYS)$(IKIWIKI_SHARED_UNDERLAYS),\ --set-yaml add_underlays="$$(echo $(strip \ $(IKIWIKI_UNDERLAYS) \ $(IKIWIKI_SHARED_UNDERLAYS)) \ | perl -pe 's/\s+/\n/g;s/^/- /gm')") \ $(patsubst %,--setup %,$(wildcard $<)) --dumpsetup $@ perl -i -pe '$$s=$$ENV{'CURDIR'}; s/\@CURDIR\@/$$s/g' $@ content: notempty = $(wildcard $@/*.mdwn) content: $(if $(notempty),,mkdir -p '$@') $(if $(notempty),,printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn') build: $(iki_projects) $(form_projects) $(iki_projects): build-iki/%: config/%.setup $(cssprojects) ikiwiki --setup $<$(avoid-broken-git)$(if $(always-make), --rebuild, --refresh) $(form_projects): build-form/%: forms/%.cgi build-iki/ikiwiki install -DT $< build/$< perl -i -pe "s:'../build:'$(CURDIR)/build:g" build/$< cp -f build/html/$*/index.html build/html/$*/index.tmpl FORMBUILDER_NOHEADER=1 build/$< > build/html/$*/index.html~ mv -f build/html/$*/index.html~ build/html/$*/index.html rm build/html/$*/index.tmpl .PHONY: all build build-iki/% build-form/% configfiles