top_builddir=.. include $(top_builddir)/Makefile.config SUBDIRS = man VPATH = $(builddir):$(srcdir):$(top_srcdir)/contrib/perl #export PATH="tools:$(PATH)" # TODO: perl.pod should be pod2ized during make install. --pasky ### Script Dependencies # ELINKS = $(top_builddir)/src/elinks FEATURES = $(top_srcdir)/features.conf KBDBIND = $(top_srcdir)/src/config/kbdbind.c ### 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 TXT_DOCS = \ bookmarks.txt \ ecmascript.txt \ elinks.1.txt \ elinkskeys.5.txt \ exmode.txt \ faq.txt \ installation.txt \ introduction.txt \ lua-scripting.txt \ mailcap.txt \ manual.txt \ marks.txt \ mime.txt \ remote.txt \ small.txt \ tabs.txt \ terminals.txt \ urlshortcuts.txt GEN_TXT_DOCS = \ import-features.conf.txt \ option-command.txt \ option-config.txt \ keymap-defaults.txt \ keymap-actions.txt TXT_DOCS += $(GEN_TXT_DOCS) HTML_DOCS-$(CONFIG_ASCIIDOC) += \ elinks.1.html \ elinks.conf.5.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) += \ elinks.1 \ elinks.conf.5 \ elinkskeys.5 # Only jw is used for generating PDF. PDF_DOCS-$(CONFIG_JW) += \ manual.pdf ## API Docs # ifneq ($(findstring api,$(MAKECMDGOALS)),) API = $(shell find $(top_srcdir)/src/ -name '*.h' -exec grep -q 'API Doc' \{\} \; -printf "%p " | sort) endif define api_doc api/$(2).txt: $(1) @$(CODE2DOC) $(1) > $$@ API_TXT += api/$(2).txt endef $(foreach api,$(API),$(eval $(call api_doc,$(api),$(shell sed -n 's/.*API Doc\s*::\s*\([^ ]*\).*/\1/p' < $(api)),))) ## Se the default doc rules MAN_DOCS = elinks.conf.5 $(MAN_DOCS-yes) HTML_DOCS = $(HTML_DOCS-yes) PDF_DOCS = $(PDF_DOCS-yes) API_DOCS = $(patsubst %.txt,%.html,$(API_TXT)) api-dir: @test -d api || $(MKINSTALLDIRS) api txt: $(addprefix $(srcdir),$(TXT_DOCS)) html: txt $(HTML_DOCS) pdf: txt $(PDF_DOCS) man: txt $(MAN_DOCS) man-update api: api-dir $(API_DOCS) all-docs: man html pdf man-update: $(MAN_DOCS) @test "$(CONFIG_XMLTO)" = yes && \ sed 's/^\.TH "ELINKS" 1 .*/.TH "ELINKS" 1 "The ELinks text-browser" "$(shell date -I)" "The ELinks text-browser"/' \ < elinks.1 > $(srcdir)man/man1/elinks.1.in && \ $(RM) $(MAN_DIR)/man1/elinks.1 @test "$(CONFIG_XMLTO)" = yes && \ sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < elinkskeys.5 | \ sed 's/^\.TH "ELINKSKEYS" 5 .*/.TH "ELINKSKEYS" 5 "ELinks keybindings" "$(shell date -I)" "ELinks keybindings"/' \ > $(srcdir)man/man5/elinkskeys.5 @$(INSTALL) elinks.conf.5 $(srcdir)man/man5 clean-local: @$(RM) -r api $(GEN_TXT_DOCS) $(MAN_DOCS) $(HTML_DOCS) $(PDF_DOCS) *.tmp # Autogenerated files. # FIXME: Keep generated .txt files relative to the source directory and files # they are included in. import-features.conf.txt: $(FEATURES) $(IMPORT_FEATURES_CONF) $(IMPORT_FEATURES_CONF) > $@ keymap-defaults.txt keymap-actions.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND) $(LOCALES) $(srcdir)tools/make-elinkskeys-manpage $(KBDBIND) option-%.txt: $(ELINKS) $(HELP2DOC) $(LOCALES) $(HELP2DOC) $(ELINKS) $@ > $@ ## Default build rules # quiet_cmd_asciidoc = ' [$(LINK_COLOR)ASCIIDOC$(END_COLOR)] $(RELPATH)$@' cmd_asciidoc = $(ASCIIDOC) -f asciidoc.conf -b $(2) -d $(call doctype,$<) -o $@ $< quiet_cmd_xmlto = ' [$(LINK_COLOR)XMLTO$(END_COLOR)] $(RELPATH)$@' cmd_xmlto = $(XMLTO) $(3) $(2) $< quiet_cmd_jw = ' [$(LINK_COLOR)JW$(END_COLOR)] $(RELPATH)$@' cmd_jw = $(JW) -b $(2) $< quiet_cmd_pod2html = ' [$(LINK_COLOR)POD2HTML$(END_COLOR)] $(RELPATH)$@' cmd_pod2html = $(POD2HTML) --outfile=$@ < $< doctype = $(if $(findstring .1.,$(1)),manpage,$(if $(findstring .5.,$(1)),manpage,book)) %.html: %.txt asciidoc.conf $(call cmd,asciidoc,xhtml11) %.xml: %.txt asciidoc.conf $(call cmd,asciidoc,docbook) %.1: %.1.xml $(call cmd,xmlto,man) %.5: %.5.xml $(call cmd,xmlto,man) %.html-chunked: %.xml $(call cmd,xmlto,html,-o $@) %.pdf: %.xml $(call cmd,jw,pdf) %.html: %.pod $(call cmd,pod2html) perl-%.html: %.pl $(call cmd,pod2html) include $(top_srcdir)/Makefile.lib