Home | History | Annotate | Download | only in dbus
      1 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
      2 #
      3 # Copyright  2004 Scott James Remnant <scott (a] 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 # ----------------------------------
     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])
     32 fi
     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
     37 		AC_MSG_RESULT([yes])
     38 	else
     39 		AC_MSG_RESULT([no])
     40 		PKG_CONFIG=""
     41 	fi
     42 
     43 fi[]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 # --------------------------------------------------------------
     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], [:])
     61 m4_ifvaln([$3], [else
     62   $3])dnl
     63 fi])
     64 
     65 
     66 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
     67 # ---------------------------------------------
     68 m4_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
     77 fi[]dnl
     78 ])# _PKG_CONFIG
     79 
     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
     86 else
     87         _pkg_short_errors_supported=no
     88 fi[]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 # --------------------------------------------------------------
    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
    106 
    107 pkg_failed=no
    108 AC_MSG_CHECKING([for $1])
    109 
    110 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
    111 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
    112 
    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.])
    116 
    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`
    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 
    132 Consider adjusting the PKG_CONFIG_PATH environment variable if you
    133 installed software in a non-standard prefix.
    134 
    135 _PKG_TEXT
    136 ])],
    137 		[AC_MSG_RESULT([no])
    138                 $4])
    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
    143 path to pkg-config.
    144 
    145 _PKG_TEXT
    146 
    147 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
    148 		[$4])
    149 else
    150 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
    151 	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
    152         AC_MSG_RESULT([yes])
    153 	ifelse([$3], , :, [$3])
    154 fi[]dnl
    155 ])# PKG_CHECK_MODULES
    156 
    157 
    158 
    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}"
    171 fi
    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)
    178 $1],dnl
    179 [AC_MSG_RESULT(not found)
    180 $2])
    181 CPPFLAGS="$save_CPPFLAGS"
    182 ])
    183 
    184 
    185 dnl as-ac-expand.m4 0.2.0                                   -*- autoconf -*-
    186 dnl autostars m4 macro for expanding directories using configure's prefix
    187 
    188 dnl (C) 2003, 2004, 2005 Thomas Vander Stichele <thomas at apestaart dot org>
    189 
    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.
    193 
    194 dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR)
    195 
    196 dnl example:
    197 dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
    198 dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local
    199 
    200 AC_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