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. 4m4_define([clutter_gtk_major], [1]) 5m4_define([clutter_gtk_minor], [8]) 6m4_define([clutter_gtk_micro], [4]) 7m4_define([clutter_gtk_version], [clutter_gtk_major.clutter_gtk_minor.clutter_gtk_micro]) 8 9# increase the interface age for each release; if the API changes, set to 0 10m4_define([clutter_gtk_interface_age], [4]) 11m4_define([clutter_gtk_binary_age], [m4_eval(100 * clutter_gtk_minor + clutter_gtk_micro)]) 12 13m4_define([clutter_gtk_release_status], 14 [m4_if(m4_eval(clutter_gtk_micro % 2), [1], 15 [git], 16 [m4_if(m4_eval(clutter_gtk_minor % 2), [1], 17 [snapshot], 18 [release])])]) 19 20AC_PREREQ([2.63]) 21 22AC_INIT([clutter-gtk], 23 [clutter_gtk_version], 24 [http://bugzilla.gnome.org/enter_bug.cgi?product=clutter-gtk], 25 [clutter-gtk], 26 [http://www.clutter-project.org/libraries/clutter-gtk]) 27 28AC_CONFIG_HEADERS([config.h]) 29AC_CONFIG_SRCDIR([clutter-gtk/clutter-gtk.h]) 30AC_CONFIG_AUX_DIR([build]) 31AC_CONFIG_MACRO_DIR([build/autotools]) 32 33AM_INIT_AUTOMAKE([1.14 subdir-objects foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar]) 34 35AM_SILENT_RULES([yes]) 36 37AC_SUBST([CLUTTER_GTK_MAJOR_VERSION], [clutter_gtk_major]) 38AC_SUBST([CLUTTER_GTK_MINOR_VERSION], [clutter_gtk_minor]) 39AC_SUBST([CLUTTER_GTK_MICRO_VERSION], [clutter_gtk_micro]) 40AC_SUBST([CLUTTER_GTK_API_VERSION], [1.0]) 41AC_SUBST([CLUTTER_GTK_API_VERSION_AM], [1_0]) 42AC_SUBST([CLUTTER_GTK_VERSION], [clutter_gtk_version]) 43AC_SUBST([CLUTTER_GTK_RELEASE_STATUS], [clutter_gtk_release_status]) 44 45m4_define([lt_current], [m4_eval(100 * clutter_gtk_minor + clutter_gtk_micro - clutter_gtk_interface_age)]) 46m4_define([lt_revision], [clutter_gtk_interface_age]) 47m4_define([lt_age], [m4_eval(clutter_gtk_binary_age - clutter_gtk_interface_age)]) 48CLUTTER_GTK_LT_CURRENT=lt_current 49CLUTTER_GTK_LT_REV=lt_revision 50CLUTTER_GTK_LT_AGE=lt_age 51CLUTTER_GTK_LT_VERSION="$CLUTTER_GTK_LT_CURRENT:$CLUTTER_GTK_LT_REV:$CLUTTER_GTK_LT_AGE" 52CLUTTER_GTK_LT_LDFLAGS="-version-info $CLUTTER_GTK_LT_VERSION" 53 54AC_CANONICAL_HOST 55AC_MSG_CHECKING([if building for some Win32 platform]) 56AS_CASE([$host], 57 [*-*-mingw*|*-*-cygwin*], 58 [ 59 CLUTTER_GTK_LT_LDFLAGS="$CLUTTER_GTK_LT_LDFLAGS -no-undefined" 60 platform_win32=yes 61 ], 62 63 [platform_win32=no] 64) 65AC_MSG_RESULT([$platform_win32]) 66 67AC_SUBST(CLUTTER_GTK_LT_VERSION) 68AC_SUBST(CLUTTER_GTK_LT_LDFLAGS) 69 70dnl ======================================================================== 71 72# Checks for programs. 73AM_PROG_CC_C_O 74 75# require libtool >= 2.2 76LT_PREREQ([2.2.6]) 77LT_INIT([disable-static]) 78 79# Checks for header files. 80AC_HEADER_STDC 81 82AC_CHECK_LIBM 83AC_SUBST(LIBM) 84 85m4_define([clutter_req_version], [1.23.7]) 86m4_define([gtk_req_version], [3.21.0]) 87 88PKG_CHECK_MODULES([CLUTTER_GTK_DEPS], [clutter-1.0 >= clutter_req_version gtk+-3.0 >= gtk_req_version]) 89AC_SUBST([CLUTTER_GTK_DEPS_CFLAGS]) 90AC_SUBST([CLUTTER_GTK_DEPS_LIBS]) 91 92CLUTTER_GTK_HIDDEN_VISIBILITY_CFLAGS="" 93case "$host" in 94 *-*-mingw*) 95 dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport) 96 AC_DEFINE([CLUTTER_GTK_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern], 97 [defines how to decorate public symbols while building]) 98 CFLAGS="${CFLAGS} -fvisibility=hidden" 99 ;; 100 *) 101 dnl on other compilers, check if we can do -fvisibility=hidden 102 SAVED_CFLAGS="${CFLAGS}" 103 CFLAGS="-fvisibility=hidden" 104 AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) 105 AC_TRY_COMPILE([], [return 0], 106 AC_MSG_RESULT(yes) 107 enable_fvisibility_hidden=yes, 108 AC_MSG_RESULT(no) 109 enable_fvisibility_hidden=no) 110 CFLAGS="${SAVED_CFLAGS}" 111 112 AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [ 113 AC_DEFINE([CLUTTER_GTK_EXTERN], [__attribute__((visibility("default"))) extern], 114 [defines how to decorate public symbols while building]) 115 CLUTTER_GTK_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden" 116 ]) 117 ;; 118esac 119AC_SUBST(CLUTTER_GTK_HIDDEN_VISIBILITY_CFLAGS) 120 121 122m4_define([deprecated_default], 123 [m4_if(m4_eval(clutter_gtk_minor % 2), [1], 124 [no], 125 [yes])]) 126 127AC_ARG_ENABLE([deprecated], 128 [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@], 129 [Whether deprecated symbols should be disabled when compiling Clutter-GTK @<:@default=]deprecated_default[@:> 130@])], 131 [], 132 [enable_deprecated=deprecated_default]) 133 134AS_CASE([$enable_deprecated], 135 136 [no], 137 [ 138 CLUTTER_GTK_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED" 139 ], 140 141 [yes], 142 [ 143 CLUTTER_GTK_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS -DGDK_DISABLE_DEPRECATION_WARNINGS" 144 ], 145 146 [AC_MSG_ERROR([Unknown argument for --enable-deprecated])] 147) 148 149AC_SUBST([CLUTTER_GTK_DEPRECATED_CFLAGS]) 150 151dnl = Enable debug level =================================================== 152 153m4_define([debug_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [yes], [minimum])]) 154AC_ARG_ENABLE([debug], 155 [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@], 156 [Turns on debugging. @<:@default=]debug_default[@:>@])], 157 [], 158 [enable_debug=debug_default]) 159 160AS_CASE([$enable_debug], 161 162 [yes], 163 [ 164 test "$cflags_set" = set || CFLAGS="$CFLAGS -g" 165 CLUTTER_GTK_DEBUG_CFLAGS="-DCLUTTER_GTK_ENABLE_DEBUG" 166 ], 167 168 [minimum], 169 [ 170 CLUTTER_GTK_DEBUG_CFLAGS="-DCLUTTER_GTK_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS" 171 ], 172 173 [no], 174 [ 175 CLUTTER_GTK_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" 176 ], 177 178 [AC_MSG_ERROR([Invalid argument for --enable-debug])] 179) 180 181AC_SUBST([CLUTTER_GTK_DEBUG_CFLAGS]) 182 183# use strict compiler flags only on development releases 184m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [yes], [no])]) 185AC_ARG_ENABLE([maintainer-flags], 186 [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes@:>@], 187 [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])], 188 [], 189 [enable_maintainer_flags=maintainer_flags_default]) 190 191MAINTAINER_CFLAGS="" 192AS_IF([test "x$enable_maintainer_flags" = "xyes" && test "x$GCC" = "xyes"], 193 [ 194 AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], 195 ["-Wall -Wshadow -Wcast-align -Wuninitialized 196 -Wno-strict-aliasing -Wempty-body -Wformat 197 -Wformat-security -Winit-self 198 -Wdeclaration-after-statement -Wvla"]) 199 ] 200) 201 202# strip leading spaces 203MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#* } 204AC_SUBST(MAINTAINER_CFLAGS) 205 206dnl = I18N ================================================================= 207 208AM_GNU_GETTEXT_VERSION([0.18]) 209AM_GNU_GETTEXT([external]) 210 211GETTEXT_PACKAGE="cluttergtk-1.0" 212AC_SUBST(GETTEXT_PACKAGE) 213AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, 214 "$GETTEXT_PACKAGE", 215 [The prefix for our gettext translation domains.]) 216 217dnl = GTK Doc check ======================================================== 218 219G_PREFIX=`$PKG_CONFIG --variable=prefix glib-2.0` 220GDK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-3.0` 221GTK_PREFIX=`$PKG_CONFIG --variable=prefix gtk+-3.0` 222GDK_PIXBUF_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` 223CLUTTER_PREFIX=`$PKG_CONFIG --variable=prefix clutter-1.0` 224AC_SUBST(G_PREFIX) 225AC_SUBST(GDK_PREFIX) 226AC_SUBST(GTK_PREFIX) 227AC_SUBST(GDK_PIXBUF_PREFIX) 228AC_SUBST(CLUTTER_PREFIX) 229 230GTK_DOC_CHECK([1.24], [--flavour=no-tmpl]) 231 232GOBJECT_INTROSPECTION_CHECK([1.32]) 233 234AC_CONFIG_FILES([ 235 Makefile 236 build/Makefile 237 build/autotools/Makefile 238 239 clutter-gtk/Makefile 240 clutter-gtk/gtk-clutter-version.h 241 242 doc/Makefile 243 244 examples/Makefile 245 246 po/Makefile.in 247 248 clutter-gtk.pc 249]) 250 251AC_OUTPUT 252 253dnl ======================================================================== 254 255echo "" 256echo " Clutter-GTK $CLUTTER_GTK_VERSION ($CLUTTER_GTK_RELEASE_STATUS)" 257echo "" 258echo " Prefix: ${prefix}" 259echo " Libdir: ${libdir}" 260echo "" 261echo " Debug level: ${enable_debug}" 262echo " Documentation: ${enable_gtk_doc}" 263echo " Compiler flags: $CFLAGS $MAINTAINER_CFLAGS" 264echo " Introspection data: ${enable_introspection}" 265echo " Enable deprecated symbols: ${enable_deprecated}" 266echo "" 267