pg_config {--bindir | --includedir | --includedir-server | --libdir | --pkglibdir | --configure | --version}...
The pg_config utility prints configuration parameters of the currently installed version of PostgreSQL. It is intended, for example, to be used by software packages that want to interface to PostgreSQL to facilitate finding the required header files and libraries.
To use pg_config, supply one or more of the following options:
Print the location of user executables. Use this, for example, to find the psql program. This is normally also the location where the pg_config program resides.
Print the location of C header files of the client interfaces.
Print the location of C header files for server programming.
Print the location of object code libraries.
Print the location of dynamically loadable modules, or where the server would search for them. (Other architecture-dependent data files may also be installed in this directory.)
Print the options that were given to the configure script when 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.)
Print the version of PostgreSQL and exit.
If more than one option (except for --version) is given, the information is printed in that order, one item per line.
The option --includedir-server is new in 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 --includedir. To make your package handle both cases, try the newer option first and test the exit status to see whether it succeeded.
In releases prior to PostgreSQL 7.1, before the pg_config came to be, a method for finding the equivalent configuration information did not exist.