[Expat-discuss] [PATCH] Add pkg-config support

Dan Nicholson dbn.lists at gmail.com
Tue Jul 10 16:48:45 CEST 2007


On 7/10/07, Karl Waclawek <karl at waclawek.net> wrote:
> Dan Nicholson wrote:
> > Karl, just as an example of why people use pkg-config is that it has
> > very good integration with autoconf. Linking to libexpat while
> > checking the version would be simple:
> >
> > PKG_CHECK_MODULES(EXPAT, expat >= 2.0.1, have_expat=true,
> > have_expat=false)
> >
> > This macro is shipped with pkg-config. The results are stored in
> > EXPAT_LIBS and EXPAT_CFLAGS. That would make linking with expat in
> > non-standard locations trivial.
> >
> > Currently, you have to do something like this (from dbus):
> >
> > AC_CHECK_LIB(expat, XML_ParserCreate_MM,
> >             [ AC_CHECK_HEADERS(expat.h, have_expat=true,
> > have_expat=false) ],
> >             have_expat=false)
> >
> > That works, but it doesn't check versions or store any info about
> > directory prefixes in -I or -L. Anything like that is custom shell and
> > prone to errors.
>
> Any idea if this patch will work on all the environments where Expat
> builds now?

pkg-config works on many platforms. But your case is simple. Since
you're just distributing the .pc file and you don't depend on anything
but C libraries, it's someone else's job to figure out whether it
works on their platform with their package. It should, though. All it
lists is the version, the directories, the necessary CFLAGS, and the
necessary LIBS.

As an example, though, Xorg builds on many platforms, and pkg-config
is a foundation of their build system. To give you an idea of how many
packages make use of pkg-config, this is on my Linux system:

$ ls /usr/lib/pkgconfig/ | wc -l
379

--
Dan


More information about the Expat-discuss mailing list