[master] 3f2be2ce8 Full abort on the sphinx links mess

Nils Goroll nils.goroll at uplex.de
Tue Jul 28 11:26:06 UTC 2020


commit 3f2be2ce824e7e13fcc930b6185fe414e701f40e
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Tue Jul 28 13:23:41 2020 +0200

    Full abort on the sphinx links mess
    
    Either I need to come up with a better idea or leave this with someone
    else.
    
    This reverts commit 37215599397ba5df32712b2a45c1a0e299063d5d.
    This reverts commit 2754e02e245542e5d38b1419dc6d6f01a3ba0a6c.
    This reverts commit d7d31e47eeafa7457bc65047367aec8ba4f062f8.
    This reverts commit 803b9a0cbdb22e8cda3cf9b4acb455351529df8d.

diff --git a/doc/sphinx/Makefile.am b/doc/sphinx/Makefile.am
index 14d0b9ad9..4ef49bc66 100644
--- a/doc/sphinx/Makefile.am
+++ b/doc/sphinx/Makefile.am
@@ -18,25 +18,26 @@ help:
 clean:
 	-rm -rf $(BUILDDIR)/* $(CLEANFILES)
 
-# sphinx does not support include paths or anything comparable:
-# link source tree files for an out-of-tree build
-rstlinks = $(abs_builddir)/index.rst
-$(rstlinks):
-	s=`realpath $(srcdir)`; \
-	for f in `cd $$s && find . -name \*.rst \! -name \*.generated.rst -type f`; do \
-		d=`dirname $$f`; \
-		test -d $$d || mkdir -p $$d; \
-		test -f $$f || ln -s $$s/$$f $$f; \
-	done
-
-BUILT_SOURCES = $(rstlinks)
+# use index.rst as an indicator if we have copied already
+.PHONY: link_srcdir
+link_srcdir:
+	if test "x$(srcdir)" != "x$(builddir)" && test ! -f index.rst; then \
+		s=`realpath $(srcdir)`; \
+		for f in `cd $$s && find . -type f`; do \
+			d=`dirname $$f`; \
+			test -d $$d || mkdir -p $$d; \
+			test -f $$f || ln -s $$s/$$f $$f; \
+		done \
+	fi
 
 # work around for make html called within doc/sphinx
 .PHONY: graphviz
 graphviz:
 	cd ../graphviz && $(MAKE) html
 
-sphinx_prereq: graphviz conf.py
+sphinx_prereq: link_srcdir graphviz conf.py
+
+all: link_srcdir
 
 html: sphinx_prereq
 	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@@ -76,12 +77,12 @@ distclean-local:
 include/cli.rst: $(top_builddir)/bin/varnishd/varnishd
 	$(top_builddir)/bin/varnishd/varnishd -x cli > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT = include/cli.rst
+BUILT_SOURCES = include/cli.rst
 
 include/params.rst: $(top_builddir)/bin/varnishd/varnishd
 	$(top_builddir)/bin/varnishd/varnishd -x parameter > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/params.rst
+BUILT_SOURCES += include/params.rst
 
 COUNTERS = \
 	$(top_srcdir)/bin/varnishd/VSC_main.vsc \
@@ -100,7 +101,7 @@ include/counters.rst: $(top_srcdir)/lib/libvcc/vsctool.py $(COUNTERS)
 	done
 	mv ${@}_ ${@}
 
-RST_BUILT += include/counters.rst
+BUILT_SOURCES += include/counters.rst
 
 include/varnishncsa_options.rst: $(top_builddir)/bin/varnishncsa/varnishncsa
 	$(top_builddir)/bin/varnishncsa/varnishncsa --options > ${@}_
@@ -108,7 +109,7 @@ include/varnishncsa_options.rst: $(top_builddir)/bin/varnishncsa/varnishncsa
 include/varnishncsa_synopsis.rst: $(top_builddir)/bin/varnishncsa/varnishncsa
 	$(top_builddir)/bin/varnishncsa/varnishncsa --synopsis > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/varnishncsa_options.rst \
+BUILT_SOURCES += include/varnishncsa_options.rst \
 	include/varnishncsa_synopsis.rst
 
 include/varnishlog_options.rst: $(top_builddir)/bin/varnishlog/varnishlog
@@ -117,7 +118,7 @@ include/varnishlog_options.rst: $(top_builddir)/bin/varnishlog/varnishlog
 include/varnishlog_synopsis.rst: $(top_builddir)/bin/varnishlog/varnishlog
 	$(top_builddir)/bin/varnishlog/varnishlog --synopsis > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/varnishlog_options.rst \
+BUILT_SOURCES += include/varnishlog_options.rst \
 	include/varnishlog_synopsis.rst
 
 include/varnishtop_options.rst: $(top_builddir)/bin/varnishtop/varnishtop
@@ -126,7 +127,7 @@ include/varnishtop_options.rst: $(top_builddir)/bin/varnishtop/varnishtop
 include/varnishtop_synopsis.rst: $(top_builddir)/bin/varnishtop/varnishtop
 	$(top_builddir)/bin/varnishtop/varnishtop --synopsis > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/varnishtop_options.rst \
+BUILT_SOURCES += include/varnishtop_options.rst \
 	 include/varnishtop_synopsis.rst
 
 include/varnishhist_options.rst: $(top_builddir)/bin/varnishhist/varnishhist
@@ -135,7 +136,7 @@ include/varnishhist_options.rst: $(top_builddir)/bin/varnishhist/varnishhist
 include/varnishhist_synopsis.rst: $(top_builddir)/bin/varnishhist/varnishhist
 	$(top_builddir)/bin/varnishhist/varnishhist --synopsis > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/varnishhist_options.rst \
+BUILT_SOURCES += include/varnishhist_options.rst \
 	 include/varnishhist_synopsis.rst
 
 include/varnishstat_options.rst: $(top_builddir)/bin/varnishstat/varnishstat
@@ -147,14 +148,14 @@ include/varnishstat_synopsis.rst: $(top_builddir)/bin/varnishstat/varnishstat
 include/varnishstat_bindings.rst: $(top_builddir)/bin/varnishstat/varnishstat
 	$(top_builddir)/bin/varnishstat/varnishstat --bindings > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/varnishstat_options.rst \
+BUILT_SOURCES += include/varnishstat_options.rst \
 	 include/varnishstat_synopsis.rst \
 	 include/varnishstat_bindings.rst
 
 include/vsl-tags.rst: $(top_builddir)/lib/libvarnishapi/vsl2rst
 	$(top_builddir)/lib/libvarnishapi/vsl2rst > ${@}_
 	mv ${@}_ ${@}
-RST_BUILT += include/vsl-tags.rst
+BUILT_SOURCES += include/vsl-tags.rst
 
 VTCSYN_SRC = $(top_srcdir)/bin/varnishtest/vtc.c \
 	     $(top_srcdir)/bin/varnishtest/vtc_barrier.c \
@@ -169,45 +170,43 @@ VTCSYN_SRC = $(top_srcdir)/bin/varnishtest/vtc.c \
 include/vtc-syntax.rst: vtc-syntax.py $(VTCSYN_SRC)
 	$(AM_V_GEN) $(PYTHON) $(top_srcdir)/doc/sphinx/vtc-syntax.py $(VTCSYN_SRC) > ${@}_
 	@mv ${@}_ ${@}
-RST_BUILT += include/vtc-syntax.rst
+BUILT_SOURCES += include/vtc-syntax.rst
 
 # XXX copy/paste rules need some TLC
 
 include/vmod_std.generated.rst: $(top_builddir)/lib/libvmod_std/vmod_std.rst
 	cp $(top_builddir)/lib/libvmod_std/vmod_std.rst $@
-RST_BUILT += include/vmod_std.generated.rst
+BUILT_SOURCES += include/vmod_std.generated.rst
 
 include/vmod_directors.generated.rst: $(top_builddir)/lib/libvmod_directors/vmod_directors.rst
 	cp $(top_builddir)/lib/libvmod_directors/vmod_directors.rst $@
-RST_BUILT += include/vmod_directors.generated.rst
+BUILT_SOURCES += include/vmod_directors.generated.rst
 
 include/vmod_purge.generated.rst: $(top_builddir)/lib/libvmod_purge/vmod_purge.rst
 	cp $(top_builddir)/lib/libvmod_purge/vmod_purge.rst $@
-RST_BUILT += include/vmod_purge.generated.rst
+BUILT_SOURCES += include/vmod_purge.generated.rst
 
 include/vmod_vtc.generated.rst: $(top_builddir)/lib/libvmod_vtc/vmod_vtc.rst
 	cp $(top_builddir)/lib/libvmod_vtc/vmod_vtc.rst $@
-RST_BUILT += include/vmod_vtc.generated.rst
+BUILT_SOURCES += include/vmod_vtc.generated.rst
 
 include/vmod_blob.generated.rst: $(top_builddir)/lib/libvmod_blob/vmod_blob.rst
 	cp $(top_builddir)/lib/libvmod_blob/vmod_blob.rst $@
-RST_BUILT += include/vmod_blob.generated.rst
+BUILT_SOURCES += include/vmod_blob.generated.rst
 
 include/vmod_cookie.generated.rst: $(top_builddir)/lib/libvmod_cookie/vmod_cookie.rst
 	cp $(top_builddir)/lib/libvmod_cookie/vmod_cookie.rst $@
-RST_BUILT += include/vmod_cookie.generated.rst
+BUILT_SOURCES += include/vmod_cookie.generated.rst
 
 include/vmod_unix.generated.rst: $(top_builddir)/lib/libvmod_unix/vmod_unix.rst
 	cp $(top_builddir)/lib/libvmod_unix/vmod_unix.rst $@
-RST_BUILT += include/vmod_unix.generated.rst
+BUILT_SOURCES += include/vmod_unix.generated.rst
 
 include/vmod_proxy.generated.rst: $(top_builddir)/lib/libvmod_proxy/vmod_proxy.rst
 	cp $(top_builddir)/lib/libvmod_proxy/vmod_proxy.rst $@
-RST_BUILT += include/vmod_proxy.generated.rst
+BUILT_SOURCES += include/vmod_proxy.generated.rst
 
-EXTRA_DIST += $(RST_BUILT)
-BUILT_SOURCES += $(RST_BUILT)
-CLEANFILES = $(RST_BUILT)
-$(RST_BUILT): $(rstlinks)
+EXTRA_DIST += $(BUILT_SOURCES)
+CLEANFILES = $(BUILT_SOURCES)
 
 .NOPATH: $(BUILT_SOURCES)


More information about the varnish-commit mailing list