Commit graph

46 commits

Author SHA1 Message Date
Gerard Marull-Paretas 77aafa51a1 doc: align pseudo-Makefile with latest CMake changes
The SPHINXOPTS option was not aligned with latest changes in CMake, and
SPHINXOPTS_EXTRA was not present.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2023-07-13 14:27:56 +02:00
Gerard Marull-Paretas 41566e2502 doc: add support for linkcheck
This patch adds support for the `linkcheck` Sphinx builder, so that we
can easily check for broken links in the documentation.

It can be run like this:

ninja linkcheck

Or, using the Makefile shim:

make linkcheck

All Zephyr Github issues links are ignored, since we have lots of these
URLs and they quickly hit GH rate limit. They have small chance to be
incorrect, so we should be ok.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-09-23 17:28:47 +00:00
Gerard Marull-Paretas fc942ef7d3 doc: use new kconfig extension
Enable the new extension and delete usage of the old script/extensions.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-03-02 09:28:37 +01:00
Gerard Marull-Paretas 5986d882bb doc: add support for DT_TURBO_MODE
Similar to Kconfig turbo mode, add a Devicetree bindings turbo mode. In
this mode, the Devicetree bindings pages are not generated. Instead, a
page with dummy symbols is created. This takes ~1K pages out of the
build, resulting in faster builds. This mode can be useful while in
development or CI PRs.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-02-21 20:47:10 -05:00
Gerard Marull-Paretas da34ee9c31 doc: makefile: add support for latexmk options
Allow to override latexmk options via Makefile. Defaults match those in
the CMakeLists.txt.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-30 08:21:02 -04:00
Gerard Marull-Paretas 0d0b0ce10e doc: make: adjust Makefile
Adjust Makefile according to latest CMake changes.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-07-14 15:47:11 +02:00
Gerard Marull-Paretas 402ebf52c7 doc: makefile: adjust default Sphinx options
Adjust default options to match the ones in CMake. Quote options when
invoking CMake.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-05-25 19:38:11 +02:00
Gerard Marull-Paretas 32b71cbcdc doc: move Makefile to doc folder
Move the top-level Makefile to the documentation folder as it is only
used for documentation.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-03-29 10:59:28 -04:00
Carles Cufi 5ead0a52a5 doc: Remove old Makefile
With the transition to CMake, the old Makefile is not required anymore.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2018-07-12 01:26:05 +02:00
Ulf Magnusson a760c5b029 doc: Makefile: Remove latex_paper_size (PAPER) option
This configuration variable was removed in Sphinx 1.6:
http://www.sphinx-doc.org/en/master/changes.html#id35. I suspect no one
might be using it. It could still be passed in SPHINXOPTS if needed.

