PKGCONF(1)

NAME
pkg-config - a system for configuring build dependency information

SYNOPSIS
pkg-config [options] module ...

DESCRIPTION
pkg-config is a program which helps to configure compiler and linker flags for development libraries. This allows build systems to detect other dependencies and use them with the system toolchain.

GENERAL OPTIONS

--version
    Display the supported pkg-config version and exit.

--atleast-pkg-configig-version=VERSION
    Exit with error if we do not support the requested pkg-config version.

--errors-to-stdout
    Print all error, warning, and debugging messages to standard output instead of to standard error output.

--print-errors
    Print some messages about fatal errors to standard error output that would otherwise be omitted. This option is implied by many other options, but not by all. It can be overridden with --silence-errors.

--silence-errors
    Do not print any error, warning, or debugging messages at all. Overrides all of --debug, --errors-to-stdout, and --print-errors.

--debug
    Print some non-fatal warning messages to standard error output that would otherwise silently be ignored. If pkg-config was compiled without defining the preprocessor macro PKGCONF_LITE, this option also prints many debugging messages to standard error output.

--list-all
    Walk all directories listed in the PKG_CONFIG_PATH environmental variable and display information on packages which have registered information there.

--simulate
    Simulates resolving a dependency graph based on the requested modules on the command line. Dumps a series of trees denoting pkg-config's resolver state.

--no-cache
    Skip caching packages when they are loaded into the internal resolver. This may result in an alternate dependency graph being computed.

--ignore-conflicts
    Ignore ‘Conflicts’ rules in modules.

--env-only
    Learn about pkg-config's configuration strictly from environmental variables.

--validate package ...
    Validate specific ‘.pc’ files for correctness.

--maximum-traverse-depth=DEPTH
    Impose a limit on the allowed depth in the dependency graph. For example, a depth of 2 will restrict the resolver from acting on child dependencies of modules added to the resolver's solution.

--static
    Compute a deeper dependency graph and use compiler/linker flags intended for static linking.

--shared
    Compute a simple dependency graph that is only suitable for shared linking.

--pure
    Treats the computed dependency graph as if it were pure. This is mainly intended for use with the --static flag.

--no-provides
    Ignore ‘Provides’ rules in modules when resolving dependencies.

--with-path=PATH
    Adds a new module search path to pkg-config's dependency resolver. Paths added in this way are given preference before other paths.

--define-prefix
    Attempts to determine the prefix variable to use for CFLAGS and LIBS entry relocations. This is mainly useful for platforms where framework SDKs are relocatable, such as Windows.

--dont-define-prefix
    Disables the ‘define-prefix’ feature.

--prefix-variable=VARIABLE
    Sets the ‘prefix’ variable used by the ‘define-prefix’ feature.

--relocate=PATH
    Relocates a path using the pkg-config_path_relocate API. This is mainly used by the testsuite to provide a guaranteed interface to the system's path relocation backend.

--dont-relocate-paths
    Disables the path relocation feature.

MODULE-SPECIFIC OPTIONS

--atleast-version=VERSION
    Exit with error if a module's version is less than the specified version.

--exact-version=VERSION
    Exit with error if a module's version is not exactly the specified version.

--max-version=VERSION
    Exit with error if a module's version is greater than the specified version.

--exists
    Exit with a non-zero result if the dependency resolver was unable to find all of the requested modules.

--uninstalled
    Exit with a non-zero result if the dependency resolver uses an ‘uninstalled’ module as part of its solution.

--no-uninstalled
    Forbids the dependency resolver from considering 'uninstalled' modules as part of a solution.

QUERY-SPECIFIC OPTIONS

--cflags, --cflags-only-I, --cflags-only-other
    Print all compiler flags required to compile against the module, or only the include path (-I) flags, or only the compiler flags that are not include path flags, respectively.

--libs, --libs-only-L, --libs-only-l, --libs-only-other
    Print all linker flags required to link against the module, or only the library path (-L) flags, or only the library (-l) flags, or only the linker flags that are neither library path nor library flags, respectively.

--keep-system-cflags, --keep-system-libs
    Keep CFLAGS or linker flag fragments that would be filtered due to being included by default in the compiler.

--define-variable=VARNAME=VALUE
    Define VARNAME as VALUE. Variables are used in query output, and some modules' results may change based on the presence of a variable definition.

--print-variables
    Print all seen variables for a module to the output channel.

--print-provides
    Print all relevant ‘Provides’ entries for a module to the output channel.

--variable=VARNAME
    Print the value of VARNAME.

--print-requires, --print-requires-private
    Print the modules included in either the Requires field or the Requires.private field.

--digraph
    Dump the dependency resolver's solution as a graphviz ‘dot’ file. This can be used with graphviz to visualize module interdependencies.

--path
    Display the filenames of the ‘.pc’ files used by the dependency resolver for a given dependency set.

--env=VARNAME
    Print the requested values as variable declarations in a similar format as the env(1) command.

--fragment-filter=TYPES
    Filter the fragment lists for the specified types.

--modversion
    Print the version of the queried module.

ENVIRONMENT

PKG_CONFIG_PATH
    List of secondary directories where ‘.pc’ files are looked up.

PKG_CONFIG_LIBDIR
    List of primary directories where ‘.pc’ files are looked up.

PKG_CONFIG_SYSROOT_DIR
    ‘sysroot’ directory, will be prepended to every path defined in PKG_CONFIG_PATH. Useful for cross compilation.

PKG_CONFIG_TOP_BUILD_DIR
    Provides an alternative setting for the ‘pc_top_builddir’ global variable.

PKG_CONFIG_PURE_DEPGRAPH
    If set, enables the same behaviour as the --pure flag.

PKG_CONFIG_SYSTEM_INCLUDE_PATH
    List of paths that are considered system include paths by the toolchain. This is a pkg-config-specific extension.

PKG_CONFIG_SYSTEM_LIBRARY_PATH
    List of paths that are considered system library paths by the toolchain. This is a pkg-config-specific extension.

PKG_CONFIG_DISABLE_UNINSTALLED
    If set, enables the same behaviour as the --no-uninstalled flag.

PKG_CONFIG_LOG
    ‘logfile’ which is used for dumping audit information concerning installed module versions.

PKG_CONFIG_DEBUG_SPEW
    If set, enables additional debug logging. The format of the debug log messages is implementation-specific.

PKG_CONFIG_DONT_RELOCATE_PATHS
    If set, disables the path relocation feature.

PKG_CONFIG_MSVC_SYNTAX
    If set, uses MSVC syntax for fragments.

PKG_CONFIG_FDO_SYSROOT_RULES
    If set, follow the sysroot prefixing rules that freedesktop.org pkg-config uses.

DESTDIR
    If set to PKG_CONFIG_SYSROOT_DIR, assume that PKG_CONFIG_FDO_SYSROOT_RULES is set.

EXAMPLES
Displaying the CFLAGS of a package:
    $ pkg-config --cflags foo
    -fPIC -I/usr/include/foo

SEE ALSO
pc(5), pkg.m4(7)