# clutter package version number, (as distinct from shared library version) # An odd micro number indicates in-progress development, (eg. from git) # An even micro number indicates a released version. m4_define([clutter_gtk_major], [1]) m4_define([clutter_gtk_minor], [8]) m4_define([clutter_gtk_micro], [5]) m4_define([clutter_gtk_version], [clutter_gtk_major.clutter_gtk_minor.clutter_gtk_micro]) # Keep the interface age in sync with the micro version; we are only allowed # to add new API during unstable development cycles m4_define([clutter_gtk_interface_age], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [0], [clutter_gtk_micro])]) m4_define([clutter_gtk_binary_age], [m4_eval(100 * clutter_gtk_minor + clutter_gtk_micro)]) m4_define([clutter_gtk_release_status], [m4_if(m4_eval(clutter_gtk_micro % 2), [1], [git], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [snapshot], [release])])]) AC_PREREQ([2.63]) AC_INIT([clutter-gtk], [clutter_gtk_version], [http://bugzilla.gnome.org/enter_bug.cgi?product=clutter-gtk], [clutter-gtk], [http://www.clutter-project.org/libraries/clutter-gtk]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([clutter-gtk/clutter-gtk.h]) AC_CONFIG_AUX_DIR([build]) AC_CONFIG_MACRO_DIR([build/autotools]) AM_INIT_AUTOMAKE([1.14 subdir-objects foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar]) AM_SILENT_RULES([yes]) AC_SUBST([CLUTTER_GTK_MAJOR_VERSION], [clutter_gtk_major]) AC_SUBST([CLUTTER_GTK_MINOR_VERSION], [clutter_gtk_minor]) AC_SUBST([CLUTTER_GTK_MICRO_VERSION], [clutter_gtk_micro]) AC_SUBST([CLUTTER_GTK_API_VERSION], [1.0]) AC_SUBST([CLUTTER_GTK_API_VERSION_AM], [1_0]) AC_SUBST([CLUTTER_GTK_VERSION], [clutter_gtk_version]) AC_SUBST([CLUTTER_GTK_RELEASE_STATUS], [clutter_gtk_release_status]) m4_define([lt_current], [m4_eval(clutter_gtk_binary_age - clutter_gtk_interface_age)]) m4_define([lt_revision], [clutter_gtk_interface_age]) m4_define([lt_age], [m4_eval(clutter_gtk_binary_age - clutter_gtk_interface_age)]) CLUTTER_GTK_LT_CURRENT=lt_current CLUTTER_GTK_LT_REV=lt_revision CLUTTER_GTK_LT_AGE=lt_age CLUTTER_GTK_LT_VERSION="$CLUTTER_GTK_LT_CURRENT:$CLUTTER_GTK_LT_REV:$CLUTTER_GTK_LT_AGE" CLUTTER_GTK_LT_LDFLAGS="-version-info $CLUTTER_GTK_LT_VERSION" AC_CANONICAL_HOST AC_MSG_CHECKING([if building for some Win32 platform]) AS_CASE([$host], [*-*-mingw*|*-*-cygwin*], [ CLUTTER_GTK_LT_LDFLAGS="$CLUTTER_GTK_LT_LDFLAGS -no-undefined" platform_win32=yes ], [platform_win32=no] ) AC_MSG_RESULT([$platform_win32]) AC_SUBST(CLUTTER_GTK_LT_VERSION) AC_SUBST(CLUTTER_GTK_LT_LDFLAGS) dnl ======================================================================== # Checks for programs. AM_PROG_CC_C_O # require libtool >= 2.2 LT_PREREQ([2.2.6]) LT_INIT([disable-static]) # Checks for header files. AC_HEADER_STDC AC_CHECK_LIBM AC_SUBST(LIBM) m4_define([clutter_req_version], [1.23.7]) m4_define([gtk_req_version], [3.21.0]) PKG_CHECK_MODULES([CLUTTER_GTK_DEPS], [clutter-1.0 >= clutter_req_version gtk+-3.0 >= gtk_req_version]) AC_SUBST([CLUTTER_GTK_DEPS_CFLAGS]) AC_SUBST([CLUTTER_GTK_DEPS_LIBS]) CLUTTER_GTK_HIDDEN_VISIBILITY_CFLAGS="" case "$host" in *-*-mingw*) dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport) AC_DEFINE([CLUTTER_GTK_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern], [defines how to decorate public symbols while building]) CFLAGS="${CFLAGS} -fvisibility=hidden" ;; *) dnl on other compilers, check if we can do -fvisibility=hidden SAVED_CFLAGS="${CFLAGS}" CFLAGS="-fvisibility=hidden" AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) AC_TRY_COMPILE([], [return 0], AC_MSG_RESULT(yes) enable_fvisibility_hidden=yes, AC_MSG_RESULT(no) enable_fvisibility_hidden=no) CFLAGS="${SAVED_CFLAGS}" AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [ AC_DEFINE([CLUTTER_GTK_EXTERN], [__attribute__((visibility("default"))) extern], [defines how to decorate public symbols while building]) CLUTTER_GTK_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden" ]) ;; esac AC_SUBST(CLUTTER_GTK_HIDDEN_VISIBILITY_CFLAGS) m4_define([deprecated_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [no], [yes])]) AC_ARG_ENABLE([deprecated], [AS_HELP_STRING([--enable-deprecated=@<:@no/yes@:>@], [Whether deprecated symbols should be disabled when compiling Clutter-GTK @<:@default=]deprecated_default[@:> @])], [], [enable_deprecated=deprecated_default]) AS_CASE([$enable_deprecated], [no], [ CLUTTER_GTK_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DCOGL_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED" ], [yes], [ CLUTTER_GTK_DEPRECATED_CFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS -DCLUTTER_DISABLE_DEPRECATION_WARNINGS -DGDK_DISABLE_DEPRECATION_WARNINGS" ], [AC_MSG_ERROR([Unknown argument for --enable-deprecated])] ) AC_SUBST([CLUTTER_GTK_DEPRECATED_CFLAGS]) dnl = Enable debug level =================================================== m4_define([debug_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [yes], [minimum])]) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@], [Turns on debugging. @<:@default=]debug_default[@:>@])], [], [enable_debug=debug_default]) AS_CASE([$enable_debug], [yes], [ test "$cflags_set" = set || CFLAGS="$CFLAGS -g" CLUTTER_GTK_DEBUG_CFLAGS="-DCLUTTER_GTK_ENABLE_DEBUG" ], [minimum], [ CLUTTER_GTK_DEBUG_CFLAGS="-DCLUTTER_GTK_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS" ], [no], [ CLUTTER_GTK_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" ], [AC_MSG_ERROR([Invalid argument for --enable-debug])] ) AC_SUBST([CLUTTER_GTK_DEBUG_CFLAGS]) # use strict compiler flags only on development releases m4_define([maintainer_flags_default], [m4_if(m4_eval(clutter_gtk_minor % 2), [1], [yes], [no])]) AC_ARG_ENABLE([maintainer-flags], [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes@:>@], [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])], [], [enable_maintainer_flags=maintainer_flags_default]) MAINTAINER_CFLAGS="" AS_IF([test "x$enable_maintainer_flags" = "xyes" && test "x$GCC" = "xyes"], [ AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], ["-Wall -Wshadow -Wcast-align -Wuninitialized -Wno-strict-aliasing -Wempty-body -Wformat -Wformat-security -Winit-self -Wdeclaration-after-statement -Wvla"]) ] ) # strip leading spaces MAINTAINER_CFLAGS=${MAINTAINER_CFLAGS#* } AC_SUBST(MAINTAINER_CFLAGS) dnl = I18N ================================================================= AM_GNU_GETTEXT_VERSION([0.18]) AM_GNU_GETTEXT([external]) GETTEXT_PACKAGE="cluttergtk-1.0" AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The prefix for our gettext translation domains.]) dnl = GTK Doc check ======================================================== G_PREFIX=`$PKG_CONFIG --variable=prefix glib-2.0` GDK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-3.0` GTK_PREFIX=`$PKG_CONFIG --variable=prefix gtk+-3.0` GDK_PIXBUF_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` CLUTTER_PREFIX=`$PKG_CONFIG --variable=prefix clutter-1.0` AC_SUBST(G_PREFIX) AC_SUBST(GDK_PREFIX) AC_SUBST(GTK_PREFIX) AC_SUBST(GDK_PIXBUF_PREFIX) AC_SUBST(CLUTTER_PREFIX) GTK_DOC_CHECK([1.24], [--flavour=no-tmpl]) GOBJECT_INTROSPECTION_CHECK([1.32]) AC_CONFIG_FILES([ Makefile build/Makefile build/autotools/Makefile clutter-gtk/Makefile clutter-gtk/gtk-clutter-version.h doc/Makefile examples/Makefile po/Makefile.in clutter-gtk.pc ]) AC_OUTPUT dnl ======================================================================== echo "" echo " Clutter-GTK $CLUTTER_GTK_VERSION ($CLUTTER_GTK_RELEASE_STATUS)" echo "" echo " Prefix: ${prefix}" echo " Libdir: ${libdir}" echo "" echo " Debug level: ${enable_debug}" echo " Documentation: ${enable_gtk_doc}" echo " Compiler flags: $CFLAGS $MAINTAINER_CFLAGS" echo " Introspection data: ${enable_introspection}" echo " Enable deprecated symbols: ${enable_deprecated}" echo ""