source: rtems-docs/README.txt @ bf24d1b

4.115
Last change on this file since bf24d1b was bf24d1b, checked in by Chris Johns <chrisj@…>, on 11/04/16 at 05:30:21

README: Add host set up for CentOS for singlehtml.

  • Property mode set to 100644
File size: 8.6 KB
Line 
1RTEMS Project Documentation
2===========================
3
4The documents is written in ReST and built using Sphinx. The build system will
5check the version and ensure you have a suitable version. If your host does not
6provide a packaged version use PIP to fetch a recent version. The Sphinx
7website provides details on doing this.
8
9ReST is the Re-Structed-Text format. It is a simple markup language that allows
10us to create quality documentaion. It is flexible and powerful however do not
11attempt to train it to create a specific format. You need to test any new way
12of present something on all output formats. What may look great in one format
13may not translate with the same clarity to another output format.
14
15The RTEMS Documentation output formats are:
16
17 HTML        - Multi-page HTML with files in a single directory per manual.
18 PDF         - Single PDF per manual.
19 SIngle HTML - Single HTML, one file per manual.
20
21Host Setup
22----------
23
24HTML builds directly with Sphinx, PDF requires a full Latex install, and
25building a Single HTML page requires the 'inliner' tool.
26
27Please add your host as you set it up.
28
29FreeBSD
30~~~~~~~
31
32Sphinx:
33
34  # pkg install py27-sphinx
35
36PDF:
37
38  # pkg install texlive-full
39
40Single HTML:
41
42  # pkg install npm
43  # npm install -g inliner
44
45CentOS 7
46~~~~~~~~
47
48PDF:
49
50  # yum install -y texlive-*
51
52Single HTML:
53
54  # yum install npm
55  # npm install -g inliner
56
57This does not provide all the require packages. Missing are:
58
59  capt-of
60  eqparbox
61  ifplatform
62  inconsolata
63  lato
64  upquote
65
66Latex Setup
67~~~~~~~~~~~
68
69Latex is used to create the PDF document.  The setup of Latex varies from host
70to host operating system due to the way each host packages the texlive
71packages. There is no common naming and no real way to figure what texlive
72package is present in a host's packaging. It seems not all of texlive is
73available.
74
75The RTEMS Documentation waf configure phase check for each texlive package used
76in the generated output and the styles. If you complete configure with the
77--pdf option you should be able to build PDF documentation.
78
79The texlive package requirments come from the Latex styles we are using and
80Sphinx.
81
82An example of a failure is a default CentOS 7:
83
84  Checking for Tex package 'Bjarne'        : ok
85  Checking for Tex package 'alltt'         : ok
86  Checking for Tex package 'amsmath'       : ok
87  Checking for Tex package 'amssymb'       : ok
88  Checking for Tex package 'amstext'       : ok
89  Checking for Tex package 'array'         : ok
90  Checking for Tex package 'atbegshi'      : ok
91  Checking for Tex package 'babel'         : ok
92  Checking for Tex package 'calc'          : ok
93  Checking for Tex package 'capt-of'       : not found (please install)
94  Checking for Tex package 'charter'       : ok
95  Checking for Tex package 'cmap'          : ok
96  Checking for Tex package 'color'         : ok
97  Checking for Tex package 'eqparbox'      : not found (please install)
98  Checking for Tex package 'etoolbox'      : ok
99  Checking for Tex package 'fancybox'      : ok
100  Checking for Tex package 'fancyhdr'      : ok
101  Checking for Tex package 'fancyvrb'      : ok
102  Checking for Tex package 'float'         : ok
103  Checking for Tex package 'fncychap'      : ok
104  Checking for Tex package 'fontenc'       : ok
105  Checking for Tex package 'footnote'      : ok
106  Checking for Tex package 'framed'        : ok
107  Checking for Tex package 'graphicx'      : ok
108  Checking for Tex package 'hypcap'        : ok
109  Checking for Tex package 'hyperref'      : ok
110  Checking for Tex package 'ifplatform'    : not found (please install)
111  Checking for Tex package 'ifthen'        : ok
112  Checking for Tex package 'inconsolata'   : not found (please install)
113  Checking for Tex package 'inputenc'      : ok
114  Checking for Tex package 'keyval'        : ok
115  Checking for Tex package 'kvoptions'     : ok
116  Checking for Tex package 'lato'          : not found (please install)
117  Checking for Tex package 'lineno'        : ok
118  Checking for Tex package 'longtable'     : ok
119  Checking for Tex package 'makeidx'       : ok
120  Checking for Tex package 'multirow'      : ok
121  Checking for Tex package 'parskip'       : ok
122  Checking for Tex package 'pdftexcmds'    : ok
123  Checking for Tex package 'textcomp'      : ok
124  Checking for Tex package 'threeparttable' : ok
125  Checking for Tex package 'times'          : ok
126  Checking for Tex package 'titlesec'       : ok
127  Checking for Tex package 'upquote'        : not found (please install)
128  Checking for Tex package 'utf8'           : ok
129  Checking for Tex package 'wrapfig'        : ok
130  Checking for Tex package 'xcolor'         : ok
131  Checking for Tex package 'xstring'        : ok
132  There are 6 Tex package failures. Please fix.
133
134If you find there is an issue please post the developers list.
135
136Building
137--------
138
139To build enter in the top directory:
140
141  $ ./waf configure [--pdf] [--singlehtml] [--prefix] [--sphinx-verbose]
142  $ ./waf
143
144The '--pdf' and '--singlehtml' options can be added to configure to build those
145output formats.
146
147To build and install to a specific location:
148
149  $ ./waf configure --prefix=/foo/my/location
150  $ ./waf build install
151
152If you need to debug what is happening use configure with a suitable Sphinx
153version level:
154
155  $ ./waf configure --sphinx-verbose=-v
156  $ ./waf clean build
157
158You can enter a manual's directory and run the same configure command and build
159just that manual.
160
161Documentation Standard
162----------------------
163
164This following details the documentation standard. If in doubt first search the
165existing documentation for an example and if unsure ask.
166
1671. All text is to be formatted to wrap at 80 columns. Do not manually line feed
168   before 80.
169
1702. Pasted text such as console output can exceed 80 columns however it is
171   preferred even this text is wrapped at 80 columns. Long lines in code block
172   text causes issues with the PDF output.
173
1743. The headings use the following:
175
176      Heading
177      1  ======
178      2  ------
179      3  ~~~~~~
180      4  ^^^^^^
181
1823. For literal output, such as shell commands and code use '::' at the trailing
183   edge of the previous paragraph. If the '.. code-block::' with
184   'c' for C code and 'shell' for shell code and terminal output. If you need
185   line number use:
186
187    .. code-block:: shell
188       :linenos:
189
1904. Use the directives for 'note', 'warning', and 'topic'. Do not add 'TIP',
191   'Important' or 'Warning' to the text. Let the mark-up language handle
192   this. The supported directives are:
193
194     .. warning::
195     .. note::
196     .. topic::
197
198   These directives reference specific CSS sytle support.
199
2005. Images are placed in the 'images' directory. Do not place images in the
201   source directories. Using a common 'images' tree of images promotes sharing
202   of images. To add an image use:
203
204    .. figure:: ../images/my-image.png
205       :wdith: 75%
206       :align: center
207       :alt: This is the alt text for some output types.
208
2096. Callouts can be implement manually using a liternal block which can using
210   '::' or a code block and topic block is used for the items. For
211   example:
212
213     .. code-block: c
214
215        #include <stdio.h>  <1>
216        int main(int argc, char** argv)  <2>
217        {
218           printf("Hello world\n");  <3>
219           return 0;   <4>
220        }
221
222     .. topic:: Items:
223
224       1. Include the standard input/output header file.
225
226       2. The program starts here.
227
228       3. Print something to the standard output device.
229
230       4. Exit with an exit code of 0. This is value can be checked by the
231          caller of this program.
232
233   Note, the topic items are manually number. This makes is easier to see which
234   item matches the text. Use <> for the number and align at a position that
235   works and makes the number as visible as possible. Use hanging indents if an
236   items extends over a single line.
237
2387. Use the RTEMS domain references for URLs and mailing lists. For example to
239   insert the RTEMS developers list use:
240
241     :r:list:`devel`
242     :r:url:`git`
243
244   The valid lists are:
245
246     announce     : Announce Mailing List
247     bugs         : Bugs Mailing List
248     devel        : Developers Mailing List
249     build        : Build Logs
250     users        : Users Mailing List
251     vc           : Version Control Mailing List
252
253  The valif URLs are:
254
255     trac         : https://devel.rtems.org/
256     devel        : https://devel.rtems.org/
257     www          : https://www.rtems.org/
258     buildbot     : https://buildbot.rtems.org/
259     builder      : https://builder.rtems.org/
260     docs         : https://docs.rtems.org/
261     lists        : https://lists.rtems.org/
262     git          : https://git.rtems.org/
263     ftp          : https://ftp.rtems.org/
264     review       : https://review.rtems.org/
265     bugs         : https://devel.rtems.org/wiki/Bugs/
266     gsoc         : https://devel.rtems.org/wiki/GSoC/
267     socis        : https://devel.rtems.org/wiki/SOCIS/
Note: See TracBrowser for help on using the repository browser.