diff -r 000000000000 -r 328995b5b8fd Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Wed Mar 09 21:23:23 2016 +0200 @@ -0,0 +1,150 @@ + +################################################################ +# Standard GNU Makefile settings. + +SHELL = /bin/sh +export PATH := /bin:/usr/bin:${PATH} + +# Disable built in pattern rules. +MAKEFLAGS += -r +# Disable built in variables. +MAKEFLAGS += -R +# Disable built in suffix rules. +.SUFFIXES: +# Delete target file if command fails. +.DELETE_ON_ERROR: +# Default target. +.DEFAULT_GOAL = all + +################################################################ +# Platform definition. + +host_os := linux +ifneq '' '$(WINDIR)' + host_os := cygwin +endif +target_os := $(host_os) + +################################################################ +# Build tool definition/switches. + +RST2HTML := rst2html +ifeq '$(host_os)' 'cygwin' + RST2HTML := rst2html.py +endif + +RST_WARNING_FLAGS := --halt warning +RST_RENDER_FLAGS := --strip-comments --embed-stylesheet --no-xml-declaration --math-output=HTML --initial-header-level=2 +RST_FLAGS := $(RST_WARNING_FLAGS) $(RST_RENDER_FLAGS) + +################################################################ +# Proj dirs/files. + +RST_FILES := $(wildcard *.rst) + +TMPL_DIR := tmpl + +HTML_DIR := dist/multi-html +RST_HTML_FILES := $(patsubst %.rst,$(HTML_DIR)/%.html,$(RST_FILES)) +HTML_FILES := $(RST_HTML_FILES) $(HTML_DIR)/iframe.html + +################################################################ +# Deploy targets. + +WWW_SRV_NAME := defun.work +WWW_SRV_USER := user +HG_SRV_NAME := hg.defun.work +HG_SRV_USER := user +LOCAL_DIR := /srv/www/stat + +ifneq '' '$(filter deploy%,$(MAKECMDGOALS))' + $(shell rm -f $(HTML_DIR)/rst.tmpl) +endif + +.PHONY: deploy +deploy: deploy2defun-web deploy2defun-hg + +# Will be accessible via: http://stat.defun.work/ +.PHONY: deploy2defun-web +deploy2defun-web: html + rsync --delete -avP -e ssh $(HTML_DIR)/ $(WWW_SRV_USER)@$(WWW_SRV_NAME):/srv/www/stat/ + +.PHONY: deploy2defun-hg +deploy2defun-hg: + hg push ssh://$(HG_SRV_USER)@$(HG_SRV_NAME)//srv/hg/tips || [ $$? = 1 ] + +.PHONY: deploy2local +deploy2local: html + rsync --delete -avP $(HTML_DIR)/ $(LOCAL_DIR) + +################################################################ +# Build targets. + +.PHONY: all +all: + +.PHONY: html +html: $(HTML_FILES) + +$(HTML_DIR)/%.html: %.rst $(TMPL_DIR)/rst.css $(TMPL_DIR)/rst.tmpl $(MAKEFILE_LIST) | $(HTML_DIR) + $(RST2HTML) $(RST_FLAGS) --stylesheet=$(TMPL_DIR)/rst.css --template=$(TMPL_DIR)/rst.tmpl $*.rst $@ + +$(HTML_DIR)/iframe.html: $(RST_FILES) $(MAKEFILE_LIST) | $(HTML_DIR) + { \ +echo '
'; \ +echo ''; \ +echo ''; \ +echo '