diff --git a/docs/Makefile b/docs/Makefile --- a/docs/Makefile +++ b/docs/Makefile @@ -21,10 +21,14 @@ html: sphinx/html -sphinx/html: apidoc-stamp images-stamp rec-build-stamp +sphinx/html: links-stamp apidoc-stamp images-stamp rec-build-stamp + +links-stamp: + bin/ln-sphinx-subprojects + touch $@ apidoc: apidoc-stamp -apidoc-stamp: images-stamp +apidoc-stamp: links-stamp images-stamp $(SPHINXAPIDOC) --implicit-namespaces $(APIDOC_OPTS) -o $(APIDOC_DIR) $(SWHPKGDIR) $(APIDOC_SWH_EXCLUDES) touch $@ @@ -40,6 +44,7 @@ touch $@ clean: sphinx/clean + bin/ln-sphinx-subprojects --remove $(MAKE) -C images clean rm -f *-stamp rm -f $(APIDOC_DIR)/* diff --git a/docs/bin/ln-sphinx-subprojects b/docs/bin/ln-sphinx-subprojects new file mode 100755 --- /dev/null +++ b/docs/bin/ln-sphinx-subprojects @@ -0,0 +1,31 @@ +#!/bin/bash +set -e + +create_links () { + mkdir -p sources + for pymodule in $(cd ../../ && bin/ls-py-modules) ; do + if [ "$pymodule" = 'swh-docs' ] ; then + continue + fi + if [ ! -e "$pymodule" -a -d "../../${pymodule}/docs" ] ; then + ln -s "../../${pymodule}/docs" "$pymodule" + fi + done +} + +remove_links () { + for pymodule in $(cd ../../ && bin/ls-py-modules) ; do + if [ "$pymodule" = 'swh-docs' ] ; then + continue + fi + if [ -L "$pymodule" ] ; then + rm "$pymodule" + fi + done +} + +if [ "$1" = "--remove" ] ; then + remove_links +else + create_links +fi diff --git a/tox.ini b/tox.ini --- a/tox.ini +++ b/tox.ini @@ -17,12 +17,12 @@ {envpython} -m pifpaf run postgresql -- make -C docs {posargs:html} [testenv:sphinx-dev] -setenv = - SWHPKGDIR = {envsitepackagesdir}/swh deps = django < 3 -rrequirements-swh-dev.txt pifpaf +setenv = + SWHPKGDIR = {envsitepackagesdir}/swh commands = {envpython} -m pifpaf run postgresql -- make -C docs {posargs:html}