TMP := _tmp
HTML := html
.PHONY: help clean html linkcheck
# from https://www.thapaliya.com/en/writings/well-documented-makefiles/ via
# https://til.jakelazaroff.com/make/list-all-commands-in-a-makefile/
help:
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[.a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
##@ Main Command
# after upgrade to sphinx 1.8.5, search.html is missing load of searchtools.
# fix that in postprocess
# also sed index.html to properly format meta og:... entries.
html: doc_links ## make standalone HTML files (KEEP_HTML=1 speeds build)
if [ -z "${KEEP_HTML}" ]; then rm -rf html; fi
rm -f html/robots.txt # otherwise sphinx errors
mkdir -p $(TMP)/doctrees $(HTML)
sphinx-build -n -W -b html -d $(TMP)/doctrees . $(HTML)
# install searchtools.js into search page.
grep 'searchtools.js' html/search.html || sed -i -e '/language_data.js/s##\n #' html/search.html
# sphinx inserts \: for : in meta tags. Get rid of the \ in
# opengraph tags
sed -i -e '/ templates.zip
##@ Sync/Distribution commands
sourceforge_dev_sync: ## sync html directory to sourceforce /dev_docs subdir
# --no-times makes _images/* and other files sync over every time
# so docs_backup-... is complete with all files and can be served
# as the docs tree. Without --no-times _static, _images and other
# directories are missing from the backup directory.
# Exclude docs_backup so it won't be deleted from sourceforge
# since:
# --delete-exclude
# IS NOT (and must not be) SET
read -p "sync to dev_docs y/N? " resp; echo "$$resp" | grep -i "^y"
rsync -av --no-times --delete --exclude 'docs_backup*' \
--exclude '.buildinfo' \
--backup --backup-dir docs_backup-`date --iso-8601=seconds` \
html/. \
web.sourceforge.net:/home/project-web/roundup/htdocs/dev_docs/.
sourceforge_prod_sync: ## sync html directory to sourceforce production website
read -p "sync to production y/N? " resp; echo "$$resp" | grep -i "^y"
rsync -av --no-times --delete --exclude 'docs_backup*' \
--backup --backup-dir docs_backup-`date --iso-8601=seconds` \
html/. \
web.sourceforge.net:/home/project-web/roundup/htdocs/.
sourceforge_home_sync: ## sync html directory to sourceforge:~/roundup_docs
read -p "sync to home y/N? " resp; echo "$$resp" | grep -i "^y"
rsync -av --no-times --delete --exclude 'docs_backup*' \
--backup --backup-dir docs_backup-`date --iso-8601=seconds` \
html/. \
web.sourceforge.net:roundup_docs/.
##@ Setup
doc_links: docs COPYING.txt ## recreate links to docs not in this tree
docs:
ln -s ../../doc ./docs
COPYING.txt:
ln -s ../../COPYING.txt COPYING.txt