forked from ariadne/pkgconf
parent
45d422c484
commit
01921543bf
50
README.md
50
README.md
|
@ -1,27 +1,13 @@
|
||||||
# pkgconf [![Build Status](https://travis-ci.org/pkgconf/pkgconf.svg?branch=master)](https://travis-ci.org/pkgconf/pkgconf)
|
# pkgconf [![Build Status](https://travis-ci.org/pkgconf/pkgconf.svg?branch=master)](https://travis-ci.org/pkgconf/pkgconf)
|
||||||
|
|
||||||
pkgconf is a tool and framework (`libpkgconf`) which provides compiler and linker configuration for
|
`pkgconf` is a program which helps to configure compiler and linker flags for
|
||||||
development frameworks.
|
development frameworks. It is similar to pkg-config from freedesktop.org.
|
||||||
|
|
||||||
## general summary
|
`libpkgconf` is a library which provides access to most of `pkgconf`'s functionality, to allow
|
||||||
|
other tooling such as compilers and IDEs to discover and use frameworks configured by
|
||||||
|
pkgconf.
|
||||||
|
|
||||||
pkgconf is a program which helps to configure compiler and linker flags for
|
## using `pkgconf` with autotools
|
||||||
development frameworks.
|
|
||||||
|
|
||||||
It is similar to pkg-config, but was written from scratch in the summer of 2011
|
|
||||||
to replace pkg-config, which for a while needed itself to build itself (they have
|
|
||||||
since included a 'stripped down copy of glib 2.0') Since then we have worked on
|
|
||||||
improving pkg-config for embedded use.
|
|
||||||
|
|
||||||
If you're wondering what pkg-config is useful for, you might find the tutorial/guide
|
|
||||||
docs for [legacy pkg-config][pcdocs] useful.
|
|
||||||
|
|
||||||
[pcdocs]: http://people.freedesktop.org/~dbn/pkg-config-guide.html
|
|
||||||
|
|
||||||
`libpkgconf` is a library which allows other tools, such as compilers and IDEs, to
|
|
||||||
discover and use frameworks configured by pkgconf.
|
|
||||||
|
|
||||||
## usage
|
|
||||||
|
|
||||||
Implementations of pkg-config, such as pkgconf, are typically used with the
|
Implementations of pkg-config, such as pkgconf, are typically used with the
|
||||||
PKG_CHECK_MODULES autoconf macro. As far as we know, pkgconf is
|
PKG_CHECK_MODULES autoconf macro. As far as we know, pkgconf is
|
||||||
|
@ -39,7 +25,7 @@ can run:
|
||||||
|
|
||||||
$ export PKG_CONFIG=/usr/bin/pkgconf
|
$ export PKG_CONFIG=/usr/bin/pkgconf
|
||||||
|
|
||||||
## technical design (why pkgconf is better for distros)
|
## comparison of `pkgconf` and `pkg-config` dependency resolvers
|
||||||
|
|
||||||
pkgconf builds an acyclic directed dependency graph. This allows for the user
|
pkgconf builds an acyclic directed dependency graph. This allows for the user
|
||||||
to more conservatively link their binaries -- which may be helpful in some
|
to more conservatively link their binaries -- which may be helpful in some
|
||||||
|
@ -50,11 +36,7 @@ other hand builds a database of all known pkg-config files on the system before
|
||||||
attempting to resolve dependencies, which is a considerably slower and less
|
attempting to resolve dependencies, which is a considerably slower and less
|
||||||
efficient design.
|
efficient design.
|
||||||
|
|
||||||
pkgconf also does not bundle any third-party libraries or depend on any third-party
|
## linker flags optimization
|
||||||
libraries, making it a great tool for embedded systems and distributions with
|
|
||||||
security concerns.
|
|
||||||
|
|
||||||
## other differences versus pkg-config
|
|
||||||
|
|
||||||
As previously mentioned, pkgconf makes optimizations to the linker flags in both the
|
As previously mentioned, pkgconf makes optimizations to the linker flags in both the
|
||||||
case of static and shared linking in order to avoid overlinking binaries and also
|
case of static and shared linking in order to avoid overlinking binaries and also
|
||||||
|
@ -68,13 +50,16 @@ Doing so is discouraged by the [freedesktop tutorial][fd-tut] anyway.
|
||||||
|
|
||||||
[fd-tut]: http://people.freedesktop.org/~dbn/pkg-config-guide.html
|
[fd-tut]: http://people.freedesktop.org/~dbn/pkg-config-guide.html
|
||||||
|
|
||||||
Beyond that, we do not provide bug-level compatibility with pkg-config. What that means
|
## compatibility with pkg-config
|
||||||
is, if you feel that there is a legitimate regression verses pkg-config, do let us know,
|
|
||||||
but also make sure that the .pc files are valid and follow the rules of the
|
We do not provide bug-level compatibility with pkg-config.
|
||||||
[pkg-config tutortial][fd-tut], as most likely fixing them to follow the specified
|
|
||||||
|
What that means is, if you feel that there is a legitimate regression versus pkg-config,
|
||||||
|
do let us know, but also make sure that the .pc files are valid and follow the rules of
|
||||||
|
the [pkg-config tutortial][fd-tut], as most likely fixing them to follow the specified
|
||||||
rules will solve the problem.
|
rules will solve the problem.
|
||||||
|
|
||||||
## compiling
|
## compiling `pkgconf` and `libpkgconf`
|
||||||
|
|
||||||
pkgconf is basically compiled the same way any other autotools-based project is
|
pkgconf is basically compiled the same way any other autotools-based project is
|
||||||
compiled:
|
compiled:
|
||||||
|
@ -105,6 +90,9 @@ to make this determination themselves.
|
||||||
|
|
||||||
Release tarballs are available at <http://rabbit.dereferenced.org/~nenolod/distfiles/>.
|
Release tarballs are available at <http://rabbit.dereferenced.org/~nenolod/distfiles/>.
|
||||||
|
|
||||||
|
Please do not use the github tarballs as they are not pristine (instead generated by github everytime
|
||||||
|
a download occurs).
|
||||||
|
|
||||||
## reporting bugs
|
## reporting bugs
|
||||||
|
|
||||||
See <https://github.com/pkgconf/pkgconf/issues>.
|
See <https://github.com/pkgconf/pkgconf/issues>.
|
||||||
|
|
Loading…
Reference in New Issue