summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2021-03-29 14:34:59 +0200
committerJonas Smedegaard <dr@jones.dk>2021-03-29 14:34:59 +0200
commit4f28cac0df6ca0e66535f02860007d14e78983bd (patch)
treeb02cddf83f8ec3a795e047ba53e00daab9c0d839 /Makefile
parent806f0098c14b998715a75d91b88fc5a7e9867172 (diff)
isolate iki projects and forms as distinct build targets
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile27
1 files changed, 13 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 0046921..17cc5ec 100644
--- a/Makefile
+++ b/Makefile
@@ -25,6 +25,8 @@ 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)
@@ -54,18 +56,15 @@ content:
$(if $(notempty),,mkdir -p '$@')
$(if $(notempty),,printf '# Hello world!\n\nHello world!\n' > '$@/index.mdwn')
-build:
- $(if $(cssprojects),$(MAKE) $(cssprojects))
- set -e;\
- $(foreach config,$(shell find config -name '*.setup'),ikiwiki --setup $(config)$(avoid-broken-git)$(if $(always-make), --rebuild, --refresh);)
- set -e;\
- $(foreach path,$(patsubst forms/%,%,$(wildcard forms/*.cgi forms/*/*.cgi)),\
- install -DT 'forms/$(path)' 'build/forms/$(path)'; \
- perl -i -pe "s:'../build:'$(CURDIR)/build:g" 'build/forms/$(path)';\
- $(foreach htmlstempath,$(path:%.cgi=build/html/%/index),\
- cp -f $(htmlstempath).html $(htmlstempath).tmpl;\
- FORMBUILDER_NOHEADER=1 'build/forms/$(path)' > $(htmlstempath).html~;\
- mv -f $(htmlstempath).html~ $(htmlstempath).html;\
- rm $(htmlstempath).tmpl))
+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 configfiles
+.PHONY: all build build-iki/% build-form/% configfiles