Home Explore Blog CI



postgresql

22th chunk of `doc/src/sgml/installation.sgml`
af0f7879b775ead46643ef1eea3f482e3be46b71722eccbb0000000100000fb2
   <listitem>
        <para>
         Enable tests using the Perl TAP tools.  This 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-option-enable-depend">
       <term><option>--enable-depend</option></term>
       <listitem>
        <para>
         Enables automatic dependency tracking.  With this option, the
         makefiles are set up so that all affected object files will
         be rebuilt when any header file is changed.  This is useful
         if you are doing development work, but is just wasted overhead
         if you intend only to compile once and install.  At present,
         this option only works with GCC.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="configure-option-enable-coverage">
       <term><option>--enable-coverage</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-option-enable-profiling">
       <term><option>--enable-profiling</option></term>
       <listitem>
        <para>
         If using GCC, all programs and libraries are compiled so they
         can be profiled.  On backend exit, a subdirectory will be created
         that contains the <filename>gmon.out</filename> file containing
         profile data.
         This option is for use only with GCC and when doing development work.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="configure-option-enable-dtrace">
       <term><option>--enable-dtrace</option></term>
       <listitem>
        <para>
         <indexterm>
          <primary>DTrace</primary>
         </indexterm>
         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
         environment variable <envar>DTRACE</envar> 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>

        <para>
         Extra command-line options for the <command>dtrace</command> program
         can be specified in the environment variable
         <envar>DTRACEFLAGS</envar>.  On Solaris,
         to include DTrace support in a 64-bit binary, you must specify
         <literal>DTRACEFLAGS="-64"</literal>.  For example,
         using the GCC compiler:
<screen>
./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...
</screen>
         Using Sun's compiler:
<screen>
./configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64' ...
</screen>
        </para>
       </listitem>
      </varlistentry>

      <varlistentry id="configure-option-enable-injection-points">
       <term><option>--enable-injection-points</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"/>

Title: PostgreSQL Development Configure Options
Summary
This section describes additional configure options for PostgreSQL that are useful for development and debugging purposes, including options for enabling code coverage testing, profiling, dynamic tracing, and injection points, which can help developers test, debug, and optimize the PostgreSQL server.