mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
aa7d65fb79
This simplifies help2doc since it now just have to do one single thing with output of either --config-help or --long-help. The new manpage is not as fancy wrt. indentation and sub titles but it is more uniform and we get a HTML version. Generate options-{config,command}.txt with help2doc. Only conditionally check for API header files, to speed up execusion.
189 lines
4.3 KiB
Makefile
189 lines
4.3 KiB
Makefile
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
|