ADDITIONAL_FLAGS='-Xmx1500m'
</programlisting>
There is a minimum amount of memory that is required, and to some extent
more memory appears to make things a bit faster. On systems with very
little memory (less than 1 GB), the build will either be very slow due to
swapping or will not work at all.
</para>
<para>
In its default configuration <productname>FOP</productname> will emit an
<literal>INFO</literal> message for each page. The log level can be
changed via <filename>~/.foprc</filename>:
<programlisting>
LOGCHOICE=-Dorg.apache.commons.logging.Log=&zwsp;org.apache.commons.logging.impl.SimpleLog
LOGLEVEL=-Dorg.apache.commons.logging.simplelog.defaultlog=WARN
</programlisting>
</para>
<para>
Other XSL-FO processors can also be used manually, but the automated build
process only supports FOP.
</para>
</sect2>
<sect2 id="docguide-build-syntax-check">
<title>Syntax Check</title>
<para>
Building the documentation can take very long. But there is a
method to just check the correct syntax of the documentation
files, which only takes a few seconds:
<screen>
<prompt>doc/src/sgml$ </prompt><userinput>make check</userinput>
</screen>
</para>
</sect2>
</sect1>
<sect1 id="docguide-build-meson">
<title>Building the Documentation with Meson</title>
<para>
To build the documentation using Meson, change to the
<filename>build</filename> directory before running one of these commands,
or add <option>-C build</option> to the command.
</para>
<para>
To build just the <acronym>HTML</acronym> version of the documentation:
<screen>
<prompt>build$ </prompt><userinput>ninja html</userinput>
</screen>
For a list of other documentation targets see
<xref linkend="targets-meson-documentation"/>.
The output appears in the
subdirectory <filename>build/doc/src/sgml</filename>.
</para>
</sect1>
<sect1 id="docguide-authoring">
<title>Documentation Authoring</title>
<para>
The documentation sources are most conveniently modified with an editor
that has a mode for editing XML, and even more so if it has some awareness
of XML schema languages so that it can know about
<productname>DocBook</productname> syntax specifically.
</para>
<para>
Note that for historical reasons the documentation source files are named
with an extension <filename>.sgml</filename> even though they are now XML
files. So you might need to adjust your editor configuration to set the
correct mode.
</para>
<sect2 id="docguide-authoring-emacs">
<title>Emacs</title>
<para>
<productname>nXML Mode</productname>, which ships with
<productname>Emacs</productname>, is the most common mode for editing
<acronym>XML</acronym> documents with <productname>Emacs</productname>.
It will allow you to use <application>Emacs</application> to insert tags
and check markup consistency, and it supports
<productname>DocBook</productname> out of the box. Check the <ulink
url="https://www.gnu.org/software/emacs/manual/html_mono/nxml-mode.html">
nXML manual</ulink> for detailed documentation.
</para>
<para>
<filename>src/tools/editors/emacs.samples</filename> contains
recommended settings for this mode.
</para>
</sect2>
</sect1>
<sect1 id="docguide-style">
<title>Style Guide</title>
<sect2 id="docguide-style-ref-pages">
<title>Reference Pages</title>
<para>
Reference pages should follow a standard layout. This allows
users to find the desired information more quickly, and it also
encourages writers to document all relevant aspects of a command.
Consistency is not only desired among
<productname>PostgreSQL</productname> reference pages, but also
with reference pages provided by the operating system and other
packages. Hence the following guidelines have been developed.
They are for the most part consistent