# manual/Makefile


CONTENT_DIR		:= content
IMG_DIR			:= images
TEMPLATE_DIR	:= template
BUILD_DIR		:= build

SOURCES			:= $(wildcard $(CONTENT_DIR)/*.md)
HEADER			:= $(TEMPLATE_DIR)/header.tex
PDF_TARGETS		:= $(patsubst %.md,$(BUILD_DIR)/%.pdf,$(notdir $(SOURCES)))
IMG_SOURCES		:= $(wildcard $(IMG_DIR)/*.jpg)
IMG_TARGETS		:= $(patsubst $(IMG_DIR)/%.jpg,$(BUILD_DIR)/%.jpg,$(IMG_SOURCES))

ZIP_SOURCES		:= $(CONTENT_DIR)/ $(IMG_DIR)/ $(TEMPLATE_DIR)/ Makefile
ZIP_TARGET		:= $(BUILD_DIR)/src.zip
PUBLISH_SOURCES	:= $(ZIP_TARGET) $(PDF_TARGETS)

WEB_ROOT		:= $(HOME)/www/geekabit.nl/test/src/projects/evbox-charger-autostart-module
PUBLISH_DIR		:= $(WEB_ROOT)/downloads/manual
ARTICLE			:= $(WEB_ROOT)/index.conf

MKDIR			:= mkdir
MKDIR_FLAGS		:= -p
CONVERT			:= convert
CONVERT_FLAGS	:= -resize "1200x1200>" -strip -quality 80
PANDOC			:= pandoc
PANDOC_FLAGS	:= --defaults $(TEMPLATE_DIR)/pandoc.yaml
ZIP				:= zip
ZIP_FLAGS		:= -r
RSYNC			:= rsync
RSYNC_FLAGS		:= --verbose --archive
TOUCH			:= touch


.PHONY: all clean images publish

all: $(PDF_TARGETS)

$(BUILD_DIR):
	$(MKDIR) $(MKDIR_FLAGS) $@

$(BUILD_DIR)/%.jpg: $(IMG_DIR)/%.jpg | $(BUILD_DIR)
	$(CONVERT) $(CONVERT_FLAGS) $< $@

images: $(IMG_TARGETS)

$(BUILD_DIR)/%.pdf: $(CONTENT_DIR)/%.md $(IMG_TARGETS) $(HEADER) | $(BUILD_DIR)
	$(PANDOC) $(PANDOC_FLAGS) -H $(HEADER) $< -o $@

clean:
	- $(RM) -r $(BUILD_DIR)

$(ZIP_TARGET): $(ZIP_SOURCES) | $(BUILD_DIR)
	$(ZIP) $(ZIP_FLAGS) $@ $^

publish: $(PUBLISH_SOURCES)
	$(RSYNC) $(RSYNC_FLAGS) $^ $(PUBLISH_DIR)/
	$(TOUCH) $(ARTICLE)