Maybe the paper size should be set from Python instead:
http://www.sphinx-doc.org/en/master/usage/configuration.html

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-11 14:37:04 -04:00
Ulf Magnusson 9af9b1fbdb doc: Makefile: Lowercase internal Make variables
Makes it easier to tell which variables can be set directly by the user.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-11 14:37:04 -04:00
Ulf Magnusson fa121da196 doc: Makefile: Remove the 'prep' target
Only used to add some prereqs to the 'json' target. Put the prereqs
directly on the 'json' target instead.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-11 14:37:04 -04:00
Ulf Magnusson 953dfe75e5 doc: Makefile: Remove the 'doxy-code' target
Identical with the 'doxy' target. Move the 'doxy-code' recipe over to
'doxy' and remove 'doxy-code'.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-11 14:37:04 -04:00
Ulf Magnusson 5917f9b605 doc: Makefile: Remove CONFIG_SHELL assignment
CONFIG_SHELL seems to be some autoconf thing
(https://www.gnu.org/software/autoconf/manual/autoconf.html). Maybe this
was meant to be SHELL, which Make looks at. Would probably be rare to
run a non-compatible shell here though.

CONFIG_SHELL isn't exported, so it isn't visible to the recursive make
invocations ($(MAKE) -C ...) either.

Remove it.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-06-11 14:37:04 -04:00
Ulf Magnusson 8e7a00512b doc: Makefile: Use phony targets and remove unneeded prereqs
Turn 'content', 'kconfig', and 'prep' into phony targets so that the
docs can be built even if there is a file called e.g. 'kconfig' in
zephyr/doc/.

Also remove the Python scripts as prerequisites from the rules and
reference them directly in the recipes instead. The phony targets are
always "out-of-date", and there are no rules to run for the Python
scripts themselves.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-22 13:31:56 -04:00
Ulf Magnusson 06ecb287fc genrest: Move from doc/scripts/genrest/ to doc/scripts/
Having a single directory with just genrest.py feels a bit pointless.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-05-22 13:31:56 -04:00
Ulf Magnusson 4703ba7d31 doc: genrest: Use Kconfiglib 2 and improve output
The new version of the reference page for a symbol lists the following
essential and generally useful information at the top of the page:

 - Prompt

 - Type

 - Help text

 - Direct dependencies (from 'depends on', and inherited from if's and
   menus)

 - Defaults

 - Other symbols selecting or implying the symbol

The current symbol value and visibility are no longer displayed. They
don't make much sense in a reference document, as they depend on user
values from configuration files.

The bottom of the reference page also includes the symbol represented in
Kconfig format (including propagated dependencies).

All references to defined symbols appearing in expressions are turned
into links, which can be clicked on to jump to the reference page for
that symbol.

The following (slightly outdated) screenshot gives an idea of the
format:
https://www.dropbox.com/s/a34tlk2ncyus8po/promptandtype.png?dl=0

This commit also removes Kconfiglib 1, since it is no longer used.

Fixes #5622
Fixes #6821

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
2018-03-29 14:25:24 -04:00
Anas Nashif 3bbd1c77ab doc: recent kconfig changes break doc generation
Instead of wildcards we now are using environment variables to set the
path to Kconfig files for board and architecture. This break
documentation generation for Kconfig variables.

Using the env variables, we now set the path to what it used to be to
restore previous behavior.

Also, when something like this happens in the future, we should abort on
doc creation failure.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-12 15:34:09 -05:00
David B. Kinder 407eb2dd6c doc: fix doc Makefile dependency on python
With a clean Ubuntu install,  following the getting started page
instructions for linux, only python3 is installed.  Apparently (by
design), a python3 install does not create the symbolic link for
/usr/bin/python so the doc/Makefile complains.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-12-05 12:46:21 -05:00
Anas Nashif dc87059cf1 doc: strip zephyr root from generated docs
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-22 13:27:01 -05:00
David B. Kinder 2d4d295261 doc: warnings from doxygen not being reported
While sphinx-build messages are captured to a file (and tee'd to
stdout), messages from doxygen weren't captured to the file and so were
missed as an error that needed fixing.  (You can see the message if you
run 'make htmldocs' locally and in shippable script output, but the
message filtering tool that throws an error if unexpected messages
appear, didn't get to see those.  This fixes that.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-11-15 09:11:23 -05:00
Anas Nashif e754d44791 doc: report which warnings/errors are new
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-13 17:45:42 -05:00
Anas Nashif 706ac7fe07 doc: redirect doc generation output using tee
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-10 09:30:10 -05:00
Anas Nashif a037c363bb doc: fixed version parsing for docs
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-08 20:00:22 -05:00
David B. Kinder d3b0cd4827 doc: move docgen filter out of shippable script
Because of known issues with Sphinx/Breathe tools we're using to
generate doxygen-based comments for our API documentation, we're getting
a bevy of warning messages written out. As a workaround for our CI
system, we created a filter-known-issues.py script to remove "expected"
warnings from the output.

This patch moves calling that filter script into the doc generation
Makefile so folks making local builds of the docs won't be tripped up by
all the warning messages either.  Output of the "make htmldocs" command
is now filtered so only "unexpected" errors and warnings will be shown.

(See https://github.com/sphinx-doc/sphinx/issue/2682 and
sphinx-doc/sphinx#2683i for the Sphinx/Breathe issues.)

Fixes #1527

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-09-22 08:07:30 -04:00
David B. Kinder 2a1adfccae doc: tweak Sphinx linkcheck options
Sphinx has a builder option that we can use to check links
(invoked with '$ make linkcheck' in the /doc folder)
Add some configuration tweaks to conf.py, and update the
Makefile to also use the nitpick (-n) option to Sphinx
if this linkcheck build option is selected (does much more
checking of internal references)

Change-Id: Ib413bc8d4195c72f1a8a4c345a5a722f88fad8b8
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-04-28 00:44:40 +00:00
Anas Nashif 03ca26fdeb doc: build json files from the documentation
Change-Id: I30db3a3f0d16cb929c74756a4d1bd8baf2ce8a11
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-03 16:41:23 +00:00
David B. Kinder a023027f78 doc: update make clean to remove doxygen folder
Gerrit patch https://gerrit.zephyrproject.org/r/#/c/10849/
created a doxygen folder that make clean should remove

Change-Id: I5cd4dea489c868eef4f101c20cced3280b7abc39
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-02-09 23:52:02 +00:00
Anas Nashif 1fdfc5dc2b doc: rename doxygen configuration file and build from doc/
Rename file to zephyr.doxyfile to allow integration in eclipse and make
it build locally in the doc/ directory without have to change to ../
first.

Change-Id: Ib2c4c26f385b050ea3d0e814ebfc3509f31e5e12
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-02-08 12:04:35 +00:00
David B. Kinder 65d7ffed5d doc: remove artifacts of doc build recently added
Document building now copies files from the boards/ and samples/
folders into the doc/ folder, but didn't delete these copies after
the build. Remove the copied folders after the docs are built and
include removing these folders in the make clean actions.

Jira: ZEP-1650

Change-Id: Id5f04a53f0d865bd4211138a35852ac8ab115239
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-02-02 13:40:39 +00:00
Anas Nashif 47be9a58b1 doc: make build process quiet
make build process less verbose and enable 'make htmldocs' from the top
tree without a need for ZEPHYR_GCC_VARIANT to be defined.

Change-Id: I385667e3d240205913fa806b7481d5ed4e83fbc4
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-16 18:13:03 -05:00
Anas Nashif 06382b8cba doc: move context back to doc/, fix broken links
Running documentation scripts on the top directory shifted all links one
level dowwn and is breaking all incoming links.

Use a script to copy all RST files into the doc/ directory before
running sphinx and keep structure intact.

Jira: ZEP-1579
Change-Id: Iccff068430e2ddb29e172cd8ae920475815d199e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-16 18:05:06 -05:00
Anas Nashif fc6137001b doc: move documetnation context to root directory
This will allow inclusion of documentation files that exist outside of
doc/ and will make it possible to add rst files across the tree,
especially for boards, samples and tests.

Change-Id: I7afcf92d99f504b2bc0b2b7e3452acb2f8e08294
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-06 22:51:31 +00:00
Anas Nashif 88be4835f0 doc: make output directory overridable
Change-Id: I81b0a2935e3c294908078c7188a9900968b55bb1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 13:13:31 +00:00
Inaky Perez-Gonzalez 1029e4d992 doc: makefile doesn't print unneeded output of pwd
Change-Id: Ieff46e5509bab3f23562f020f3b9420f814d33eb
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-08-02 06:47:21 +00:00
Inaky Perez-Gonzalez c70f361e6b doc: clean removes autogenerated .rst files in refence/kconfig
Change-Id: I480ac3356782d121e9d245d94fe26efb19b0b2b6
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-07-06 21:56:50 +00:00
Inaky Perez-Gonzalez f6d29b297f doc: do not generate unused doxygen HTML and Latex output by default
The doc build needs not the HTML or Latex documentation generated by
doxygen, as sphinx takes only the XML. Disable them to use less space
and speed up the build.

Change-Id: I51974449262fc5b45c6c2b41aad54365cceac341
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-07-06 21:56:39 +00:00
Inaky Perez-Gonzalez 55280d9f06 doc: sphinx-build prints only warnings or errors
Pass -q to sphinx-build so it only prints what is wrong, not a huge
list of progress information that in most cases is not necessary.

Note that this can be overriden from the environment.

Change-Id: I8735e7ad9a2998734d4e9dda9b3e826ce07b5527
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-06-14 20:00:50 +00:00
Anas Nashif 13ce2d6285 doc: show information about documentation current version
show different information based on the state of the current
documentation and link to development version and released
versions depending on where the user lands.

Change-Id: Ifa6263900222db483efa0388e2588dd97222ecb6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-04-22 10:54:38 +00:00
Anas Nashif ee55374d3c docs: fixed errors when building docs
Change-Id: If92be02af08ac8924a95fe1b1a2450ec1efab7da
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-25 21:28:58 +00:00
Anas Nashif fb44466164 doc: create api directory
Change-Id: Iecf09fd9b362f7c1ea25efdc5ac3d2345630766a
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-09 17:15:56 -05:00
Anas Nashif dada389eb1 generate kconfig variables automatically
Change-Id: Iba70557100f49209edb6874251f93f79c2358737
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:35 -05:00
Benjamin Walsh c45fc04952 doc: clean rule removes 'xml' and 'latex' dirs
These are generated directories.

Change-Id: I0359b5dac128b194bc48604444b2e7f08caa6675
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-02-05 20:15:27 -05:00
Anas Nashif c01a5c5c07 docs: install doxygen HTML output into output directory
This will move autogeneated html files to the final directory
which is copied by CI into the online documentation making the
raw doxygen html files accessible via <url>/api/

Change-Id: I79bc211377840358acfb94d4de839ce25d2830e0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:15:21 -05:00
Anas Nashif 486a2a1034 doc: fix docs target
The top make file has a documentation target that does not work.
Change it to work with our documentation and scripts.

Change-Id: Id32643900d122f54778e3179930f2e8e34387aa1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:45 -05:00
Anas Nashif 06d380c2ba Add tools and Makefiles for Documentation
This will allow us to start adding content and structure.
To generate documentation you will need to install both
- sphinx
- breathe

go into the doc directory and run:

$ make doxy html

No content has been submitted here, only a few placeholders.

Change-Id: Ifc3617aee8f7d45fa4e4a494ff0a1ab71516af06
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:13:58 -05:00