Add dependencies
[clutter-gtk] / configure.ac
1 # clutter package version number, (as distinct from shared library version)
2 # An odd micro number indicates in-progress development, (eg. from git)
3 # An even micro number indicates a released version.
4 m4_define([clutter_gtk_major], [0])
5 m4_define([clutter_gtk_minor], [10])
6 m4_define([clutter_gtk_micro], [2])
7
8 m4_define([clutter_gtk_api_version], [clutter_gtk_major.clutter_gtk_minor])
9 m4_define([clutter_gtk_version], [clutter_gtk_major.clutter_gtk_minor.clutter_gtk_micro])
10
11 # increase the interface age for each release; if the API changes, set to 0
12 m4_define([clutter_gtk_interface_age], [0])
13 m4_define([clutter_gtk_binary_age], [m4_eval(100 * clutter_gtk_minor + clutter_gtk_micro)])
14
15 AC_PREREQ([2.59])
16
17 AC_INIT([clutter-gtk],
18         [clutter_gtk_version],
19         [http://bugzilla.o-hand.com/enter_bug.cgi?product=Clutter])
20 AC_CONFIG_SRCDIR([clutter-gtk/clutter-gtk.h])
21 AC_CONFIG_MACRO_DIR([build/autotools])
22
23 AM_CONFIG_HEADER([config.h])
24
25 AM_INIT_AUTOMAKE([1.9])
26
27 CLUTTER_GTK_MAJOR_VERSION=clutter_gtk_major
28 CLUTTER_GTK_MINOR_VERSION=clutter_gtk_minor
29 CLUTTER_GTK_MICRO_VERSION=clutter_gtk_micro
30 CLUTTER_GTK_API_VERSION=clutter_gtk_api_version
31 CLUTTER_GTK_VERSION=clutter_gtk_version
32 AC_SUBST(CLUTTER_GTK_MAJOR_VERSION)
33 AC_SUBST(CLUTTER_GTK_MINOR_VERSION)
34 AC_SUBST(CLUTTER_GTK_MICRO_VERSION)
35 AC_SUBST(CLUTTER_GTK_API_VERSION)
36 AC_SUBST(CLUTTER_GTK_VERSION)
37
38 m4_define([lt_current], [m4_eval(100 * clutter_gtk_minor + clutter_gtk_micro - clutter_gtk_interface_age)])
39 m4_define([lt_revision], [clutter_gtk_interface_age])
40 m4_define([lt_age], [m4_eval(clutter_gtk_binary_age - clutter_gtk_interface_age)])
41 CLUTTER_GTK_LT_CURRENT=lt_current
42 CLUTTER_GTK_LT_REV=lt_revision
43 CLUTTER_GTK_LT_AGE=lt_age
44 CLUTTER_GTK_LT_VERSION="$CLUTTER_GTK_LT_CURRENT:$CLUTTER_GTK_LT_REV:$CLUTTER_GTK_LT_AGE"
45 CLUTTER_GTK_LT_LDFLAGS="-version-info $CLUTTER_GTK_LT_VERSION"
46
47 AC_SUBST(CLUTTER_GTK_LT_VERSION)
48 AC_SUBST(CLUTTER_GTK_LT_LDFLAGS)
49
50 dnl ========================================================================
51
52 # Checks for programs.
53 AC_PROG_CC
54 AC_DISABLE_STATIC
55 AC_PROG_LIBTOOL
56
57 m4_define([clutter_req_version], [1.0.0])
58 m4_define([gtk_req_version], [2.12.0])
59 m4_define([flavour_default], [x11])
60 AC_ARG_WITH([flavour],
61             [AC_HELP_STRING([--with-flavour=@<:@x11/win32@:>@],
62                             [Select the Clutter backend, default=flavour_default])],
63             [],
64             [with_flavour=flavour_default])
65
66 AS_CASE([$with_flavour],
67         [x11], [
68           AC_DEFINE([HAVE_CLUTTER_GTK_X11], 1, [Using the X11 flavour])
69           PKG_CHECK_MODULES(CLUTTER, clutter-x11-1.0 >= clutter_req_version)
70           PKG_CHECK_MODULES(GTK, gtk+-x11-2.0 >= gtk_req_version)
71           CLUTTER_GTK_REQUIRES="clutter-x11-1.0 gtk+-x11-2.0"
72         ],
73
74         [win32], [
75           AC_DEFINE([HAVE_CLUTTER_GTK_WIN32], 1, [Using the Win32 flavour])
76           PKG_CHECK_MODULES(CLUTTER, clutter-win32-1.0 >= $CLUTTER_REQUIRED)
77           PKG_CHECK_MODULES(GTK, gtk+-win32-2.0 >= gtk_req_version)
78           CLUTTER_GTK_REQUIRES="clutter-win32-1.0 gtk+-win32-2.0"
79         ]
80
81         [AC_MSG_ERROR([Invalid argument for --with-flavour])]
82 )
83
84 CLUTTER_GTK_FLAVOUR=$with_flavour
85 AC_SUBST(CLUTTER_GTK_FLAVOUR)
86
87 AC_SUBST(CLUTTER_GTK_REQUIRES)
88
89 AC_SUBST(CLUTTER_CFLAGS)
90 AC_SUBST(CLUTTER_LIBS)
91
92 AC_SUBST(GTK_CFLAGS)
93 AC_SUBST(GTK_LIBS)
94
95 dnl = Enable debug level ===================================================
96
97 m4_define([debug_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [yes], [minimum])])
98 AC_ARG_ENABLE([debug],
99               [AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
100                               [Turns on debugging. @<:@default=debug_default@:>@])],
101               [],
102               [enable_debug=debug_default])
103
104 AS_CASE([$enable_debug],
105
106         [yes], [
107           test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
108           CLUTTER_GTK_DEBUG_CFLAGS="-DCLUTTER_GTK_ENABLE_DEBUG"
109         ],
110
111         [minimum], [
112           CLUTTER_GTK_DEBUG_CFLAGS="-DCLUTTER_GTK_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
113         ],
114
115         [no], [
116           CLUTTER_GTK_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
117         ],
118
119         [AC_MSG_ERROR([Invalid argument for --enable-debug])]
120 )
121
122 AC_SUBST(CLUTTER_GTK_DEBUG_CFLAGS)
123
124 # use strict compiler flags only on development releases
125 m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [yes], [no])])
126 AC_ARG_ENABLE([maintainer-flags],
127               [AC_HELP_STRING([--enable-maintainer-flags=@<:@no/yes@:>@],
128                               [Use strict compiler flags @<:@default=no@:>@])],
129               [],
130               [enable_maintainer_flags=maintainer_flags_default])
131
132 MAINTAINER_CFLAGS=""
133 AS_IF([test "x$enable_maintainer_flags" = "xyes" && test "x$GCC" = "xyes"],
134       [
135         AS_COMPILER_FLAGS([MAINTAINER_CFLAGS],
136                           ["-Werror -Wall -Wshadow -Wcast-align
137                             -Wno-uninitialized -Wempty-body -Wformat-security
138                             -Winit-self"])
139       ]
140 )
141
142 AC_SUBST(MAINTAINER_CFLAGS)
143
144 dnl = GTK Doc check ========================================================
145
146 G_PREFIX=`$PKG_CONFIG --variable=prefix glib-2.0`
147 GDK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-2.0`
148 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gtk+-2.0`
149 GDK_PIXBUF_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
150 CLUTTER_PREFIX=`$PKG_CONFIG --variable=prefix clutter-0.9`
151 AC_SUBST(G_PREFIX)
152 AC_SUBST(GDK_PREFIX)
153 AC_SUBST(GTK_PREFIX)
154 AC_SUBST(GDK_PIXBUF_PREFIX)
155 AC_SUBST(CLUTTER_PREFIX)
156
157 GTK_DOC_CHECK([1.11])
158
159 GOBJECT_INTROSPECTION_CHECK([0.6.3])
160
161 dnl ========================================================================
162
163 SHAVE_INIT([build/autotools], [enable])
164
165 AC_CONFIG_FILES([
166         Makefile
167         build/Makefile
168         build/autotools/Makefile
169         build/autotools/shave-libtool
170         build/autotools/shave
171         clutter-gtk/Makefile
172         doc/Makefile
173         doc/reference/Makefile
174         doc/reference/version.xml
175         examples/Makefile
176         clutter-gtk.pc
177 ])
178
179 AC_OUTPUT
180
181 dnl ========================================================================
182
183 echo ""
184 echo "                 ClutterGTK $VERSION"
185 echo "                 ==================="
186 echo ""
187 echo "                   prefix:   ${prefix}"
188 echo ""
189 echo "                  Flavour:   ${CLUTTER_GTK_FLAVOUR}"
190 echo "              Debug level:   ${enable_debug}"
191 echo "            Documentation:   ${enable_gtk_doc}"
192 echo "           Compiler flags:   $MAINTAINER_CFLAGS"
193 echo "       Introspection data:   ${enable_introspection}"
194 echo ""