1# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- 2# 3# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 4# 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. 9# 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. 14# 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. 18# 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. 23 24# PKG_PROG_PKG_CONFIG([MIN-VERSION]) 25# ---------------------------------- 26AC_DEFUN([PKG_PROG_PKG_CONFIG], 27[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 28m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 29AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl 30if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 31 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 32fi 33if 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 37 AC_MSG_RESULT([yes]) 38 else 39 AC_MSG_RESULT([no]) 40 PKG_CONFIG="" 41 fi 42 43fi[]dnl 44])# PKG_PROG_PKG_CONFIG 45 46# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 47# 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. 50# 51# 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# -------------------------------------------------------------- 56AC_DEFUN([PKG_CHECK_EXISTS], 57[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 58if test -n "$PKG_CONFIG" && \ 59 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 60 m4_ifval([$2], [$2], [:]) 61m4_ifvaln([$3], [else 62 $3])dnl 63fi]) 64 65 66# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 67# --------------------------------------------- 68m4_define([_PKG_CONFIG], 69[if test -n "$$1"; then 70 pkg_cv_[]$1="$$1" 71 elif test -n "$PKG_CONFIG"; then 72 PKG_CHECK_EXISTS([$3], 73 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 74 [pkg_failed=yes]) 75 else 76 pkg_failed=untried 77fi[]dnl 78])# _PKG_CONFIG 79 80# _PKG_SHORT_ERRORS_SUPPORTED 81# ----------------------------- 82AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], 83[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 84if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 85 _pkg_short_errors_supported=yes 86else 87 _pkg_short_errors_supported=no 88fi[]dnl 89])# _PKG_SHORT_ERRORS_SUPPORTED 90 91 92# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], 93# [ACTION-IF-NOT-FOUND]) 94# 95# 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 99# 100# 101# -------------------------------------------------------------- 102AC_DEFUN([PKG_CHECK_MODULES], 103[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 104AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl 105AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl 106 107pkg_failed=no 108AC_MSG_CHECKING([for $1]) 109 110_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) 111_PKG_CONFIG([$1][_LIBS], [libs], [$2]) 112 113m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS 114and $1[]_LIBS to avoid the need to call pkg-config. 115See the pkg-config man page for more details.]) 116 117if 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` 121 else 122 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 123 fi 124 # Put the nasty error message in config.log where it belongs 125 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 126 127 ifelse([$4], , [AC_MSG_ERROR(dnl 128[Package requirements ($2) were not met: 129 130$$1_PKG_ERRORS 131 132Consider adjusting the PKG_CONFIG_PATH environment variable if you 133installed software in a non-standard prefix. 134 135_PKG_TEXT 136])], 137 [AC_MSG_RESULT([no]) 138 $4]) 139elif 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 142is in your PATH or set the PKG_CONFIG environment variable to the full 143path to pkg-config. 144 145_PKG_TEXT 146 147To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], 148 [$4]) 149else 150 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 151 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 152 AC_MSG_RESULT([yes]) 153 ifelse([$3], , :, [$3]) 154fi[]dnl 155])# PKG_CHECK_MODULES 156 157 158 159dnl a macro to check for ability to create python extensions 160dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) 161dnl function also defines PYTHON_INCLUDES 162AC_DEFUN([AM_CHECK_PYTHON_HEADERS], 163[AC_REQUIRE([AM_PATH_PYTHON]) 164AC_MSG_CHECKING(for headers required to compile python extensions) 165dnl deduce PYTHON_INCLUDES 166py_prefix=`$PYTHON -c "import sys; print sys.prefix"` 167py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` 168PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" 169if test "$py_prefix" != "$py_exec_prefix"; then 170 PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" 171fi 172AC_SUBST(PYTHON_INCLUDES) 173dnl check if the headers exist: 174save_CPPFLAGS="$CPPFLAGS" 175CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" 176AC_TRY_CPP([#include <Python.h>],dnl 177[AC_MSG_RESULT(found) 178$1],dnl 179[AC_MSG_RESULT(not found) 180$2]) 181CPPFLAGS="$save_CPPFLAGS" 182]) 183 184 185dnl as-ac-expand.m4 0.2.0 -*- autoconf -*- 186dnl autostars m4 macro for expanding directories using configure's prefix 187 188dnl (C) 2003, 2004, 2005 Thomas Vander Stichele <thomas at apestaart dot org> 189 190dnl Copying and distribution of this file, with or without modification, 191dnl are permitted in any medium without royalty provided the copyright 192dnl notice and this notice are preserved. 193 194dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR) 195 196dnl example: 197dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) 198dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local 199 200AC_DEFUN([AS_AC_EXPAND], 201[ 202 EXP_VAR=[$1] 203 FROM_VAR=[$2] 204 205 dnl first expand prefix and exec_prefix if necessary 206 prefix_save=$prefix 207 exec_prefix_save=$exec_prefix 208 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" 212 fi 213 dnl if no exec_prefix given, then use prefix 214 if test "x$exec_prefix" = "xNONE"; then 215 exec_prefix=$prefix 216 fi 217 218 full_var="$FROM_VAR" 219 dnl loop until it doesn't change anymore 220 while true; do 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 224 done 225 226 dnl clean up 227 full_var=$new_full_var 228 AC_SUBST([$1], "$full_var") 229 230 dnl restore prefix and exec_prefix 231 prefix=$prefix_save 232 exec_prefix=$exec_prefix_save 233]) 234