+ url="http://www.ossp.org/pkg/lib/uuid/">OSSP UUID library
+
+
+
+
+
+
+
+ -Dlibxml={ auto | enabled | disabled }
+
+ Build with libxml2, enabling SQL/XML support. Defaults to
+ auto. Libxml2 version 2.6.23 or later is required for this feature.
+
+
+ To use a libxml2 installation that is in an unusual location, you
+ can set pkg-config -related environment
+ variables (see its documentation).
+
+
+
+
+
+ -Dlibxslt={ auto | enabled | disabled }
+
+ Build with libxslt, enabling the
+
+ module to perform XSL transformations of XML.
+ -Dlibxml must be specified as well. Defaults to
+ auto.
+
+
+
+
+
+
+
+
Anti-Features
+
+
+
+ -Dreadline={ auto | enabled | disabled }
+
+ Allows use of the
Readline library (and
+
libedit as well). This option defaults to
+ auto and enables command-line editing and history in
+
psql and is strongly recommended.
+
+
+
+
+
+ -Dlibedit_preferred={ true | false }
+
+ Setting this to true favors the use of the BSD-licensed
+
libedit library rather than GPL-licensed
+
Readline . This option is significant only
+ if you have both libraries installed; the default is false, that is to
+
+
+
+
+
+ -Dzlib={ auto | enabled | disabled }
+
+
+
+ Enables use of the
Zlib library.
+ It defaults to auto and enables
+ support for compressed archives in
pg_dump ,
+
pg_restore and
pg_basebackup and is recommended.
+
+
+
+
+
+ -Dspinlocks={ true | false }
+
+ This option is set to true by default; setting it to false will
+ allow the build to succeed even if
PostgreSQL
+ 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
PostgreSQL on
+ your platform, please report the problem to the
+
+
+
+
+
+ -Datomics={ true | false }
+
+ 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.
+
+
+
+
+
+
+
+
Build Process Details
+
+
+
+ --auto_features={ auto | enabled | disabled }
+
+ Setting this option allows you to override the value of all
+ auto
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 optional
features at once
+ without having to set each of them manually. The default value for
+ this parameter is auto.
+
+
+
+
+
+ --backend=BACKEND
+
+ 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 BACKEND to
+ vs .
+
+
+
+
+
+ -Dc_args=OPTIONS
+
+ This option can be used to pass extra options to the C compiler.
+
+
+
+
+
+ -Dc_link_args=OPTIONS
+
+ This option can be used to pass extra options to the C linker.
+
+
+
+
+
+ -Dextra_include_dirs=DIRECTORIES
+
+ DIRECTORIES 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
+
Readline ) installed in a non-standard
+ location, you have to use this option and probably also the
+ corresponding -Dextra_lib_dirs option.
+
+
+ Example: -Dextra_include_dirs=/opt/gnu/include,/usr/sup/include .
+
+
+
+
+
+ -Dextra_lib_dirs=DIRECTORIES
+
+ DIRECTORIES is a comma-separated list of
+ directories to search for libraries. You will probably have to use
+ this option (and the corresponding
+ -Dextra_include_dirs option) if you have packages
+ installed in non-standard locations.
+
+ Example: -Dextra_lib_dirs=/opt/gnu/lib,/usr/sup/lib .
+
+
+
+
+
+ -Dsystem_tzdata=DIRECTORY
+
+
+
+
+
PostgreSQL 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
+ DIRECTORY is used instead of the one
+ included in the PostgreSQL source distribution.
+ DIRECTORY must be specified as an absolute
+ path. /usr/share/zoneinfo 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
+
+
+
+ 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.
+
+
+
+
+
+ -Dextra_version=STRING
+
+ Append STRING to the PostgreSQL version
+ number. You can use this, for example, to mark binaries built from
+ unreleased
Git snapshots or containing
+ custom patches with an extra version string, such as a git
+ describe identifier or a distribution package release
+ number.
+
+
+
+
+
+ -DBINARY_NAME =PATH
+
+ 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 meson configure . The complete list of programs
+ for which this is supported can be found by running meson
+ configure. Example:
+
meson configure -DBISON=PATH_TO_BISON
+
+
+
+
+
+
+
+
Miscellaneous
+
+
+
+ -Dpgport=NUMBER
+
+ Set NUMBER 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
+
PostgreSQL servers on the same machine.
+
+
+
+
+
+ -Dkrb_srvnam=NAME
+
+ The default name of the Kerberos service principal used
+ by GSSAPI.
+ postgres 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
+ POSTGRES .
+
+
+
+
+
+ -Dsegsize=SEGSIZE
+
+ Set the segment size , 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
+ largefile
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
tar , could
+ also set limits on the usable file size.
+ It is recommended, though not absolutely required, that this value
+ be a power of 2.
+
+
+
+
+
+ -Dblocksize=BLOCKSIZE
+
+ Set the block size , 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).
+
+
+
+
+
+ -Dwal_blocksize=BLOCKSIZE
+
+ Set the WAL block size , 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).
+
+
+
+
+
+
+
+
Developer Options
+
+ Most of the options in this section are only of interest for
+ developing or debugging
PostgreSQL .
+ They are not recommended for production builds, except
+ for --debug , which can be useful to enable
+ detailed bug reports in the unlucky event that you encounter a bug.
+ On platforms supporting DTrace, -Ddtrace
+ may also be reasonable to use in production.
+
+
+ When building an installation that will be used to develop code inside
+ the server, it is recommended to use at least the --buildtype=debug
+ and -Dcassert options.
+
+
+
+
+ --buildtype=BUILDTYPE
+
+ This option can be used to specify the buildtype to use; defaults to
+ release . If you'd like finer control on the debug
+ symbols and optimization levels than what this option provides, you
+ can refer to the --debug and
+ --optimization flags.
+
+
+ The following build types are generally used: plain ,
+ debug , debugoptimized and
+ release . More information about them can be found in
+ the
+ url="https://mesonbuild.com/Running-Meson.html#configuring-the-build-directory">Meson
+ documentation.
+
+
+
+
+
+ --debug
+
+ 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.
+
+
+
+
+
+ --optimization =LEVEL
+
+ Specify the optimization level. LEVEL can be set to any of {0,g,1,2,3,s}.
+
+
+
+
+
+ --werror
+
+ Setting this option asks the compiler to treat warnings as
+ errors. This can be useful for code development.
+
+
+
+
+
+ -Dcassert
+
+ Enables assertion checks in the server, which
+ test for many cannot happen
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.
+
+
+
+
+
+ -Dtap-tests={ auto | enabled | disabled }
+
+ Enable tests using the Perl TAP tools. Defaults to auto and requires
+ a Perl installation and the Perl module IPC::Run .
+
See
+ linkend="regress-tap"/> for more information.
+
+
+
+
+
+ -DPG_TEST_EXTRA=TEST_SUITES
+
+ Enable test suites which require special software to run. This option
+ accepts arguments via a whitespace-separated list. See
+ linkend="regress-additional"/> for details.
+
+
+
+
+
+ -Db_coverage
+
+ 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.
+ for more information. This option is for use only with GCC
+ and when doing development work.
+
+
+
+
+
+ -Ddtrace={ auto | enabled | disabled }
+
+
+
+ Enabling this compiles
PostgreSQL with support for the
+ dynamic tracing tool DTrace.
+ for more information.
+
+
+ To point to the dtrace program, the
+ DTRACE option can be set. This
+ will often be necessary because dtrace is
+ typically installed under /usr/sbin ,
+ which might not be in your PATH .
+
+
+
+
+
+
+
+
Post-Installation Setup
explicitly tell the configure script to make the probes available
in
PostgreSQL . To include DTrace support
specify
--enable-dtrace to configure. See
- linkend="install-procedure "/> for further information.
+ linkend="configure-options-devel "/> for further information.
-
+ id="regress-additional">
Additional Test Suites
Install the new version of
PostgreSQL as
- outlined in -procedure"/>.
+ outlined in ation"/>.
C++, see the main documentation instead.
-
- procedure" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ make" xmlns:xi="http://www.w3.org/2001/XInclude"/>