* configure.ac: Added a --with-flavour option to select between
[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 CVS)
3 # An even micro number indicates a released version.
4 m4_define([clutter_major_version], [0])
5 m4_define([clutter_minor_version], [7])
6 m4_define([clutter_micro_version], [0])
7
8 m4_define([clutter_version],
9           [clutter_major_version.clutter_minor_version.clutter_micro_version])
10
11 m4_define([clutter_api_version],
12           [clutter_major_version.clutter_minor_version])
13
14 # increase the interface age for each release; if the API changes, set to 0
15 m4_define([clutter_interface_age], [0])
16 m4_define([clutter_binary_age],
17           [m4_eval(100 * clutter_minor_version + clutter_micro_version)])
18
19 AC_PREREQ(2.53)
20
21 AC_INIT([clutter-gtk],
22         [clutter_version],
23         [http://bugzilla.o-hand.com/enter_bug.cgi?product=Clutter])
24 AC_CONFIG_SRCDIR([clutter-gtk/gtk-clutter-embed.h])
25 AM_CONFIG_HEADER([config.h])
26
27 AM_INIT_AUTOMAKE([1.9])
28
29 CLUTTER_GTK_MAJOR_VERSION=clutter_major_version
30 CLUTTER_GTK_MINOR_VERSION=clutter_minor_version
31 CLUTTER_GTK_MICRO_VERSION=clutter_micro_version
32 CLUTTER_GTK_VERSION=clutter_version
33 AC_SUBST(CLUTTER_GTK_MAJOR_VERSION)
34 AC_SUBST(CLUTTER_GTK_MINOR_VERSION)
35 AC_SUBST(CLUTTER_GTK_MICRO_VERSION)
36 AC_SUBST(CLUTTER_GTK_VERSION)
37
38 m4_define([lt_current],
39           [m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)])
40 m4_define([lt_revision], [clutter_interface_age])
41 m4_define([lt_age], [m4_eval(clutter_binary_age - clutter_interface_age)])
42 CLUTTER_LT_CURRENT=lt_current
43 CLUTTER_LT_REV=lt_revision
44 CLUTTER_LT_AGE=lt_age
45 CLUTTER_LT_VERSION="$CLUTTER_LT_CURRENT:$CLUTTER_LT_REV:$CLUTTER_LT_AGE"
46 CLUTTER_LT_LDFLAGS="-version-info $CLUTTER_LT_VERSION"
47
48 AC_SUBST(CLUTTER_LT_VERSION)
49 AC_SUBST(CLUTTER_LT_LDFLAGS)
50
51 dnl ========================================================================
52
53 # Checks for programs.
54 AC_PROG_CC
55 AC_DISABLE_STATIC
56 AC_PROG_LIBTOOL
57
58 # Checks for header files.
59 AC_HEADER_STDC
60 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
61
62 # Checks for typedefs, structures, and compiler characteristics.
63 AC_C_CONST
64
65 # Checks for library functions.
66 AC_FUNC_MALLOC
67 AC_FUNC_MMAP
68 AC_CHECK_FUNCS([memset munmap strcasecmp strdup])
69
70 CLUTTER_REQUIRED=0.7.0
71
72 cluttergtkflavour=x11
73 AC_ARG_WITH([flavour],
74             AC_HELP_STRING([--with-flavour=@<:@x11/win32@:>@],
75                            [Select the Clutter backend]),
76             cluttergtkflavour=$with_flavour)
77
78 case $cluttergtkflavour in
79
80   x11)
81     AC_DEFINE([HAVE_CLUTTER_GTK_X11], 1, [Using the X11 flavour])
82     PKG_CHECK_MODULES(CLUTTER, clutter-x11-0.7 >= $CLUTTER_REQUIRED)
83     ;;
84     
85   win32)
86     AC_DEFINE([HAVE_CLUTTER_GTK_WIN32], 1, [Using the Win32 flavour])
87     PKG_CHECK_MODULES(CLUTTER, clutter-win32-0.7 >= $CLUTTER_REQUIRED)
88     ;;
89     
90   *)
91     AC_MSG_ERROR([Invalid flavour for Clutter-GTK: use x11 or win32])
92     ;;
93 esac
94
95 AC_SUBST(CLUTTER_CFLAGS)
96 AC_SUBST(CLUTTER_LIBS)
97
98 PKG_CHECK_MODULES(GTK, gtk+-2.0)
99 AC_SUBST(GTK_CFLAGS)
100 AC_SUBST(GTK_LIBS)
101
102 dnl ========================================================================
103
104 if test "x$GCC" = "xyes"; then
105         GCC_FLAGS="-g -Wall"
106 fi
107
108 dnl = Enable debug level ===================================================
109
110 m4_define([debug_default],
111           m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum]))
112
113 AC_ARG_ENABLE(debug,
114               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
115                              [turn on debugging. yes; All glib asserts, checks and runtime clutter verbose messages. minimum; Just glib cast checks and runtime clutter verbose messagaes. no; No glib asserts or checks and no runtime clutter verbose messages.  @<:@default=debug_default@:>@]),
116 ,
117               enable_debug=debug_default)
118
119 if test "x$enable_debug" = "xyes"; then
120   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
121   CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
122 else
123   if test "x$enable_debug" = "xno"; then
124     CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
125   else # minimum
126     CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
127   fi
128 fi
129
130 AC_SUBST(CLUTTER_DEBUG_CFLAGS)
131
132 dnl = GTK Doc check ========================================================
133
134 GTK_DOC_CHECK([1.4])
135
136 dnl ========================================================================
137
138 AC_SUBST(GCC_FLAGS)
139
140 AC_CONFIG_FILES([
141         Makefile
142         clutter-gtk/Makefile
143         doc/Makefile
144         doc/reference/Makefile
145         doc/reference/version.xml
146         examples/Makefile
147         clutter-gtk.pc
148 ])
149
150 AC_OUTPUT
151
152 dnl ========================================================================
153
154 echo ""
155 echo "                 ClutterGTK $VERSION"
156 echo "                 ==================="
157 echo ""
158 echo "                   prefix:   ${prefix}"
159 echo ""
160 echo "                  Flavour:   ${cluttergtkflavour}"
161 echo "              Debug level:   ${enable_debug}"
162 echo "            Documentation:   ${enable_gtk_doc}"
163 echo ""