1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-09-26 02:46:13 -04:00

Simplify further; only list generated files; move things around; comment

This commit is contained in:
Jonas Fonseca 2006-01-13 12:17:03 +01:00 committed by Jonas Fonseca
parent 63f4a15d91
commit 75bf42bfe0
2 changed files with 99 additions and 109 deletions

View File

@ -3,60 +3,18 @@ include $(top_builddir)/Makefile.config
SUBDIRS = man
# A little trick to simplify some of the rules.
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
#############################################################################
# Build files
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 \
features.txt \
keymap-actions.txt \
keymap-defaults.txt \
keymap-actions.txt
TXT_DOCS += $(GEN_TXT_DOCS)
option-command.txt \
option-config.txt
HTML_DOCS-$(CONFIG_ASCIIDOC) += \
elinks.1.html \
@ -77,20 +35,83 @@ MAN_DOCS-$(CONFIG_XMLTO) += \
elinks.conf.5 \
elinkskeys.5
# Only jw is used for generating PDF.
# Use jw for generating PDF, since xmlto seems to freak out.
PDF_DOCS-$(CONFIG_JW) += \
manual.pdf
## API Docs
#
ifneq ($(findstring api,$(MAKECMDGOALS)),)
#############################################################################
## Set the default doc rules
MAN_DOCS = $(MAN_DOCS-yes)
HTML_DOCS = $(HTML_DOCS-yes)
PDF_DOCS = $(PDF_DOCS-yes)
txt: $(TXT_DOCS)
html: txt $(HTML_DOCS)
pdf: txt $(PDF_DOCS)
man: txt $(MAN_DOCS)
all-docs: man html pdf
update-man: man
$(call cmd,installdata,elinks.1,man/man1/elinks.1.in)
$(call cmd,installdata,elinkskeys.5,man/man5/)
$(call cmd,installdata,elinks.conf.5,man/man5/)
clean-local:
@$(RM) -r api $(TXT_DOCS) $(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
CODE2DOC = $(srcdir)tools/code2doc
HELP2DOC = $(srcdir)tools/help2doc
IMPORT_FEATURES_CONF = $(srcdir)tools/import-features.conf
MAKE_ELINKSKEYS_MANPAGE = $(srcdir)tools/make-elinkskeys-manpage
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.
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 = $(IMPORT_FEATURES_CONF) > $@
quiet_cmd_keys2doc = ' [$(LINK_COLOR)KEYS2DOC$(END_COLOR)] $(RELPATH)$@'
cmd_keys2doc = $(LOCALES) $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND) $@ > $@
features.txt: $(FEATURES) $(IMPORT_FEATURES_CONF)
$(call cmd,conf2doc)
keymap-%.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND)
$(call cmd,keys2doc)
option-%.txt: $(ELINKS) $(HELP2DOC)
$(call cmd,help2doc)
# API Docs
ifeq ($(findstring api,$(MAKECMDGOALS)),api)
API = $(shell find $(top_srcdir)/src/ -name '*.h' -exec grep -q 'API Doc' \{\} \; -printf "%p " | sort)
endif
define api_doc
api/$(2).txt: $(1)
api/$(2).txt: $(1) $(CODE2DOC)
@test -d api || $(MKINSTALLDIRS) api
@$(CODE2DOC) $(1) > $$@
API_TXT += api/$(2).txt
endef
@ -98,81 +119,49 @@ endef
api_name = $(shell sed -n 's/.*API Doc\s*::\s*\([^ ]*\).*/\1/p' < $(1))
$(foreach api,$(API),$(eval $(call api_doc,$(api),$(call api_name,$(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)
api: api-dir $(API_DOCS)
all-docs: man html pdf
update-man: man
$(call cmd,installdata,$(srcdir)elinks.1,man/man1/elinks.1.in)
$(call cmd,installdata,$(srcdir)elinkskeys.5,man/man5/)
$(call cmd,installdata,$(srcdir)elinks.conf.5,man/man5/)
clean-local:
@$(RM) -r api $(GEN_TXT_DOCS) $(MAN_DOCS) $(HTML_DOCS) $(PDF_DOCS) *.tmp *.xml
# Autogenerated files.
# FIXME: Keep generated .txt files relative to the source directory and files
# they are included in.
quiet_cmd_help2doc = ' [$(LINK_COLOR)HELP2DOC$(END_COLOR)] $(RELPATH)$@'
cmd_help2doc = $(LOCALES) $(HELP2DOC) $(ELINKS) $@ > $@
api: $(patsubst %.txt,%.html,$(API_TXT))
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)
$(call cmd,help2doc)
## 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) $<
#############################################################################
# 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) $(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) -f asciidoc.conf -b $(2) -d $(call doctype,$<) -o $@ $<
# Based on filename in $(1) find out asciidoc doctype.
doctype = $(if $(findstring .1.,$(1)),manpage,$(if $(findstring .5.,$(1)),manpage,book))
# Loosely track dependencies via asciidoc includes.
asciidoc_dep = sed -n 's@include::\(.*\)\[.*@$@: \1@p' < $< > .deps/$(@F).asciidoc
-include .deps/*.asciidoc
# Do a little post-processing of man pages. Inserting title headers and date.
MAN_DATE = $(shell date -I)
man_desc = `sed -n 's/:Description:\s*\(.*\)/\1/p' < $(subst .xml,.txt,$<)`
man_hack = sed "s/^\(\.TH \"ELINKS[^\"]*\" [0-9] \).*/\1\"$(1)\" \"$(MAN_DATE)\" \"$(1)\"/" < $@ | \
sed "s/@squote@/\\\\'/g" > $@.tmp && mv $@.tmp $@
-include .deps/*
#############################################################################
# Build recipies
%.html: %.txt asciidoc.conf
$(call cmd,asciidoc,xhtml11)
@-sed -n 's#include::\(.*\)\[.*#$@: \1#p' < $< > .deps/$(@F)
$(call asciidoc_dep)
%.xml: %.txt asciidoc.conf
$(call cmd,asciidoc,docbook)
@-sed -n 's#include::\(.*\)\[.*#$@: \1#p' < $< > .deps/$(@F)
$(call asciidoc_dep)
%.1: %.1.xml
$(call cmd,xmlto,man)
@ -194,4 +183,5 @@ man_hack = sed "s/^\(\.TH \"ELINKS[^\"]*\" [0-9] \).*/\1\"$(1)\" \"$(MAN_DATE)\"
perl-%.html: %.pl
$(call cmd,pod2html)
include $(top_srcdir)/Makefile.lib

View File

@ -71,6 +71,6 @@ include::small.txt[]
include::ecmascript.txt[]
include::import-features.conf.txt[]
include::features.txt[]
endif::installation-webpage[]