1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-11-04 08:17:17 -05:00
elinks/doc/Makefile

216 lines
6.3 KiB
Makefile
Raw Normal View History

2005-10-19 22:00:35 -04:00
top_builddir=..
include $(top_builddir)/Makefile.config
SUBDIRS = man
# A little trick to simplify some of the rules.
2007-07-18 08:41:16 -04:00
VPATH = $(builddir):$(srcdir):$(top_srcdir)/contrib/perl
2006-01-13 06:42:14 -05:00
docdir = $(datadir)/doc
# Used by install-doc
HTML_DIR = $(DESTDIR)$(docdir)/$(PACKAGE)/html
PDF_DIR = $(DESTDIR)$(docdir)/$(PACKAGE)/pdf
TXT_DIR = $(DESTDIR)$(docdir)/$(PACKAGE)/txt
2006-01-13 06:42:14 -05:00
ASCIIDOC_CONF = $(srcdir)asciidoc.conf
ASCIIDOC_FLAGS += -f $(ASCIIDOC_CONF) -a "builddir=$(CURDIR)/" -a asciidoc7compatible
#############################################################################
# Build files
TXT_DOCS_NOINSTALL = \
features.txt \
keymap-actions.txt \
keymap-defaults.txt \
option-command.txt \
option-config.txt
TXT_DOCS_ASIS = \
python.txt
2006-01-08 15:46:21 -05:00
HTML_DOCS-$(CONFIG_ASCIIDOC) += \
2006-01-08 15:57:55 -05:00
elinks.1.html \
elinks.conf.5.html \
2006-01-08 15:57:55 -05:00
elinkskeys.5.html \
hacking.html \
manual.html
2006-01-08 15:46:21 -05:00
HTML_DOCS-$(CONFIG_XMLTO) += \
2006-01-08 15:57:55 -05:00
manual.html-chunked
HTML_DOCS-$(CONFIG_POD2HTML) += \
perl.html \
2006-01-14 04:59:58 -05:00
perl-hooks.html
2007-07-18 08:41:16 -04:00
# We don't nowadays run pod2html on the po/perl/ scripts, because
# "make install" does not install them and they do not have the .pl
# suffix expected by the pod2html rule below.
2006-01-08 15:46:21 -05:00
MAN_DOCS-$(CONFIG_XMLTO) += \
elinks.1 \
elinks.conf.5 \
elinkskeys.5
2005-09-15 22:38:48 -04:00
# Use jw for generating PDF, since xmlto seems to freak out.
2006-01-08 15:46:21 -05:00
PDF_DOCS-$(CONFIG_JW) += \
2006-01-08 15:57:55 -05:00
manual.pdf
API_DOCS-$(CONFIG_DOXYGEN) += \
api/doxygen
#############################################################################
## Set the default doc rules
MAN_DOCS = $(MAN_DOCS-yes)
HTML_DOCS = $(HTML_DOCS-yes)
PDF_DOCS = $(PDF_DOCS-yes)
API_DOCS = $(API_DOCS-yes)
txt: $(TXT_DOCS_NOINSTALL)
2007-07-18 08:41:16 -04:00
html: txt $(HTML_DOCS)
pdf: txt $(PDF_DOCS)
2006-01-12 04:29:05 -05:00
man: txt $(MAN_DOCS)
api: $(API_DOCS)
all-docs: man html pdf
install-doc: all-docs update-man install
2006-01-14 13:40:29 -05:00
@$(foreach doc,$(HTML_DOCS), \
2006-01-13 06:42:14 -05:00
if test -d $(doc); then \
$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(PACKAGE)/html/$(doc); \
$(call ncmd,installdata,$(doc)/*,$(HTML_DIR)/$(doc)); \
else \
$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(PACKAGE)/html; \
$(call ncmd,installdata,$(doc),$(HTML_DIR)); \
fi;)
2006-01-14 13:40:29 -05:00
@$(foreach doc,$(PDF_DOCS), \
2006-01-13 06:42:14 -05:00
$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(PACKAGE)/pdf; \
$(call ncmd,installdata,$(doc),$(PDF_DIR));)
@$(foreach doc,$(TXT_DOCS_ASIS), \
$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(PACKAGE)/txt; \
$(call ncmd,installdata,$(srcdir)$(doc),$(TXT_DIR));)
2006-01-13 06:42:14 -05:00
2006-01-12 04:29:05 -05:00
update-man: man
2006-01-14 13:40:29 -05:00
@$(if $(MAN_DOCS), \
$(call ncmd,installdata,elinks.1,$(srcdir)man/man1/elinks.1.in); \
$(call ncmd,installdata,elinkskeys.5,$(srcdir)man/man5/); \
$(call ncmd,installdata,elinks.conf.5,$(srcdir)man/man5/))
clean-local:
2007-07-18 08:41:16 -04:00
@$(RM) -r api $(TXT_DOCS_NOINSTALL) $(MAN_DOCS) $(HTML_DOCS) $(PDF_DOCS) *.tmp *.xml
# TODO: perl.pod should be pod2ized during make install. --pasky
install-local:
#############################################################################
# Generated asciidoc files
# Scripts and Dependencies
HELP2DOC = $(srcdir)tools/help2doc
CONF2DOC = $(srcdir)tools/conf2doc
KEYS2DOC = $(srcdir)tools/keys2doc
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
# FIXME: Keep generated .txt files relative to the source directory and files
# they are included in.
2006-01-12 04:29:05 -05:00
quiet_cmd_help2doc = ' [$(LINK_COLOR)HELP2DOC$(END_COLOR)] $(RELPATH)$@'
cmd_help2doc = $(LOCALES) $(HELP2DOC) $(ELINKS) $@ > $@
quiet_cmd_conf2doc = ' [$(LINK_COLOR)CONF2DOC$(END_COLOR)] $(RELPATH)$@'
cmd_conf2doc = $(LOCALES) $(CONF2DOC) $(FEATURES) > $@
quiet_cmd_keys2doc = ' [$(LINK_COLOR)KEYS2DOC$(END_COLOR)] $(RELPATH)$@'
cmd_keys2doc = $(LOCALES) $(KEYS2DOC) $(KBDBIND) $@ > $@
features.txt: $(FEATURES) $(CONF2DOC)
$(call cmd,conf2doc)
keymap-%.txt: $(KBDBIND) $(KEYS2DOC)
$(call cmd,keys2doc)
option-%.txt: $(ELINKS) $(HELP2DOC)
2006-01-12 04:29:05 -05:00
$(call cmd,help2doc)
#############################################################################
# Build commands and macros
quiet_cmd_jw = ' [$(LINK_COLOR)JW$(END_COLOR)] $(RELPATH)$@'
cmd_jw = $(JW) -b $(2) $<
quiet_cmd_xmlto = ' [$(LINK_COLOR)XMLTO$(END_COLOR)] $(RELPATH)$@'
cmd_xmlto = $(XMLTO) -o $(call outdir) $(3) $(2) $<
quiet_cmd_pod2html = ' [$(LINK_COLOR)POD2HTML$(END_COLOR)] $(RELPATH)$@'
cmd_pod2html = $(POD2HTML) --outfile=$@ < $<
quiet_cmd_asciidoc = ' [$(LINK_COLOR)ASCIIDOC$(END_COLOR)] $(RELPATH)$@'
cmd_asciidoc = $(ASCIIDOC) $(ASCIIDOC_FLAGS) -b $(call backend) -d $(call doctype) -o $@ $<
quiet_cmd_doxygen = ' [$(LINK_COLOR)DOXYGEN$(END_COLOR)] $(RELPATH)$@'
cmd_doxygen = $(DOXYGEN) $(2)
# Based on $@ find out asciidoc doctype or backend + xmlto output dir.
doctype = $(if $(findstring .1.,$@)$(findstring .5.,$@),manpage,book)
backend = $(if $(findstring .xml,$@),docbook,xhtml11)
outdir = $(if $(findstring -chunked,$@),$@,.)
# Loosely track dependencies via asciidoc includes.
asciidoc_dep = sed -n 's/[{]builddir}//g;s@include::\(.*\)\[.*@$@: $< \1@p' < $< > .deps/$(@F).asciidoc
-include .deps/*.asciidoc
# Do a little post-processing of man pages. Inserting title headers and date.
2006-01-12 04:29:05 -05:00
MAN_DATE = $(shell date -I)
man_desc = `sed -n 's/:Description:\s*\(.*\)/\1/p' < $(srcdir)$(subst .xml,.txt,$(<F))`
man_hack = sed "s/^\(\.TH \"ELINKS[^\"]*\" [0-9] \).*/\1\"$(1)\" \"$(MAN_DATE)\" \"$(1)\"/" < $@ | \
sed "s/@squote@/\\\\'/g" > $@.tmp && mv $@.tmp $@
#############################################################################
# Build recipies
%.html: %.txt $(ASCIIDOC_CONF)
2006-01-11 05:12:03 -05:00
$(call cmd,asciidoc,xhtml11)
2006-01-14 13:40:29 -05:00
@-$(call asciidoc_dep)
%.xml: %.txt $(ASCIIDOC_CONF)
2006-01-11 05:12:03 -05:00
$(call cmd,asciidoc,docbook)
2006-01-14 13:40:29 -05:00
@-$(call asciidoc_dep)
%.1: %.1.xml
2006-01-11 05:12:03 -05:00
$(call cmd,xmlto,man)
2006-01-14 13:40:29 -05:00
@$(call man_hack,$(call man_desc))
%.5: %.5.xml
2006-01-11 05:12:03 -05:00
$(call cmd,xmlto,man)
2006-01-14 13:40:29 -05:00
@$(call man_hack,$(call man_desc))
%.html-chunked: %.xml
$(call cmd,xmlto,html)
2005-09-15 22:38:48 -04:00
%.pdf: %.xml
2006-01-11 05:12:03 -05:00
$(call cmd,jw,pdf)
%.html: %.pod
2006-01-11 05:12:03 -05:00
$(call cmd,pod2html)
perl-%.html: %.pl
2006-01-11 05:12:03 -05:00
$(call cmd,pod2html)
Doxyfile: $(srcdir)Doxyfile.in $(top_srcdir)/configure.in
cd $(top_builddir) && \
CONFIG_FILES="$(RELPATH)$@" CONFIG_HEADERS= $(SHELL) ./config.status
api/doxygen: Doxyfile $(shell find $(top_srcdir)/src/ -name '*.[ch]' -o -name options.inc -o -name 'actions-*.inc' | sort)
$(call cmd,doxygen,$<)
include $(top_srcdir)/Makefile.lib