Using the pkg-config macro PKG_CHECK_MODULES failing

ericg picture ericg · Dec 20, 2011 · Viewed 14k times · Source

I'm sure this is a fairly simple problem. I have a very simple configure.ac file which I am using to just learn how autoconf & pkg-config work together. The confgure.ac file looks like:

AC_PREREQ(2.61)
AC_INIT(autoconf_test, 1.0, [email protected])

PKG_CHECK_MODULES(libusbmuxd, libusbmuxd >= 0.1.4)

I can then execute autoconf from the command line and it does produce a configure script. However, when I run the configure script, I get the following error:

./configure: line 1618: syntax error near unexpected token `libusbmuxd,'
./configure: line 1618: `PKG_CHECK_MODULES(libusbmuxd, libusbmuxd >= 0.1.4)'

If I use the pkg-config program from the command line to check to see whether it can find this library, it succeeds.

/usr/lib/pkgconfig $pkg-config --libs --cflags --modversion libusbmuxd

1.0.7
-I/usr/local/Cellar/usbmuxd/1.0.7/include  -L/usr/local/Cellar/usbmuxd/1.0.7/lib -lusbmuxd  

So, it seems clear that for some reason the PGK_CHECK_MODULE macro cannot be located and I am not sure why.

This probably isn't OS specific, but I am using Mac OS X 10.6.8.

Answer

William Pursell picture William Pursell · Dec 21, 2011

When you are bootstrapping (ie, running autoreconf), aclocal is unable to find pkg.m4. This is because pkg-config was either not installed or has been installed somewhere that aclocal does not know about. (ie, it was installed with a different prefix than automake.) There is actually a large school of thought that says that the best way to use pkg-config with the autotools is to not use it. If you look through the autoconf mailing list archive, you will see this debated ad-nauseum. I'm not saying that you should avoid using pkg-config (although I do believe it is best to do so), but please be aware that many people to recommend avoiding it completely.