summaryrefslogtreecommitdiff
path: root/doc/manual/Makefile
blob: f7120493e365ad2511e1ead8a3125c0356740673 (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# DCP-o-matic manual makefile

all:	html pdf

DIAGRAMS := file-structure.svg 3d-left-right.svg 3d-top-bottom.svg timecode.svg pipeline1.svg pipeline2.svg \
            pipeline3.svg pipeline4.svg burn-in.svg discrete.svg dcp-copy.svg dcp-refer.svg reels-by-video.svg \
	    crypt.svg

SCREENSHOTS := file-new.png video-new-film.png still-new-film.png video-select-content-file.png \
               still-select-content-file.png examine-thumbs.png examine-content.png timing-tab.png \
               calculate-audio-gain.png add-file.png dcp-tab.png colour-conversion.png \
               prefs-kdm-email.png prefs-general.png prefs-tms.png \
               prefs-advanced.png prefs-defaults.png prefs-servers.png prefs-keys.png \
               making-dcp.png filters.png video-tab.png audio-tab.png timing-tab.png \
               audio-plot.png audio-map-eg1.png audio-map-eg2.png audio-map-eg3.png kdm.png \
	       kdm-creator.png

XML := dcpomatic.xml

#
# For the HTML: copy screenshots into html/screenshots, scaling some.
#
html/screenshots/%.png: screenshots/%.png
	mkdir -p html/screenshots
	cp $< $@
html/screenshots/editor.png: screenshots/editor.png
	mkdir -p html/screenshots
	convert -resize 50% $< $@
html/screenshots/mixer.png: screenshots/mixer.png
	mkdir -p html/screenshots
	convert -resize 50% $< $@
html/screenshots/default-folder-for-new-sessions.png: screenshots/default-folder-for-new-sessions.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/welcome-to-ardour.png: screenshots/welcome-to-ardour.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/monitoring-choices.png: screenshots/monitoring-choices.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/monitor-section.png: screenshots/monitor-section.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/audio-midi-setup-device.png: screenshots/audio-midi-setup-device.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/new-session.png: screenshots/new-session.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/export-dialogue.png: screenshots/export-dialogue.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/making-dcp.png: screenshots/making-dcp.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@
html/screenshots/kdm-creator.png: screenshots/kdm-creator.png
	mkdir -p html/screenshots
	convert -resize 75% $< $@

# For HTML: convert diagrams from SVG to PNG
diagrams/%.png:	diagrams/%.svg
	inkscape -z -f $< --export-png $@ --export-area-drawing

# For LaTeX/PDF: convert diagrams from SVG to PDF
diagrams/%.pdf:	diagrams/%.svg
	inkscape -z -f $< --export-pdf $@ --export-area-drawing

config.xml:	../../src/lib/config.cc config.py
	python3 config.py ../../src/lib/config.cc > config.xml

# These require the tools to be runnable, so make needs to be run
# in a built tree to update them.  The .xml files are committed
# to git to avoid this always being necessary.
dcpomatic_create.xml:	../../src/tools/dcpomatic_create.cc cli.py
	python3 cli.py dcpomatic_create > dcpomatic_create.xml

dcpomatic_cli.xml:	../../src/tools/dcpomatic_cli.cc cli.py
	python3 cli.py dcpomatic_cli > dcpomatic_cli.xml

dcpomatic_kdm_cli.xml:	../../src/tools/dcpomatic_kdm_cli.cc cli.py
	python3 cli.py dcpomatic_kdm_cli > dcpomatic_kdm_cli.xml

#
# HTML
#

html:	$(XML) config.xml dcpomatic-html.xsl extensions-html.ent dcpomatic.css dcpomatic_create.xml dcpomatic_cli.xml dcpomatic_kdm_cli.xml \
	$(addprefix html/screenshots/,$(SCREENSHOTS)) \
	$(subst .svg,.png,$(addprefix diagrams/,$(DIAGRAMS))) \

# 	The DocBook needs to know what file extensions to look for
# 	for screenshots and diagrams; use the correct file to tell it.
	cp extensions-html.ent extensions.ent

#	DocBoox -> html
	xmlto html -m dcpomatic-html.xsl dcpomatic.xml --skip-validation -o html

#	Copy graphics and CSS in
	mkdir -p html/diagrams
	cp diagrams/*.png html/diagrams
	cp dcpomatic.css html

#
# PDF
#

pdf:	$(XML) config.xml dcpomatic-pdf.xsl extensions-pdf.ent dcpomatic_create.xml dcpomatic_cli.xml dcpomatic_kdm_cli.xml \
	$(addprefix screenshots/,$(SCREENSHOTS)) \
	$(subst .svg,.pdf,$(addprefix diagrams/,$(DIAGRAMS)))

# 	The DocBook needs to know what file extensions to look for
# 	for screenshots and diagrams; use the correct file to tell it.
	cp extensions-pdf.ent extensions.ent

	mkdir -p pdf

	dblatex -p dcpomatic-pdf.xsl -s dcpomatic.sty -r pptex.py -T native dcpomatic.xml -t pdf -o pdf/dcpomatic.pdf


#
# LaTeX (handy for debugging)
#

tex:	$(XML) config.xml dcpomatic-pdf.xsl extensions-pdf.ent

# 	The DocBook needs to know what file extensions to look for
# 	for screenshots and diagrams; use the correct file to tell it.
	cp extensions-pdf.ent extensions.ent

	mkdir -p tex

# 	-P <foo> removes the revhistory table
	dblatex -P doc.collab.show=0 -P latex.output.revhistory=0 -p dcpomatic-pdf.xsl -s dcpomatic.sty -r pptex.py -T native dcpomatic.xml -t tex -o tex/dcpomatic.tex


clean:;	rm -rf html pdf diagrams/*.pdf diagrams/*.png graphics/*.png *.aux dcpomatic.cb dcpomatic.cb2 dcpomatic.glo dcpomatic.idx dcpomatic.ilg
	rm -rf dcpomatic.ind dcpomatic.lof dcpomatic.log dcpomatic.tex dcpomatic.toc extensions.ent dcpomatic.out