blob: 18cb73239f4645040801063043f3130ca405baf4 [file] [log] [blame] [edit]
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = KUnit
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make all".
all: html
# param 1: The url of the git repo.
# param 2: The branch to clone.
# param 3: The directory to clone into.
define git_clone_raw
git clone --depth 1 --single-branch $(1) --branch $(2) $(3)
endef
# param 1: The url of the git repo.
# param 2: The branch to clone.
# param 3: The directory to clone into.
define git_clone
if [ ! -d "$(3)" ]; then $(call git_clone_raw,$(1),$(2),$(3)); fi
endef
define mkdir
if [ ! -d "$(1)" ]; then mkdir $(1); fi
endef
# param 1: The url of the git repo.
# param 2: The branch to clone.
# param 3: The directory to clone into.
# param 4: The name of the directory under third_party to copy the docs.
# param 5: The directory under Documentation/ that contains the docs to copy.
define fetch_kernel_docs
$(call git_clone,$(1),$(2),$(3))
make -C $(3) htmldocs SPHINXDIRS=$(5)
mkdir -p $(BUILDDIR)/html/third_party/$(4)
$(call mkdir,$(BUILDDIR)/html/third_party/$(4)/LICENSES/)
cp -r $(3)/LICENSES/* $(BUILDDIR)/html/third_party/$(4)/LICENSES/
$(call mkdir,$(BUILDDIR)/html/third_party/$(4)/docs/)
cp -r $(3)/Documentation/output/$(5)/* $(BUILDDIR)/html/third_party/$(4)/docs/
endef
fetch_upstream_docs:
$(call fetch_kernel_docs,https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/,master,$(BUILDDIR)/upstream_kunit,kernel,dev-tools/kunit)
download_deps: fetch_upstream_docs
copy_statics:
cp LICENSE $(BUILDDIR)/html/
cp CONTRIBUTING.md $(BUILDDIR)/html/
cp statics/CNAME $(BUILDDIR)/html/
cp statics/.nojekyll $(BUILDDIR)/html/
cp statics/README.md $(BUILDDIR)/html/
clean:
rm -rf $(BUILDDIR)
.PHONY: all fetch_upstream_docs download_deps clean html copy_statics
html: Makefile download_deps copy_statics
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)