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