Skip to content

Commit

Permalink
Fix the documentation building.
Browse files Browse the repository at this point in the history
 * Add the missing `.readthedocs.yml` file.
 * Use hdl organization's hdlparse fork.
 * Add missing `third_party/make-env` submodule.
 * Revert the `docs/Makefile` to match skywater-pdk's version.
  • Loading branch information
mithro committed Nov 22, 2021
1 parent 6574676 commit 8200178
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 7 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
timing/*.lib
docs/_build
env
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "third_party/make-env"]
path = third_party/make-env
url = https://github.com/SymbiFlow/make-env.git
29 changes: 29 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2020 SkyWater PDK Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0

# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py

conda:
environment: docs/environment.yml
37 changes: 31 additions & 6 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,42 @@
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0

# The top directory where environment will be created.
DOCS_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
TOP_DIR := $(realpath $(DOCS_DIR)/..)

# A pip `requirements.txt` file.
# https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format
REQUIREMENTS_FILE := $(DOCS_DIR)/requirements.txt
REQUIREMENTS_FILE := requirements.txt

# A conda `environment.yml` file.
# https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
ENVIRONMENT_FILE := $(DOCS_DIR)/environment.yml
ENVIRONMENT_FILE := environment.yml

$(TOP_DIR)/third_party/make-env/conda.mk: $(TOP_DIR)/.gitmodules
cd $(TOP_DIR); git submodule update --init third_party/make-env
touch $(TOP_DIR)/third_party/make-env/conda.mk

-include $(TOP_DIR)/third_party/make-env/conda.mk

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 = $(DOCS_DIR)
BUILDDIR = $(DOCS_DIR)/_build
HOSTNAME = $(shell hostname)

# 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) \
Expand All @@ -53,13 +61,23 @@ livehtml: | $(CONDA_ENV_PYTHON)
--ignore _build \
--ignore .git \
--ignore */4913 \
--host $(HOSTNAME)\
--port 8080 \
\
$(SPHINXOPTS) \
"$(SOURCEDIR)" \
"$(BUILDDIR)/html"

.PHONY: help livehtml Makefile

# 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

rules/device-details.rst: rules/device-details.py $(wildcard rules/device-details/*/index.rst) | $(CONDA_ENV_PYTHON)
$(IN_CONDA_ENV) cd rules; ./device-details.py > $(abspath $@)

# Various automated fixups that can be run
fixup:
# Make sure it is SkyWater
Expand All @@ -68,14 +86,21 @@ fixup:
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)
@make env
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)


clean:: clean-docs


clean-docs:
rm -rf _build
2 changes: 1 addition & 1 deletion docs/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ dependencies:
- netlistsvg
# Packages installed from PyPI
- pip:
- -r file:requirements.txt
- -r requirements.txt

1 change: 1 addition & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ sphinx-verilog-domain
sphinxcontrib-hdl-diagrams
# Module diagrams
git+https://github.com/SymbiFlow/symbolator.git#egg=symbolator
git+https://github.com/hdl/pyHDLparser.git#egg=hdlparse
# pycairo
# vext.gi
restructuredtext-lint
Expand Down
1 change: 1 addition & 0 deletions third_party/make-env
Submodule make-env added at 59adb0

0 comments on commit 8200178

Please sign in to comment.