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
