PROJECTS = Appenlight-docs BLOG = blog MKDOCS = ../result/bin/mkdocs help: @echo "" @echo "Please use \`make <target>' where <target> is one of" @echo " all build all projects" @echo " bootstrap build tools needed to build projects" @echo " ci-docs Trigger by CI server to build the documentation." @echo " ci-docs-publish Trigger by CI server to publish the" @echo " documentation. Requires CI_TARGET to be set." @echo " bootstrap build tools needed to build projects" @echo " <project> build one project. list of projects you can find below" @echo "" @echo "Current projects:" @for project in $(PROJECTS); do echo " - $$project"; done @echo "" all: bootstrap for item in $(PROJECTS); do \ cd $$item && $(MAKE) html && cd ..; \ mkdir -p www/$$item; \ cp -R $$item/_build/html/* www/$$item/; \ done blog: bootstrap for item in $(BLOG) ; do \ echo $$item ; \ echo "Building blog" ; \ nix-build && cd blog && ../result/bin/mkdocs build --clean && cd .. ; \ echo "blog build" ; \ echo "it's in the blog/site folder. Moving to www folder" ; \ mkdir -p www/$$item; \ cp -R $$item/site/* www/$$item; \ done clean: rm -rf result www rm -f common.pyc for item in $(PROJECTS); do \ cd $$item && $(MAKE) clean && cd ..; \ done bootstrap: nix-build default.nix -o result $(PROJECTS): bootstrap cd $@ && $(MAKE) html # CI Integration targets ci-docs: all ci-docs-publish: $(if $(value CI_TARGET),, $(error CI_TARGET has to be defined)) @echo "Cleaning up $(CI_TARGET)" for item in $(PROJECTS); do \ item_dir=$(CI_TARGET)/$$item; \ if [ -d $$item_dir ]; then \ echo "Removing $$item"; \ rm -fr $$item_dir; \ fi; \ done @echo "Publishing built documentation" for item in $(PROJECTS); do \ item_dir=$(CI_TARGET)/$$item; \ echo "Publishing $$item to $$item_dir"; \ cp -R www/$$item $$item_dir; \ done # @echo "Publishing the blog internally" # for item in $(BLOG); do \ # item_dir=$(CI_TARGET)/$$item; \ # echo "Publishing $$item to $$item_dir"; \ # cp -R www/$$item $$item_dir; \ # done