-# Makefile for Sphinx documentation
-#
+#WWW_UPLOAD_URI = neuro.debian.net:/home/www/neuro.debian.net/www
+WWW_UPLOAD_URI = ../www
+WWW_DIR = build/html/
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
+WWW_UPLOAD_URI_STATIC=$(WWW_UPLOAD_URI)/_static
-# Internal variables.
-SRCDIR = build/source
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SRCDIR)
+# Lentghy one due to updatedb
+all: updatedb upload-website mirmon
+# Quick one -- just rebuilds html if new changes and adjusts the status of the mirrors
+refresh: upload-website-stamp mirmon
-WWW_UPLOAD_URI = elrond:/home/hanke/public_html/archive
-WWW_DIR = build/html
+pics:
+ $(MAKE) -C artwork
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
+html: pics source
+ rsync -rvlhpt sphinx/ build/src
+ cd artwork; cp button_w200.png logo_tuned/fmri_w200.png ../build/src/_static; cd ..
+ cp 3rd/jquery.livetwitter/jquery.livetwitter.min.js build/src/_static
+ cd build/src && $(MAKE) html BUILDDIR=$(CURDIR)/build 2>&1
+ mv $(WWW_DIR)/_static/robots.txt $(WWW_DIR)/
+ cp -r build/src/lists $(WWW_DIR)/
+ cp -r sphinx/survey/2011/figures/* $(WWW_DIR)/_images/
+ @echo "I: extracting header/trailer to be reused in non-sphinx pages"
+ sed -ne '1,/<!-- HEADNOTES -->/p' $(WWW_DIR)/index.html >| $(WWW_DIR)/_static/index-header.ihtml
+ sed -ne '/<h2>Comments<\/h2>/,$$p' $(WWW_DIR)/index.html >| $(WWW_DIR)/_static/index-trailer.ihtml
-
-prep:
- mkdir -p build
- cp -r source build/
+clean:
+ -rm html-stamp source-stamp upload-website-stamp
+ $(MAKE) -C artwork clean
-clean:
+distclean: clean
-rm -rf build
-html: prep
- mkdir -p build/html build/doctrees
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
- @echo
- @echo "Build finished. The HTML pages are in build/html."
-
-pickle: prep
- mkdir -p build/pickle build/doctrees
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-web: pickle
-
-json: prep
- mkdir -p build/json build/doctrees
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp: prep
- mkdir -p build/htmlhelp build/doctrees
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in build/htmlhelp."
-
-latex: prep
- mkdir -p build/latex build/doctrees
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
- @echo
- @echo "Build finished; the LaTeX files are in build/latex."
- @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
- "run these through (pdf)latex."
-
-changes: prep
- mkdir -p build/changes build/doctrees
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
- @echo
- @echo "The overview file is in build/changes."
-
-linkcheck: prep
- mkdir -p build/linkcheck build/doctrees
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in build/linkcheck/output.txt."
-
-
-update-db:
- python deb2rst/archive.py
+source: source-stamp
+source-stamp:
+ mkdir -p build/src/pkgs/
+ mkdir -p build/src/lists/
+ mkdir -p build/src/pkglists/
+ PYTHONPATH=.:../bigmess:$(PYTHONPATH) ../bigmess/bin/bigmess genpkgs -d build/src/pkgs/
+ PYTHONPATH=.:../bigmess:$(PYTHONPATH) ../bigmess/bin/bigmess genaptlists -d build/src/lists/
+ PYTHONPATH=.:../bigmess:$(PYTHONPATH) ../bigmess/bin/bigmess genmirrorselect > build/src/sources_lists
+ PYTHONPATH=.:../bigmess:$(PYTHONPATH) ../bigmess/bin/bigmess genpkglists \
+ -d build/src/pkglists > build/src/pkgs.rst
+ touch $@
+
+
+updatedb:
upload-website: html
- rsync -rvzlhp --delete --chmod=Dg+s,g+rw $(WWW_DIR) $(WWW_UPLOAD_URI)
+ rsync -rvzlhp --delete \
+ --exclude=debian --exclude=debian-local --exclude=_files \
+ --chmod=Dg+s,g+rw $(WWW_DIR) $(WWW_UPLOAD_URI)
+ : # Touch stamp here so we get it updated on every upload
+ touch $@-stamp
+
+# call upload iff .git/index was modified, i.e. new changes got pulled in
+upload-website-stamp: .git/index
+ $(MAKE) upload-website
+
+mirmon:
+ # update and generate mirrors report
+ [ -x /usr/bin/mirmon ] && mirmon -q -get update -c mirmon-neurodebian.conf 2>&1 \
+ | grep -v 'date: invalid date.*DOCTYPE' || :
+ # [ -x $(WWW_UPLOAD_URI_STATIC)/mirrors-check.ihtml ] &&
+ # everything must be in place!
+ cat $(WWW_UPLOAD_URI_STATIC)/{index-header,mirrors-status,index-trailer}.ihtml \
+ >| $(WWW_UPLOAD_URI)/mirrors-status.html
+
+.PHONY: removedb removecache updatedb upload-website clean distclean pics html mirmon
+