35e6c47404
Shawn Pearce explains: Some repositories contain a lot of references (e.g. android at 866k, rails at 31k). The reftable format provides: - Near constant time lookup for any single reference, even when the repository is cold and not in process or kernel cache. - Near constant time verification if a SHA-1 is referred to by at least one reference (for allow-tip-sha1-in-want). - Efficient lookup of an entire namespace, such as `refs/tags/`. - Support atomic push `O(size_of_update)` operations. - Combine reflog storage with ref storage. This file format spec was originally written in July, 2017 by Shawn Pearce. Some refinements since then were made by Shawn and by Han-Wen Nienhuys based on experiences implementing and experimenting with the format. (All of this was in the context of our work at Google and Google is happy to contribute the result to the Git project.) Imported from JGit[1]'s current version (c217d33ff, "Documentation/technical/reftable: improve repo layout", 2020-02-04) of Documentation/technical/reftable.md and converted to asciidoc by running pandoc -t asciidoc -f markdown reftable.md >reftable.txt using pandoc 2.2.1. The result required the following additional minor changes: - removed the [TOC] directive to add a table of contents, since asciidoc does not support it - replaced git-scm.com/docs links with linkgit: directives that link to other pages within Git's documentation [1] https://eclipse.googlesource.com/jgit/jgit Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
471 lines
14 KiB
Makefile
471 lines
14 KiB
Makefile
# Guard against environment variables
|
|
MAN1_TXT =
|
|
MAN5_TXT =
|
|
MAN7_TXT =
|
|
TECH_DOCS =
|
|
ARTICLES =
|
|
SP_ARTICLES =
|
|
OBSOLETE_HTML =
|
|
|
|
-include GIT-EXCLUDED-PROGRAMS
|
|
|
|
MAN1_TXT += $(filter-out \
|
|
$(patsubst %,%.txt,$(EXCLUDED_PROGRAMS)) \
|
|
$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
|
|
$(wildcard git-*.txt))
|
|
MAN1_TXT += git.txt
|
|
MAN1_TXT += gitk.txt
|
|
MAN1_TXT += gitweb.txt
|
|
|
|
MAN5_TXT += gitattributes.txt
|
|
MAN5_TXT += githooks.txt
|
|
MAN5_TXT += gitignore.txt
|
|
MAN5_TXT += gitmodules.txt
|
|
MAN5_TXT += gitrepository-layout.txt
|
|
MAN5_TXT += gitweb.conf.txt
|
|
|
|
MAN7_TXT += gitcli.txt
|
|
MAN7_TXT += gitcore-tutorial.txt
|
|
MAN7_TXT += gitcredentials.txt
|
|
MAN7_TXT += gitcvs-migration.txt
|
|
MAN7_TXT += gitdiffcore.txt
|
|
MAN7_TXT += giteveryday.txt
|
|
MAN7_TXT += gitfaq.txt
|
|
MAN7_TXT += gitglossary.txt
|
|
MAN7_TXT += gitnamespaces.txt
|
|
MAN7_TXT += gitremote-helpers.txt
|
|
MAN7_TXT += gitrevisions.txt
|
|
MAN7_TXT += gitsubmodules.txt
|
|
MAN7_TXT += gittutorial-2.txt
|
|
MAN7_TXT += gittutorial.txt
|
|
MAN7_TXT += gitworkflows.txt
|
|
|
|
ifdef MAN_FILTER
|
|
MAN_TXT = $(filter $(MAN_FILTER),$(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT))
|
|
else
|
|
MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
|
|
MAN_FILTER = $(MAN_TXT)
|
|
endif
|
|
|
|
MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
|
|
MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
|
|
GIT_MAN_REF = master
|
|
|
|
OBSOLETE_HTML += everyday.html
|
|
OBSOLETE_HTML += git-remote-helpers.html
|
|
|
|
ARTICLES += howto-index
|
|
ARTICLES += git-tools
|
|
ARTICLES += git-bisect-lk2009
|
|
# with their own formatting rules.
|
|
SP_ARTICLES += user-manual
|
|
SP_ARTICLES += howto/new-command
|
|
SP_ARTICLES += howto/revert-branch-rebase
|
|
SP_ARTICLES += howto/using-merge-subtree
|
|
SP_ARTICLES += howto/using-signed-tag-in-pull-request
|
|
SP_ARTICLES += howto/use-git-daemon
|
|
SP_ARTICLES += howto/update-hook-example
|
|
SP_ARTICLES += howto/setup-git-server-over-http
|
|
SP_ARTICLES += howto/separating-topic-branches
|
|
SP_ARTICLES += howto/revert-a-faulty-merge
|
|
SP_ARTICLES += howto/recover-corrupted-blob-object
|
|
SP_ARTICLES += howto/recover-corrupted-object-harder
|
|
SP_ARTICLES += howto/rebuild-from-update-hook
|
|
SP_ARTICLES += howto/rebase-from-internal-branch
|
|
SP_ARTICLES += howto/keep-canonical-history-correct
|
|
SP_ARTICLES += howto/maintain-git
|
|
API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
|
|
SP_ARTICLES += $(API_DOCS)
|
|
|
|
TECH_DOCS += MyFirstContribution
|
|
TECH_DOCS += MyFirstObjectWalk
|
|
TECH_DOCS += SubmittingPatches
|
|
TECH_DOCS += technical/hash-function-transition
|
|
TECH_DOCS += technical/http-protocol
|
|
TECH_DOCS += technical/index-format
|
|
TECH_DOCS += technical/long-running-process-protocol
|
|
TECH_DOCS += technical/multi-pack-index
|
|
TECH_DOCS += technical/pack-format
|
|
TECH_DOCS += technical/pack-heuristics
|
|
TECH_DOCS += technical/pack-protocol
|
|
TECH_DOCS += technical/partial-clone
|
|
TECH_DOCS += technical/protocol-capabilities
|
|
TECH_DOCS += technical/protocol-common
|
|
TECH_DOCS += technical/protocol-v2
|
|
TECH_DOCS += technical/racy-git
|
|
TECH_DOCS += technical/reftable
|
|
TECH_DOCS += technical/send-pack-pipeline
|
|
TECH_DOCS += technical/shallow
|
|
TECH_DOCS += technical/signature-format
|
|
TECH_DOCS += technical/trivial-merge
|
|
SP_ARTICLES += $(TECH_DOCS)
|
|
SP_ARTICLES += technical/api-index
|
|
|
|
ARTICLES_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
|
|
HTML_FILTER ?= $(ARTICLES_HTML) $(OBSOLETE_HTML)
|
|
DOC_HTML = $(MAN_HTML) $(filter $(HTML_FILTER),$(ARTICLES_HTML) $(OBSOLETE_HTML))
|
|
|
|
DOC_MAN1 = $(patsubst %.txt,%.1,$(filter $(MAN_FILTER),$(MAN1_TXT)))
|
|
DOC_MAN5 = $(patsubst %.txt,%.5,$(filter $(MAN_FILTER),$(MAN5_TXT)))
|
|
DOC_MAN7 = $(patsubst %.txt,%.7,$(filter $(MAN_FILTER),$(MAN7_TXT)))
|
|
|
|
prefix ?= $(HOME)
|
|
bindir ?= $(prefix)/bin
|
|
htmldir ?= $(prefix)/share/doc/git-doc
|
|
infodir ?= $(prefix)/share/info
|
|
pdfdir ?= $(prefix)/share/doc/git-doc
|
|
mandir ?= $(prefix)/share/man
|
|
man1dir = $(mandir)/man1
|
|
man5dir = $(mandir)/man5
|
|
man7dir = $(mandir)/man7
|
|
# DESTDIR =
|
|
|
|
ASCIIDOC = asciidoc
|
|
ASCIIDOC_EXTRA =
|
|
ASCIIDOC_HTML = xhtml11
|
|
ASCIIDOC_DOCBOOK = docbook
|
|
ASCIIDOC_CONF = -f asciidoc.conf
|
|
ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
|
|
-amanversion=$(GIT_VERSION) \
|
|
-amanmanual='Git Manual' -amansource='Git'
|
|
TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
|
|
TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
|
|
MANPAGE_XSL = manpage-normal.xsl
|
|
XMLTO = xmlto
|
|
XMLTO_EXTRA =
|
|
INSTALL ?= install
|
|
RM ?= rm -f
|
|
MAN_REPO = ../../git-manpages
|
|
HTML_REPO = ../../git-htmldocs
|
|
|
|
MAKEINFO = makeinfo
|
|
INSTALL_INFO = install-info
|
|
DOCBOOK2X_TEXI = docbook2x-texi
|
|
DBLATEX = dblatex
|
|
ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
|
|
DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty
|
|
ifndef PERL_PATH
|
|
PERL_PATH = /usr/bin/perl
|
|
endif
|
|
|
|
-include ../config.mak.autogen
|
|
-include ../config.mak
|
|
|
|
ifndef NO_MAN_BOLD_LITERAL
|
|
XMLTO_EXTRA += -m manpage-bold-literal.xsl
|
|
endif
|
|
|
|
# Newer DocBook stylesheet emits warning cruft in the output when
|
|
# this is not set, and if set it shows an absolute link. Older
|
|
# stylesheets simply ignore this parameter.
|
|
#
|
|
# Distros may want to use MAN_BASE_URL=file:///path/to/git/docs/
|
|
# or similar.
|
|
ifndef MAN_BASE_URL
|
|
MAN_BASE_URL = file://$(htmldir)/
|
|
endif
|
|
XMLTO_EXTRA += -m manpage-base-url.xsl
|
|
|
|
# If your target system uses GNU groff, it may try to render
|
|
# apostrophes as a "pretty" apostrophe using unicode. This breaks
|
|
# cut&paste, so you should set GNU_ROFF to force them to be ASCII
|
|
# apostrophes. Unfortunately does not work with non-GNU roff.
|
|
ifdef GNU_ROFF
|
|
XMLTO_EXTRA += -m manpage-quote-apos.xsl
|
|
endif
|
|
|
|
ifdef USE_ASCIIDOCTOR
|
|
ASCIIDOC = asciidoctor
|
|
ASCIIDOC_CONF =
|
|
ASCIIDOC_HTML = xhtml5
|
|
ASCIIDOC_DOCBOOK = docbook5
|
|
ASCIIDOC_EXTRA += -acompat-mode -atabsize=8
|
|
ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
|
|
ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
|
|
DBLATEX_COMMON =
|
|
XMLTO_EXTRA += --skip-validation
|
|
XMLTO_EXTRA += -x manpage.xsl
|
|
endif
|
|
|
|
SHELL_PATH ?= $(SHELL)
|
|
# Shell quote;
|
|
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
|
|
|
ifdef DEFAULT_PAGER
|
|
DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER))
|
|
ASCIIDOC_EXTRA += -a 'git-default-pager=$(DEFAULT_PAGER_SQ)'
|
|
endif
|
|
|
|
ifdef DEFAULT_EDITOR
|
|
DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR))
|
|
ASCIIDOC_EXTRA += -a 'git-default-editor=$(DEFAULT_EDITOR_SQ)'
|
|
endif
|
|
|
|
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
|
|
QUIET_SUBDIR1 =
|
|
|
|
ifneq ($(findstring $(MAKEFLAGS),w),w)
|
|
PRINT_DIR = --no-print-directory
|
|
else # "make -w"
|
|
NO_SUBDIR = :
|
|
endif
|
|
|
|
ifneq ($(findstring $(MAKEFLAGS),s),s)
|
|
ifndef V
|
|
QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@;
|
|
QUIET_XMLTO = @echo ' ' XMLTO $@;
|
|
QUIET_DB2TEXI = @echo ' ' DB2TEXI $@;
|
|
QUIET_MAKEINFO = @echo ' ' MAKEINFO $@;
|
|
QUIET_DBLATEX = @echo ' ' DBLATEX $@;
|
|
QUIET_XSLTPROC = @echo ' ' XSLTPROC $@;
|
|
QUIET_GEN = @echo ' ' GEN $@;
|
|
QUIET_LINT = @echo ' ' LINT $@;
|
|
QUIET_STDERR = 2> /dev/null
|
|
QUIET_SUBDIR0 = +@subdir=
|
|
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
|
|
$(MAKE) $(PRINT_DIR) -C $$subdir
|
|
export V
|
|
endif
|
|
endif
|
|
|
|
all: html man
|
|
|
|
html: $(DOC_HTML)
|
|
|
|
man: man1 man5 man7
|
|
man1: $(DOC_MAN1)
|
|
man5: $(DOC_MAN5)
|
|
man7: $(DOC_MAN7)
|
|
|
|
info: git.info gitman.info
|
|
|
|
pdf: user-manual.pdf
|
|
|
|
install: install-man
|
|
|
|
install-man: man
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
|
|
$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir)
|
|
$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
|
|
$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
|
|
|
|
install-info: info
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
|
|
$(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
|
|
if test -r $(DESTDIR)$(infodir)/dir; then \
|
|
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
|
|
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
|
|
else \
|
|
echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
|
|
fi
|
|
|
|
install-pdf: pdf
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir)
|
|
$(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir)
|
|
|
|
install-html: html
|
|
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
|
|
|
|
../GIT-VERSION-FILE: FORCE
|
|
$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) GIT-VERSION-FILE
|
|
|
|
-include ../GIT-VERSION-FILE
|
|
|
|
#
|
|
# Determine "include::" file references in asciidoc files.
|
|
#
|
|
docdep_prereqs = \
|
|
mergetools-list.made $(mergetools_txt) \
|
|
cmd-list.made $(cmds_txt)
|
|
|
|
doc.dep : $(docdep_prereqs) $(wildcard *.txt) $(wildcard config/*.txt) build-docdep.perl
|
|
$(QUIET_GEN)$(RM) $@+ $@ && \
|
|
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
|
|
mv $@+ $@
|
|
|
|
-include doc.dep
|
|
|
|
cmds_txt = cmds-ancillaryinterrogators.txt \
|
|
cmds-ancillarymanipulators.txt \
|
|
cmds-mainporcelain.txt \
|
|
cmds-plumbinginterrogators.txt \
|
|
cmds-plumbingmanipulators.txt \
|
|
cmds-synchingrepositories.txt \
|
|
cmds-synchelpers.txt \
|
|
cmds-purehelpers.txt \
|
|
cmds-foreignscminterface.txt
|
|
|
|
$(cmds_txt): cmd-list.made
|
|
|
|
cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
|
|
$(QUIET_GEN)$(RM) $@ && \
|
|
$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
|
|
date >$@
|
|
|
|
mergetools_txt = mergetools-diff.txt mergetools-merge.txt
|
|
|
|
$(mergetools_txt): mergetools-list.made
|
|
|
|
mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*)
|
|
$(QUIET_GEN)$(RM) $@ && \
|
|
$(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && \
|
|
. ../git-mergetool--lib.sh && \
|
|
show_tool_names can_diff "* " || :' >mergetools-diff.txt && \
|
|
$(SHELL_PATH) -c 'MERGE_TOOLS_DIR=../mergetools && \
|
|
. ../git-mergetool--lib.sh && \
|
|
show_tool_names can_merge "* " || :' >mergetools-merge.txt && \
|
|
date >$@
|
|
|
|
TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK))
|
|
|
|
GIT-ASCIIDOCFLAGS: FORCE
|
|
@FLAGS='$(TRACK_ASCIIDOCFLAGS)'; \
|
|
if test x"$$FLAGS" != x"`cat GIT-ASCIIDOCFLAGS 2>/dev/null`" ; then \
|
|
echo >&2 " * new asciidoc flags"; \
|
|
echo "$$FLAGS" >GIT-ASCIIDOCFLAGS; \
|
|
fi
|
|
|
|
clean:
|
|
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
|
|
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
|
|
$(RM) *.pdf
|
|
$(RM) howto-index.txt howto/*.html doc.dep
|
|
$(RM) technical/*.html technical/api-index.txt
|
|
$(RM) SubmittingPatches.txt
|
|
$(RM) $(cmds_txt) $(mergetools_txt) *.made
|
|
$(RM) manpage-base-url.xsl
|
|
$(RM) GIT-ASCIIDOCFLAGS
|
|
|
|
$(MAN_HTML): %.html : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
|
$(TXT_TO_HTML) -d manpage -o $@+ $< && \
|
|
mv $@+ $@
|
|
|
|
$(OBSOLETE_HTML): %.html : %.txto asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
|
$(TXT_TO_HTML) -o $@+ $< && \
|
|
mv $@+ $@
|
|
|
|
manpage-base-url.xsl: manpage-base-url.xsl.in
|
|
$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
|
|
|
%.1 %.5 %.7 : %.xml manpage-base-url.xsl $(wildcard manpage*.xsl)
|
|
$(QUIET_XMLTO)$(RM) $@ && \
|
|
$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
|
|
|
%.xml : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
|
$(TXT_TO_XML) -d manpage -o $@+ $< && \
|
|
mv $@+ $@
|
|
|
|
user-manual.xml: user-manual.txt user-manual.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
|
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
|
$(TXT_TO_XML) -d book -o $@+ $< && \
|
|
mv $@+ $@
|
|
|
|
technical/api-index.txt: technical/api-index-skel.txt \
|
|
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
|
|
$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
|
|
|
|
technical/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
|
|
$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : %.txt \
|
|
asciidoc.conf GIT-ASCIIDOCFLAGS
|
|
$(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
|
|
|
|
SubmittingPatches.txt: SubmittingPatches
|
|
$(QUIET_GEN) cp $< $@
|
|
|
|
XSLT = docbook.xsl
|
|
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
|
|
|
|
user-manual.html: user-manual.xml $(XSLT)
|
|
$(QUIET_XSLTPROC)$(RM) $@+ $@ && \
|
|
xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \
|
|
mv $@+ $@
|
|
|
|
git.info: user-manual.texi
|
|
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
|
|
|
|
user-manual.texi: user-manual.xml
|
|
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
|
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
|
|
$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
|
|
rm $@++ && \
|
|
mv $@+ $@
|
|
|
|
user-manual.pdf: user-manual.xml
|
|
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
|
|
$(DBLATEX) -o $@+ $(DBLATEX_COMMON) $< && \
|
|
mv $@+ $@
|
|
|
|
gitman.texi: $(MAN_XML) cat-texi.perl texi.xsl
|
|
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
|
($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml)+ texi.xsl $(xml) && \
|
|
$(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml)+ && \
|
|
rm $(xml)+ &&) true) > $@++ && \
|
|
$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
|
|
rm $@++ && \
|
|
mv $@+ $@
|
|
|
|
gitman.info: gitman.texi
|
|
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
|
|
|
|
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
|
|
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
|
|
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
|
|
mv $@+ $@
|
|
|
|
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
|
|
$(QUIET_GEN)$(RM) $@+ $@ && \
|
|
'$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \
|
|
mv $@+ $@
|
|
|
|
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
|
|
$(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
|
|
|
|
WEBDOC_DEST = /pub/software/scm/git/docs
|
|
|
|
howto/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
|
|
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt GIT-ASCIIDOCFLAGS
|
|
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
|
|
sed -e '1,/^$$/d' $< | \
|
|
$(TXT_TO_HTML) - >$@+ && \
|
|
mv $@+ $@
|
|
|
|
install-webdoc : html
|
|
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
|
|
|
|
# You must have a clone of 'git-htmldocs' and 'git-manpages' repositories
|
|
# next to the 'git' repository itself for the following to work.
|
|
|
|
quick-install: quick-install-man
|
|
|
|
require-manrepo::
|
|
@if test ! -d $(MAN_REPO); \
|
|
then echo "git-manpages repository must exist at $(MAN_REPO)"; exit 1; fi
|
|
|
|
quick-install-man: require-manrepo
|
|
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir) $(GIT_MAN_REF)
|
|
|
|
require-htmlrepo::
|
|
@if test ! -d $(HTML_REPO); \
|
|
then echo "git-htmldocs repository must exist at $(HTML_REPO)"; exit 1; fi
|
|
|
|
quick-install-html: require-htmlrepo
|
|
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO) $(DESTDIR)$(htmldir) $(GIT_MAN_REF)
|
|
|
|
print-man1:
|
|
@for i in $(MAN1_TXT); do echo $$i; done
|
|
|
|
lint-docs::
|
|
$(QUIET_LINT)$(PERL_PATH) lint-gitlink.perl
|
|
|
|
ifeq ($(wildcard po/Makefile),po/Makefile)
|
|
doc-l10n install-l10n::
|
|
$(MAKE) -C po $@
|
|
endif
|
|
|
|
.PHONY: FORCE
|