<term><option>-Dtap_tests={ auto | enabled | disabled }</option></term>
<listitem>
<para>
Enable tests using the Perl TAP tools. Defaults to auto and requires
a Perl installation and the Perl module <literal>IPC::Run</literal>.
See <xref linkend="regress-tap"/> for more information.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-pg-test-extra-meson">
<term><option>-DPG_TEST_EXTRA=<replaceable>TEST_SUITES</replaceable></option></term>
<listitem>
<para>
Enable additional test suites, which are not run by default because
they are not secure to run on a multiuser system, require special
software to run, or are resource intensive. The argument is a
whitespace-separated list of tests to enable. See
<xref linkend="regress-additional"/> for details. If the
<envar>PG_TEST_EXTRA</envar> environment variable is set when the
tests are run, it overrides this setup-time option.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-b-coverage-meson">
<term><option>-Db_coverage={ true | false }</option></term>
<listitem>
<para>
If using GCC, all programs and libraries are compiled with
code coverage testing instrumentation. When run, they
generate files in the build directory with code coverage
metrics.
See <xref linkend="regress-coverage"/>
for more information. This option is for use only with GCC
and when doing development work.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-dtrace-meson">
<term><option>-Ddtrace={ auto | enabled | disabled }</option></term>
<listitem>
<para>
<indexterm>
<primary>DTrace</primary>
</indexterm>
Enabling this compiles <productname>PostgreSQL</productname> with support for the
dynamic tracing tool DTrace.
See <xref linkend="dynamic-trace"/> for more information.
</para>
<para>
To point to the <command>dtrace</command> program, the
<option>DTRACE</option> option can be set. This
will often be necessary because <command>dtrace</command> is
typically installed under <filename>/usr/sbin</filename>,
which might not be in your <envar>PATH</envar>.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-injection-points-meson">
<term><option>-Dinjection_points={ true | false }</option></term>
<listitem>
<para>
Compiles <productname>PostgreSQL</productname> with support for
injection points in the server. Injection points allow to run
user-defined code from within the server in pre-defined code paths.
This helps in testing and in the investigation of concurrency scenarios
in a controlled fashion. This option is disabled by default. See
<xref linkend="xfunc-addin-injection-points"/> for more details. This
option is intended to be used only by developers for testing.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-segsize-blocks-meson">
<term><option>-Dsegsize_blocks=SEGSIZE_BLOCKS</option></term>
<listitem>
<para>
Specify the relation segment size in blocks. If both
<option>-Dsegsize</option> and this option are specified, this option
wins.
This option is only for developers, to test segment related code.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2>
<sect2 id="targets-meson">
<title><literal>meson</literal> Build Targets</title>
<para>
Individual build targets can be built using <command>ninja</command> <replaceable>target</replaceable>.
When no target is specified, everything except documentation is
built. Individual