blob: 884ccea7afb11b8a10896179a05a55ff80999309 [file] [log] [blame]
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/pg_config-ref.sgml,v 1.28 2008/02/18 14:51:48 petere Exp $ -->
<refentry id="app-pgconfig">
<refmeta>
<refentrytitle id="app-pgconfig-title">pg_config</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
<refname>pg_config</refname>
<refpurpose>retrieve information about the installed version of <productname>PostgreSQL</></refpurpose>
</refnamediv>
<indexterm zone="app-pgconfig">
<primary>pg_config</primary>
</indexterm>
<refsynopsisdiv>
<cmdsynopsis>
<command>pg_config</command>
<arg rep="repeat"><replaceable>option</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</>
<para>
The <application>pg_config</> utility prints configuration parameters
of the currently installed version of <productname>PostgreSQL</>. It is
intended, for example, to be used by software packages that want to interface
to <productname>PostgreSQL</> to facilitate finding the required header files
and libraries.
</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>
To use <application>pg_config</>, supply one or more of the following
options:
<variablelist>
<varlistentry>
<term><option>--bindir</option></>
<listitem>
<para>
Print the location of user executables. Use this, for example, to find
the <command>psql</> program. This is normally also the location
where the <filename>pg_config</> program resides.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--docdir</option></>
<listitem>
<para>
Print the location of documentation files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--htmldir</option></>
<listitem>
<para>
Print the location of HTML documentation files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--includedir</option></>
<listitem>
<para>
Print the location of C header files of the client interfaces.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--pkgincludedir</option></>
<listitem>
<para>
Print the location of other C header files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--includedir-server</option></>
<listitem>
<para>
Print the location of C header files for server programming.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--libdir</option></>
<listitem>
<para>
Print the location of object code libraries.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--pkglibdir</option></>
<listitem>
<para>
Print the location of dynamically loadable modules, or where
the server would search for them. (Other
architecture-dependent data files might also be installed in this
directory.)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--localedir</option></>
<listitem>
<para>
Print the location of locale support files. (This will be an empty
string if locale support was not configured when
<productname>PostgreSQL</> was built.)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--mandir</option></>
<listitem>
<para>
Print the location of manual pages.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--sharedir</option></>
<listitem>
<para>
Print the location of architecture-independent support files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--sysconfdir</option></>
<listitem>
<para>
Print the location of system-wide configuration files.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--pgxs</option></>
<listitem>
<para>
Print the location of extension makefiles.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--configure</option></>
<listitem>
<para>
Print the options that were given to the <filename>configure</>
script when <productname>PostgreSQL</> was configured for building.
This can be used to reproduce the identical configuration, or
to find out with what options a binary package was built. (Note
however that binary packages often contain vendor-specific custom
patches.) See also the examples below.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--cc</option></>
<listitem>
<para>
Print the value of the <varname>CC</varname> variable that was used for building
<productname>PostgreSQL</>. This shows the C compiler used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--cppflags</option></>
<listitem>
<para>
Print the value of the <varname>CPPFLAGS</varname> variable that was used for building
<productname>PostgreSQL</>. This shows C compiler switches needed
at preprocessing time (typically, <literal>-I</> switches).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--cflags</option></>
<listitem>
<para>
Print the value of the <varname>CFLAGS</varname> variable that was used for building
<productname>PostgreSQL</>. This shows C compiler switches.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--cflags_sl</option></>
<listitem>
<para>
Print the value of the <varname>CFLAGS_SL</varname> variable that was used for building
<productname>PostgreSQL</>. This shows extra C compiler switches
used for building shared libraries.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--ldflags</option></>
<listitem>
<para>
Print the value of the <varname>LDFLAGS</varname> variable that was used for building
<productname>PostgreSQL</>. This shows linker switches.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--ldflags_sl</option></>
<listitem>
<para>
Print the value of the <varname>LDFLAGS_SL</varname> variable that was used for building
<productname>PostgreSQL</>. This shows linker switches
used for building shared libraries.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--libs</option></>
<listitem>
<para>
Print the value of the <varname>LIBS</varname> variable that was used for building
<productname>PostgreSQL</>. This normally contains <literal>-l</>
switches for external libraries linked into <productname>PostgreSQL</>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--version</option></>
<listitem>
<para>
Print the version of <productname>PostgreSQL</>.
</para>
</listitem>
</varlistentry>
</variablelist>
If more than one option is given, the information is printed in that order,
one item per line. If no options are given, all available information
is printed, with labels.
</para>
</refsect1>
<refsect1>
<title>Notes</title>
<para>
The option <option>--includedir-server</option> was new in
<productname>PostgreSQL</> 7.2. In prior releases, the server include files were
installed in the same location as the client headers, which could
be queried with the option <option>--includedir</option>. To make your
package handle both cases, try the newer option first and test the
exit status to see whether it succeeded.
</para>
<para>
The options <option>--docdir</option>, <option>--pkgincludedir</option>,
<option>--localedir</option>, <option>--mandir</option>,
<option>--sharedir</option>, <option>--sysconfdir</option>,
<option>--cc</option>, <option>--cppflags</option>,
<option>--cflags</option>, <option>--cflags_sl</option>,
<option>--ldflags</option>, <option>--ldflags_sl</option>,
and <option>--libs</option> are new in <productname>PostgreSQL</> 8.1.
The option <option>--htmldir</option> is new in <productname>PostgreSQL</> 8.4.
</para>
<para>
In releases prior to <productname>PostgreSQL</> 7.1, before
<command>pg_config</command> came to be, a method for finding the
equivalent configuration information did not exist.
</para>
</refsect1>
<refsect1>
<title>Example</title>
<para>
To reproduce the build configuration of the current PostgreSQL
installation, run the following command:
<programlisting>
eval ./configure `pg_config --configure`
</programlisting>
The output of <literal>pg_config --configure</literal> contains
shell quotation marks so arguments with spaces are represented
correctly. Therefore, using <literal>eval</literal> is required
for proper results.
</para>
</refsect1>
</refentry>