Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / doc / guide / Makefile
CommitLineData
7f918cf1
CE
1GIT := git
2MLTON_VERSION := 20180207
3
4export LC_ALL = C
5
6NULL :=
7
8ASCIIDOC := asciidoc
9ifneq ($(shell which $(ASCIIDOC) 2> /dev/null),)
10ASCIIDOC_CONF_DIR := $(shell $(ASCIIDOC) -v /dev/null 2>&1 | head -n 1 | sed 's|.*reading: \(.*\)/asciidoc.conf|\1|')
11else
12ASCIIDOC_CONF_DIR :=
13endif
14ASCIIDOC_MLTON_FLAGS := $(shell cat conf/asciidoc-mlton.flags | sed 's|^\#.*||' | sed "s|MLTON_VERSION|$(MLTON_VERSION)|")
15ASCIIDOC_MLTON_DEPS := bin/InclGitFile.py conf/asciidoc-mlton.flags $(shell cat conf/asciidoc-mlton.flags | sed -n 's|^.*\(conf/.*\)$$|\1|p')
16ASCIIDOC_HTML5_FLAGS := $(ASCIIDOC_MLTON_FLAGS) $(shell cat conf/asciidoc-html5.flags | sed 's|^\#.*||')
17ASCIIDOC_HTML5_DEPS := $(ASCIIDOC_MLTON_DEPS) conf/asciidoc-html5.flags $(shell cat conf/asciidoc-html5.flags | sed -n 's|^.*\(conf/.*\)$$|\1|p')
18ASCIIDOC_DOCBOOK45_FLAGS := $(ASCIIDOC_MLTON_FLAGS) $(shell cat conf/asciidoc-docbook45.flags | sed 's|^\#.*||')
19ASCIIDOC_DOCBOOK45_DEPS := $(ASCIIDOC_MLTON_DEPS) conf/asciidoc-docbook45.flags $(shell cat conf/asciidoc-docbook45.flags | sed -n 's|^.*\(conf/.*\)$$|\1|p')
20
21DBLATEX := dblatex
22
23GEN_PAGES := Index mlton-guide
24GEN_ATTACHMENTS := $(foreach size,16 32 64 128 256 512 1024,Logo.attachments/mlton-$(size).png Logo.attachments/mlton-$(size).pdf)
25
26SRC_PAGES := $(filter-out $(GEN_PAGES),$(patsubst ./%.adoc,%,$(shell cd src ; find . -type f -name '*.adoc')))
27SRC_ATTACHMENTS := $(filter-out $(GEN_ATTACHMENTS),$(patsubst ./%,%,$(foreach dir,$(shell cd src ; find . -type d -name '*.attachments'),$(shell cd src ; find $(dir) -type f ! -name '.gitignore' ! -name '.gitattributes'))))
28
29HTML5_XTRA := asciidoc.css asciidoc.js pygments.css mlton.css mlton-gcse.js index.html
30HTML5_XTRA_PAGES := Index
31
32MLTON_ORG_XTRA := $(HTML5_XTRA)
33MLTON_ORG_XTRA_PAGES := $(HTML5_XTRA_PAGES)
34MLTON_ORG_XTRA_ATTACHMENTS := $(foreach size,16 32 64 128 256 512 1024,Logo.attachments/mlton-$(size).png)
35MLTON_ORG := $(addprefix www.mlton.org/, $(SRC_PAGES) $(SRC_ATTACHMENTS) $(MLTON_ORG_XTRA) $(MLTON_ORG_XTRA_PAGES) $(MLTON_ORG_XTRA_ATTACHMENTS))
36MLTON_ORG_TORM := $(filter-out $(MLTON_ORG),$(shell if [ -d www.mlton.org ]; then find www.mlton.org -type f; fi))
37
38LOCALHOST_XTRA := $(filter-out mlton-gcse.js,$(HTML5_XTRA))
39LOCALHOST_XTRA_PAGES := $(HTML5_XTRA_PAGES)
40LOCALHOST_XTRA_ATTACHMENTS := $(foreach size,16 32 64 128 256 512 1024,Logo.attachments/mlton-$(size).png)
41LOCALHOST := $(addprefix localhost/, $(SRC_PAGES) $(SRC_ATTACHMENTS) $(LOCALHOST_XTRA) $(LOCALHOST_XTRA_PAGES) $(LOCALHOST_XTRA_ATTACHMENTS))
42LOCALHOST_TORM := $(filter-out $(LOCALHOST),$(shell if [ -d localhost ]; then find localhost -type f; fi))
43
44
45ALL :=
46ifneq ($(shell which $(ASCIIDOC) 2> /dev/null),)
47ifneq ($(shell which pygmentize 2> /dev/null),)
48ALL += $(LOCALHOST) localhost-rm
49endif
50ifneq ($(shell which $(DBLATEX) 2> /dev/null),)
51ALL += mlton-guide.pdf
52endif
53endif
54
55
56all: $(ALL)
57
58
59ifneq ($(shell which gm 2> /dev/null),)
60CONVERT := gm convert
61else
62ifneq ($(shell which convert 2> /dev/null),)
63CONVERT := convert
64else
65CONVERT := no-convert
66endif
67endif
68
69%-16.png : %.svg
70 $(CONVERT) $< -resize 16x16 $@
71%-32.png : %.svg
72 $(CONVERT) $< -resize 32x32 $@
73%-64.png : %.svg
74 $(CONVERT) $< -resize 64x64 $@
75%-128.png : %.svg
76 $(CONVERT) $< -resize 128x128 $@
77%-256.png : %.svg
78 $(CONVERT) $< -resize 256x256 $@
79%-512.png : %.svg
80 $(CONVERT) $< -resize 512x512 $@
81%-1024.png : %.svg
82 $(CONVERT) $< -resize 1024x1024 $@
83
84%-16.pdf : %.svg
85 $(CONVERT) $< -resize 16x16 $@
86%-32.pdf : %.svg
87 $(CONVERT) $< -resize 32x32 $@
88%-64.pdf : %.svg
89 $(CONVERT) $< -resize 64x64 $@
90%-128.pdf : %.svg
91 $(CONVERT) $< -resize 128x128 $@
92%-256.pdf : %.svg
93 $(CONVERT) $< -resize 256x256 $@
94%-512.pdf : %.svg
95 $(CONVERT) $< -resize 512x512 $@
96%-1024.pdf : %.svg
97 $(CONVERT) $< -resize 1024x1024 $@
98
99
100conf/specialsections.conf : $(ASCIIDOC_CONF_DIR)/lang-en.conf bin/mk-specialsections-conf.sh
101 ./bin/mk-specialsections-conf.sh $< $@
102
103conf/html5-header.conf : $(ASCIIDOC_CONF_DIR)/html5.conf bin/mk-html5-header-conf.sh
104 ./bin/mk-html5-header-conf.sh $< $@
105
106conf/html5-footer.conf : $(ASCIIDOC_CONF_DIR)/html5.conf bin/mk-html5-footer-conf.sh
107 ./bin/mk-html5-footer-conf.sh $< $@
108
109
110src/Index.adoc : bin/mk-index.sh $(foreach page,$(SRC_PAGES),src/$(page).adoc)
111 ./bin/mk-index.sh $(SRC_PAGES) > $@
112
113src/mlton-guide.adoc : bin/mk-mlton-guide.sh $(foreach page,$(SRC_PAGES),src/$(page).adoc)
114 ./bin/mk-mlton-guide.sh $(SRC_PAGES) > $@
115
116
117$(ASCIIDOC_CONF_DIR)/stylesheets/asciidoc.css: ;
118%/asciidoc.css : $(ASCIIDOC_CONF_DIR)/stylesheets/asciidoc.css
119 mkdir -p $(dir $@) ; cp $< $@
120
121$(ASCIIDOC_CONF_DIR)/javascripts/asciidoc.js: ;
122%/asciidoc.js : $(ASCIIDOC_CONF_DIR)/javascripts/asciidoc.js
123 mkdir -p $(dir $@) ; cp $< $@
124
125$(ASCIIDOC_CONF_DIR)/stylesheets/pygments.css: ;
126%/pygments.css : $(ASCIIDOC_CONF_DIR)/stylesheets/pygments.css
127 mkdir -p $(dir $@) ; cp $< $@
128
129conf/mlton.css: ;
130%/mlton.css : conf/mlton.css
131 mkdir -p $(dir $@) ; cp $< $@
132
133conf/mlton-gcse.js: ;
134%/mlton-gcse.js : conf/mlton-gcse.js
135 mkdir -p $(dir $@) ; cp $< $@
136
137%/index.html : %/Home
138 rm -f $@ ; mkdir -p $(dir $@) ; ln -s Home $@ ; touch $@
139
140
141www.mlton.org/% : src/%.adoc $(ASCIIDOC_HTML5_DEPS) bin/mk-git-attribute-entity-flags.sh
142 mkdir -p $(dir $@) ; $(ASCIIDOC) $(ASCIIDOC_HTML5_FLAGS) $(shell ./bin/mk-git-attribute-entity-flags.sh $<) -a mlton-guide-host=www.mlton.org -a mlton-guide-page=$(basename $(notdir $<)) -o $@ $<
143
144www.mlton.org/% : src/%
145 mkdir -p $(dir $@) ; cp -prf $< $@
146
147.PHONY: www.mlton.org-rm
148www.mlton.org-rm: $(MLTON_ORG)
149 @rm -rf $(MLTON_ORG_TORM)
150
151.PHONY: www.mlton.org
152www.mlton.org: $(MLTON_ORG)
153
154.PHONY: upload_www.mlton.org
155upload_www.mlton.org: $(MLTON_ORG) www.mlton.org-rm
156 rsync -avzP --delete -e ssh www.mlton.org/ fluet,mlton@web.sourceforge.net:htdocs/wiki
157
158
159localhost/% : src/%.adoc $(ASCIIDOC_HTML5_DEPS)
160 mkdir -p $(dir $@) ; $(ASCIIDOC) $(ASCIIDOC_HTML5_FLAGS) -a mlton-guide-host=localhost -a mlton-guide-page=$(basename $(notdir $<)) -o $@ $<
161
162localhost/% : src/%
163 mkdir -p $(dir $@) ; cp -prf $< $@
164
165.PHONY: localhost-rm
166localhost-rm: $(LOCALHOST)
167 @rm -rf $(LOCALHOST_TORM)
168
169.PHONY: localhost
170localhost: $(LOCALHOST) localhost-rm
171
172src/mlton-guide.xml : src/mlton-guide.adoc conf/asciidoc-docbook45.flags $(ASCIIDOC_DOCBOOK45_DEPS)
173 mkdir -p $(dir $@) ; $(ASCIIDOC) $(ASCIIDOC_DOCBOOK45_FLAGS) -o $@ $<
174 @true || xmllint --nonet --noout --valid $@ || true
175mlton-guide.pdf : src/mlton-guide.xml src/Logo.attachments/mlton-128.pdf conf/mlton-dblatex.xsl conf/mlton-dblatex.sty
176 $(DBLATEX) -t pdf -p conf/mlton-dblatex.xsl -s conf/mlton-dblatex.sty -o $@ $<
177
178
179.PHONY: check-git-links
180check-git-links:
181 @./bin/check-git-links.sh $(SRC_PAGES)
182
183.PHONY: clean
184clean:
185 ../../bin/clean
186
187.PHONY: vars
188vars:
189 @echo ASCIIDOC_CONF_DIR=$(ASCIIDOC_CONF_DIR)
190 @echo ASCIIDOC_HTML5_FLAGS=$(ASCIIDOC_HTML5_FLAGS)
191 @echo ASCIIDOC_HTML5_DEPS=$(ASCIIDOC_HTML5_DEPS)
192 @echo GEN_PAGES=$(GEN_PAGES)
193 @echo GEN_ATTACHMENTS=$(GEN_ATTACHMENTS)
194 @echo SRC_PAGES=$(SRC_PAGES)
195 @echo SRC_ATTACHMENTS=$(SRC_ATTACHMENTS)