Merge branch 'gstreamer1.0'
[projects/chimara/chimara.git] / m4 / introspection.m4
1 dnl -*- mode: autoconf -*-
2 dnl Copyright 2009 Johan Dahlin
3 dnl
4 dnl This file is free software; the author(s) gives unlimited
5 dnl permission to copy and/or distribute it, with or without
6 dnl modifications, as long as this notice is preserved.
7 dnl
8
9 # serial 1
10
11 m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
12 [
13     AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
14     AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
15     AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
16
17     dnl enable/disable introspection
18     m4_if([$2], [require],
19     [dnl
20         enable_introspection=yes
21     ],[dnl
22         AC_ARG_ENABLE(introspection,
23                   AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
24                                  [Enable introspection for this build]),, 
25                                  [enable_introspection=auto])
26     ])dnl
27
28     AC_MSG_CHECKING([for gobject-introspection])
29
30     dnl presence/version checking
31     AS_CASE([$enable_introspection],
32     [no], [dnl
33         found_introspection="no (disabled, use --enable-introspection to enable)"
34     ],dnl
35     [yes],[dnl
36         PKG_CHECK_EXISTS([gobject-introspection-1.0],,
37                          AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
38         PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
39                          found_introspection=yes,
40                          AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
41     ],dnl
42     [auto],[dnl
43         PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
44     ],dnl
45     [dnl        
46         AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
47     ])dnl
48
49     AC_MSG_RESULT([$found_introspection])
50
51     INTROSPECTION_SCANNER=
52     INTROSPECTION_COMPILER=
53     INTROSPECTION_GENERATE=
54     INTROSPECTION_GIRDIR=
55     INTROSPECTION_TYPELIBDIR=
56     if test "x$found_introspection" = "xyes"; then
57        INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
58        INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
59        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
60        INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
61        INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
62        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
63        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
64        INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
65     fi
66     AC_SUBST(INTROSPECTION_SCANNER)
67     AC_SUBST(INTROSPECTION_COMPILER)
68     AC_SUBST(INTROSPECTION_GENERATE)
69     AC_SUBST(INTROSPECTION_GIRDIR)
70     AC_SUBST(INTROSPECTION_TYPELIBDIR)
71     AC_SUBST(INTROSPECTION_CFLAGS)
72     AC_SUBST(INTROSPECTION_LIBS)
73     AC_SUBST(INTROSPECTION_MAKEFILE)
74
75     AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
76 ])
77
78
79 dnl Usage:
80 dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
81
82 AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
83 [
84   _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
85 ])
86
87 dnl Usage:
88 dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
89
90
91 AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
92 [
93   _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
94 ])