blob: 875efc72066e400b31a04a08f0a38fa6418a6e12 [file] [log] [blame] [edit]
DIRS = core js-api web-api
FILES = index.html
BUILDDIR = _build
# Global targets.
.PHONY: all
all: $(BUILDDIR) root $(DIRS)
$(BUILDDIR):
mkdir -p $@
.PHONY: deploy
deploy:
GIT_DEPLOY_DIR=$(BUILDDIR) bash deploy.sh
.PHONY: publish
publish: all deploy
.PHONY: clean
clean: $(DIRS:%=clean-%)
rm -rf $(BUILDDIR)
.PHONY: diff
diff: $(DIRS:%=diff-%)
# Directory-specific targets.
.PHONY: root
root: $(BUILDDIR)
touch $(BUILDDIR)/.nojekyll
cp -f $(FILES) $(BUILDDIR)/
.PHONY: $(DIRS)
$(DIRS): %: $(BUILDDIR) $(DIRS:%=build-%) $(DIRS:%=dir-%)
.PHONY: $(DIRS:%=build-%)
$(DIRS:%=build-%): build-%:
(cd $(@:build-%=%); make BUILDDIR=$(BUILDDIR) all)
.PHONY: $(DIRS:%=dir-%)
$(DIRS:%=dir-%): dir-%:
mkdir -p $(BUILDDIR)/$(@:dir-%=%)
rm -rf $(BUILDDIR)/$(@:dir-%=%)/*
cp -R $(@:dir-%=%)/$(BUILDDIR)/html/* $(BUILDDIR)/$(@:dir-%=%)/
.PHONY: $(DIRS:%=deploy-%)
$(DIRS:%=deploy-%): deploy-%:
GIT_DEPLOY_DIR=$(BUILDDIR) GIT_DEPLOY_SUBDIR=$(@:deploy-%=%) bash deploy.sh
.PHONY: $(DIRS:%=publish-%)
$(DIRS:%=publish-%): publish-%: % deploy-%
.PHONY: $(DIRS:%=clean-%)
$(DIRS:%=clean-%): clean-%:
(cd $(@:clean-%=%); make BUILDDIR=$(BUILDDIR) clean)
rm -rf $(BUILDDIR)/$(@:clean-%=%)
.PHONY: $(DIRS:%=diff-%)
$(DIRS:%=diff-%): diff-%:
(cd $(@:diff-%=%); make BUILDDIR=$(BUILDDIR) diff)
# Help.
.PHONY: help
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " all to build all documents"
@echo " publish to make all and push to gh-pages"
@echo " <dir> to build a specific subdirectory"
@echo " publish-<dir> to build and push a specific subdirectory"
.PHONY: usage
usage: help