From 7f3b8c2a30a473c5bac01fcbdf663957d71bf956 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 22 Dec 2019 16:29:27 +0100 Subject: follow conventions --- Makefile | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..3469dd04 --- /dev/null +++ b/Makefile @@ -0,0 +1,91 @@ +# This file is in the public domain. + +include config.mk + +# All: build HTML pages in all languages and compile the +# TypeScript logic in web-common. +.PHONY: all +all: locale template + (cd web-common && $(tsc)) + ($(cp) rendered/static/robots.txt rendered/robots.txt) + ($(cp) rendered/static/robots.txt rendered/dist/robots.txt) + (for lang in en de fr it es ru pt ; do \ + $(cp) rendered/static/robots.txt rendered/$$lang/robots.txt; \ + done) + ($(python) inc/make_sitemap.py -i rendered) + ($(cp) sitemap.xml rendered/sitemap.xml) + ($(cp) sitemap.xml rendered/en/sitemap.xml) + (for lang in en de fr it es ru pt ; do \ + $(cp) rendered/sitemap.xml rendered/$$lang ; \ + done) + ($(cp) -R images rendered/static/) + (for lang in en de fr it es ru pt ; \ + do $(cp) -R images rendered/$$lang ; \ + done) + (for lang in en de fr it es ru pt ; do \ + $(cp) -R web-common rendered/$$lang ; \ + done) + (cd rendered; \ + for lang in en de fr it es ru pt; do \ + $(cp) $$lang/rss.xml $$lang/news/rss.xml; \ + done) + (for d in dist icons papers presentations ; do \ + $(cp) -R $$d rendered/ ; \ + done) + ($(cp) -R pdf rendered/static/) + +# Extract translateable strings from jinja2 templates. +locale/messages.pot: template/*.j2 common/*.j2 common/*.j2.inc + PYTHONPATH=".:./inc" $(pybabel) extract -F locale/babel.map -o locale/messages.pot . + +# Update translation (.po) files with new strings. +.PHONY: locale-update +locale-update: locale/messages.pot + (for lang in de fr es it ru pt; do \ + $(msgmerge) -q -U -m --previous locale/$$lang/LC_MESSAGES/messages.po locale/messages.pot ; \ + done) + + if $(grep) -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then $(echo) -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi + +# Compile translation files for use. +.PHONY: locale-compile +locale-compile: + (for lang in de fr it es ru pt; do \ + $(pybabel) -q compile -d locale -l $$lang --use-fuzzy ; \ + done) + +# Process everything related to gettext translations. +.PHONY: locale +locale: locale-update locale-compile + +# Run the jinja2 templating engine to expand templates to HTML +# incorporating translations. +template: locale-compile + $(python) ./make_site.py + +.PHONY: run +run: all + $(browser) http://0.0.0.0:8000/rendered/en & + $(python) -m http.server + +ifndef variant +$(error variant is not set) +endif + +.PHONY: install +install: all + $(mkdir) -p $(prefix)/$(variant) + $(cp) -r rendered/* $(prefix)/$(variant)/ + +.PHONY: uninstall +uninstall: + $(rm) -rf $(prefix)/$(variant) + +.PHONY: clean +clean: + $(rm) -rf __pycache__ *.pyc *~ \.*~ \#*\# + $(rm) -rf en/ de/ fr/ it/ es/ ru/ + $(rm) -rf rendered/ + +submodules/update: + $(git) submodule update --recursive --remote -- cgit v1.2.3