annotate en/Makefile @ 406:fb5c0d56d7f1

Fix test 'tour'. Executing 'tour' test now creates some files in /tmp to store the revision numbers as they are created on the fly and appear in the output files. When SVG files are to be converted to PNG or EPS files within the Makefile, a tool 'fixsvg' will be invoked to substitute some placeholder markup by the real version number which fits to the test output, before the final conversion takes place.
author Guido Ostkamp <hg@ostkamp.fastmail.fm>
date Wed, 20 Aug 2008 22:15:35 +0200
parents dc3d42f3a288
children 028543f67bea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
1 # This makefile requires GNU make.
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
2
2
379a802c0210 Add bibliography.
Bryan O'Sullivan <bos@serpentine.com>
parents: 0
diff changeset
3 sources := \
379a802c0210 Add bibliography.
Bryan O'Sullivan <bos@serpentine.com>
parents: 0
diff changeset
4 00book.tex \
379a802c0210 Add bibliography.
Bryan O'Sullivan <bos@serpentine.com>
parents: 0
diff changeset
5 99book.bib \
379a802c0210 Add bibliography.
Bryan O'Sullivan <bos@serpentine.com>
parents: 0
diff changeset
6 99defs.tex \
34
c0979ed1eabd Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 32
diff changeset
7 build_id.tex \
187
b60e2de6dbc3 Add chapter on branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 179
diff changeset
8 branch.tex \
132
e1e2f3e0256a Start command reference, with the diff command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 131
diff changeset
9 cmdref.tex \
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 157
diff changeset
10 collab.tex \
59
0aae9d676e0f Merge with jeffpc.
Bryan O'Sullivan <bos@serpentine.com>
parents: 50 58
diff changeset
11 concepts.tex \
42
cbfa08bcf181 Start the "Mercurial in daily use" chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 34
diff changeset
12 daily.tex \
133
1e013fbe35f7 Lots of filename related content. A little more command reference
Bryan O'Sullivan <bos@serpentine.com>
parents: 132
diff changeset
13 filenames.tex \
177
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
14 hg_id.tex \
223
4c9b9416cd23 Skeleton for chapter on extensions.
Bryan O'Sullivan <bos@serpentine.com>
parents: 214
diff changeset
15 hgext.tex \
34
c0979ed1eabd Get started on hook chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 32
diff changeset
16 hook.tex \
16
81454425eee9 Progress on a few fronts, mainly indexing and MQ chapter content
Bryan O'Sullivan <bos@serpentine.com>
parents: 11
diff changeset
17 intro.tex \
81454425eee9 Progress on a few fronts, mainly indexing and MQ chapter content
Bryan O'Sullivan <bos@serpentine.com>
parents: 11
diff changeset
18 mq.tex \
104
32bf9a5f22c0 Refactor MQ chapter into three.
Bryan O'Sullivan <bos@serpentine.com>
parents: 103
diff changeset
19 mq-collab.tex \
32bf9a5f22c0 Refactor MQ chapter into three.
Bryan O'Sullivan <bos@serpentine.com>
parents: 103
diff changeset
20 mq-ref.tex \
76
df88df78288d Add template chapter to build.
Bryan O'Sullivan <bos@serpentine.com>
parents: 69
diff changeset
21 preface.tex \
85
b7c69a68b0cc A little progress on "lightning tour".
Bryan O'Sullivan <bos@serpentine.com>
parents: 84
diff changeset
22 srcinstall.tex \
84
43b9793b4e38 Begin tour chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 83
diff changeset
23 template.tex \
95
47ea206351d5 Split tour into two sections.
Bryan O'Sullivan <bos@serpentine.com>
parents: 87
diff changeset
24 tour-basic.tex \
121
9094c9fda8ec Start chapter on error recovery.
Bryan O'Sullivan <bos@serpentine.com>
parents: 118
diff changeset
25 tour-merge.tex \
9094c9fda8ec Start chapter on error recovery.
Bryan O'Sullivan <bos@serpentine.com>
parents: 118
diff changeset
26 undo.tex
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
27
11
e9d5b4c3d16b First SVG image!
Bryan O'Sullivan <bos@serpentine.com>
parents: 7
diff changeset
28 image-sources := \
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 177
diff changeset
29 feature-branches.dot \
108
e0b961975c5e First bit of concepts chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 104
diff changeset
30 filelog.svg \
103
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
31 kdiff3.png \
109
1b67dc96f27a Snapshot of concepts chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 108
diff changeset
32 metadata.svg \
96
7d7ddc3a57af Split tour into two chapters.
Bryan O'Sullivan <bos@serpentine.com>
parents: 95
diff changeset
33 mq-stack.svg \
149
16f02802f448 Start to produce saner HTML and CSS.
Bryan O'Sullivan <bos@serpentine.com>
parents: 146
diff changeset
34 note.png \
112
2fcead053b7a More. Concept. Fun.
Bryan O'Sullivan <bos@serpentine.com>
parents: 110
diff changeset
35 revlog.svg \
110
75c076c7a374 More concepts stuff.
Bryan O'Sullivan <bos@serpentine.com>
parents: 109
diff changeset
36 snapshot.svg \
99
06383f9e46e4 More graphics.
Bryan O'Sullivan <bos@serpentine.com>
parents: 96
diff changeset
37 tour-history.svg \
103
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
38 tour-merge-conflict.svg \
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
39 tour-merge-merge.svg \
100
272146fab009 Add yet another illustration of the merge process.
Bryan O'Sullivan <bos@serpentine.com>
parents: 99
diff changeset
40 tour-merge-pull.svg \
113
a0f57b3e677e More concepts, this time working directory stuff.
Bryan O'Sullivan <bos@serpentine.com>
parents: 112
diff changeset
41 tour-merge-sep-repos.svg \
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
42 undo-manual.dot \
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
43 undo-manual-merge.dot \
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
44 undo-non-tip.dot \
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
45 undo-simple.dot \
113
a0f57b3e677e More concepts, this time working directory stuff.
Bryan O'Sullivan <bos@serpentine.com>
parents: 112
diff changeset
46 wdir.svg \
115
b74102b56df5 Wow! Lots more work detailing the working directory, merging, etc.
Bryan O'Sullivan <bos@serpentine.com>
parents: 113
diff changeset
47 wdir-after-commit.svg \
b74102b56df5 Wow! Lots more work detailing the working directory, merging, etc.
Bryan O'Sullivan <bos@serpentine.com>
parents: 113
diff changeset
48 wdir-branch.svg \
b74102b56df5 Wow! Lots more work detailing the working directory, merging, etc.
Bryan O'Sullivan <bos@serpentine.com>
parents: 113
diff changeset
49 wdir-merge.svg \
b74102b56df5 Wow! Lots more work detailing the working directory, merging, etc.
Bryan O'Sullivan <bos@serpentine.com>
parents: 113
diff changeset
50 wdir-pre-branch.svg
103
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
51
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
52 image-dot := $(filter %.dot,$(image-sources))
103
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
53 image-svg := $(filter %.svg,$(image-sources))
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
54 image-png := $(filter %.png,$(image-sources))
11
e9d5b4c3d16b First SVG image!
Bryan O'Sullivan <bos@serpentine.com>
parents: 7
diff changeset
55
213
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
56 image-pdf := $(image-dot:%.dot=%.pdf) $(image-svg:%.svg=%.pdf) $(image-png)
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
57 image-html := $(image-dot:%.dot=%.png) $(image-svg:%.svg=%.png) $(image-png)
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
58
4
33a2e7b9978d Make it possible to include example input and output from real programs.
Bryan O'Sullivan <bos@serpentine.com>
parents: 2
diff changeset
59 example-sources := \
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
60 backout \
131
153efeaa8f57 Fix stupid build bugs.
Bryan O'Sullivan <bos@serpentine.com>
parents: 124
diff changeset
61 bisect \
179
5fc4a45c069f Continue documentation of collaboration models.
Bryan O'Sullivan <bos@serpentine.com>
parents: 177
diff changeset
62 branching \
202
6f167e644762 Start writing about named branches.
Bryan O'Sullivan <bos@serpentine.com>
parents: 198
diff changeset
63 branch-named \
198
615f3c6b30e1 Start to describe branch management.
Bryan O'Sullivan <bos@serpentine.com>
parents: 196
diff changeset
64 branch-repo \
133
1e013fbe35f7 Lots of filename related content. A little more command reference
Bryan O'Sullivan <bos@serpentine.com>
parents: 132
diff changeset
65 cmdref \
117
6b0f4498569e Beef up daily routine material. Focus on merge-across-copy.
Bryan O'Sullivan <bos@serpentine.com>
parents: 115
diff changeset
66 daily.copy \
86
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
67 daily.files \
118
1ee53cb37a99 More progress on daily work.
Bryan O'Sullivan <bos@serpentine.com>
parents: 117
diff changeset
68 daily.rename \
122
3af28630fe8c How to goodbye depression by reverting one thousand times daily.
Bryan O'Sullivan <bos@serpentine.com>
parents: 121
diff changeset
69 daily.revert \
226
eef2171243e8 Document the extdiff extension.
Bryan O'Sullivan <bos@serpentine.com>
parents: 223
diff changeset
70 extdiff \
133
1e013fbe35f7 Lots of filename related content. A little more command reference
Bryan O'Sullivan <bos@serpentine.com>
parents: 132
diff changeset
71 filenames \
86
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
72 hook.msglen \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
73 hook.simple \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
74 hook.ws \
156
91a936be78b8 Document merge behaviour with file names.
Bryan O'Sullivan <bos@serpentine.com>
parents: 153
diff changeset
75 issue29 \
104
32bf9a5f22c0 Refactor MQ chapter into three.
Bryan O'Sullivan <bos@serpentine.com>
parents: 103
diff changeset
76 mq.guards \
86
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
77 mq.qinit-help \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
78 mq.dodiff \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
79 mq.id \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
80 mq.tarball \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
81 mq.tools \
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
82 mq.tutorial \
156
91a936be78b8 Document merge behaviour with file names.
Bryan O'Sullivan <bos@serpentine.com>
parents: 153
diff changeset
83 rename.divergent \
121
9094c9fda8ec Start chapter on error recovery.
Bryan O'Sullivan <bos@serpentine.com>
parents: 118
diff changeset
84 rollback \
196
4237e45506ee Add early material describing tags.
Bryan O'Sullivan <bos@serpentine.com>
parents: 195
diff changeset
85 tag \
86
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
86 template.simple \
87
0995016342f8 More bumf.
Bryan O'Sullivan <bos@serpentine.com>
parents: 86
diff changeset
87 template.svnstyle \
103
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
88 tour \
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
89 tour-merge-conflict
4
33a2e7b9978d Make it possible to include example input and output from real programs.
Bryan O'Sullivan <bos@serpentine.com>
parents: 2
diff changeset
90
172
5f305adeb584 Try to tighten up the run environment to make things more reproducible.
Bryan O'Sullivan <bos@serpentine.com>
parents: 171
diff changeset
91 example-prereqs := \
5f305adeb584 Try to tighten up the run environment to make things more reproducible.
Bryan O'Sullivan <bos@serpentine.com>
parents: 171
diff changeset
92 /usr/bin/merge
5f305adeb584 Try to tighten up the run environment to make things more reproducible.
Bryan O'Sullivan <bos@serpentine.com>
parents: 171
diff changeset
93
157
e49f4451d0e3 Add hgbook front page material.
Bryan O'Sullivan <bos@serpentine.com>
parents: 156
diff changeset
94 dist-sources := \
159
7355af913937 First steps on collaboration chapter.
Bryan O'Sullivan <bos@serpentine.com>
parents: 157
diff changeset
95 ../html/hgicon.png \
157
e49f4451d0e3 Add hgbook front page material.
Bryan O'Sullivan <bos@serpentine.com>
parents: 156
diff changeset
96 ../html/index.html.var \
e49f4451d0e3 Add hgbook front page material.
Bryan O'Sullivan <bos@serpentine.com>
parents: 156
diff changeset
97 ../html/index.en.html
e49f4451d0e3 Add hgbook front page material.
Bryan O'Sullivan <bos@serpentine.com>
parents: 156
diff changeset
98
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
99 latex-options = \
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
100 -interaction batchmode \
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
101 -output-directory $(dir $(1)) \
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
102 -jobname $(basename $(notdir $(1)))
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
103
177
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
104 hg = $(shell which hg)
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
105
269
abfe426f7e08 Kill off the hideous pink text from HTML.
Bryan O'Sullivan <bos@serpentine.com>
parents: 250
diff changeset
106 hg-id = $(shell hg parents --template '{node|short}, dated {date|isodate},\n')
177
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
107
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
108 hg-version = $(shell hg version -q | \
242
0d536cb488f2 Allow revs with uncommitted changes.
Bryan O'Sullivan <bos@serpentine.com>
parents: 226
diff changeset
109 sed 's,.*(version \(unknown\|[a-f0-9+]*\)),\1,')
177
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
110
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
111 all: pdf html
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
112
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
113 pdf: pdf/hgbook.pdf
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
114
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
115 define pdf
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
116 mkdir -p $(dir $@)
21
ce3339dbeb6f Get beta feedback stuff into better shape.
Bryan O'Sullivan <bos@serpentine.com>
parents: 18
diff changeset
117 TEXINPUTS=$(dir $<): pdflatex $(call latex-options,$@) $< || (rm -f $@; exit 1)
2
379a802c0210 Add bibliography.
Bryan O'Sullivan <bos@serpentine.com>
parents: 0
diff changeset
118 cp 99book.bib $(dir $@)
379a802c0210 Add bibliography.
Bryan O'Sullivan <bos@serpentine.com>
parents: 0
diff changeset
119 cd $(dir $@) && bibtex $(basename $(notdir $@))
16
81454425eee9 Progress on a few fronts, mainly indexing and MQ chapter content
Bryan O'Sullivan <bos@serpentine.com>
parents: 11
diff changeset
120 cd $(dir $@) && makeindex $(basename $(notdir $@))
21
ce3339dbeb6f Get beta feedback stuff into better shape.
Bryan O'Sullivan <bos@serpentine.com>
parents: 18
diff changeset
121 TEXINPUTS=$(dir $<): pdflatex $(call latex-options,$@) $< || (rm -f $@; exit 1)
ce3339dbeb6f Get beta feedback stuff into better shape.
Bryan O'Sullivan <bos@serpentine.com>
parents: 18
diff changeset
122 TEXINPUTS=$(dir $<): pdflatex $(call latex-options,$@) $< || (rm -f $@; exit 1)
26
1bc6c1f0192a More MQ content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 24
diff changeset
123 if grep 'Reference.*undefined' $(@:.pdf=.log); then exit 1; fi
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
124 endef
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
125
406
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
126 pdf/hgbook.pdf: $(sources) examples $(image-pdf)
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
127 $(call pdf)
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
128
149
16f02802f448 Start to produce saner HTML and CSS.
Bryan O'Sullivan <bos@serpentine.com>
parents: 146
diff changeset
129 html: onepage split
16f02802f448 Start to produce saner HTML and CSS.
Bryan O'Sullivan <bos@serpentine.com>
parents: 146
diff changeset
130
213
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
131 onepage: $(htlatex) html/onepage/hgbook.html html/onepage/hgbook.css $(image-html:%=html/onepage/%)
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
132
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
133 html/onepage/%: %
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
134 cp $< $@
171
8c1703a98266 Add a dependency on htlatex to HTML targets, even though we don't call it.
Bryan O'Sullivan <bos@serpentine.com>
parents: 170
diff changeset
135
213
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
136 split: $(htlatex) html/split/hgbook.html html/split/hgbook.css $(image-html:%=html/split/%)
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
137
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
138 html/split/%: %
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
139 cp $< $@
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
140
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
141 # This is a horrible hack to work around the fact that the htlatex
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
142 # command in tex4ht is itself a horrible hack. I really don't want to
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
143 # include verbatim the big wad of TeX that is repeated in that script,
171
8c1703a98266 Add a dependency on htlatex to HTML targets, even though we don't call it.
Bryan O'Sullivan <bos@serpentine.com>
parents: 170
diff changeset
144 # but I've given up and run a hacked copy as htlatex.book here.
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
145
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
146 define htlatex
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
147 mkdir -p $(dir $(1))
170
9cd856b4bd21 Try to make HTML build a bit more portable.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
148 cp 99book.bib $(dir $(1))
9cd856b4bd21 Try to make HTML build a bit more portable.
Bryan O'Sullivan <bos@serpentine.com>
parents: 159
diff changeset
149 TEXINPUTS=$(dir $(2)): ./htlatex.book $(2) "bookhtml,html4-uni,$(3)" " -cunihtf -utf8" "$(dir $(1))" "$(call latex-options,$(1))" || (rm -f $(1); exit 1)
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
150 cd $(dir $(1)) && tex4ht -f/$(basename $(notdir $(1))) -cvalidate -cunihtf
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
151 cd $(dir $(1)) && t4ht -f/$(basename $(notdir $(1)))
149
16f02802f448 Start to produce saner HTML and CSS.
Bryan O'Sullivan <bos@serpentine.com>
parents: 146
diff changeset
152 ./fixhtml.py $(dir $(1))/*.html
214
154e4ba293e7 Delete the hgbook.css file generated by htlatex.
Bryan O'Sullivan <bos@serpentine.com>
parents: 213
diff changeset
153 rm $(dir $(1))/hgbook.css
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
154 endef
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
155
406
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
156 html/onepage/hgbook.html: $(sources) examples $(image-html) bookhtml.cfg
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
157 $(call htlatex,$@,$<)
11
e9d5b4c3d16b First SVG image!
Bryan O'Sullivan <bos@serpentine.com>
parents: 7
diff changeset
158
213
18cffee85038 Fix build of HTML pages with PNG images.
Bryan O'Sullivan <bos@serpentine.com>
parents: 202
diff changeset
159 html/split/hgbook.html: $(sources) examples bookhtml.cfg
11
e9d5b4c3d16b First SVG image!
Bryan O'Sullivan <bos@serpentine.com>
parents: 7
diff changeset
160 $(call htlatex,$@,$<,2)
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
161
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
162 # Produce 90dpi PNGs for the web.
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
163
11
e9d5b4c3d16b First SVG image!
Bryan O'Sullivan <bos@serpentine.com>
parents: 7
diff changeset
164 %.png: %.svg
406
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
165 ./fixsvg $<
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
166 mv $<.tmp foobar.svg
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
167 inkscape -D -e $@ foobar.svg
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
168
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
169 %.svg: %.dot
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
170 dot -Tsvg -o $@ $<
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
171
30
cc1e6f1d7161 Use PDF instead of PNG for images in the PDF book
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 26
diff changeset
172 # Produce eps & pdf for the pdf
18
e6f4088ebe52 Generate a PDF file with a feedback link on each paragraph.
Bryan O'Sullivan <bos@serpentine.com>
parents: 16
diff changeset
173
30
cc1e6f1d7161 Use PDF instead of PNG for images in the PDF book
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 26
diff changeset
174 %.pdf: %.eps
cc1e6f1d7161 Use PDF instead of PNG for images in the PDF book
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 26
diff changeset
175 epstopdf $<
cc1e6f1d7161 Use PDF instead of PNG for images in the PDF book
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 26
diff changeset
176
cc1e6f1d7161 Use PDF instead of PNG for images in the PDF book
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 26
diff changeset
177 %.eps: %.svg
406
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
178 ./fixsvg $<
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
179 mv $<.tmp foobar.svg
fb5c0d56d7f1 Fix test 'tour'.
Guido Ostkamp <hg@ostkamp.fastmail.fm>
parents: 278
diff changeset
180 inkscape -E $@ foobar.svg
11
e9d5b4c3d16b First SVG image!
Bryan O'Sullivan <bos@serpentine.com>
parents: 7
diff changeset
181
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
182 %.eps: %.dot
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
183 dot -Tps -o $@ $<
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
184
172
5f305adeb584 Try to tighten up the run environment to make things more reproducible.
Bryan O'Sullivan <bos@serpentine.com>
parents: 171
diff changeset
185 examples: $(example-prereqs) examples/.run
4
33a2e7b9978d Make it possible to include example input and output from real programs.
Bryan O'Sullivan <bos@serpentine.com>
parents: 2
diff changeset
186
86
796738d75876 Reduce verbosity.
Bryan O'Sullivan <bos@serpentine.com>
parents: 85
diff changeset
187 examples/.run: $(example-sources:%=examples/%.run)
45
6b7b0339e7d6 Don't rerun examples unnecessarily.
Bryan O'Sullivan <bos@serpentine.com>
parents: 44
diff changeset
188 touch examples/.run
6b7b0339e7d6 Don't rerun examples unnecessarily.
Bryan O'Sullivan <bos@serpentine.com>
parents: 44
diff changeset
189
6b7b0339e7d6 Don't rerun examples unnecessarily.
Bryan O'Sullivan <bos@serpentine.com>
parents: 44
diff changeset
190 examples/%.run: examples/% examples/run-example
6b7b0339e7d6 Don't rerun examples unnecessarily.
Bryan O'Sullivan <bos@serpentine.com>
parents: 44
diff changeset
191 cd examples && ./run-example $(notdir $<)
4
33a2e7b9978d Make it possible to include example input and output from real programs.
Bryan O'Sullivan <bos@serpentine.com>
parents: 2
diff changeset
192
250
5ecf66974def Generate build_id.tex correctly regardless of repo format.
Bryan O'Sullivan <bos@serpentine.com>
parents: 249
diff changeset
193 changelog := $(wildcard ../.hg/store/00changelog.[id])
5ecf66974def Generate build_id.tex correctly regardless of repo format.
Bryan O'Sullivan <bos@serpentine.com>
parents: 249
diff changeset
194 ifeq ($(changelog),)
5ecf66974def Generate build_id.tex correctly regardless of repo format.
Bryan O'Sullivan <bos@serpentine.com>
parents: 249
diff changeset
195 changelog := $(wildcard ../.hg/00changelog.[id])
5ecf66974def Generate build_id.tex correctly regardless of repo format.
Bryan O'Sullivan <bos@serpentine.com>
parents: 249
diff changeset
196 endif
5ecf66974def Generate build_id.tex correctly regardless of repo format.
Bryan O'Sullivan <bos@serpentine.com>
parents: 249
diff changeset
197
5ecf66974def Generate build_id.tex correctly regardless of repo format.
Bryan O'Sullivan <bos@serpentine.com>
parents: 249
diff changeset
198 build_id.tex: $(changelog)
249
9d7388f3f483 /bin/sh fails when parsing unescaped parens
Johannes Hoff <wbunaarfubss@gmail.com>
parents: 242
diff changeset
199 echo -n '$(hg-id)' > build_id.tex
177
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
200
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
201 hg_id.tex: $(hg)
249
9d7388f3f483 /bin/sh fails when parsing unescaped parens
Johannes Hoff <wbunaarfubss@gmail.com>
parents: 242
diff changeset
202 echo -n '$(hg-version)' > hg_id.tex
16
81454425eee9 Progress on a few fronts, mainly indexing and MQ chapter content
Bryan O'Sullivan <bos@serpentine.com>
parents: 11
diff changeset
203
0
76fba5835a1b Beginnings of a build process and file layout.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
204 clean:
153
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
205 rm -rf dist html pdf \
124
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
206 $(image-dot:%.dot=%.pdf) \
c9aad709bd3a Document the backout command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 122
diff changeset
207 $(image-dot:%.dot=%.png) \
103
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
208 $(image-svg:%.svg=%.pdf) \
5b80c922ebdd More merge content.
Bryan O'Sullivan <bos@serpentine.com>
parents: 100
diff changeset
209 $(image-svg:%.svg=%.png) \
177
c54f4c106fd5 Record the version of Mercurial used.
Bryan O'Sullivan <bos@serpentine.com>
parents: 172
diff changeset
210 examples/*.{lxo,run} examples/.run build_id.tex hg_id.tex
153
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
211
157
e49f4451d0e3 Add hgbook front page material.
Bryan O'Sullivan <bos@serpentine.com>
parents: 156
diff changeset
212 install: pdf split $(dist-sources)
153
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
213 rm -rf dist
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
214 mkdir -p dist
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
215 cp pdf/hgbook.pdf dist
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
216 cp html/split/*.{css,html,png} dist
157
e49f4451d0e3 Add hgbook front page material.
Bryan O'Sullivan <bos@serpentine.com>
parents: 156
diff changeset
217 cp $(dist-sources) dist
153
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
218
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
219 rsync: install
cf24633b8de7 Set up simple distribution rules.
Bryan O'Sullivan <bos@serpentine.com>
parents: 149
diff changeset
220 rsync -avz --delete dist sp.red-bean.com:public_html/hgbook