pluto_hdl_adi/docs/Makefile

77 lines
2.7 KiB
Makefile
Executable File

SHELL = /bin/bash
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
help:
@echo "For help about the container instance, do \`make container-help\`"
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
#------------------------------------------------------------------------------
# Container commands
#------------------------------------------------------------------------------
CONTAINER_IMG ?=hdl-docs
CONTAINER_ENGINE =podman
CONTAINER_REPO =${CONTAINER_IMG}
CONTAINER_IMAGE =${CONTAINER_IMG}_build
CONTAINER_VERSION ?=0.1
CONTAINER_SHELL ?=bash -l
CONTAINER_RUN_EXTRA ?=
CONTAINER_FORMAT =$(if $(filter podman,${CONTAINER_ENGINE}),--format docker,)
IF_CONTAINER_RUNS=$(shell ${CONTAINER_ENFINE} container inspect -f '{{.State.Running}}' ${CONTAINER_IMAGE} 2>/dev/null)
CONTAINER_RUN_PARAMS = -it --rm --name=${CONTAINER_IMG} \
--name=${CONTAINER_IMAGE} \
--workdir=/${CONTAINER_IMG} \
--mount type=bind,source=${CURDIR}/../,target=/${CONTAINER_IMG} \
${CONTAINER_RUN_EXTRA} \
${CONTAINER_REPO}/${CONTAINER_IMAGE}:${CONTAINER_VERSION}
container-login:
@if [ "${IF_CONTAINER_RUNS}" != "true" ]; then \
${CONTAINER_ENGINE} run ${CONTAINER_RUN_PARAMS} \
${CONTAINER_SHELL}; \
else \
${CONTAINER_ENGINE} exec -it ${CONTAINER_IMAGE} \
${CONTAINER_SHELL}; \
fi
container-build:
@printf "Building container image\n"
@${CONTAINER_ENGINE} build --no-cache=true ${CONTAINER_FORMAT} -t ${CONTAINER_REPO}/${CONTAINER_IMAGE}:${CONTAINER_VERSION} -f ./Containerfile .
container-html:
@${CONTAINER_ENGINE} run ${CONTAINER_RUN_PARAMS} ${CONTAINER_SHELL} -c \
"source /.venv/bin/activate ; cd docs ; make html"
container-pdf:
@${CONTAINER_ENGINE} run ${CONTAINER_RUN_PARAMS} ${CONTAINER_SHELL} -c \
"source /.venv/bin/activate ; cd docs ; make latexpdf"
container-clean:
@${CONTAINER_ENGINE} run ${CONTAINER_RUN_PARAMS} ${CONTAINER_SHELL} -c \
"source /.venv/bin/activate ; cd docs ; make clean"
.PHONY: container-build container-login container-html container-pdf container-clean
container-help:
@printf "The container commands allow to use a container to build the documentation.\n"
@printf "Both podman and docker are supported, change the CONTAINER_ENGINE variable to select which to use.\n\n"
@printf "Usage: make [options]\n"
@printf "\
Options:\n\
container-build Build the container image with dependencies (do once).\n\
container-login Access the container shell.\n\
container-html Build html documentation.\n\
container-latexpdf Build pdf documentation.\n\
\n"