Remove dist rule
[elinks.git] / doc / Makefile
blobfc440d6b342bdb26f6caeeef77c33d2317ab9b14
1 top_builddir=..
2 include $(top_builddir)/Makefile.config
4 SUBDIRS = man
6 HTML_DIR = $(DESTDIR)html
7 MAN_DIR = $(DESTDIR)man
8 PDF_DIR = $(DESTDIR)pdf
9 XML_DIR = $(DESTDIR)xml
11 # Keep generated .txt files relative to the source directory
12 # and files they are included in.
13 TXT_DIR = $(top_srcdir)/doc/txt
15 DOC_DIRS = \
16 $(HTML_DIR) \
17 $(MAN_DIR)/man1 \
18 $(MAN_DIR)/man5 \
19 $(TXT_DIR) \
20 $(XML_DIR)
22 # TODO: perl.pod should be pod2ized during make install. --pasky
24 # XXX: manual.txt is the master document and must be first.
25 MANUAL_FILES = \
26 manual.txt \
28 bookmarks.txt \
29 ecmascript.txt \
30 exmode.txt \
31 faq.txt \
32 installation.txt \
33 introduction.txt \
34 lua-scripting.txt \
35 mailcap.txt \
36 marks.txt \
37 mime.txt \
38 remote.txt \
39 small.txt \
40 tabs.txt \
41 terminals.txt \
42 urlshortcuts.txt
44 ### Script Dependencies
47 ELINKS = $(top_builddir)/src/elinks
48 KBDBIND = $(top_srcdir)/src/config/kbdbind.c
49 FEATURES = $(top_srcdir)/features.conf
51 ### Scripts
54 HELP2DOC = $(top_srcdir)/doc/tools/help2doc
55 IMPORT_FEATURES_CONF = $(top_srcdir)/doc/tools/import-features.conf
56 MAKE_ELINKS_MANPAGE = $(top_srcdir)/doc/tools/make-elinks-manpage
57 MAKE_ELINKSKEYS_MANPAGE = $(top_srcdir)/doc/tools/make-elinkskeys-manpage
59 ifeq ($(CONFIG_ASCIIDOC),yes)
60 HTML_DOCS_WITH_ASCIIDOC = \
61 $(HTML_DIR)/elinks.1.html \
62 $(HTML_DIR)/elinkskeys.5.html \
63 $(HTML_DIR)/hacking.html \
64 $(HTML_DIR)/manual.html
65 endif
68 # Only jw is used for generating PDF.
69 ifeq ($(CONFIG_XMLTO),yes)
70 HTML_DOCS_WITH_XMLTO = \
71 $(HTML_DIR)/manual.html-chunked
73 MAN_DOCS_WITH_XMLTO = \
74 $(MAN_DIR)/man1/elinks.1.in \
75 $(MAN_DIR)/man5/elinkskeys.5
76 endif
78 # Only jw is used for generating PDF.
79 ifeq ($(CONFIG_JW),yes)
80 PDF_DOCS_WITH_JW = \
81 $(PDF_DIR)/manual.pdf
82 endif
84 ifeq ($(CONFIG_POD2HTML),yes)
85 HTML_DOCS_WITH_POD2HTML = \
86 $(HTML_DIR)/perl.html \
87 $(HTML_DIR)/perl-hooks.html
88 endif
90 MAN_DOCS_WITH_SHELL = $(MAN_DIR)/man5/elinks.conf.5
92 MAN_DOCS = \
93 $(MAN_DOCS_WITH_SHELL)
94 $(MAN_DOCS_WITH_ASCIIDOC)
96 HTML_DOCS = \
97 $(HTML_DOCS_WITH_ASCIIDOC) \
98 $(HTML_DOCS_WITH_POD2HTML) \
99 $(HTML_DOCS_WITH_JW)
101 PDF_DOCS = \
102 $(PDF_DOCS_WITH_JW)
104 html-asciidoc-yes: doc-dirs $(HTML_DOCS_WITH_ASCIIDOC)
105 html-asciidoc-no:
107 html-pod2html-yes: doc-dirs $(HTML_DOCS_WITH_POD2HTML)
108 html-pod2html-no:
110 html-xmlto-yes: doc-dirs $(HTML_DOCS_WITH_XMLTO)
111 html-xmlto-no:
113 man-xmlto-yes: doc-dirs $(MAN_DOCS_WITH_XMLTO)
114 man-xmlto-no:
116 pdf-jw-yes: doc-dirs $(PDF_DOCS_WITH_JW)
117 pdf-jw-no:
119 man-docs: man-xmlto-$(CONFIG_XMLTO) $(MAN_DOCS_WITH_SHELL)
120 html-docs: html-asciidoc-$(CONFIG_ASCIIDOC) html-xmlto-$(CONFIG_XMLTO) html-pod2html-$(CONFIG_POD2HTML)
121 pdf-docs: pdf-jw-$(CONFIG_JW)
123 all-docs: man-docs html-docs pdf-docs
125 ### Build Rules
128 doc-dirs:
129 $(INSTALL) -d $(DOC_DIRS)
131 # $(MAN_DIR) intentionally left out
132 clean-local:
133 $(RM) -r $(HTML_DIR) $(XML_DIR) $(TXT_DIR) $(PDF_DIR) *.tmp
136 # Autogenerated asciidoc files.
138 $(TXT_DIR)/import-features.conf.txt: $(FEATURES) doc-dirs $(IMPORT_FEATURES_CONF)
139 $(IMPORT_FEATURES_CONF) > $@
141 $(TXT_DIR)/elinks.1.%.txt: $(MAKE_ELINKS_MANPAGE) doc-dirs $(ELINKS)
142 $(MAKE_ELINKS_MANPAGE) $@ $(ELINKS) $(HELP2DOC) > $@
144 $(TXT_DIR)/elinkskeys.5.%.txt: $(MAKE_ELINKSKEYS_MANPAGE) doc-dirs $(KBDBIND)
145 $(MAKE_ELINKSKEYS_MANPAGE) $@ $(KBDBIND) > $@
148 # Man Pages
150 $(XML_DIR)/%.man.xml: $(TXT_DIR)/%.man.txt doc-dirs
151 $(ASCIIDOC) -b docbook -d manpage -o $@ $<
153 $(MAN_DIR)/man1/elinks.1.in: $(XML_DIR)/elinks.1.man.xml doc-dirs
154 $(XMLTO) -o $(MAN_DIR)/man1 man $<
155 mv $(MAN_DIR)/man1/elinks.1 $@
157 $(MAN_DIR)/man5/elinkskeys.5: $(XML_DIR)/elinkskeys.5.man.xml doc-dirs
158 $(XMLTO) -o $(MAN_DIR)/man5 man $<
159 sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < $@ > $@.tmp
160 mv $@.tmp $@
162 $(MAN_DIR)/man5/elinks.conf.5: doc-dirs $(ELINKS)
163 $(HELP2DOC) --elinks=$(ELINKS) --elinksconf > $@
165 # XHTML/CSS Man Pages
167 $(HTML_DIR)/%.html: $(TXT_DIR)/%.html.txt doc-dirs
168 $(ASCIIDOC) -b xhtml11 -d manpage -o $@ $<
170 # The Manual
172 MANUAL_EXTRA_FILES = \
173 $(TXT_DIR)/import-features.conf.txt \
174 $(TXT_DIR)/elinks.1.html.txt \
175 $(TXT_DIR)/elinkskeys.5.html.txt
177 $(HTML_DIR)/manual.html: $(MANUAL_FILES) doc-dirs $(MANUAL_EXTRA_FILES)
178 $(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
180 $(HTML_DIR)/hacking.html: $(top_srcdir)/doc/hacking.txt doc-dirs
181 $(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
183 $(HTML_DIR)/dev-intro.html: $(top_srcdir)/doc/dev-intro.txt doc-dirs
184 $(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
186 $(XML_DIR)/manual.xml: $(MANUAL_FILES) doc-dirs $(MANUAL_EXTRA_FILES)
187 $(ASCIIDOC) -b docbook -d book -o $@ $<
189 $(HTML_DIR)/manual.html-chunked: $(XML_DIR)/manual.xml doc-dirs
190 $(XMLTO) -o $@ html $<
192 $(PDF_DIR)/manual.pdf: $(XML_DIR)/manual.xml doc-dirs
193 $(JW) -o $(PDF_DIR) -b pdf $<
195 $(HTML_DIR)/perl.html: $(top_srcdir)/doc/perl.pod doc-dirs
196 $(POD2HTML) --outfile=$@ < $<
198 $(HTML_DIR)/perl-hooks.html: $(top_srcdir)/contrib/perl/hooks.pl doc-dirs
199 $(POD2HTML) --outfile=$@ < $<
201 include $(top_srcdir)/Makefile.lib