Annotation of src/usr.bin/pkg-config/pkg-config.1, Revision 1.11
1.11 ! jmc 1: .\" $OpenBSD: pkg-config.1,v 1.10 2006/12/04 08:37:17 jmc Exp $
1.1 ckuethe 2: .\"
3: .\" Copyright (c) 2006 Chris Kuethe <ckuethe@openbsd.org>
4: .\"
5: .\" Permission to use, copy, modify, and distribute this software for any
6: .\" purpose with or without fee is hereby granted, provided that the above
7: .\" copyright notice and this permission notice appear in all copies.
8: .\"
9: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15: .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16: .\"
17: .Dd November 27, 2006
1.6 jmc 18: .Dt PKG-CONFIG 1
1.1 ckuethe 19: .Os
20: .Sh NAME
21: .Nm pkg-config
22: .Nd fetch metadata about installed software packages
23: .Sh SYNOPSIS
24: .Nm pkg-config
25: .Op Ar options
26: .Ar pkg-name Op Ar pkg-name ...
27: .Sh DESCRIPTION
28: The
29: .Nm
1.10 jmc 30: utility retrieves metadata about the installation of software packages.
1.1 ckuethe 31: This metadata includes version, compiler and linker flags, and dependency
32: information.
1.6 jmc 33: It is inspired by, and intended to operate as a drop-in replacement to,
34: the program of the same name available from freedesktop.org.
1.1 ckuethe 35: .Pp
36: Metadata is stored in files named after the package they describe; the
37: Yoyodyne package would likely be described by "yoyodyne.pc".
1.2 ckuethe 38: Not all software packages provide
39: .Nm
1.6 jmc 40: metadata.
41: Packages controlled by the
1.1 ckuethe 42: .Xr ports 7
1.2 ckuethe 43: system store their metadata, if provided, in
44: .Pa ${LOCALBASE}/lib/pkgconfig ;
45: the X Window System stores its metadata in
1.6 jmc 46: .Pa ${X11BASE}/lib/pkgconfig .
1.2 ckuethe 47: The
48: .Nm
49: utility will search these locations by default.
1.1 ckuethe 50: .Pp
1.2 ckuethe 51: Because
52: .Nm
53: attempts to output the full set of compiler or linker flags required to
54: use a package, it will also output the flags required for any prerequisite
55: packages.
1.6 jmc 56: If the "foo" package depends on the "bar" package, "pkg-config --cflags foo"
1.2 ckuethe 57: might output something like "-I/usr/local/include/foo
58: -I/usr/local/include/bar", even though the compiler flags for "bar" were not
59: explicitly requested.
1.1 ckuethe 60: .Pp
61: The options are as follows:
62: .Bl -tag -width Ds
1.7 jmc 63: .It Cm --atleast-pkgconfig-version Ar version
1.4 ckuethe 64: Exit with error if the version of
1.1 ckuethe 65: .Nm
1.4 ckuethe 66: is greater than or equal to the specified version.
1.7 jmc 67: .It Cm --atleast-version Ar version
68: Exit with error if the specified package's version is not greater than
69: or equal to the specified version.
70: .It Cm --cflags
1.1 ckuethe 71: Return all compiler flags required to compile against the package.
1.7 jmc 72: .It Cm --cflags-only-I
1.1 ckuethe 73: Return only the include path flags required to compile against the package.
1.7 jmc 74: .It Cm --cflags-only-other
1.1 ckuethe 75: Return all compiler flags, other than the include path flags, required to
76: compile against the package.
1.7 jmc 77: .It Cm --debug
78: Enable internal development and debugging messages.
79: .It Cm --errors-to-stdout
80: Direct error messages to stdout rather than stderr.
81: .It Cm --exists
82: Return true if all the specified packages are installed.
1.9 jmc 83: This is the default operation.
84: .It Cm --help \*(Ba --usage
1.7 jmc 85: Print a help message and exit.
86: .It Cm --libs
1.8 jmc 87: Return all linker flags required to link against the package.
1.7 jmc 88: .It Cm --libs-only-l
1.1 ckuethe 89: Return only the library (-lwhatever) flags required to link against
90: the package.
1.7 jmc 91: .It Cm --libs-only-L
1.1 ckuethe 92: Return only the library path (-L/path/to/lib) flags required to link
93: against the package.
1.7 jmc 94: .It Cm --libs-only-other
1.1 ckuethe 95: Return linker flags, other than the library and path flags, required to
96: compile against the package.
1.7 jmc 97: .It Cm --list-all
98: List all installed packages and exit.
99: .It Cm --modversion
1.3 ckuethe 100: Fetch package version.
101: If no package is given,
102: .Nm
103: returns its own version.
1.7 jmc 104: .It Cm --print-errors
105: Print error messages and exit with an error when errors occur.
1.9 jmc 106: This is the default operation.
1.7 jmc 107: .It Cm --silence-errors
108: Do not print error messages, just exit with an error.
109: .It Cm --static
110: Return the compiler and/or linker flags required for static linking.
111: .It Cm --uninstalled
112: Allow packages not controlled by
113: .Nm
114: to be used.
115: .It Cm --variable Ar name
1.1 ckuethe 116: Fetch the value of the named variable.
1.7 jmc 117: .It Cm --version
118: Print version of
119: .Nm
120: and exit.
1.1 ckuethe 121: .El
1.9 jmc 122: .Pp
123: .Ex -std pkg-config
1.1 ckuethe 124: .Sh ENVIRONMENT
125: .Bl -tag -width PKG_CONFIG_PATH
126: .It Ev PKG_CONFIG_PATH
127: This can be used to specify a colon-separated list of paths to search for
128: package files.
129: If given, this list of paths is prepended to the standard search path.
130: .El
131: .Sh SEE ALSO
132: .Xr pkg_info 1 ,
133: .Xr ports 7
134: .Sh HISTORY
135: The
136: .Nm
137: utility first appeared in
1.11 ! jmc 138: .Ox 4.1 .