summaryrefslogtreecommitdiff
path: root/pkg.m4
blob: 6521a66febd3bf28548bce4e8d92c4d7de72a93d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
dnl Internal macro to check for pkg-config itself
dnl Do not call directly
AC_DEFUN([_PKG_CHECK_MODULES_FIND_PKG_CONFIG],
[
  AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no])
  if test "$PKG_CONFIG" = "no"; then
     echo "*** The pkg-config script could not be found. Make sure it is"
     echo "*** in your path, or set the PKG_CONFIG environment variable"
     echo "*** to the full path to pkg-config."
     echo "*** Or see http://www.freedesktop.org/software/pkgconfig/ to get pkg-config."
  else
     # check the pkg-config version number
     PKG_CONFIG_MIN_VERSION="0.9.0"
     AC_MSG_CHECKING([is pkg-config version >= $PKG_CONFIG_MIN_VERSION])
     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
        AC_MSG_RESULT([yes])
     else
        AC_MSG_RESULT([no])
        PKG_CONFIG=no
        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
        echo "*** See http://www.freedesktop.org/software/pkgconfig/"
     fi
  fi
])

dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
dnl also defines GSTUFF_PKG_ERRORS on error
AC_DEFUN([PKG_CHECK_MODULES],
[
  AC_REQUIRE([_PKG_CHECK_MODULES_FIND_PKG_CONFIG])dnl
  succeeded=no
  if test "$PKG_CONFIG" != "no" ; then
     AC_MSG_CHECKING([for $2])

     if $PKG_CONFIG --exists "$2" ; then
        AC_MSG_RESULT([yes])
        succeeded=yes

        AC_MSG_CHECKING([$1_CFLAGS])
        $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
        AC_MSG_RESULT([$$1_CFLAGS])

        AC_MSG_CHECKING([$1_LIBS])
        $1_LIBS=`$PKG_CONFIG --libs "$2"`
        AC_MSG_RESULT([$$1_LIBS])
     else
        $1_CFLAGS=""
        $1_LIBS=""
        ## If we have a custom action on failure, don't print errors, but 
        ## do set a variable so people can do so.
        $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
        ifelse([$4],, [echo $$1_PKG_ERRORS])
     fi

     AC_SUBST([$1_CFLAGS])
     AC_SUBST([$1_LIBS])
  fi

  if test $succeeded = yes; then
     ifelse([$3],, [:], [$3])
  else
     ifelse([$4],,
            [AC_MSG_ERROR([Package requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a nonstandard prefix. See man page for pkg-config.])],
            [$4])
  fi
])