]> git.donarmstrong.com Git - neurodebian.git/blobdiff - Makefile
Also for stats report which repo and which job number use our setup
[neurodebian.git] / Makefile
index 39fe377f91cb704bde281923c86e2defdb63f095..3a97d7c090b26a7c7197ab9055d8ca32cf31f682 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,75 +1,95 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
-
-help:
-       @echo "Please use \`make <target>' where <target> is one of"
-       @echo "  html      to make standalone HTML files"
-       @echo "  pickle    to make pickle files"
-       @echo "  json      to make JSON files"
-       @echo "  htmlhelp  to make HTML files and a HTML help project"
-       @echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-       @echo "  changes   to make an overview over all changed/added/deprecated items"
-       @echo "  linkcheck to check all external links for integrity"
+#WWW_UPLOAD_URI = neurodebian@neurodebian.ovgu.de:/home/neurodebian/www
+WWW_UPLOAD_URI = ../../www
+WWW_DIR = build/html/
+
+WWW_UPLOAD_URI_STATIC=$(WWW_UPLOAD_URI)/_static
+
+BIGMESS_OPTS = -c neurodebian.cfg
+BIGMESS_CMD = PYTHONPATH=.:3rd/bigmess:$(PYTHONPATH) 3rd/bigmess/bin/bigmess
+BIGMESS = $(BIGMESS_CMD) $(BIGMESS_OPTS)
+
+# 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
+
+website-build-depends:
+       : # Python modules
+       sudo apt-get install python-sphinx python-argparse python-xdg python-debian python-html5lib
+       : # JavaScripts
+       sudo apt-get install libjs-jquery-easing libjs-jquery-mousewheel libjs-jquery-fancybox
+
+
+pics:
+       $(MAKE) -C artwork
+
+
+html: pics source
+       rsync -rvlhpt sphinx/ build/src
+       cd artwork;     cp button_w200.png logo_tuned/fmri_w200.png *-logo_h50.png ../build/src/_static; cd ..
+       cp 3rd/jquery.livetwitter/jquery.livetwitter.min.js build/src/_static
+       cp neurodebian.cfg build/src/_static
+       cd build/src && $(MAKE) html BUILDDIR=$(CURDIR)/build 2>&1
+       ln -fs /usr/share/javascript build/html/
+       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
 
 clean:
-       -rm -rf build/*
-
-html:
-       mkdir -p build/html build/doctrees
-       $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
-       @echo
-       @echo "Build finished. The HTML pages are in build/html."
-
-pickle:
-       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:
-       mkdir -p build/json build/doctrees
-       $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json
-       @echo
-       @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
-       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:
-       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:
-       mkdir -p build/changes build/doctrees
-       $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
-       @echo
-       @echo "The overview file is in build/changes."
-
-linkcheck:
-       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."
+       -rm html-stamp source-stamp upload-website-stamp
+       $(MAKE) -C artwork clean
+
+
+distclean: clean
+       -rm -rf build
+
+
+source: source-stamp
+source-stamp:
+       mkdir -p build/src/pkgs/
+       mkdir -p build/src/lists/
+       mkdir -p build/src/_static/
+       mkdir -p build/src/pkglists/
+       $(BIGMESS) mkpkgs  -d build/src/pkgs/
+       $(BIGMESS) mkaptcfgs -d build/src/lists/
+       $(BIGMESS) mkmirrorsstat -d build/src
+       $(BIGMESS) mkrepocfg > build/src/sources_lists
+       $(BIGMESS) mkpkgtocs -d build/src/pkglists > build/src/pkgs.rst
+       cp 3rd/nvd3/*.min.js build/src/_static/
+       cp 3rd/nvd3/lib/d3*.min.js build/src/_static/
+       cp 3rd/nvd3/src/nv*.css build/src/_static/
+       touch $@
+
+cachefiles:
+       $(BIGMESS) cachefiles -f
+
+updatedb: cachefiles
+       $(BIGMESS) updatedb
+       -rm source-stamp
+
+upload-website: html
+       rsync -rvzlhp --delete \
+        --exclude=debian --exclude=debian-local --exclude=debian-devel --exclude=debian-custom --exclude=_files \
+        --chmod=Dg+s,g+rw $(WWW_DIR) $(WWW_UPLOAD_URI)
+       rsync -rvzlhp --chmod=Dg+s,g+rw tools/neurodebian-travis.sh $(WWW_UPLOAD_URI)/_files/
+       : # 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 cachefiles updatedb upload-website clean distclean pics html mirmon
+