summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile41
1 files changed, 27 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 064425a..4e287aa 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,16 @@
+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' \
- $(IKIWIKI_SHARED_OPTIONS) $(IKIWIKI_CONFIG_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)
@@ -14,22 +23,26 @@ all: build
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
+iki_configfiles := $(or $(patsubst %.in,%,$(wildcard config/ikiwiki*.setup.in)),config/ikiwiki.setup)
+
+init: $(iki_configfiles) content
-submodules:
+shared/.git:
git submodule init
git submodule update --init --recursive
-config: submodules
- mkdir -p '$@'
- [ -e '$@/'*.setup ] || ikiwiki $(IKIWIKI_OPTIONS) --dumpsetup '$@/ikiwiki.setup'
+$(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: submodules
- mkdir -p '$@'
- [ -e '$@/index.mdwn' ] || printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn'
+content: notempty = $(wildcard $@/*.mdwn)
+content: shared/.git
+ $(if $(notempty),,mkdir -p '$@')
+ $(if $(notempty),,printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn')
-build: $(cssprojects)
+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 submodules content
+.PHONY: all build