README updates (closes #80)

pull/100/head pkgconf-1
William Pitcock 2016-07-10 15:34:49 -05:00
parent 45d422c484
commit 01921543bf
1 changed files with 19 additions and 31 deletions

View File

@ -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>.