#!/usr/bin/make -f txt_files = $(shell find -name '*.txt' -a ! -name '.*.txt') html_files = $(patsubst %.txt,%.html,$(txt_files)) pdf_files = $(patsubst %.txt,%.pdf,$(txt_files)) TXT_TO_HTML = asciidoc -a linkcss HTML_TO_PDF = wkhtmltopdf CSS_FILE = xsf.css ADOC_CSS_FILE= asciidoc-xhtml11.css ADOC_JS_FILE = asciidoc-xhtml11.js SVG_LOGO = xsf.svg PNG_LOGO = xsf.png all_files = $(html_files) $(txt_files) $(CSS_FILE) $(ADOC_CSS_FILE) $(ADOC_JS_FILE) $(SVG_LOGO) $(PNG_LOGO) all: html $(PNG_LOGO) html: $(html_files) pdf: $(pdf_files) %.html: rel_path=$(shell echo $@|sed 's,[^/],,g;s,/,../,g') %.html: link_home=$(shell echo "XSF / ") %.html: %.txt @echo " HTML $@" @$(TXT_TO_HTML) -o $@.tmp $< @echo " HOME $@" @if [ $< != index.txt ]; then sed -i 's,

,

$(link_home),' $@.tmp; fi @echo " CSS $@" @sed -i 's,\(rel="stylesheet" href="\)[^"]*,\1$(rel_path)$(CSS_FILE),' $@.tmp @echo " JS $@" @sed -i 's,\(type="text/javascript" src="\)[^"]*,\1$(rel_path)$(ADOC_JS_FILE),' $@.tmp @mv $@.tmp $@ %.pdf: %.html $(CSS_FILE) $(ADOC_CSS_FILE) $(ADOC_JS_FILE) $(SVG_LOGO) @echo " GEN $@" @$(HTML_TO_PDF) $< $@ # We usually don't need to run this one, but it's easier to keep both # SVN and PNG logos in sync: $(PNG_LOGO): $(SVG_LOGO) inkscape $< -e $@ install: @if [ -z "$(DESTDIR)" ]; then \ echo 'E: DESTDIR is not set, not installing.'; exit 1; \ fi mkdir -p $(DESTDIR) # There are probably better ways: set -e; for i in $(all_files); do \ d=$(DESTDIR)/`dirname $$i` && \ mkdir -p $$d && \ install $$i $$d; \ done clean: @echo "Removing all generated files" rm -f $(html_files) $(pdf_files) .PHONY: clean html pdf all