aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar David Bremner <david@tethera.net>2014-03-19 21:48:03 -0300
committerGravatar David Bremner <david@tethera.net>2014-03-25 08:32:10 -0300
commit57b4ef6f30d41cd14aa570b329841fc2082260ff (patch)
tree51183d9b62fee4cdc51016453d64e6406f2e2917
parent68c2c5d31ccbfd43052e4e5e9abcfe285fc205c8 (diff)
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.
-rwxr-xr-xconfigure3
-rw-r--r--doc/Makefile.local12
-rw-r--r--doc/mkdocdeps.py7
3 files changed, 12 insertions, 10 deletions
diff --git a/configure b/configure
index ab73317a..1d430b9c 100755
--- a/configure
+++ b/configure
@@ -719,8 +719,9 @@ configure_options = $@
# files, (which is quite ugly).
vpath %.c \$(srcdir)
vpath %.cc \$(srcdir)
-vpath %.1 \$(srcdir)
vpath Makefile.% \$(srcdir)
+vpath %.py \$(srcdir)
+vpath %.rst \$(srcdir)
# The C compiler to use
CC = ${CC}
diff --git a/doc/Makefile.local b/doc/Makefile.local
index 9c31c248..0980c71c 100644
--- a/doc/Makefile.local
+++ b/doc/Makefile.local
@@ -3,15 +3,15 @@
dir := doc
# You can set these variables from the command line.
-SPHINXOPTS := -q -c $(dir)
+SPHINXOPTS := -q
SPHINXBUILD = sphinx-build
DOCBUILDDIR := $(dir)/_build
-prerst2man := python $(dir)/prerst2man.py
-mkdocdeps := python $(dir)/mkdocdeps.py
+prerst2man := python $(srcdir)/$(dir)/prerst2man.py
+mkdocdeps := python $(srcdir)/$(dir)/mkdocdeps.py
# Internal variables.
-ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(dir)
+ALLSPHINXOPTS := -d $(DOCBUILDDIR)/doctrees $(SPHINXOPTS) $(srcdir)/$(dir)
.PHONY: sphinx-html sphinx-texinfo sphinx-info
@@ -43,7 +43,7 @@ ifeq ($(HAVE_SPHINX),1)
mv $(DOCBUILDDIR)/man/*.$${section} $(DOCBUILDDIR)/man/man$${section}; \
done
else ifeq ($(HAVE_RST2MAN),1)
- $(prerst2man) $(DOCBUILDDIR)/.. $(DOCBUILDDIR)/man
+ $(prerst2man) $(srcdir)/doc $(DOCBUILDDIR)/man
else
@echo "Fatal: build dependency fail."
@false
@@ -68,7 +68,7 @@ install-man: ${MAN_GZIP_FILES}
endif
$(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) $(MAN_GZIP_FILES) $(MAN_ROFF_FILES)
diff --git a/doc/mkdocdeps.py b/doc/mkdocdeps.py
index 3effdd85..71bd1356 100644
--- a/doc/mkdocdeps.py
+++ b/doc/mkdocdeps.py
@@ -1,15 +1,16 @@
from sys import argv
-conffile = argv[1]
+srcdir = argv[1]
builddir = argv[2]
outfile = argv[3]
-execfile(conffile)
+execfile(srcdir + '/conf.py')
+
roff_files = []
rst_files = []
out=open(outfile,'w')
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])]
out.write ('MAN_ROFF_FILES := ' + ' \\\n\t'.join(roff_files)+'\n')