top_builddir=.. include $(top_builddir)/Makefile.config SUBDIRS = man HTML_DIR = $(DESTDIR)html MAN_DIR = $(DESTDIR)man PDF_DIR = $(DESTDIR)pdf XML_DIR = $(DESTDIR)xml # Keep generated .txt files relative to the source directory # and files they are included in. TXT_DIR = $(top_srcdir)/doc/txt DOC_DIRS = \ $(HTML_DIR) \ $(HTML_DIR)/api \ $(MAN_DIR)/man1 \ $(MAN_DIR)/man5 \ $(TXT_DIR) \ $(XML_DIR) # TODO: perl.pod should be pod2ized during make install. --pasky # XXX: manual.txt is the master document and must be first. MANUAL_FILES = \ manual.txt \ \ bookmarks.txt \ ecmascript.txt \ exmode.txt \ faq.txt \ installation.txt \ introduction.txt \ lua-scripting.txt \ mailcap.txt \ marks.txt \ mime.txt \ remote.txt \ small.txt \ tabs.txt \ terminals.txt \ urlshortcuts.txt ### Script Dependencies # ELINKS = $(top_builddir)/src/elinks KBDBIND = $(top_srcdir)/src/config/kbdbind.c FEATURES = $(top_srcdir)/features.conf ### Locale env vars to override system one to ensure commands # using elinks binary will generate texts in english # LOCALES = LC_ALL=C LANGUAGE=en ### Scripts # CODE2DOC = $(top_srcdir)/doc/tools/code2doc HELP2DOC = $(top_srcdir)/doc/tools/help2doc IMPORT_FEATURES_CONF = $(top_srcdir)/doc/tools/import-features.conf MAKE_ELINKS_MANPAGE = $(top_srcdir)/doc/tools/make-elinks-manpage MAKE_ELINKSKEYS_MANPAGE = $(top_srcdir)/doc/tools/make-elinkskeys-manpage HTML_DOCS-$(CONFIG_ASCIIDOC) += \ api/dom.html \ elinks.1.html \ elinkskeys.5.html \ hacking.html \ manual.html HTML_DOCS-$(CONFIG_XMLTO) += \ manual.html-chunked HTML_DOCS-$(CONFIG_POD2HTML) += \ perl.html \ perl-hooks.html MAN_DOCS-$(CONFIG_XMLTO) += \ man1/elinks.1.in \ man5/elinkskeys.5 # Only jw is used for generating PDF. PDF_DOCS-$(CONFIG_JW) += \ manual.pdf MAN_DOCS += man5/elinks.conf.5 MAN_DOCS += $(MAN_DOCS-yes) HTML_DOCS += $(HTML_DOCS-yes) PDF_DOCS += $(PDF_DOCS-yes) man-docs: doc-dirs $(addprefix $(MAN_DIR)/,$(MAN_DOCS)) html-docs: doc-dirs $(addprefix $(HTML_DIR)/,$(HTML_DOCS)) pdf-docs: doc-dirs $(addprefix $(PDF_DIR)/,$(PDF_DOCS)) all-docs: man-docs html-docs pdf-docs ### Build Rules # doc-dirs: $(INSTALL) -d $(DOC_DIRS) # $(MAN_DIR) intentionally left out clean-local: @$(RM) -r $(HTML_DIR) $(XML_DIR) $(TXT_DIR) $(PDF_DIR) *.tmp # Autogenerated asciidoc files. $(TXT_DIR)/import-features.conf.txt: $(FEATURES) $(IMPORT_FEATURES_CONF) $(IMPORT_FEATURES_CONF) > $@ $(TXT_DIR)/elinks.1.%.txt: $(MAKE_ELINKS_MANPAGE) $(ELINKS) $(HELP2DOC) Makefile $(LOCALES) $(MAKE_ELINKS_MANPAGE) $@ $(ELINKS) $(HELP2DOC) > $@ $(TXT_DIR)/elinkskeys.5.%.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND) Makefile $(LOCALES) $(MAKE_ELINKSKEYS_MANPAGE) $@ $(KBDBIND) > $@ # Man Pages $(XML_DIR)/%.man.xml: $(TXT_DIR)/%.man.txt $(ASCIIDOC) -b docbook -d manpage -o $@ $< $(MAN_DIR)/man1/elinks.1.in: $(XML_DIR)/elinks.1.man.xml $(XMLTO) -o $(MAN_DIR)/man1 man $< sed 's/^\.TH "ELINKS" 1 .*/.TH "ELINKS" 1 "The ELinks text-browser" "$(shell date -I)" "The ELinks text-browser"/' \ < $(MAN_DIR)/man1/elinks.1 > $@ rm $(MAN_DIR)/man1/elinks.1 $(MAN_DIR)/man5/elinkskeys.5: $(XML_DIR)/elinkskeys.5.man.xml $(XMLTO) -o $(MAN_DIR)/man5 man $< sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < $@ > $@.tmp sed 's/^\.TH "ELINKSKEYS" 5 .*/.TH "ELINKSKEYS" 5 "ELinks keybindings" "$(shell date -I)" "ELinks keybindings"/' \ < $@.tmp > $@ rm $@.tmp $(MAN_DIR)/man5/elinks.conf.5: $(ELINKS) $(HELP2DOC) Makefile $(LOCALES) $(HELP2DOC) --elinks=$(ELINKS) --elinksconf > $@ # XHTML/CSS Man Pages $(HTML_DIR)/%.html: $(TXT_DIR)/%.html.txt $(ASCIIDOC) -b xhtml11 -d manpage -o $@ $< # The Manual MANUAL_EXTRA_FILES = \ $(TXT_DIR)/import-features.conf.txt \ $(TXT_DIR)/elinks.1.html.txt \ $(TXT_DIR)/elinkskeys.5.html.txt $(HTML_DIR)/manual.html: $(MANUAL_FILES) $(MANUAL_EXTRA_FILES) $(ASCIIDOC) -b xhtml11 -d book -o $@ -n $< $(HTML_DIR)/hacking.html: $(top_srcdir)/doc/hacking.txt $(ASCIIDOC) -b xhtml11 -d book -o $@ -n $< $(HTML_DIR)/dev-intro.html: $(top_srcdir)/doc/dev-intro.txt $(ASCIIDOC) -b xhtml11 -d book -o $@ -n $< $(XML_DIR)/manual.xml: $(MANUAL_FILES) $(MANUAL_EXTRA_FILES) $(ASCIIDOC) -b docbook -d book -o $@ $< $(HTML_DIR)/manual.html-chunked: $(XML_DIR)/manual.xml $(XMLTO) -o $@ html $< $(PDF_DIR)/manual.pdf: $(XML_DIR)/manual.xml $(JW) -o $(PDF_DIR) -b pdf $< $(HTML_DIR)/perl.html: $(top_srcdir)/doc/perl.pod $(POD2HTML) --outfile=$@ < $< $(HTML_DIR)/perl-hooks.html: $(top_srcdir)/contrib/perl/hooks.pl $(POD2HTML) --outfile=$@ < $< ## API Docs # DOM_API = \ $(top_srcdir)/src/dom/scanner.h \ $(top_srcdir)/src/dom/stack.h \ $(top_srcdir)/src/dom/sgml/parser.h $(HTML_DIR)/api/dom.html: $(DOM_API) $(CODE2DOC) $(DOM_API) | $(ASCIIDOC) -f code2doc.conf -b xhtml11 -d book -o $@ -n - include $(top_srcdir)/Makefile.lib