summaryrefslogtreecommitdiff
path: root/Build/source/doc/Makefile.am
blob: d254f6fa0ea8f3d2a1b18d535176882b5b65bd03 (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
## $Id$
## Makefile.am for the TeX Live subdirectory ./doc/
##
## Copyright 2015-2020 Karl Berry <tex-live@tug.org>
## Copyright 2013-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
##
## The info files
info_TEXINFOS = tlbuild.texi
tlbuild_TEXINFOS = build-tools.txt \
  tlbuild-incl/install-tl.texi tlbuild-incl/tlmgr.texi

EXTRA_DIST = \
	README.solaris \
	splitinfo.gawk

# no reasonable way to avoid it with the pod doc.
MAKEINFOFLAGS = --set INFO_SPECIAL_CHARS_WARNING=0

#  autogenerate the top-level README files.
readme-files: tlbuild.info
	rm -f README.*
	$(MAKEINFO) $(MAKEINFOFLAGS) --plaintext -o - $(srcdir)/tlbuild.texi \
	| tee /tmp/a \
	| gawk -f $(srcdir)/splitinfo.gawk
	ls -l README.*
#	head -8 README.*
readme-install: readme-files
	cp -p README.* $(top_srcdir)/
	svn diff $(top_srcdir)/README.* >/tmp/sd
	svn status $(top_srcdir)/README.*
#
.PHONY: readme-files readme-install script-links

#  autogenerate texinfo from install-tl and tlmgr pod.
# none of this is intended to be executed except manually.
mydoc = tlbuild

# Needs to be the pod2texi from at least Texinfo 6.3.
pod2texi = pod2texi
pod2texi_args = \
  --appendix-sections \
  --base-level=section \
  --no-fill-section-gaps \
  --preamble=''

# We use complicated section names in the tlmgr pod, and consequently
# complicated section references, schematically like this:
#   L<whatever|/mysec I<myital>>
# Unfortunately, the Pod module does not pass the necessary information
# in the callbacks to allow pod2texi to preserve the I<>.  It seems
# better to kludge in some substitutions here than reimplement a whole
# pod parser.  Sigh.
#
# The \@... in the replacements are escaping the @ in a Perl
# double-quote context, i.e., not an array.
# 
update_node_bad  = ref{tlmgr update [option...] [pkg...],
update_node_good = ref{tlmgr update [\@emph{option}...] [\@emph{pkg}...],
#
update_node_bad2  = [option...] [pkg...], update
update_node_good2  = [\@emph{option}...] [@emph{pkg}...], update
#
remove_node_bad = ref{tlmgr remove [option...] pkg...,
remove_node_good = ref{tlmgr remove [\@emph{option}...] \@emph{pkg}...,
#
install_node_bad = ref{tlmgr install [option...] pkg...,
install_node_good = ref{tlmgr install [\@emph{option}...] \@emph{pkg}...,

# we don't actually use the (autogenerated) -incl.texi file,
# but it makes for a convenient target.

# First make symlinks in build dir:
Master = $(top_srcdir)/../../Master
script-links:
	rm -f tlmgr.pl install-tl
	ln -s $(Master)/install-tl .
	ln -s $(Master)/texmf-dist/scripts/texlive/tlmgr.pl .

$(mydoc)-incl.texi: install-tl tlmgr.pl 
	$(pod2texi) -o $@ --subdir=$(mydoc)-incl $(pod2texi_args) $^
	cp $(mydoc)-incl/tlmgr.texi $(mydoc)-incl/tlmgr.texi.orig
	perl -pi \
          -e 's/\Q$(update_node_bad)\E/$(update_node_good)/' \
          -e ';s/\Q$(update_node_bad2)\E/$(update_node_good2),/' \
          -e ';' \
          -e 's/\Q$(remove_node_bad)\E/$(remove_node_good)/' \
          -e ';' \
          -e 's/\Q$(install_node_bad)\E/$(install_node_good)/' \
	  $(mydoc)-incl/tlmgr.texi
	cp $(mydoc)-incl/tlmgr.texi $(srcdir)/$(mydoc)-incl/
	cp $(mydoc)-incl/install-tl.texi $(srcdir)/$(mydoc)-incl/
.PHONY: $(mydoc)-incl.texi