# common.mak # Targets all: all_common all_recursive clean: clean_common clean_recursive deepclean: deepclean_common deepclean_recursive spellcheck: spellcheck_common spellcheck_recursive .PHONY: all clean deepclean spellcheck # Common rules all_common: $(patsubst %.pyhtml,%.html,$(wildcard *.pyhtml)) clean_common: -rm -f $(patsubst %.pyhtml,%.html,$(wildcard *.pyhtml)) deepclean_common: clean_common -rm -f *.bak LANGUAGE ?= en_US ENCODING = iso8859-1 spellcheck_common: for FILE in *.pyhtml; do aspell --lang=$(LANGUAGE) --encoding=$(ENCODING) --mode=sgml --check $$FILE; done .PHONY: all_common clean_common deepclean_common spellcheck_common # Recursive rules TOP_DIR ?= $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) #TOP_DIR ?= $(CURDIR) SUB_DIRS ?= $(dir $(wildcard */Makefile)) %_recursive: $(foreach SUB_DIR,$(SUB_DIRS), $(MAKE) -C $(SUB_DIR) $*;) .PHONY: %_recursive # General rules CSS = $(TOP_DIR)/css/style.css SITEMAP = $(TOP_DIR)/sitemap.xml XSL = $(TOP_DIR)/xsl/template.xsl PYHTML = $(TOP_DIR)/scripts/pyhtml.py PYHTML_FLAGS = TIDY = tidy TIDY_FLAGS = TIDY_PREFLAGS = $(TIDY_FLAGS) -config $(TOP_DIR)/etc/tidy-pre.config TIDY_POSTFLAGS = $(TIDY_FLAGS) -config $(TOP_DIR)/etc/tidy-post.config ifeq ($(TOP_DIR),./) BASE= else BASE=$(TOP_DIR) endif XSLTPROC = xsltproc XSLTPROC_FLAGS = \ --nonet \ --stringparam email 'j_r_fonseca at yahoo dot co dot uk' \ --stringparam css "css/default.css" \ --stringparam base "$(BASE)" %.html: %.pyhtml $(XSL) $(SITEMAP) @echo "=> $@" @$(PYHTML) $(PYHTML_FLAGS) $< | $(TIDY) $(TIDY_PREFLAGS) | $(XSLTPROC) $(XSLTPROC_FLAGS) $(XSL) - | $(TIDY) $(TIDY_POSTFLAGS) > $@