TMPDIR			:= ./_tmp
CSRD			:= ./og-csrd/index.html
MD_CSRD			:= $(TMPDIR)/og-csrd.md
CCSRD			:= $(TMPDIR)/ccsrd.md
STYLESDIR		:= ./pandoc
WEBDIR			:= $(TMPDIR)/web
HTML_OUT		:= $(WEBDIR)/index.html
BASE_PATCH_DIR		:= ./patches/base
BASE_PATCHES		:= $(wildcard $(BASE_PATCH_DIR)/*.patch)
BASE_PATCHES_OUT	:= $(subst $(BASE_PATCH_DIR),$(TMPDIR),$(BASE_PATCHES))
DE_OGCSRD_PATCH_DIR	:= ./patches/de-ogcsrd
DE_OGCSRD_PATCHES	:= $(wildcard $(DE_OGCSRD_PATCH_DIR)/*.patch)
DE_OGCSRD_PATCHES_OUT	:= $(subst $(DE_OGCSRD_PATCH_DIR),$(TMPDIR),$(DE_OGCSRD_PATCHES))
BSS_PATCH_DIR		:= ./patches/bss
BSS_PATCHES		:= $(wildcard $(BSS_PATCH_DIR)/*.patch)
BSS_PATCHES_OUT		:= $(subst $(BSS_PATCH_DIR),$(TMPDIR),$(BSS_PATCHES))
# DEFAULT BUILD
all: base
# CCSRD VERSIONS
base: $(CCSRD) $(BASE_PATCHES_OUT)
de-ogcsrd: base $(DE_OGCSRD_PATCHES_OUT)
bss: de-ogcsrd $(BSS_PATCHES_OUT)
# CLEANUPS
clean:
	rm -rf $(TMPDIR)/ccsrd*
	rm -rf $(TMPDIR)/*.patch
distclean:
	rm -rf $(TMPDIR)
# PATCHERS
$(TMPDIR)/%.patch: $(BASE_PATCH_DIR)/%.patch
	$(info >>> BASE '$<')
	@patch $(CCSRD) $< --quiet
	@touch $@
$(TMPDIR)/%.patch: $(DE_OGCSRD_PATCH_DIR)/%.patch
	$(info >>> DE-OGCSRD '$<')
	@patch $(CCSRD) $< --quiet
	@touch $@
$(TMPDIR)/%.patch: $(BSS_PATCH_DIR)/%.patch
	$(info >>> BSS '$<')
	@patch $(CCSRD) $< --quiet
	@touch $@
# OUTPUTS
web: $(CCSRD) bss
	mkdir -p $(WEBDIR)
	pandoc $(CCSRD) --data-dir=$(STYLESDIR) --template bss -s -o $(HTML_OUT)
ifdef DEST_FILE
	cp $(HTML_OUT) $(DEST_FILE)
endif
# BUILD STEPS
# create the build dir
$(TMPDIR):
	mkdir -p $(TMPDIR)
# generate the root markdown file
$(MD_CSRD): $(CSRD) | $(TMPDIR)
	pandoc $(CSRD) -o $(MD_CSRD) --columns 120
# create the markdown file to patch
$(CCSRD): $(MD_CSRD)
	cp -a $(MD_CSRD) $(CCSRD)