diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 13:44:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 13:44:03 +0000 |
commit | 293913568e6a7a86fd1479e1cff8e2ecb58d6568 (patch) | |
tree | fc3b469a3ec5ab71b36ea97cc7aaddb838423a0c /doc/src/sgml/html/install-meson.html | |
parent | Initial commit. (diff) | |
download | postgresql-16-293913568e6a7a86fd1479e1cff8e2ecb58d6568.tar.xz postgresql-16-293913568e6a7a86fd1479e1cff8e2ecb58d6568.zip |
Adding upstream version 16.2.upstream/16.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/src/sgml/html/install-meson.html')
-rw-r--r-- | doc/src/sgml/html/install-meson.html | 602 |
1 files changed, 602 insertions, 0 deletions
diff --git a/doc/src/sgml/html/install-meson.html b/doc/src/sgml/html/install-meson.html new file mode 100644 index 0000000..38e109a --- /dev/null +++ b/doc/src/sgml/html/install-meson.html @@ -0,0 +1,602 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>17.4. Building and Installation with Meson</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="install-make.html" title="17.3. Building and Installation with Autoconf and Make" /><link rel="next" href="install-post.html" title="17.5. Post-Installation Setup" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">17.4. Building and Installation with Meson</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="install-make.html" title="17.3. Building and Installation with Autoconf and Make">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="installation.html" title="Chapter 17. Installation from Source Code">Up</a></td><th width="60%" align="center">Chapter 17. Installation from Source Code</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 16.2 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="install-post.html" title="17.5. Post-Installation Setup">Next</a></td></tr></table><hr /></div><div class="sect1" id="INSTALL-MESON"><div class="titlepage"><div><div><h2 class="title" style="clear: both">17.4. Building and Installation with Meson <a href="#INSTALL-MESON" class="id_link">#</a></h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="install-meson.html#INSTALL-SHORT-MESON">17.4.1. Short Version</a></span></dt><dt><span class="sect2"><a href="install-meson.html#INSTALL-PROCEDURE-MESON">17.4.2. Installation Procedure</a></span></dt><dt><span class="sect2"><a href="install-meson.html#MESON-OPTIONS">17.4.3. <code class="literal">meson setup</code> Options</a></span></dt></dl></div><div class="sect2" id="INSTALL-SHORT-MESON"><div class="titlepage"><div><div><h3 class="title">17.4.1. Short Version <a href="#INSTALL-SHORT-MESON" class="id_link">#</a></h3></div></div></div><p> +</p><pre class="synopsis"> +meson setup build --prefix=/usr/local/pgsql +cd build +ninja +su +ninja install +adduser postgres +mkdir -p /usr/local/pgsql/data +chown postgres /usr/local/pgsql/data +su - postgres +/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data +/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start +/usr/local/pgsql/bin/createdb test +/usr/local/pgsql/bin/psql test +</pre><p> + The long version is the rest of this + <span class="phrase">section</span>. + </p></div><div class="sect2" id="INSTALL-PROCEDURE-MESON"><div class="titlepage"><div><div><h3 class="title">17.4.2. Installation Procedure <a href="#INSTALL-PROCEDURE-MESON" class="id_link">#</a></h3></div></div></div><div class="procedure"><ol class="procedure" type="1"><li class="step" id="MESON-CONFIGURE"><p class="title"><strong>Configuration</strong></p><p> + The first step of the installation procedure is to configure the + build tree for your system and choose the options you would like. To + create and configure the build directory, you can start with the + <code class="literal">meson setup</code> command. +</p><pre class="screen"> +<strong class="userinput"><code>meson setup build</code></strong> +</pre><p> + The setup command takes a <code class="literal">builddir</code> and a <code class="literal">srcdir</code> + argument. If no <code class="literal">srcdir</code> is given, Meson will deduce the + <code class="literal">srcdir</code> based on the current directory and the location + of <code class="literal">meson.build</code>. The <code class="literal">builddir</code> is mandatory. + </p><p> + Running <code class="literal">meson setup</code> loads the build configuration file and sets up the build directory. + Additionally, you can also pass several build options to Meson. Some commonly + used options are mentioned in the subsequent sections. For example: + +</p><pre class="screen"> +# configure with a different installation prefix +meson setup build --prefix=/home/user/pg-install + +# configure to generate a debug build +meson setup build --buildtype=debug + +# configure to build with OpenSSL support +meson setup build -Dssl=openssl +</pre><p> + </p><p> + Setting up the build directory is a one-time step. To reconfigure before a + new build, you can simply use the <code class="literal">meson configure</code> command +</p><pre class="screen"> +meson configure -Dcassert=true +</pre><p> + <code class="command">meson configure</code>'s commonly used command-line options + are explained in <a class="xref" href="install-meson.html#MESON-OPTIONS" title="17.4.3. meson setup Options">Section 17.4.3</a>. + </p></li><li class="step" id="MESON-BUILD"><p class="title"><strong>Build</strong></p><p> + By default, <span class="productname">Meson</span> uses the <a class="ulink" href="https://ninja-build.org/" target="_top">Ninja</a> build tool. To build + <span class="productname">PostgreSQL</span> from source using Meson, you can + simply use the <code class="literal">ninja</code> command in the build directory. +</p><pre class="screen"> +ninja +</pre><p> + Ninja will automatically detect the number of CPUs in your computer and + parallelize itself accordingly. You can override the number of parallel + processes used with the command line argument <code class="literal">-j</code>. + </p><p> + It should be noted that after the initial configure step, + <code class="command">ninja</code> is the only command you ever need to type to + compile. No matter how you alter your source tree (short of moving it to a + completely new location), Meson will detect the changes and regenerate + itself accordingly. This is especially handy if you have multiple build + directories. Often one of them is used for development (the "debug" build) + and others only every now and then (such as a "static analysis" build). + Any configuration can be built just by cd'ing to the corresponding + directory and running Ninja. + </p><p> + If you'd like to build with a backend other than ninja, you can use + configure with the <code class="option">--backend</code> option to select the one you + want to use and then build using <code class="literal">meson compile</code>. To + learn more about these backends and other arguments you can provide to + ninja, you can refer to the <a class="ulink" href="https://mesonbuild.com/Running-Meson.html#building-from-the-source" target="_top"> + Meson documentation</a>. + </p></li><li class="step"><p class="title"><strong>Regression Tests</strong></p><a id="id-1.6.4.8.3.2.3.2" class="indexterm"></a><p> + If you want to test the newly built server before you install it, + you can run the regression tests at this point. The regression + tests are a test suite to verify that <span class="productname">PostgreSQL</span> + runs on your machine in the way the developers expected it + to. Type: +</p><pre class="screen"> +<strong class="userinput"><code>meson test</code></strong> +</pre><p> + (This won't work as root; do it as an unprivileged user.) + See <a class="xref" href="regress.html" title="Chapter 33. Regression Tests">Chapter 33</a> for + detailed information about interpreting the test results. You can + repeat this test at any later time by issuing the same command. + </p><p> + To run pg_regress and pg_isolation_regress tests against a running + postgres instance, specify <strong class="userinput"><code>--setup running</code></strong> as an + argument to <strong class="userinput"><code>meson test</code></strong>. + </p></li><li class="step" id="MESON-INSTALL"><p class="title"><strong>Installing the Files</strong></p><div class="note"><h3 class="title">Note</h3><p> + If you are upgrading an existing system be sure to read + <a class="xref" href="upgrading.html" title="19.6. Upgrading a PostgreSQL Cluster">Section 19.6</a>, + which has instructions about upgrading a + cluster. + </p></div><p> + Once PostgreSQL is built, you can install it by simply running the + <code class="literal">ninja install</code> command. +</p><pre class="screen"> +ninja install +</pre><p> + </p><p> + This will install files into the directories that were specified + in <a class="xref" href="install-meson.html#MESON-CONFIGURE" title="Configuration">Step 1</a>. Make sure that you have appropriate + permissions to write into that area. You might need to do this + step as root. Alternatively, you can create the target directories + in advance and arrange for appropriate permissions to be granted. + The standard installation provides all the header files needed for client + application development as well as for server-side program + development, such as custom functions or data types written in C. + </p><p> + <code class="literal">ninja install</code> should work for most cases, but if you'd + like to use more options (such as <code class="option">--quiet</code> to suppress + extra output), you could also use <code class="literal">meson install</code> + instead. You can learn more about <a class="ulink" href="https://mesonbuild.com/Commands.html#install" target="_top">meson install</a> + and its options in the Meson documentation. + </p></li></ol></div><p><strong>Uninstallation: </strong> + To undo the installation, you can use the <code class="command">ninja + uninstall</code> command. + </p><p><strong>Cleaning: </strong> + After the installation, you can free disk space by removing the built + files from the source tree with the <code class="command">ninja clean</code> + command. + </p></div><div class="sect2" id="MESON-OPTIONS"><div class="titlepage"><div><div><h3 class="title">17.4.3. <code class="literal">meson setup</code> Options <a href="#MESON-OPTIONS" class="id_link">#</a></h3></div></div></div><p> + <code class="command">meson setup</code>'s command-line options are explained below. + This list is not exhaustive (use <code class="literal">meson configure --help</code> + to get one that is). The options not covered here are meant for advanced + use-cases, and are documented in the standard <a class="ulink" href="https://mesonbuild.com/Commands.html#configure" target="_top">Meson + documentation</a>. These arguments can be used with <code class="command">meson + setup</code> as well. + </p><div class="sect3" id="MESON-OPTIONS-LOCATIONS"><div class="titlepage"><div><div><h4 class="title">17.4.3.1. Installation Locations <a href="#MESON-OPTIONS-LOCATIONS" class="id_link">#</a></h4></div></div></div><p> + These options control where <code class="literal">ninja install</code> (or <code class="literal">meson install</code>) will put + the files. The <code class="option">--prefix</code> option (example + <a class="xref" href="install-meson.html#INSTALL-SHORT-MESON" title="17.4.1. Short Version">Section 17.4.1</a>) is sufficient for + most cases. If you have special needs, you can customize the + installation subdirectories with the other options described in this + section. Beware however that changing the relative locations of the + different subdirectories may render the installation non-relocatable, + meaning you won't be able to move it after installation. + (The <code class="literal">man</code> and <code class="literal">doc</code> locations are + not affected by this restriction.) For relocatable installs, you + might want to use the <code class="literal">-Drpath=false</code> option + described later. + </p><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-PREFIX-MESON"><span class="term"><code class="option">--prefix=<em class="replaceable"><code>PREFIX</code></em></code></span> <a href="#CONFIGURE-PREFIX-MESON" class="id_link">#</a></dt><dd><p> + Install all files under the directory <em class="replaceable"><code>PREFIX</code></em> + instead of <code class="filename">/usr/local/pgsql</code> (on Unix based systems) or + <code class="filename"><em class="replaceable"><code>current drive letter</code></em>:/usr/local/pgsql</code> (on Windows). + The actual files will be installed into various subdirectories; no files + will ever be installed directly into the + <em class="replaceable"><code>PREFIX</code></em> directory. + </p></dd><dt id="CONFIGURE-BINDIR-MESON"><span class="term"><code class="option">--bindir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-BINDIR-MESON" class="id_link">#</a></dt><dd><p> + Specifies the directory for executable programs. The default + is <code class="filename"><em class="replaceable"><code>PREFIX</code></em>/bin</code>. + </p></dd><dt id="CONFIGURE-SYSCONFDIR-MESON"><span class="term"><code class="option">--sysconfdir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-SYSCONFDIR-MESON" class="id_link">#</a></dt><dd><p> + Sets the directory for various configuration files, + <code class="filename"><em class="replaceable"><code>PREFIX</code></em>/etc</code> by default. + </p></dd><dt id="CONFIGURE-LIBDIR-MESON"><span class="term"><code class="option">--libdir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-LIBDIR-MESON" class="id_link">#</a></dt><dd><p> + Sets the location to install libraries and dynamically loadable + modules. The default is + <code class="filename"><em class="replaceable"><code>PREFIX</code></em>/lib</code>. + </p></dd><dt id="CONFIGURE-INCLUDEDIR-MESON"><span class="term"><code class="option">--includedir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-INCLUDEDIR-MESON" class="id_link">#</a></dt><dd><p> + Sets the directory for installing C and C++ header files. The + default is <code class="filename"><em class="replaceable"><code>PREFIX</code></em>/include</code>. + </p></dd><dt id="CONFIGURE-DATADIR-MESON"><span class="term"><code class="option">--datadir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-DATADIR-MESON" class="id_link">#</a></dt><dd><p> + Sets the directory for read-only data files used by the + installed programs. The default is + <code class="filename"><em class="replaceable"><code>PREFIX</code></em>/share</code>. Note that this has + nothing to do with where your database files will be placed. + </p></dd><dt id="CONFIGURE-LOCALEDIR-MESON"><span class="term"><code class="option">--localedir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-LOCALEDIR-MESON" class="id_link">#</a></dt><dd><p> + Sets the directory for installing locale data, in particular + message translation catalog files. The default is + <code class="filename"><em class="replaceable"><code>DATADIR</code></em>/locale</code>. + </p></dd><dt id="CONFIGURE-MANDIR-MESON"><span class="term"><code class="option">--mandir=<em class="replaceable"><code>DIRECTORY</code></em></code></span> <a href="#CONFIGURE-MANDIR-MESON" class="id_link">#</a></dt><dd><p> + The man pages that come with <span class="productname">PostgreSQL</span> will be installed under + this directory, in their respective + <code class="filename">man<em class="replaceable"><code>x</code></em></code> subdirectories. + The default is <code class="filename"><em class="replaceable"><code>DATADIR</code></em>/man</code>. + </p></dd></dl></div><div class="note"><h3 class="title">Note</h3><p> + Care has been taken to make it possible to install + <span class="productname">PostgreSQL</span> into shared installation locations + (such as <code class="filename">/usr/local/include</code>) without + interfering with the namespace of the rest of the system. First, + the string <span class="quote">“<span class="quote"><code class="literal">/postgresql</code></span>”</span> is + automatically appended to <code class="varname">datadir</code>, + <code class="varname">sysconfdir</code>, and <code class="varname">docdir</code>, + unless the fully expanded directory name already contains the + string <span class="quote">“<span class="quote"><code class="literal">postgres</code></span>”</span> or + <span class="quote">“<span class="quote"><code class="literal">pgsql</code></span>”</span>. For example, if you choose + <code class="filename">/usr/local</code> as prefix, the documentation will + be installed in <code class="filename">/usr/local/doc/postgresql</code>, + but if the prefix is <code class="filename">/opt/postgres</code>, then it + will be in <code class="filename">/opt/postgres/doc</code>. The public C + header files of the client interfaces are installed into + <code class="varname">includedir</code> and are namespace-clean. The + internal header files and the server header files are installed + into private directories under <code class="varname">includedir</code>. See + the documentation of each interface for information about how to + access its header files. Finally, a private subdirectory will + also be created, if appropriate, under <code class="varname">libdir</code> + for dynamically loadable modules. + </p></div></div><div class="sect3" id="MESON-OPTIONS-FEATURES"><div class="titlepage"><div><div><h4 class="title">17.4.3.2. <span class="productname">PostgreSQL</span> Features <a href="#MESON-OPTIONS-FEATURES" class="id_link">#</a></h4></div></div></div><p> + The options described in this section enable building of + various optional <span class="productname">PostgreSQL</span> features. + Most of these require additional software, as described in + <a class="xref" href="install-requirements.html" title="17.1. Requirements">Section 17.1</a>, and will be automatically enabled if the + required software is found. You can change this behavior by manually + setting these features to <code class="literal">enabled</code> to require them + or <code class="literal">disabled</code> to not build with them. + </p><p> + To specify PostgreSQL-specific options, the name of the option + must be prefixed by <code class="literal">-D</code>. + </p><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-WITH-NLS-MESON"><span class="term"><code class="option">-Dnls={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-NLS-MESON" class="id_link">#</a></dt><dd><p> + Enables or disables Native Language Support (<acronym class="acronym">NLS</acronym>), + that is, the ability to display a program's messages in a language + other than English. Defaults to auto and will be enabled + automatically if an implementation of the <span class="application">Gettext + API</span> is found. + </p></dd><dt id="CONFIGURE-WITH-PLPERL-MESON"><span class="term"><code class="option">-Dplperl={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-PLPERL-MESON" class="id_link">#</a></dt><dd><p> + Build the <span class="application">PL/Perl</span> server-side language. + Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-PLPYTHON-MESON"><span class="term"><code class="option">-Dplpython={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-PLPYTHON-MESON" class="id_link">#</a></dt><dd><p> + Build the <span class="application">PL/Python</span> server-side language. + Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-PLTCL-MESON"><span class="term"><code class="option">-Dpltcl={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-PLTCL-MESON" class="id_link">#</a></dt><dd><p> + Build the <span class="application">PL/Tcl</span> server-side language. + Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-TCL-VERSION-MESON"><span class="term"><code class="option">-Dtcl_version=<em class="replaceable"><code>TCL_VERSION</code></em></code></span> <a href="#CONFIGURE-WITH-TCL-VERSION-MESON" class="id_link">#</a></dt><dd><p> + Specifies the Tcl version to use when building PL/Tcl. + </p></dd><dt id="CONFIGURE-WITH-ICU-MESON"><span class="term"><code class="option">-Dicu={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-ICU-MESON" class="id_link">#</a></dt><dd><p> + Build with support for the + <span class="productname">ICU</span><a id="id-1.6.4.8.4.4.4.6.2.1.2" class="indexterm"></a> + library, enabling use of ICU collation features<span class="phrase"> (see <a class="xref" href="collation.html" title="24.2. Collation Support">Section 24.2</a>)</span>. Defaults to auto and requires the + <span class="productname">ICU4C</span> package to be installed. The minimum + required version of <span class="productname">ICU4C</span> is currently 4.2. + </p></dd><dt id="CONFIGURE-WITH-LLVM-MESON"><span class="term"><code class="option">-Dllvm={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-LLVM-MESON" class="id_link">#</a></dt><dd><p> + Build with support for <span class="productname">LLVM</span> based + <acronym class="acronym">JIT</acronym> compilation<span class="phrase"> (see <a class="xref" href="jit.html" title="Chapter 32. Just-in-Time Compilation (JIT)">Chapter 32</a>)</span>. + This requires the <span class="productname">LLVM</span> library to be + installed. The minimum required version of + <span class="productname">LLVM</span> is currently 3.9. Disabled by + default. + </p><p> + <code class="command">llvm-config</code><a id="id-1.6.4.8.4.4.4.7.2.2.2" class="indexterm"></a> + will be used to find the required compilation options. + <code class="command">llvm-config</code>, and then + <code class="command">llvm-config-$version</code> for all supported versions, + will be searched for in your <code class="envar">PATH</code>. If that would not + yield the desired program, use <code class="envar">LLVM_CONFIG</code> to specify a + path to the correct <code class="command">llvm-config</code>. + </p></dd><dt id="CONFIGURE-WITH-LZ4-MESON"><span class="term"><code class="option">-Dlz4={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-LZ4-MESON" class="id_link">#</a></dt><dd><p> + Build with <span class="productname">LZ4</span> compression support. + Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-ZSTD-MESON"><span class="term"><code class="option">-Dzstd={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-ZSTD-MESON" class="id_link">#</a></dt><dd><p> + Build with <span class="productname">Zstandard</span> compression support. + Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-SSL-MESON"><span class="term"><code class="option">-Dssl={ auto | <em class="replaceable"><code>LIBRARY</code></em> }</code> + <a id="id-1.6.4.8.4.4.4.10.1.2" class="indexterm"></a> + </span> <a href="#CONFIGURE-WITH-SSL-MESON" class="id_link">#</a></dt><dd><p> + Build with support for <acronym class="acronym">SSL</acronym> (encrypted) connections. + The only <em class="replaceable"><code>LIBRARY</code></em> supported is + <code class="option">openssl</code>. This requires the + <span class="productname">OpenSSL</span> package to be installed. Building + with this will check for the required header files and libraries to + make sure that your <span class="productname">OpenSSL</span> installation is + sufficient before proceeding. The default for this option is auto. + </p></dd><dt id="CONFIGURE-WITH-GSSAPI-MESON"><span class="term"><code class="option">-Dgssapi={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-GSSAPI-MESON" class="id_link">#</a></dt><dd><p> + Build with support for GSSAPI authentication. MIT Kerberos is required + to be installed for GSSAPI. On many systems, the GSSAPI system (a part + of the MIT Kerberos installation) is not installed in a location + that is searched by default (e.g., <code class="filename">/usr/include</code>, + <code class="filename">/usr/lib</code>). In + those cases, PostgreSQL will query <code class="command">pkg-config</code> to + detect the required compiler and linker options. Defaults to auto. + <code class="filename">meson configure</code> will check for the required + header files and libraries to make sure that your GSSAPI installation + is sufficient before proceeding. + </p></dd><dt id="CONFIGURE-WITH-LDAP-MESON"><span class="term"><code class="option">-Dldap={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-LDAP-MESON" class="id_link">#</a></dt><dd><p> + Build with + <acronym class="acronym">LDAP</acronym><a id="id-1.6.4.8.4.4.4.12.2.1.2" class="indexterm"></a> + support for authentication and connection parameter lookup (see + <span id="INSTALL-LDAP-LINKS-MESON" class="phrase"><a class="xref" href="libpq-ldap.html" title="34.18. LDAP Lookup of Connection Parameters">Section 34.18</a> and + <a class="xref" href="auth-ldap.html" title="21.10. LDAP Authentication">Section 21.10</a></span> for more information). On Unix, + this requires the <span class="productname">OpenLDAP</span> package to be + installed. On Windows, the default <span class="productname">WinLDAP</span> + library is used. Defaults to auto. <code class="filename">meson + configure</code> will check for the required header files and + libraries to make sure that your <span class="productname">OpenLDAP</span> + installation is sufficient before proceeding. + </p></dd><dt id="CONFIGURE-WITH-PAM-MESON"><span class="term"><code class="option">-Dpam={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-PAM-MESON" class="id_link">#</a></dt><dd><p> + Build with + <acronym class="acronym">PAM</acronym><a id="id-1.6.4.8.4.4.4.13.2.1.2" class="indexterm"></a> + (Pluggable Authentication Modules) support. Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-BSD-AUTH-MESON"><span class="term"><code class="option">-Dbsd_auth={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-BSD-AUTH-MESON" class="id_link">#</a></dt><dd><p> + Build with BSD Authentication support. (The BSD Authentication + framework is currently only available on OpenBSD.) Defaults to auto. + </p></dd><dt id="CONFIGURE-WITH-SYSTEMD-MESON"><span class="term"><code class="option">-Dsystemd={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-SYSTEMD-MESON" class="id_link">#</a></dt><dd><p> + Build with support for + <span class="application">systemd</span><a id="id-1.6.4.8.4.4.4.15.2.1.2" class="indexterm"></a> + service notifications. This improves integration if the server is + started under <span class="application">systemd</span> but has no impact + otherwise<span class="phrase">; see <a class="xref" href="server-start.html" title="19.3. Starting the Database Server">Section 19.3</a> for more information</span>. Defaults to + auto. <span class="application">libsystemd</span> and the associated header + files need to be installed to use this option. + </p></dd><dt id="CONFIGURE-WITH-BONJOUR-MESON"><span class="term"><code class="option">-Dbonjour={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-BONJOUR-MESON" class="id_link">#</a></dt><dd><p> + Build with support for Bonjour automatic service discovery. Defaults + to auto and requires Bonjour support in your operating system. + Recommended on macOS. + </p></dd><dt id="CONFIGURE-WITH-UUID-MESON"><span class="term"><code class="option">-Duuid=<em class="replaceable"><code>LIBRARY</code></em></code></span> <a href="#CONFIGURE-WITH-UUID-MESON" class="id_link">#</a></dt><dd><p> + Build the <a class="xref" href="uuid-ossp.html" title="F.49. uuid-ossp — a UUID generator">uuid-ossp</a> module + (which provides functions to generate UUIDs), using the specified + UUID library.<a id="id-1.6.4.8.4.4.4.17.2.1.2" class="indexterm"></a> + <em class="replaceable"><code>LIBRARY</code></em> must be one of: + </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + <code class="option">none</code> to not build the uuid module. This is the default. + </p></li><li class="listitem"><p> + <code class="option">bsd</code> to use the UUID functions found in FreeBSD, + and some other BSD-derived systems + </p></li><li class="listitem"><p> + <code class="option">e2fs</code> to use the UUID library created by + the <code class="literal">e2fsprogs</code> project; this library is present in most + Linux systems and in macOS, and can be obtained for other + platforms as well + </p></li><li class="listitem"><p> + <code class="option">ossp</code> to use the <a class="ulink" href="http://www.ossp.org/pkg/lib/uuid/" target="_top">OSSP UUID library</a> + </p></li></ul></div></dd><dt id="CONFIGURE-WITH-LIBXML-MESON"><span class="term"><code class="option">-Dlibxml={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-LIBXML-MESON" class="id_link">#</a></dt><dd><p> + Build with libxml2, enabling SQL/XML support. Defaults to + auto. Libxml2 version 2.6.23 or later is required for this feature. + </p><p> + To use a libxml2 installation that is in an unusual location, you + can set <code class="command">pkg-config</code>-related environment + variables (see its documentation). + </p></dd><dt id="CONFIGURE-WITH-LIBXSLT-MESON"><span class="term"><code class="option">-Dlibxslt={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-WITH-LIBXSLT-MESON" class="id_link">#</a></dt><dd><p> + Build with libxslt, enabling the + <a class="xref" href="xml2.html" title="F.50. xml2 — XPath querying and XSLT functionality">xml2</a> + module to perform XSL transformations of XML. + <code class="option">-Dlibxml</code> must be specified as well. Defaults to + auto. + </p></dd></dl></div></div><div class="sect3" id="MESON-OPTIONS-ANTI-FEATURES"><div class="titlepage"><div><div><h4 class="title">17.4.3.3. Anti-Features <a href="#MESON-OPTIONS-ANTI-FEATURES" class="id_link">#</a></h4></div></div></div><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-READLINE-MESON"><span class="term"><code class="option">-Dreadline={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-READLINE-MESON" class="id_link">#</a></dt><dd><p> + Allows use of the <span class="application">Readline</span> library (and + <span class="application">libedit</span> as well). This option defaults to + auto and enables command-line editing and history in + <span class="application">psql</span> and is strongly recommended. + </p></dd><dt id="CONFIGURE-LIBEDIT-PREFERRED-MESON"><span class="term"><code class="option">-Dlibedit_preferred={ true | false }</code></span> <a href="#CONFIGURE-LIBEDIT-PREFERRED-MESON" class="id_link">#</a></dt><dd><p> + Setting this to true favors the use of the BSD-licensed + <span class="application">libedit</span> library rather than GPL-licensed + <span class="application">Readline</span>. This option is significant only + if you have both libraries installed; the default is false, that is to + use <span class="application">Readline</span>. + </p></dd><dt id="CONFIGURE-ZLIB-MESON"><span class="term"><code class="option">-Dzlib={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-ZLIB-MESON" class="id_link">#</a></dt><dd><p> + <a id="id-1.6.4.8.4.5.2.3.2.1.1" class="indexterm"></a> + Enables use of the <span class="application">Zlib</span> library. + It defaults to auto and enables + support for compressed archives in <span class="application">pg_dump</span>, + <span class="application">pg_restore</span> and <span class="application">pg_basebackup</span> and is recommended. + </p></dd><dt id="CONFIGURE-SPINLOCKS-MESON"><span class="term"><code class="option">-Dspinlocks={ true | false }</code></span> <a href="#CONFIGURE-SPINLOCKS-MESON" class="id_link">#</a></dt><dd><p> + This option is set to true by default; setting it to false will + allow the build to succeed even if <span class="productname">PostgreSQL</span> + has no CPU spinlock support for the platform. The lack of + spinlock support will result in very poor performance; therefore, + this option should only be changed if the build aborts and + informs you that the platform lacks spinlock support. If setting this + option to false is required to build <span class="productname">PostgreSQL</span> on + your platform, please report the problem to the + <span class="productname">PostgreSQL</span> developers. + </p></dd><dt id="CONFIGURE-ATOMICS-MESON"><span class="term"><code class="option">-Datomics={ true | false }</code></span> <a href="#CONFIGURE-ATOMICS-MESON" class="id_link">#</a></dt><dd><p> + This option is set to true by default; setting it to false will + disable use of CPU atomic operations. The option does nothing on + platforms that lack such operations. On platforms that do have + them, disabling atomics will result in poor performance. Changing + this option is only useful for debugging or making performance comparisons. + </p></dd></dl></div></div><div class="sect3" id="MESON-OPTIONS-BUILD-PROCESS"><div class="titlepage"><div><div><h4 class="title">17.4.3.4. Build Process Details <a href="#MESON-OPTIONS-BUILD-PROCESS" class="id_link">#</a></h4></div></div></div><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-AUTO-FEATURES-MESON"><span class="term"><code class="option">--auto_features={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-AUTO-FEATURES-MESON" class="id_link">#</a></dt><dd><p> + Setting this option allows you to override the value of all + <span class="quote">“<span class="quote">auto</span>”</span> features (features that are enabled automatically + if the required software is found). This can be useful when you want + to disable or enable all the <span class="quote">“<span class="quote">optional</span>”</span> features at once + without having to set each of them manually. The default value for + this parameter is auto. + </p></dd><dt id="CONFIGURE-BACKEND-MESON"><span class="term"><code class="option">--backend=<em class="replaceable"><code>BACKEND</code></em></code></span> <a href="#CONFIGURE-BACKEND-MESON" class="id_link">#</a></dt><dd><p> + The default backend Meson uses is ninja and that should suffice for + most use cases. However, if you'd like to fully integrate with Visual + Studio, you can set the <code class="option">BACKEND</code> to + <code class="command">vs</code>. + </p></dd><dt id="CONFIGURE-C-ARGS-MESON"><span class="term"><code class="option">-Dc_args=<em class="replaceable"><code>OPTIONS</code></em></code></span> <a href="#CONFIGURE-C-ARGS-MESON" class="id_link">#</a></dt><dd><p> + This option can be used to pass extra options to the C compiler. + </p></dd><dt id="CONFIGURE-C-LINK-ARGS-MESON"><span class="term"><code class="option">-Dc_link_args=<em class="replaceable"><code>OPTIONS</code></em></code></span> <a href="#CONFIGURE-C-LINK-ARGS-MESON" class="id_link">#</a></dt><dd><p> + This option can be used to pass extra options to the C linker. + </p></dd><dt id="CONFIGURE-EXTRA-INCLUDE-DIRS-MESON"><span class="term"><code class="option">-Dextra_include_dirs=<em class="replaceable"><code>DIRECTORIES</code></em></code></span> <a href="#CONFIGURE-EXTRA-INCLUDE-DIRS-MESON" class="id_link">#</a></dt><dd><p> + <em class="replaceable"><code>DIRECTORIES</code></em> is a comma-separated list of + directories that will be added to the list the compiler searches for + header files. If you have optional packages (such as GNU + <span class="application">Readline</span>) installed in a non-standard + location, you have to use this option and probably also the + corresponding <code class="option">-Dextra_lib_dirs</code> option. + </p><p> + Example: <code class="literal">-Dextra_include_dirs=/opt/gnu/include,/usr/sup/include</code>. + </p></dd><dt id="CONFIGURE-EXTRA-LIB-DIRS-MESON"><span class="term"><code class="option">-Dextra_lib_dirs=<em class="replaceable"><code>DIRECTORIES</code></em></code></span> <a href="#CONFIGURE-EXTRA-LIB-DIRS-MESON" class="id_link">#</a></dt><dd><p> + <em class="replaceable"><code>DIRECTORIES</code></em> is a comma-separated list of + directories to search for libraries. You will probably have to use + this option (and the corresponding + <code class="option">-Dextra_include_dirs</code> option) if you have packages + installed in non-standard locations. + </p><p> + Example: <code class="literal">-Dextra_lib_dirs=/opt/gnu/lib,/usr/sup/lib</code>. + </p></dd><dt id="CONFIGURE-SYSTEM-TZDATA-MESON"><span class="term"><code class="option">-Dsystem_tzdata=<em class="replaceable"><code>DIRECTORY</code></em></code> + <a id="id-1.6.4.8.4.6.2.7.1.2" class="indexterm"></a> + </span> <a href="#CONFIGURE-SYSTEM-TZDATA-MESON" class="id_link">#</a></dt><dd><p> + <span class="productname">PostgreSQL</span> includes its own time zone + database, which it requires for date and time operations. This time + zone database is in fact compatible with the IANA time zone database + provided by many operating systems such as FreeBSD, Linux, and + Solaris, so it would be redundant to install it again. When this + option is used, the system-supplied time zone database in + <em class="replaceable"><code>DIRECTORY</code></em> is used instead of the one + included in the PostgreSQL source distribution. + <em class="replaceable"><code>DIRECTORY</code></em> must be specified as an absolute + path. <code class="filename">/usr/share/zoneinfo</code> is a likely directory + on some operating systems. Note that the installation routine will + not detect mismatching or erroneous time zone data. If you use this + option, you are advised to run the regression tests to verify that the + time zone data you have pointed to works correctly with + <span class="productname">PostgreSQL</span>. + </p><a id="id-1.6.4.8.4.6.2.7.2.2" class="indexterm"></a><p> + This option is mainly aimed at binary package distributors who know + their target operating system well. The main advantage of using this + option is that the PostgreSQL package won't need to be upgraded + whenever any of the many local daylight-saving time rules change. + Another advantage is that PostgreSQL can be cross-compiled more + straightforwardly if the time zone database files do not need to be + built during the installation. + </p></dd><dt id="CONFIGURE-EXTRA-VERSION-MESON"><span class="term"><code class="option">-Dextra_version=<em class="replaceable"><code>STRING</code></em></code></span> <a href="#CONFIGURE-EXTRA-VERSION-MESON" class="id_link">#</a></dt><dd><p> + Append <em class="replaceable"><code>STRING</code></em> to the PostgreSQL version + number. You can use this, for example, to mark binaries built from + unreleased <span class="productname">Git</span> snapshots or containing + custom patches with an extra version string, such as a <code class="command">git + describe</code> identifier or a distribution package release + number. + </p></dd><dt id="CONFIGURE-RPATH-MESON"><span class="term"><code class="option">-Drpath={ true | false }</code></span> <a href="#CONFIGURE-RPATH-MESON" class="id_link">#</a></dt><dd><p> + This option is set to true by default. If set to false, + do not mark <span class="productname">PostgreSQL</span>'s executables + to indicate that they should search for shared libraries in the + installation's library directory (see <code class="option">--libdir</code>). + On most platforms, this marking uses an absolute path to the + library directory, so that it will be unhelpful if you relocate + the installation later. However, you will then need to provide + some other way for the executables to find the shared libraries. + Typically this requires configuring the operating system's + dynamic linker to search the library directory; see + <a class="xref" href="install-post.html#INSTALL-POST-SHLIBS" title="17.5.1. Shared Libraries">Section 17.5.1</a> for more detail. + </p></dd><dt id="CONFIGURE-BINARY-NAME-MESON"><span class="term"><code class="option">-D<em class="replaceable"><code>BINARY_NAME</code></em>=<em class="replaceable"><code>PATH</code></em></code></span> <a href="#CONFIGURE-BINARY-NAME-MESON" class="id_link">#</a></dt><dd><p> + If a program required to build PostgreSQL (with or without optional + flags) is stored at a non-standard path, you can specify it manually + to <code class="literal">meson configure</code>. The complete list of programs + for which this is supported can be found by running <code class="literal">meson + configure</code>. Example: +</p><pre class="programlisting">meson configure -DBISON=PATH_TO_BISON</pre><p> + </p></dd></dl></div></div><div class="sect3" id="MESON-OPTIONS-DOCS"><div class="titlepage"><div><div><h4 class="title">17.4.3.5. Documentation <a href="#MESON-OPTIONS-DOCS" class="id_link">#</a></h4></div></div></div><p> + See <a class="xref" href="docguide-toolsets.html" title="J.2. Tool Sets">Section J.2</a> for the tools needed for building + the documentation. + </p><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-DOCS-MESON"><span class="term"><code class="option">-Ddocs={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-DOCS-MESON" class="id_link">#</a></dt><dd><p> + Enables building the documentation in <acronym class="acronym">HTML</acronym> and + <acronym class="acronym">man</acronym> format. It defaults to auto. + </p></dd><dt id="CONFIGURE-DOCS-PDF-MESON"><span class="term"><code class="option">-Ddocs_pdf={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-DOCS-PDF-MESON" class="id_link">#</a></dt><dd><p> + Enables building the documentation in <acronym class="acronym">PDF</acronym> + format. It defaults to auto. + </p></dd><dt id="CONFIGURE-DOCS-HTML-STYLE"><span class="term"><code class="option">-Ddocs_html_style={ simple | website }</code></span> <a href="#CONFIGURE-DOCS-HTML-STYLE" class="id_link">#</a></dt><dd><p> + Controls which <acronym class="acronym">CSS</acronym> stylesheet is used. The default + is <code class="literal">simple</code>. If set to <code class="literal">website</code>, + the HTML documentation will reference the stylesheet for <a class="ulink" href="https://www.postgresql.org/docs/current/" target="_top">postgresql.org</a>. + </p></dd></dl></div></div><div class="sect3" id="MESON-OPTIONS-MISC"><div class="titlepage"><div><div><h4 class="title">17.4.3.6. Miscellaneous <a href="#MESON-OPTIONS-MISC" class="id_link">#</a></h4></div></div></div><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-PGPORT-MESON"><span class="term"><code class="option">-Dpgport=<em class="replaceable"><code>NUMBER</code></em></code></span> <a href="#CONFIGURE-PGPORT-MESON" class="id_link">#</a></dt><dd><p> + Set <em class="replaceable"><code>NUMBER</code></em> as the default port number for + server and clients. The default is 5432. The port can always + be changed later on, but if you specify it here then both + server and clients will have the same default compiled in, + which can be very convenient. Usually the only good reason + to select a non-default value is if you intend to run multiple + <span class="productname">PostgreSQL</span> servers on the same machine. + </p></dd><dt id="CONFIGURE-KRB-SRVNAM-MESON"><span class="term"><code class="option">-Dkrb_srvnam=<em class="replaceable"><code>NAME</code></em></code></span> <a href="#CONFIGURE-KRB-SRVNAM-MESON" class="id_link">#</a></dt><dd><p> + The default name of the Kerberos service principal used + by GSSAPI. + <code class="literal">postgres</code> is the default. There's usually no + reason to change this unless you are building for a Windows + environment, in which case it must be set to upper case + <code class="literal">POSTGRES</code>. + </p></dd><dt id="CONFIGURE-SEGSIZE-MESON"><span class="term"><code class="option">-Dsegsize=<em class="replaceable"><code>SEGSIZE</code></em></code></span> <a href="#CONFIGURE-SEGSIZE-MESON" class="id_link">#</a></dt><dd><p> + Set the <em class="firstterm">segment size</em>, in gigabytes. Large tables are + divided into multiple operating-system files, each of size equal + to the segment size. This avoids problems with file size limits + that exist on many platforms. The default segment size, 1 gigabyte, + is safe on all supported platforms. If your operating system has + <span class="quote">“<span class="quote">largefile</span>”</span> support (which most do, nowadays), you can use + a larger segment size. This can be helpful to reduce the number of + file descriptors consumed when working with very large tables. + But be careful not to select a value larger than is supported + by your platform and the file systems you intend to use. Other + tools you might wish to use, such as <span class="application">tar</span>, could + also set limits on the usable file size. + It is recommended, though not absolutely required, that this value + be a power of 2. + </p></dd><dt id="CONFIGURE-BLOCKSIZE-MESON"><span class="term"><code class="option">-Dblocksize=<em class="replaceable"><code>BLOCKSIZE</code></em></code></span> <a href="#CONFIGURE-BLOCKSIZE-MESON" class="id_link">#</a></dt><dd><p> + Set the <em class="firstterm">block size</em>, in kilobytes. This is the unit + of storage and I/O within tables. The default, 8 kilobytes, + is suitable for most situations; but other values may be useful + in special cases. + The value must be a power of 2 between 1 and 32 (kilobytes). + </p></dd><dt id="CONFIGURE-WAL-BLOCKSIZE-MESON"><span class="term"><code class="option">-Dwal_blocksize=<em class="replaceable"><code>BLOCKSIZE</code></em></code></span> <a href="#CONFIGURE-WAL-BLOCKSIZE-MESON" class="id_link">#</a></dt><dd><p> + Set the <em class="firstterm">WAL block size</em>, in kilobytes. This is the unit + of storage and I/O within the WAL log. The default, 8 kilobytes, + is suitable for most situations; but other values may be useful + in special cases. + The value must be a power of 2 between 1 and 64 (kilobytes). + </p></dd></dl></div></div><div class="sect3" id="MESON-OPTIONS-DEVEL"><div class="titlepage"><div><div><h4 class="title">17.4.3.7. Developer Options <a href="#MESON-OPTIONS-DEVEL" class="id_link">#</a></h4></div></div></div><p> + Most of the options in this section are only of interest for + developing or debugging <span class="productname">PostgreSQL</span>. + They are not recommended for production builds, except + for <code class="option">--debug</code>, which can be useful to enable + detailed bug reports in the unlucky event that you encounter a bug. + On platforms supporting DTrace, <code class="option">-Ddtrace</code> + may also be reasonable to use in production. + </p><p> + When building an installation that will be used to develop code inside + the server, it is recommended to use at least the <code class="option">--buildtype=debug</code> + and <code class="option">-Dcassert</code> options. + </p><div class="variablelist"><dl class="variablelist"><dt id="CONFIGURE-BUILDTYPE-MESON"><span class="term"><code class="option">--buildtype=<em class="replaceable"><code>BUILDTYPE</code></em></code></span> <a href="#CONFIGURE-BUILDTYPE-MESON" class="id_link">#</a></dt><dd><p> + This option can be used to specify the buildtype to use; defaults to + <code class="option">debugoptimized</code>. If you'd like finer control on the debug + symbols and optimization levels than what this option provides, you + can refer to the <code class="option">--debug</code> and + <code class="option">--optimization</code> flags. + </p><p> + The following build types are generally used: <code class="option">plain</code>, + <code class="option">debug</code>, <code class="option">debugoptimized</code> and + <code class="option">release</code>. More information about them can be found in + the <a class="ulink" href="https://mesonbuild.com/Running-Meson.html#configuring-the-build-directory" target="_top">Meson + documentation</a>. + </p></dd><dt id="CONFIGURE-DEBUG-MESON"><span class="term"><code class="option">--debug</code></span> <a href="#CONFIGURE-DEBUG-MESON" class="id_link">#</a></dt><dd><p> + Compiles all programs and libraries with debugging symbols. This + means that you can run the programs in a debugger to analyze + problems. This enlarges the size of the installed executables + considerably, and on non-GCC compilers it usually also disables + compiler optimization, causing slowdowns. However, having the symbols + available is extremely helpful for dealing with any problems that + might arise. Currently, this option is recommended for production + installations only if you use GCC. But you should always have it on + if you are doing development work or running a beta version. + </p></dd><dt id="CONFIGURE-OPTIMIZATION-MESON"><span class="term"><code class="option">--optimization</code>=<em class="replaceable"><code>LEVEL</code></em></span> <a href="#CONFIGURE-OPTIMIZATION-MESON" class="id_link">#</a></dt><dd><p> + Specify the optimization level. <code class="option">LEVEL</code> can be set to any of {0,g,1,2,3,s}. + </p></dd><dt id="CONFIGURE-WERROR-MESON"><span class="term"><code class="option">--werror</code></span> <a href="#CONFIGURE-WERROR-MESON" class="id_link">#</a></dt><dd><p> + Setting this option asks the compiler to treat warnings as + errors. This can be useful for code development. + </p></dd><dt id="CONFIGURE-CASSERT-MESON"><span class="term"><code class="option">-Dcassert={ true | false }</code></span> <a href="#CONFIGURE-CASSERT-MESON" class="id_link">#</a></dt><dd><p> + Enables <em class="firstterm">assertion</em> checks in the server, which + test for many <span class="quote">“<span class="quote">cannot happen</span>”</span> conditions. This is + invaluable for code development purposes, but the tests slow down the + server significantly. Also, having the tests turned on won't + necessarily enhance the stability of your server! The assertion + checks are not categorized for severity, and so what might be a + relatively harmless bug will still lead to server restarts if it + triggers an assertion failure. This option is not recommended for + production use, but you should have it on for development work or when + running a beta version. + </p></dd><dt id="CONFIGURE-TAP-TESTS-MESON"><span class="term"><code class="option">-Dtap_tests={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-TAP-TESTS-MESON" class="id_link">#</a></dt><dd><p> + Enable tests using the Perl TAP tools. Defaults to auto and requires + a Perl installation and the Perl module <code class="literal">IPC::Run</code>. + <span class="phrase">See <a class="xref" href="regress-tap.html" title="33.4. TAP Tests">Section 33.4</a> for more information.</span> + </p></dd><dt id="CONFIGURE-PG-TEST-EXTRA-MESON"><span class="term"><code class="option">-DPG_TEST_EXTRA=<em class="replaceable"><code>TEST_SUITES</code></em></code></span> <a href="#CONFIGURE-PG-TEST-EXTRA-MESON" class="id_link">#</a></dt><dd><p> + Enable test suites which require special software to run. This option + accepts arguments via a whitespace-separated list. See <a class="xref" href="regress-run.html#REGRESS-ADDITIONAL" title="33.1.3. Additional Test Suites">Section 33.1.3</a> for details. + </p></dd><dt id="CONFIGURE-B-COVERAGE-MESON"><span class="term"><code class="option">-Db_coverage={ true | false }</code></span> <a href="#CONFIGURE-B-COVERAGE-MESON" class="id_link">#</a></dt><dd><p> + 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. + <span class="phrase">See <a class="xref" href="regress-coverage.html" title="33.5. Test Coverage Examination">Section 33.5</a> + for more information.</span> This option is for use only with GCC + and when doing development work. + </p></dd><dt id="CONFIGURE-DTRACE-MESON"><span class="term"><code class="option">-Ddtrace={ auto | enabled | disabled }</code></span> <a href="#CONFIGURE-DTRACE-MESON" class="id_link">#</a></dt><dd><p> + <a id="id-1.6.4.8.4.9.4.9.2.1.1" class="indexterm"></a> + Enabling this compiles <span class="productname">PostgreSQL</span> with support for the + dynamic tracing tool DTrace. + <span class="phrase">See <a class="xref" href="dynamic-trace.html" title="28.5. Dynamic Tracing">Section 28.5</a> + for more information.</span> + </p><p> + To point to the <code class="command">dtrace</code> program, the + <code class="option">DTRACE</code> option can be set. This + will often be necessary because <code class="command">dtrace</code> is + typically installed under <code class="filename">/usr/sbin</code>, + which might not be in your <code class="envar">PATH</code>. + </p></dd><dt id="CONFIGURE-SEGSIZE-BLOCKS-MESON"><span class="term"><code class="option">-Dsegsize_blocks=SEGSIZE_BLOCKS</code></span> <a href="#CONFIGURE-SEGSIZE-BLOCKS-MESON" class="id_link">#</a></dt><dd><p> + Specify the relation segment size in blocks. If both + <code class="option">-Dsegsize</code> and this option are specified, this option + wins. + + This option is only for developers, to test segment related code. + </p></dd></dl></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-make.html" title="17.3. Building and Installation with Autoconf and Make">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="installation.html" title="Chapter 17. Installation from Source Code">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="install-post.html" title="17.5. Post-Installation Setup">Next</a></td></tr><tr><td width="40%" align="left" valign="top">17.3. Building and Installation with Autoconf and Make </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 16.2 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 17.5. Post-Installation Setup</td></tr></table></div></body></html>
\ No newline at end of file |