1 # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
3 # Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 # As a special exception to the GNU General Public License, if you
20 # distribute this file as part of a program that contains a
21 # configuration script generated by Autoconf, you may include it under
22 # the same distribution terms that you use for the rest of that program.
24 # PKG_PROG_PKG_CONFIG([MIN-VERSION])
25 # ----------------------------------
26 AC_DEFUN([PKG_PROG_PKG_CONFIG],
27 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
28 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
29 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
30 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
31 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
33 if test -n "$PKG_CONFIG"; then
34 _pkg_min_version=m4_default([$1], [0.9.0])
35 AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
36 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
44 ])# PKG_PROG_PKG_CONFIG
46 # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
48 # Check to see whether a particular set of modules exists. Similar
49 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
52 # Similar to PKG_CHECK_MODULES, make sure that the first instance of
53 # this or PKG_CHECK_MODULES is called, or make sure to call
54 # PKG_CHECK_EXISTS manually
55 # --------------------------------------------------------------
56 AC_DEFUN([PKG_CHECK_EXISTS],
57 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
58 if test -n "$PKG_CONFIG" && \
59 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
60 m4_ifval([$2], [$2], [:])
66 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
67 # ---------------------------------------------
68 m4_define([_PKG_CONFIG],
69 [if test -n "$$1"; then
71 elif test -n "$PKG_CONFIG"; then
72 PKG_CHECK_EXISTS([$3],
73 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
80 # _PKG_SHORT_ERRORS_SUPPORTED
81 # -----------------------------
82 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
83 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
84 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
85 _pkg_short_errors_supported=yes
87 _pkg_short_errors_supported=no
89 ])# _PKG_SHORT_ERRORS_SUPPORTED
92 # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
93 # [ACTION-IF-NOT-FOUND])
96 # Note that if there is a possibility the first call to
97 # PKG_CHECK_MODULES might not happen, you should be sure to include an
98 # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
101 # --------------------------------------------------------------
102 AC_DEFUN([PKG_CHECK_MODULES],
103 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
104 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
105 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
108 AC_MSG_CHECKING([for $1])
110 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
111 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
113 m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
114 and $1[]_LIBS to avoid the need to call pkg-config.
115 See the pkg-config man page for more details.])
117 if test $pkg_failed = yes; then
118 _PKG_SHORT_ERRORS_SUPPORTED
119 if test $_pkg_short_errors_supported = yes; then
120 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
122 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
124 # Put the nasty error message in config.log where it belongs
125 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
127 ifelse([$4], , [AC_MSG_ERROR(dnl
128 [Package requirements ($2) were not met:
132 Consider adjusting the PKG_CONFIG_PATH environment variable if you
133 installed software in a non-standard prefix.
139 elif test $pkg_failed = untried; then
140 ifelse([$4], , [AC_MSG_FAILURE(dnl
141 [The pkg-config script could not be found or is too old. Make sure it
142 is in your PATH or set the PKG_CONFIG environment variable to the full
147 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
150 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
151 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
153 ifelse([$3], , :, [$3])
155 ])# PKG_CHECK_MODULES
159 dnl a macro to check for ability to create python extensions
160 dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
161 dnl function also defines PYTHON_INCLUDES
162 AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
163 [AC_REQUIRE([AM_PATH_PYTHON])
164 AC_MSG_CHECKING(for headers required to compile python extensions)
165 dnl deduce PYTHON_INCLUDES
166 py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
167 py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
168 PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
169 if test "$py_prefix" != "$py_exec_prefix"; then
170 PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
172 AC_SUBST(PYTHON_INCLUDES)
173 dnl check if the headers exist:
174 save_CPPFLAGS="$CPPFLAGS"
175 CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
176 AC_TRY_CPP([#include <Python.h>],dnl
177 [AC_MSG_RESULT(found)
179 [AC_MSG_RESULT(not found)
181 CPPFLAGS="$save_CPPFLAGS"
185 dnl as-ac-expand.m4 0.2.0 -*- autoconf -*-
186 dnl autostars m4 macro for expanding directories using configure's prefix
188 dnl (C) 2003, 2004, 2005 Thomas Vander Stichele <thomas at apestaart dot org>
190 dnl Copying and distribution of this file, with or without modification,
191 dnl are permitted in any medium without royalty provided the copyright
192 dnl notice and this notice are preserved.
194 dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
197 dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
198 dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
200 AC_DEFUN([AS_AC_EXPAND],
205 dnl first expand prefix and exec_prefix if necessary
207 exec_prefix_save=$exec_prefix
209 dnl if no prefix given, then use /usr/local, the default prefix
210 if test "x$prefix" = "xNONE"; then
211 prefix="$ac_default_prefix"
213 dnl if no exec_prefix given, then use prefix
214 if test "x$exec_prefix" = "xNONE"; then
219 dnl loop until it doesn't change anymore
221 new_full_var="`eval echo $full_var`"
222 if test "x$new_full_var" = "x$full_var"; then break; fi
223 full_var=$new_full_var
227 full_var=$new_full_var
228 AC_SUBST([$1], "$full_var")
230 dnl restore prefix and exec_prefix
232 exec_prefix=$exec_prefix_save