2007-07-06 Matthew Allum <mallum@openedhand.com>
[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], [3])
6 m4_define([clutter_micro_version], [1])
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/clutter-gtk.h])
25 AM_CONFIG_HEADER([config.h])
26
27 AM_INIT_AUTOMAKE([1.7])
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.3.0
71
72 PKG_CHECK_MODULES(CLUTTER, clutter-glx-0.3 >= $CLUTTER_REQUIRED)
73 AC_SUBST(CLUTTER_CFLAGS)
74 AC_SUBST(CLUTTER_LIBS)
75
76 PKG_CHECK_MODULES(GTK, gtk+-2.0)
77 AC_SUBST(GTK_CFLAGS)
78 AC_SUBST(GTK_LIBS)
79
80 dnl ========================================================================
81
82 if test "x$GCC" = "xyes"; then
83         GCC_FLAGS="-g -Wall"
84 fi
85
86 dnl = Enable debug level ===================================================
87
88 m4_define([debug_default],
89           m4_if(m4_eval(clutter_minor_version % 2), [1], [yes], [minimum]))
90
91 AC_ARG_ENABLE(debug,
92               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
93                              [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@:>@]),
94 ,
95               enable_debug=debug_default)
96
97 if test "x$enable_debug" = "xyes"; then
98   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
99   CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG"
100 else
101   if test "x$enable_debug" = "xno"; then
102     CLUTTER_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
103   else # minimum
104     CLUTTER_DEBUG_CFLAGS="-DCLUTTER_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
105   fi
106 fi
107
108 AC_SUBST(CLUTTER_DEBUG_CFLAGS)
109
110 dnl = GTK Doc check ========================================================
111
112 GTK_DOC_CHECK([1.4])
113
114 dnl ========================================================================
115
116 AC_SUBST(GCC_FLAGS)
117
118 AC_CONFIG_FILES([
119         Makefile
120         clutter-gtk/Makefile
121         doc/Makefile
122         doc/reference/Makefile
123         doc/reference/version.xml
124         examples/Makefile
125         clutter-gtk.pc
126 ])
127
128 AC_OUTPUT
129
130 dnl ========================================================================
131
132 echo ""
133 echo "                 ClutterGTK $VERSION"
134 echo "                 ==================="
135 echo ""
136 echo "                   prefix:   ${prefix}"
137 echo ""
138 echo "              Debug level:   ${enable_debug}"
139 echo "            Documentation:   ${enable_gtk_doc}"
140 echo ""