PKGCONF(1) ; SPDX-FileCopyrightText: 2022 pkgconf authors ; SPDX-License-Identifier: ISC # NAME pkgconf - a system for configuring build dependency information # SYNOPSIS *pkgconf* [_options_] [_list of modules_] # DESCRIPTION *pkgconf* 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-pkgconfig-version*=_VERSION_ Exit with error if we do not support the requested pkg-config version. *--errors-to-stdout* Print all errors on the main output stream instead of the error output stream. *--silence-errors* Do not display any errors at all. *--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 pkgconf'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 pkgconf'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 pkgconf'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 pkgconf_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* Display either all CFLAGS, only *-I* CFLAGS or only CFLAGS that are not *-I*. *--libs*, *--libs-only-L*, *--libs-only-l*, *--libs-only-other* Display either all linker flags, only *-L* linker flags, only *-l* linker flags or only linker flags that are not *-L* or *-l*. *--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 pkgconf-specific extension. _PKG_CONFIG_SYSTEM_LIBRARY_PATH_ List of paths that are considered system library paths by the toolchain. This is a pkgconf-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: ``` $ pkgconf --cflags foo -fPIC -I/usr/include/foo ``` # SEE ALSO *pc*(5), *pkg.m4*(7)