| .\" |
| .\" pkg-config manual page. |
| .\" (C) Red Hat, Inc. based on gnome-config man page (C) Miguel de Icaza (miguel@gnu.org) |
| .\" |
| . |
| .TH pkg-config 1 |
| .SH NAME |
| pkg-config \- Return metainformation about installed libraries |
| .SH SYNOPSIS |
| .PP |
| .B pkg-config |
| [\-\-modversion] [\-\-version] [\-\-help] |
| [\-\-atleast-pkgconfig-version=VERSION] |
| [\-\-print-errors] [\-\-short-errors] |
| [\-\-silence-errors] [\-\-errors-to-stdout] [\-\-debug] |
| [\-\-cflags] [\-\-libs] [\-\-libs-only-L] |
| [\-\-libs-only-l] [\-\-cflags-only-I] |
| [\-\-libs-only-other] [\-\-cflags-only-other] |
| [\-\-variable=VARIABLENAME] |
| [\-\-define-variable=VARIABLENAME=VARIABLEVALUE] |
| [\-\-print-variables] |
| [\-\-uninstalled] |
| [\-\-exists] [\-\-atleast-version=VERSION] [\-\-exact-version=VERSION] |
| [\-\-max-version=VERSION] [\-\-validate] [\-\-list\-all] [\-\-print-provides] |
| [\-\-print-requires] [\-\-print-requires-private] [LIBRARIES...] |
| .SH DESCRIPTION |
| |
| The \fIpkg-config\fP program is used to retrieve information about |
| installed libraries in the system. It is typically used to compile |
| and link against one or more libraries. Here is a typical usage |
| scenario in a Makefile: |
| .PP |
| .nf |
| program: program.c |
| cc program.c `pkg-config --cflags --libs gnomeui` |
| .fi |
| .PP |
| .I pkg-config |
| retrieves information about packages from special metadata |
| files. These files are named after the package, and has a |
| .I .pc |
| extension. On most systems, \fIpkg-config\fP looks in |
| .I /usr/lib/pkgconfig, /usr/share/pkgconfig, /usr/local/lib/pkgconfig |
| and |
| .I /usr/local/share/pkgconfig |
| for these files. It will additionally look in the colon-separated |
| (on Windows, semicolon-separated) list of directories specified by the |
| PKG_CONFIG_PATH environment variable. |
| .PP |
| The package name specified on the \fIpkg-config\fP command line is |
| defined to be the name of the metadata file, minus the \fI.pc\fP |
| extension. If a library can install multiple versions simultaneously, |
| it must give each version its own name (for example, GTK 1.2 might |
| have the package name "gtk+" while GTK 2.0 has "gtk+-2.0"). |
| .PP |
| In addition to specifying a package name on the command line, the full |
| path to a given \fI.pc\fP file may be given instead. This allows a |
| user to directly query a particular \fI.pc\fP file. |
| .\" |
| .SH OPTIONS |
| The following options are supported: |
| .TP |
| .I "--modversion" |
| Requests that the version information of the libraries specified on |
| the command line be displayed. If \fIpkg-config\fP can find all the |
| libraries on the command line, each library's version string is |
| printed to stdout, one version per line. In this case \fIpkg-config\fP |
| exits successfully. If one or more libraries is unknown, |
| .I pkg-config |
| exits with a nonzero code, and the contents of stdout are undefined. |
| .TP |
| .I "--version" |
| Displays the version of |
| .I pkg-config |
| and terminates. |
| .TP |
| .I "--atleast-pkgconfig-version=VERSION" |
| Requires at least the given version of pkg-config. |
| .TP |
| .I "--help" |
| Displays a help message and terminates. |
| .TP |
| .I "--print-errors" |
| If one or more of the modules on the command line, or their |
| dependencies, are not found, or if an error occurs in parsing |
| a \fI.pc\fP file, then this option will cause errors explaining the |
| problem to be printed. With "predicate" options such as "--exists" |
| .I "pkg-config" |
| runs silently by default, because it's usually used |
| in scripts that want to control what's output. This option can be used |
| alone (to just print errors encountered locating modules on the |
| command line) or with other options. The PKG_CONFIG_DEBUG_SPEW |
| environment variable overrides this option. |
| .TP |
| .I "--short-errors" |
| Print short error messages. |
| .TP |
| .I "--silence-errors" |
| If one or more of the modules on the command line, or their |
| dependencies, are not found, or if an error occurs in parsing a |
| a \fI.pc\fP file, then this option will keep errors explaining the |
| problem from being printed. With "predicate" options such as |
| "--exists" \fIpkg-config\fP runs silently by default, because it's |
| usually used in scripts that want to control what's output. So this |
| option is only useful with options such as "--cflags" or |
| "--modversion" that print errors by default. The PKG_CONFIG_DEBUG_SPEW |
| environment variable overrides this option. |
| .TP |
| .I "--errors-to-stdout" |
| If printing errors, print them to stdout rather than the default stderr |
| .TP |
| .I "--debug" |
| Print debugging information. This is slightly different than the |
| PKG_CONFIG_DEBUG_SPEW environment variable, which also enable |
| "--print-errors". |
| |
| .PP |
| The following options are used to compile and link programs: |
| .TP |
| .I "--cflags" |
| This prints pre-processor and compile flags required to compile the |
| packages on the command line, including flags for all their |
| dependencies. Flags are "compressed" so that each identical flag |
| appears only once. \fIpkg-config\fP exits with a nonzero code if it |
| can't find metadata for one or more of the packages on the command |
| line. |
| .TP |
| .I "--cflags-only-I" |
| This prints the -I part of "--cflags". That is, it defines the header |
| search path but doesn't specify anything else. |
| .TP |
| .I "--cflags-only-other" |
| This prints parts of "--cflags" not covered by "--cflags-only-I". |
| .TP |
| .I "--libs" |
| This option is identical to "--cflags", only it prints the link |
| flags. As with "--cflags", duplicate flags are merged (maintaining |
| proper ordering), and flags for dependencies are included in the |
| output. |
| .TP |
| .I "--libs-only-L" |
| This prints the -L/-R part of "--libs". That is, it defines the |
| library search path but doesn't specify which libraries to link with. |
| .TP |
| .I "--libs-only-l" |
| This prints the -l part of "--libs" for the libraries specified on |
| the command line. Note that the union of "--libs-only-l" and |
| "--libs-only-L" may be smaller than "--libs", due to flags such as |
| -rdynamic. |
| .TP |
| .I "--libs-only-other" |
| This prints the parts of "--libs" not covered by "--libs-only-L" and |
| "--libs-only-l", such as "--pthread". |
| .TP |
| .I "--variable=VARIABLENAME" |
| This returns the value of a variable defined in a package's \fI.pc\fP |
| file. Most packages define the variable "prefix", for example, so you |
| can say: |
| .nf |
| $ pkg-config --variable=prefix glib-2.0 |
| /usr/ |
| .fi |
| .TP |
| .I "--define-variable=VARIABLENAME=VARIABLEVALUE" |
| This sets a global value for a variable, overriding the value in any |
| .I .pc |
| files. Most packages define the variable "prefix", for example, so you |
| can say: |
| .nf |
| $ pkg-config --print-errors --define-variable=prefix=/foo \e |
| --variable=prefix glib-2.0 |
| /foo |
| .fi |
| .TP |
| .I "--print-variables" |
| Returns a list of all variables defined in the package. |
| |
| .TP |
| .I "--uninstalled" |
| Normally if you request the package "foo" and the package |
| "foo-uninstalled" exists, \fIpkg-config\fP will prefer the |
| "-uninstalled" variant. This allows compilation/linking against |
| uninstalled packages. If you specify the "--uninstalled" option, |
| .I pkg-config |
| will return successfully if any "-uninstalled" packages are being |
| used, and return failure (false) otherwise. (The |
| PKG_CONFIG_DISABLE_UNINSTALLED environment variable keeps |
| .I pkg-config |
| from implicitly choosing "-uninstalled" packages, so if that variable |
| is set, they will only have been used if you pass a name like |
| "foo-uninstalled" on the command line explicitly.) |
| .TP |
| .I "--exists" |
| .TP |
| .I "--atleast-version=VERSION" |
| .TP |
| .I "--exact-version=VERSION" |
| .TP |
| .I "--max-version=VERSION" |
| These options test whether the package or list of packages on the |
| command line are known to \fIpkg-config\fP, and optionally whether the |
| version number of a package meets certain constraints. If all packages |
| exist and meet the specified version constraints, |
| .I pkg-config |
| exits successfully. Otherwise it exits unsuccessfully. Only the first |
| VERSION comparing option will be honored. Subsequent options of this |
| type will be ignored. |
| |
| Rather than using the version-test options, you can simply give a version |
| constraint after each package name, for example: |
| .nf |
| $ pkg-config --exists 'glib-2.0 >= 1.3.4 libxml = 1.8.3' |
| .fi |
| Remember to use \-\-print-errors if you want error messages. When no |
| output options are supplied to \fIpkg-config\fP, \-\-exists is implied. |
| .TP |
| .I "--validate" |
| Checks the syntax of a package's |
| .I .pc |
| file for validity. This is the same as \-\-exists except that |
| dependencies are not verified. This can be useful for package developers |
| to test their |
| .I .pc |
| file prior to release: |
| .nf |
| $ pkg-config --validate ./my-package.pc |
| .fi |
| .TP |
| .I "--msvc-syntax" |
| This option is available only on Windows. It causes \fIpkg-config\fP |
| to output -l and -L flags in the form recognized by the Microsoft |
| Visual C++ command-line compiler, \fIcl\fP. Specifically, instead of |
| .I -Lx:/some/path |
| it prints \fI/libpath:x/some/path\fP, and instead of \fI-lfoo\fP it |
| prints \fIfoo.lib\fP. Note that the --libs output consists of flags |
| for the linker, and should be placed on the cl command line after a |
| /link switch. |
| .TP |
| .I "--define-prefix" |
| .TQ |
| .I "--dont-define-prefix" |
| These options control whether |
| .I pkg-config |
| overrides the value of the variable |
| .I prefix |
| in each .pc file. With \-\-define-prefix, |
| .I pkg-config |
| uses the installed location of the .pc file to determine the |
| prefix. \-\-dont-define-prefix prevents this behavior. The default is |
| usually \-\-define-prefix. |
| |
| When this feature is enabled and a .pc file is found in a directory named |
| .IR pkgconfig , |
| the prefix for that package is assumed to be the grandparent of the |
| directory where the file was found, and the |
| .I prefix |
| variable is overridden for that file accordingly. |
| |
| If the value of a variable in a .pc file begins with the original, |
| non-overridden, value of the |
| .I prefix |
| variable, then the overridden value of |
| .I prefix |
| is used instead. This allows the feature to work even when the variables |
| have been expanded in the .pc file. |
| .TP |
| .I "--prefix-variable=PREFIX" |
| Set the name of the variable that |
| .I pkg-config |
| overrides instead of |
| .I prefix |
| when using the \-\-define-prefix feature. |
| .TP |
| .I "--static" |
| Output libraries suitable for static linking. That means including |
| any private libraries in the output. This relies on proper tagging in |
| the .pc files, else a too large number of libraries will ordinarily be |
| output. |
| .TP |
| .I "--list-all" |
| List all modules found in the \fIpkg-config\fP path. |
| .TP |
| .I "--print-provides" |
| List all modules the given packages provides. |
| .TP |
| .I "--print-requires" |
| List all modules the given packages requires. |
| .TP |
| .I "--print-requires-private" |
| List all modules the given packages requires for static linking (see --static). |
| .\" |
| .SH ENVIRONMENT VARIABLES |
| .TP |
| .I "PKG_CONFIG_PATH" |
| A colon-separated (on Windows, semicolon-separated) list of |
| directories to search for .pc files. The default directory will |
| always be searched after searching the path; the default is |
| .I \%libdir/\fPpkgconfig:\fIdatadir\fP/pkgconfig where \fIlibdir\fP is |
| the libdir for \fIpkg-config\fP and \fIdatadir\fP is the datadir |
| for \fIpkg-config\fP when it was installed. |
| .TP |
| .I "PKG_CONFIG_DEBUG_SPEW" |
| If set, causes \fIpkg-config\fP to print all kinds of |
| debugging information and report all errors. |
| .TP |
| .I "PKG_CONFIG_TOP_BUILD_DIR" |
| A value to set for the magic variable \fIpc_top_builddir\fP |
| which may appear in \fI.pc\fP files. If the environment variable is |
| not set, the default value '$(top_builddir)' will be used. This |
| variable should refer to the top builddir of the Makefile where the |
| compile/link flags reported by \fIpkg-config\fP will be used. |
| This only matters when compiling/linking against a package that hasn't |
| yet been installed. |
| .TP |
| .I "PKG_CONFIG_DISABLE_UNINSTALLED" |
| Normally if you request the package "foo" and the package |
| "foo-uninstalled" exists, \fIpkg-config\fP will prefer the |
| "-uninstalled" variant. This allows compilation/linking against |
| uninstalled packages. If this environment variable is set, it |
| disables said behavior. |
| .TP |
| .I "PKG_CONFIG_SYSTEM_INCLUDE_PATH" |
| A path variable containing system directories searched by the compiler. |
| This is normally |
| .IR /usr/include . |
| .TP |
| .I "CPATH" |
| .TQ |
| .I "C_INCLUDE_PATH" |
| .TQ |
| .I "CPLUS_INCLUDE_PATH" |
| Additional paths to append to |
| .IR "PKG_CONFIG_SYSTEM_INCLUDE_PATH" . |
| These correspond to environment variables used by many compilers to |
| affect the header search path. These are ignored on Windows builds when |
| \-\-msvc-syntax is in use. |
| .TP |
| .I "INCLUDE" |
| Additional paths to append to |
| .IR "PKG_CONFIG_SYSTEM_INCLUDE_PATH" |
| on Windows builds when \-\-msvc-syntax is in use. This corresponds to |
| the environment variable used by MSVC to add directories to the include |
| file search path. |
| .TP |
| .I "PKG_CONFIG_ALLOW_SYSTEM_CFLAGS" |
| Don't strip system paths out of Cflags. See |
| .I "PKG_CONFIG_SYSTEM_INCLUDE_PATH" |
| for the definition of system paths. |
| .TP |
| .I "PKG_CONFIG_SYSTEM_LIBRARY_PATH" |
| A path variable containing system directories searched by the linker. |
| This is normally |
| .I /usr/lib:/lib |
| but is dependent on the |
| .I pkg-config |
| build and can contain other directories such as |
| .IR /usr/lib64 . |
| .TP |
| .I "PKG_CONFIG_ALLOW_SYSTEM_LIBS" |
| Don't strip system paths out of Libs. See |
| .I "PKG_CONFIG_SYSTEM_LIBRARY_PATH" |
| for the definition of system paths. |
| .TP |
| .I "PKG_CONFIG_SYSROOT_DIR" |
| Modify -I and -L to use the directories located in target sysroot. |
| this option is useful when cross-compiling packages that use pkg-config |
| to determine CFLAGS and LDFLAGS. -I and -L are modified to point to |
| the new system root. this means that a -I/usr/include/libfoo will |
| become -I/var/target/usr/include/libfoo with a PKG_CONFIG_SYSROOT_DIR |
| equal to /var/target (same rule apply to -L) |
| .TP |
| .I "PKG_CONFIG_LIBDIR" |
| Replaces the default |
| .I pkg-config |
| search directory, usually |
| .IR /usr/lib/pkgconfig : /usr/share/pkgconfig . |
| .TP |
| .I "PKG_CONFIG_$PACKAGE_$VARIABLE" |
| Overrides the variable VARIABLE in the package PACKAGE. The environment |
| variable should have the package name and package variable upper cased |
| with non-alphanumeric characters converted to underscores. For example, |
| setting PKG_CONFIG_GLADEUI_2_0_CATALOGDIR will override the variable |
| "catalogdir" in the "gladeui-2.0" package. |
| .\" |
| .SH PKG-CONFIG DERIVED VARIABLES |
| .I pkg-config |
| sets a few metadata variables that can be used in .pc files or queried |
| at runtime. |
| .TP |
| .I pc_path |
| The default search path used by |
| .I pkg-config |
| when searching for .pc files. This can be used in a query for the |
| .I pkg-config |
| module itself itself: |
| .nf |
| $ pkg-config --variable pc_path pkg-config |
| .fi |
| .TP |
| .I pcfiledir |
| The installed location of the .pc file. This can be used to query the |
| location of the .pc file for a particular module, but it can also be |
| used to make .pc files relocatable. For instance: |
| .nf |
| prefix=${pcfiledir}/../.. |
| exec_prefix=${prefix} |
| libdir=${exec_prefix}/lib |
| includedir=${prefix}/include |
| .fi |
| .TP |
| .I pc_sysrootdir |
| The sysroot directory set by the user. When the sysroot directory has |
| not been set, this value is |
| .IR / . |
| See the |
| .I PKG_CONFIG_SYSROOT_DIR |
| environment variable for more details. |
| .TP |
| .I pc_top_builddir |
| Location of the user's top build directory when calling |
| .IR pkg-config. |
| This is useful to dynamically set paths in uninstalled .pc files. See |
| the |
| .I PKG_CONFIG_TOP_BUILD_DIR |
| environment variable for more details. |
| .\" |
| .SH WINDOWS SPECIALITIES |
| The |
| .I pkg-config |
| default search path is ignored on Windows. Instead, the search path is |
| constructed by using the installed directory of |
| .I pkg-config |
| and then appending |
| .I lib\epkgconfig |
| and |
| .IR share\epkgconfig . |
| This can be augmented or replaced using the standard environment |
| variables described above. |
| .\" |
| .SH AUTOCONF MACROS |
| .TP |
| .I "PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])" |
| |
| The macro PKG_CHECK_MODULES can be used in \fIconfigure.ac\fP to |
| check whether modules exist. A typical usage would be: |
| .nf |
| PKG_CHECK_MODULES([MYSTUFF], [gtk+-2.0 >= 1.3.5 libxml = 1.8.4]) |
| .fi |
| |
| This would result in MYSTUFF_LIBS and MYSTUFF_CFLAGS substitution |
| variables, set to the libs and cflags for the given module list. |
| If a module is missing or has the wrong version, by default configure |
| will abort with a message. To replace the default action, |
| specify an \%ACTION-IF-NOT-FOUND. \%PKG_CHECK_MODULES will not print any |
| error messages if you specify your own ACTION-IF-NOT-FOUND. |
| However, it will set the variable MYSTUFF_PKG_ERRORS, which you can |
| use to display what went wrong. |
| |
| Note that if there is a possibility the first call to |
| PKG_CHECK_MODULES might not happen, you should be sure to include an |
| explicit call to PKG_PROG_PKG_CONFIG in your configure.ac. |
| |
| Also note that repeated usage of VARIABLE-PREFIX is not recommended. |
| After the first successful usage, subsequent calls with the same |
| VARIABLE-PREFIX will simply use the _LIBS and _CFLAGS variables set from |
| the previous usage without calling \fIpkg-config\fP again. |
| .\" |
| .TP |
| .I "PKG_PREREQ(MIN-VERSION)" |
| Checks that the version of the pkg-config autoconf macros in use is at |
| least MIN-VERSION. This can be used to ensure a particular pkg-config |
| macro will be available. |
| .\" |
| .TP |
| .I "PKG_PROG_PKG_CONFIG([MIN-VERSION])" |
| |
| Defines the PKG_CONFIG variable to the best pkg-config available, |
| useful if you need pkg-config but don't want to use PKG_CHECK_MODULES. |
| |
| If the first call to PKG_PROG_PKG_CONFIG is conditional, then it will |
| not work correctly in all cases. Since many of the other macros such as |
| PKG_CHECK_MODULES require PKG_PROG_PKG_CONFIG to know which pkg-config |
| program to run, PKG_PROG_PKG_CONFIG may be run for the first time from a |
| conditional from one of these macros. Therefore, if any of the |
| pkg-config macros will be used under a conditional, it's best to run |
| PKG_PROG_PKG_CONFIG before any of the other macros are used. |
| |
| .TP |
| .I "PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])" |
| Enables static linking through --static prior to calling |
| PKG_CHECK_MODULES. |
| .TP |
| .I "PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])" |
| |
| Check to see whether a particular set of modules exists. Similar |
| to PKG_CHECK_MODULES(), but does not set variables or print errors. |
| |
| Similar to PKG_CHECK_MODULES, make sure that the first instance of this |
| or PKG_CHECK_MODULES is called, or make sure to call PKG_PROG_PKGCONFIG |
| manually. |
| |
| .TP |
| .I "PKG_INSTALLDIR(DIRECTORY)" |
| |
| Substitutes the variable pkgconfigdir as the location where a module |
| should install pkg-config .pc files. By default the directory is |
| $libdir/pkgconfig, but the default can be changed by passing DIRECTORY. |
| The user can override through the --with-pkgconfigdir parameter. |
| .TP |
| .I "PKG_NOARCH_INSTALLDIR(DIRECTORY)" |
| |
| Substitutes the variable noarch_pkgconfigdir as the location where a |
| module should install arch-independent pkg-config .pc files. By default |
| the directory is $datadir/pkgconfig, but the default can be changed by |
| passing DIRECTORY. The user can override through the |
| --with-noarch-pkgconfigdir parameter. |
| .TP |
| .I "PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])" |
| |
| Retrieves the value of the pkg-config variable CONFIG-VARIABLE from |
| MODULE and stores it in VARIABLE. Note that repeated usage of VARIABLE |
| is not recommended as the check will be skipped if the variable is |
| already set. |
| |
| .SH METADATA FILE SYNTAX |
| To add a library to the set of packages \fIpkg-config\fP knows about, |
| simply install a \fI.pc\fP file. You should install this file to |
| .I libdir\fP/pkgconfig. |
| .PP |
| Here is an example file: |
| .nf |
| # This is a comment |
| prefix=/home/hp/unst # this defines a variable |
| exec_prefix=${prefix} # defining another variable in terms of the first |
| libdir=${exec_prefix}/lib |
| includedir=${prefix}/include |
| |
| Name: GObject # human-readable name |
| Description: Object/type system for GLib # human-readable description |
| Version: 1.3.1 |
| URL: http://www.gtk.org |
| Requires: glib-2.0 = 1.3.1 |
| Conflicts: foobar <= 4.5 |
| Libs: -L${libdir} -lgobject-1.3 |
| Libs.private: -lm |
| Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib/include |
| .fi |
| .PP |
| You would normally generate the file using configure, so that the |
| prefix, etc. are set to the proper values. The GNU Autoconf manual |
| recommends generating files like .pc files at build time rather than |
| configure time, so when you build the .pc file is a matter of taste |
| and preference. |
| .PP |
| Files have two kinds of line: keyword lines start with a keyword plus |
| a colon, and variable definitions start with an alphanumeric string |
| plus an equals sign. Keywords are defined in advance and have special |
| meaning to \fIpkg-config\fP; variables do not, you can have any |
| variables that you wish (however, users may expect to retrieve the |
| usual directory name variables). |
| .PP |
| Note that variable references are written "${foo}"; you can escape |
| literal "${" as "$${". |
| .TP |
| .I "Name:" |
| This field should be a human-readable name for the package. Note that |
| it is not the name passed as an argument to \fIpkg-config\fP. |
| .TP |
| .I "Description:" |
| This should be a brief description of the package |
| .TP |
| .I "URL:" |
| An URL where people can get more information about and download the package |
| .TP |
| .I "Version:" |
| This should be the most-specific-possible package version string. |
| .TP |
| .I "Requires:" |
| This is a comma-separated list of packages that are required by your |
| package. Flags from dependent packages will be merged in to the flags |
| reported for your package. Optionally, you can specify the version |
| of the required package (using the operators =, <, >, >=, <=); |
| specifying a version allows \fIpkg-config\fP to perform extra sanity |
| checks. You may only mention the same package one time on the |
| .I "Requires:" |
| line. If the version of a package is unspecified, any version will |
| be used with no checking. |
| .TP |
| .I Requires.private: |
| A list of packages required by this package. The difference from |
| .I Requires |
| is that the packages listed under |
| .I Requires.private |
| are not taken into account when a flag list is computed for |
| dynamically linked executable (i.e., when \-\-static was not |
| specified). In the situation where each .pc file corresponds to a |
| library, |
| .I Requires.private |
| shall be used exclusively to specify the dependencies between the |
| libraries. |
| .TP |
| .I "Conflicts:" |
| This optional line allows \fIpkg-config\fP to perform additional |
| sanity checks, primarily to detect broken user installations. The |
| syntax is the same as |
| .I "Requires:" |
| except that |
| you can list the same package more than once here, for example |
| "foobar = 1.2.3, foobar = 1.2.5, foobar >= 1.3", if you have reason to |
| do so. If a version isn't specified, then your package conflicts with |
| all versions of the mentioned package. |
| If a user tries to use your package and a conflicting package at the |
| same time, then \fIpkg-config\fP will complain. |
| .TP |
| .I "Libs:" |
| This line should give the link flags specific to your package. |
| Don't add any flags for required packages; \fIpkg-config\fP will |
| add those automatically. |
| .TP |
| .I "Libs.private:" |
| This line should list any private libraries in use. Private libraries |
| are libraries which are not exposed through your library, but are |
| needed in the case of static linking. This differs from |
| .I Requires.private |
| in that it references libraries that do not have package files |
| installed. |
| .TP |
| .I "Cflags:" |
| This line should list the compile flags specific to your package. |
| Don't add any flags for required packages; \fIpkg-config\fP will |
| add those automatically. |
| .\" |
| .SH AUTHOR |
| |
| .I pkg-config |
| was written by James Henstridge, rewritten by Martijn van Beers, and |
| rewritten again by Havoc Pennington. Tim Janik, Owen Taylor, and Raja |
| Harinath submitted suggestions and some code. |
| .I gnome-config |
| was written by Miguel de Icaza, Raja Harinath and various hackers in |
| the GNOME team. It was inspired by Owen Taylor's \fIgtk-config\fP |
| program. |
| .\" |
| .SH BUGS |
| |
| \fIpkg-config\fP does not handle mixing of parameters with and without |
| = well. Stick with one. |
| |
| Bugs can be reported at http://bugs.freedesktop.org/ under the |
| .I pkg-config |
| component. |