mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
doc: fix out-of-tree build
The subtle part is adding .rst and .py files to vpath so they can be used as dependencies without prefixing with $(srcdir) We also change the interface to mkbuildeps.py: rather than getting the containing directory from the conf file path, we go the other way.
This commit is contained in:
parent
68c2c5d31c
commit
57b4ef6f30
3 changed files with 12 additions and 10 deletions
3
configure
vendored
3
configure
vendored
|
@ -719,8 +719,9 @@ configure_options = $@
|
||||||
# files, (which is quite ugly).
|
# files, (which is quite ugly).
|
||||||
vpath %.c \$(srcdir)
|
vpath %.c \$(srcdir)
|
||||||
vpath %.cc \$(srcdir)
|
vpath %.cc \$(srcdir)
|
||||||
vpath %.1 \$(srcdir)
|
|
||||||
vpath Makefile.% \$(srcdir)
|
vpath Makefile.% \$(srcdir)
|
||||||
|
vpath %.py \$(srcdir)
|
||||||
|
vpath %.rst \$(srcdir)
|
||||||
|
|
||||||
# The C compiler to use
|
# The C compiler to use
|
||||||
CC = ${CC}
|
CC = ${CC}
|
||||||
|
|
|
@ -3,15 +3,15 @@
|
||||||
dir := doc
|
dir := doc
|
||||||
|
|
||||||
# You can set these variables from the command line.
|
# You can set these variables from the command line.
|
||||||
SPHINXOPTS := -q -c $(dir)
|
SPHINXOPTS := -q
|
||||||
SPHINXBUILD = sphinx-build
|
SPHINXBUILD = sphinx-build
|
||||||
DOCBUILDDIR := $(dir)/_build
|
DOCBUILDDIR := $(dir)/_build
|
||||||
|
|
||||||
prerst2man := python $(dir)/prerst2man.py
|
prerst2man := python $(srcdir)/$(dir)/prerst2man.py
|
||||||
mkdocdeps := python $(dir)/mkdocdeps.py
|
mkdocdeps := python $(srcdir)/$(dir)/mkdocdeps.py
|
||||||
|
|
||||||
# Internal variables.
|
# Internal variables.
|
||||||
ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir)
|
ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(srcdir)/$(dir)
|
||||||
|
|
||||||
.PHONY: sphinx-html sphinx-texinfo sphinx-info
|
.PHONY: sphinx-html sphinx-texinfo sphinx-info
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ ifeq ($(HAVE_SPHINX),1)
|
||||||
mv $(DOCBUILDDIR)/man/*.$${section} $(DOCBUILDDIR)/man/man$${section}; \
|
mv $(DOCBUILDDIR)/man/*.$${section} $(DOCBUILDDIR)/man/man$${section}; \
|
||||||
done
|
done
|
||||||
else ifeq ($(HAVE_RST2MAN),1)
|
else ifeq ($(HAVE_RST2MAN),1)
|
||||||
$(prerst2man) $(DOCBUILDDIR)/.. $(DOCBUILDDIR)/man
|
$(prerst2man) $(srcdir)/doc $(DOCBUILDDIR)/man
|
||||||
else
|
else
|
||||||
@echo "Fatal: build dependency fail."
|
@echo "Fatal: build dependency fail."
|
||||||
@false
|
@false
|
||||||
|
@ -68,7 +68,7 @@ install-man: ${MAN_GZIP_FILES}
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py
|
$(dir)/docdeps.mk: $(dir)/conf.py $(dir)/mkdocdeps.py
|
||||||
$(mkdocdeps) $< $(DOCBUILDDIR) $@
|
$(mkdocdeps) $(srcdir)/doc $(DOCBUILDDIR) $@
|
||||||
|
|
||||||
CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk $(dir)/man.stamp
|
CLEAN := $(CLEAN) $(DOCBUILDDIR) $(dir)/docdeps.mk $(dir)/man.stamp
|
||||||
CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES)
|
CLEAN := $(CLEAN) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES)
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
from sys import argv
|
from sys import argv
|
||||||
conffile = argv[1]
|
srcdir = argv[1]
|
||||||
builddir = argv[2]
|
builddir = argv[2]
|
||||||
outfile = argv[3]
|
outfile = argv[3]
|
||||||
|
|
||||||
execfile(conffile)
|
execfile(srcdir + '/conf.py')
|
||||||
|
|
||||||
|
|
||||||
roff_files = []
|
roff_files = []
|
||||||
rst_files = []
|
rst_files = []
|
||||||
out=open(outfile,'w')
|
out=open(outfile,'w')
|
||||||
for page in man_pages:
|
for page in man_pages:
|
||||||
rst_files = rst_files + ["doc/{0:s}.rst".format(page[0])]
|
rst_files = rst_files + ["{0:s}/{1:s}.rst".format(srcdir,page[0])]
|
||||||
roff_files = roff_files + ["{0:s}/man/{1:s}.{2:d}".format(builddir,page[0],page[4])]
|
roff_files = roff_files + ["{0:s}/man/{1:s}.{2:d}".format(builddir,page[0],page[4])]
|
||||||
|
|
||||||
out.write ('MAN_ROFF_FILES := ' + ' \\\n\t'.join(roff_files)+'\n')
|
out.write ('MAN_ROFF_FILES := ' + ' \\\n\t'.join(roff_files)+'\n')
|
||||||
|
|
Loading…
Reference in a new issue