[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pkg-config and autoconf
From: |
lsiden |
Subject: |
Re: pkg-config and autoconf |
Date: |
09 Aug 2003 05:17:53 -0400 |
When examining the Pango distribution as an example, I see there is a
configure.in which uses PKG_CHECK_MODULES (and thus indirectly uses
pkg-config) but no configure.ac. Is this what I need to do in order to
use PKG_CHECK_MODULES, forego configure.ac in favor of configure.in?
The syntax of configure.in looks much more verbose.
On Sat, 2003-08-09 at 05:01, Larry Siden wrote:
> The man page for pkg-config says:
> AUTOCONF MACROS
>
> PKG_CHECK_MODULES(VARIABLEBASE,MODULELIST[,ACTION-IF-FOUND,[ACTION-IF-NOT-FOUND]])
>
> The macro PKG_CHECK_MODULES can be used in configure.in to
> check whether
> modules exist. A typical usage would be:
> PKG_CHECK_MODULES(MYSTUFF, gtk+-2.0 >= 1.3.5 libxml = 1.8.4)
>
> This would result in MYSTUFF_LIBS and MYSTUFF_CFLAGS
> substitution variables,
> set to the libs and cflags for the given module list. If a
> module is miss-
> ing or has the wrong version, by default configure will abort
> with a mes-
> sage. To replace the default action, specify an
> ACTION-IF-NOT-FOUND.
> PKG_CHECK_MODULES will not print any error messages if you
> specify your own
> ACTION-IF-NOT-FOUND. However, it will set the variable
> MYSTUFF_PKG_ERRORS,
> which you can use to display what went wrong.
>
> If you want to use MYSTUFF_LIBS and MYSTUFF_CFLAGS as
> Makefile.am variables
> (i.e. $(MYSTUFF_LIBS)) then you have to add
> AC_SUBST(MYSTUFF_LIBS) to your
> configure.in so automake can find the variable. You don't need
> to do this if
> you use the @MYSTUFF_LIBS@ syntax in your Makefile.am
> instead of
> $(MYSTUFF_LIBS).
> However, autoconf 2.57 doesn't seem to recognize the PKG_CHECK_MODULES
> macro. In addition, the conventional name "configure.in" has been
> replaced by "configure.ac", suggesting that this document may be
> refering to an earlier version of autoconf. If so, can someone tell
> me how I can use pkg-config with the latest version of autoconf?
>
> I am publishing a library that depends on several other non-standard
> (not part of the C/C++ standard) libraries. Instead of forcing the
> package builder (my client/user) to specify the locations of the
> header files for these libraries on the ./configure command line (e.g.
> "./configure CPPFLAGS=-I..."), I would like for the configure script
> to discover where the corresponding include directories are located on
> the user's/build machine, if possible, using pkg-config. How can this
> be accomplished? I'm still a novice with the GNU build tools.
>
> Thanks in adv.,
> Larry Siden