Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
blob: 52d5c4bed178381d0cab03f42a62babfcc185608 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Builds thoughts (well, not quite like that)
#
#  Copyright (C) 2013  Mike Gerwitz
#
#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
# #

pages := $(patsubst %.pg, %.html, \
         $(shell find docs/ -name '*.pg'))
pages_md := $(patsubst %.md, %.html, \
            $(shell find docs/ -name '*.md'))
articles := $(patsubst %.txt, %.html, \
	$(shell find docs/ -maxdepth 2 -name '*.txt'))
# articles in TeX with an inappropriate var name
texticles=$(patsubst %/, %.html, $(dir $(shell find docs/ -name 'Makefile')))
www_root := www-root/
url_root := http://mikegerwitz.com
repo_url := https://gitorious.org/mtg-personal/thoughts
repo_commit_url := '$(repo_url)/commit/%s'

# configured repo2html command
repo2html := repo2html \
		-t 'Mike Gerwitz' \
		-d 'Free Software Hacker' \
		-c 'Mike Gerwitz' \
		-l 'This content is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.' \
		-C '/style.css' \
		-f 'tools/thoughts-fmt' \
		-T '$(PWD)/tpl' \
		-u '$(repo_url)' \
		-U '$(repo_commit_url)' \
		-E ''

.PHONY: default clean pages articles thoughts docs

default: www-root

thoughts:
	mkdir -p "$(www_root)"
	$(repo2html) \
		-R 40 \
		-o "$(www_root)" \
		'$(url_root)' \
		> "$(www_root)/index.html"

# all .txt articles will be compiled with asciidoc, then post-processed with the
# mgify script
%.html: %.txt
	asciidoc -fasciidoc.conf -v \
		-a stylesdir= \
		-a themedir=$(PWD)/ \
		$<
	./tools/mgify "$@"

# "pages"
%.html: %.pg docs/papers/.list
	$(repo2html) -icontent -ftools/extfmt <$< >$@
%.html: %.md
	$(repo2html) -icontent -ftools/mdfmt <$< >$@

# TeX papers are expected to have their own makefiles as well as an abstract.tex
%.html: coope/%.tex
	$(MAKE) -C '$(dir $<)' pdf dvi
	url_root='$(url_root)' ./tools/texdoc '$(dir $<)' | $(repo2html) -icontent -ftools/extfmt >$@

docs/papers/.list: thoughts articles
	echo "$(articles) $(texticles)" | tr ' ' '\n' | tools/doclist >$@

pages: $(pages) $(pages_md)
articles: $(articles) $(texticles)
docs: pages articles
www-root: docs thoughts
	mkdir -p www-root/papers
	( cd docs/ \
		&& find . -maxdepth 2 -name '*.html' -exec ../tools/doc-cp {} ../www-root/{} \; \
		&& find . -maxdepth 3 \( -name '*.pdf' -o -name '*.dvi' \) -exec cp {} ../www-root/{} \; \
	)
	cp -rv images/ fonts/ www-root/
	cp -v style.css www-root/
	mkdir -p www-root/docs
	cp -rv docs/gh/ www-root/docs/

clean:
	rm -rf www-root/
	rm -f $(pages) $(pages_md) $(articles) $(texticles)