2020-05-14 15:18:07 -05:00
# Minimal makefile for Sphinx documentation
DOCSDIR := $( dir $( lastword $( MAKEFILE_LIST) ) )
TOPDIR := $( realpath $( DOCSDIR) /..)
i n c l u d e $( TOPDIR ) / s c r i p t s / m a k e / c o n d a . m k
SHELL = /bin/bash
EXP_OPEN := $$ ( (
EXP_CLOSE := ) )
CPU_CORES := $( shell nproc)
CPU_CORES_2 := $( shell echo $( EXP_OPEN) $( CPU_CORES) * 2 $( EXP_CLOSE) )
SPHINXOPTS = -j $( CPU_CORES_2)
SPHINXBUILD = $( IN_CONDA_ENV) sphinx-build
SPHINXAUTOBUILD = $( IN_CONDA_ENV) sphinx-autobuild
SPHINXPROJ = SkyWaterPDK
SOURCEDIR = $( DOCSDIR)
BUILDDIR = $( DOCSDIR) /_build
# Put it first so that "make" without argument is like "make help".
help : | $( CONDA_ENV_PYTHON )
@$( SPHINXBUILD) -M help " $( SOURCEDIR) " " $( BUILDDIR) " $( SPHINXOPTS) $( O)
# Vim makes a '4913' file for file system checking. Seriously.
livehtml : | $( CONDA_ENV_PYTHON )
@$( SPHINXAUTOBUILD) \
-b html \
--delay 5 \
\
--ignore \* .swp \
--ignore \* ~ \
--ignore env \
--ignore _build \
--ignore .git \
--ignore */4913 \
\
$( SPHINXOPTS) \
" $( SOURCEDIR) " \
" $( BUILDDIR) /html "
.PHONY : help livehtml Makefile
2020-06-21 20:05:40 -05:00
# Generate the rules/periphery-rules.rst from CSV files in rules/periphery/
$(wildcard rules/periphery/*) : | $( CONDA_ENV_PYTHON )
true
rules/periphery-rules.rst : $( wildcard rules /periphery /*) | $( CONDA_ENV_PYTHON )
$( IN_CONDA_ENV) cd rules/periphery; ./periphery-split-csv.py > /dev/null
2020-05-14 15:18:07 -05:00
# Various automated fixups that can be run
fixup :
# Make sure it is SkyWater
find ../ -type f -name \* .rst -exec sed -i 's/Skywater/SkyWater/gi' \{ \} \+
# Strip trailing space
find ../ -type f -name \* .rst -exec sed -i 's/ \+$$//' \{ \} \+
# Make sure all library names have the :lib: role.
find ../ -type f -name \* .rst -exec sed -i -e'/:name:.*/!s/\(:lib:\)\?`\?\(sky130_[a-z0-9]\+_[a-z0-9]\+\(_[a-z0-9]\+\)\?\)`\?\(\s\|$$\)/:lib:`\2`\4/g' \{ \} \+
.PHONY : fixup
echo : | $( CONDA_ENV_PYTHON )
@echo '$(SPHINXBUILD) -M XXXX "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)'
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
.DEFAULT : | $( CONDA_ENV_PYTHON )
@$( SPHINXBUILD) -M $@ " $( SOURCEDIR) " " $( BUILDDIR) " $( SPHINXOPTS) $( O)
2020-05-14 19:12:43 -05:00
clean : clean -docs
clean-docs :
rm -rf _build