mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 20:32:16 +00:00
461 lines
16 KiB
Plaintext
461 lines
16 KiB
Plaintext
|
AC_PREREQ(2.59)
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl XXX: If you are making a release then you need to check these
|
||
|
dnl sections:
|
||
|
dnl » API versions
|
||
|
dnl (the pretty numbers that the users see)
|
||
|
dnl
|
||
|
dnl » Interface version details for libtool
|
||
|
dnl (the shared library versioning information)
|
||
|
dnl
|
||
|
dnl » Source code release status
|
||
|
dnl (mark the source code as being part of a "release" or from "git")
|
||
|
dnl ================================================================
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl API versions (i.e. the pretty numbers that users see)
|
||
|
dnl ================================================================
|
||
|
m4_define([cogl_major_version], [2])
|
||
|
m4_define([cogl_minor_version], [0])
|
||
|
m4_define([cogl_micro_version], [0])
|
||
|
m4_define([cogl_version],
|
||
|
[cogl_major_version.cogl_minor_version.cogl_micro_version])
|
||
|
|
||
|
dnl Since the core Cogl library has to also maintain support for the
|
||
|
dnl Cogl 1.x API for Clutter then we track the 1.x version separately.
|
||
|
m4_define([cogl_1_minor_version], [6])
|
||
|
m4_define([cogl_1_micro_version], [0])
|
||
|
m4_define([cogl_1_version], [1.cogl_1_minor_version.cogl_1_micro_version])
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Interface version details for libtool
|
||
|
dnl ================================================================
|
||
|
# Note: we don't automatically deduce the libtool version info from
|
||
|
# the pretty version number that users sees. This is because we want
|
||
|
# to update the pretty version number before making a release since it
|
||
|
# can affect the name of our pkg-config file and the naming or
|
||
|
# location of other installed files which we want to be able to verify
|
||
|
# as correct well before making a release.
|
||
|
#
|
||
|
# For reference on how the various numbers should be updated at
|
||
|
# release time these rules are adapted from the libtool info pages:
|
||
|
#
|
||
|
# 1. Update the version information only immediately before a public
|
||
|
# release.
|
||
|
#
|
||
|
# 2. If the library source code has changed at all since the last
|
||
|
# update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
|
||
|
#
|
||
|
# 3. If any interfaces have been added, removed, or changed since the
|
||
|
# last update, increment CURRENT, and set REVISION to 0.
|
||
|
#
|
||
|
# 4. If any interfaces have been added since the last public release,
|
||
|
# then increment AGE.
|
||
|
#
|
||
|
# 5. If any interfaces have been removed since the last public release,
|
||
|
# then set AGE to 0.
|
||
|
m4_define([cogl_lt_current], 0)
|
||
|
m4_define([cogl_lt_revision], 0)
|
||
|
m4_define([cogl_lt_age], 0)
|
||
|
# We do also tell libtool the pretty version:
|
||
|
m4_define([cogl_lt_release], [cogl_version])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Source code release status
|
||
|
dnl ================================================================
|
||
|
# Finally we explicitly track when we are building development source
|
||
|
# from Git vs building source corresponding to a release. As with the
|
||
|
# libtool version info we don't automatically derive this from the
|
||
|
# pretty version number because we want to test the results of
|
||
|
# updating the version number in advance of a release.
|
||
|
m4_define([cogl_release_status], [git])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Required versions for dependencies
|
||
|
dnl ================================================================
|
||
|
m4_define([glib_req_version], [2.26.0])
|
||
|
m4_define([pangocairo_req_version], [1.20])
|
||
|
m4_define([gi_req_version], [0.9.5])
|
||
|
m4_define([gdk_pixbuf_req_version], [2.0])
|
||
|
m4_define([uprof_req_version], [0.3])
|
||
|
m4_define([gtk_doc_req_version], [1.13])
|
||
|
m4_define([xfixes_req_version], [3])
|
||
|
m4_define([xcomposite_req_version], [0.4])
|
||
|
|
||
|
|
||
|
AC_INIT(cogl, [cogl_version])
|
||
|
AC_CONFIG_SRCDIR(cogl/cogl.h)
|
||
|
AC_CONFIG_AUX_DIR([build])
|
||
|
AC_CONFIG_MACRO_DIR([build/autotools])
|
||
|
AC_CONFIG_HEADERS(config.h)
|
||
|
|
||
|
# Save this value here, since automake will set cflags later and we
|
||
|
# want to know if the user specified custom cflags or not.
|
||
|
cflags_set=${CFLAGS+set}
|
||
|
|
||
|
AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip
|
||
|
dist-bzip2])
|
||
|
AM_SILENT_RULES([yes])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Export the API versioning
|
||
|
dnl ================================================================
|
||
|
AC_SUBST([COGL_MAJOR_VERSION],[cogl_major_version])
|
||
|
AC_SUBST([COGL_MINOR_VERSION],[cogl_minor_version])
|
||
|
AC_SUBST([COGL_MICRO_VERSION],[cogl_micro_version])
|
||
|
AC_SUBST([COGL_VERSION],[cogl_version])
|
||
|
AC_SUBST([COGL_API_VERSION],[cogl_major_version.0])
|
||
|
AC_SUBST([COGL_API_VERSION_AM],[$COGL_MAJOR_VERSION\_0])
|
||
|
|
||
|
AC_SUBST([COGL_1_MINOR_VERSION],[cogl_1_minor_version])
|
||
|
AC_SUBST([COGL_1_MICRO_VERSION],[cogl_1_micro_version])
|
||
|
AC_SUBST([COGL_1_VERSION],[cogl_1_version])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Export the libtool versioning
|
||
|
dnl ================================================================
|
||
|
AC_SUBST([COGL_LT_CURRENT], [cogl_lt_current])
|
||
|
AC_SUBST([COGL_LT_REVISION], [cogl_lt_revision])
|
||
|
AC_SUBST([COGL_LT_AGE], [cogl_lt_age])
|
||
|
AC_SUBST([COGL_LT_RELEASE], [cogl_lt_release])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Export the source code release status
|
||
|
dnl ================================================================
|
||
|
AC_SUBST([COGL_RELEASE_STATUS], [cogl_release_status])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Handle extra configure options
|
||
|
dnl ================================================================
|
||
|
|
||
|
dnl ============================================================
|
||
|
dnl Enable debugging
|
||
|
dnl ============================================================
|
||
|
m4_define([default], [m4_if(cogl_release_status, [git], [yes], [no])])
|
||
|
AC_ARG_ENABLE(
|
||
|
[debug],
|
||
|
[AC_HELP_STRING([--enable-debug=@<:@no/yes@:>@], [Control Cogl debugging level @<:@default=]default[@:>@])],
|
||
|
[],
|
||
|
enable_debug=default
|
||
|
)
|
||
|
|
||
|
AS_CASE(
|
||
|
[$enable_debug],
|
||
|
[yes],
|
||
|
[
|
||
|
test "$cflags_set" = set || CFLAGS="$CFLAGS -g -O0"
|
||
|
COGL_EXTRA_CFLAGS="-DCOGL_GL_DEBUG -DCOGL_OBJECT_DEBUG -DCOGL_HANDLE_DEBUG -DCOGL_ENABLE_DEBUG"
|
||
|
],
|
||
|
[no],
|
||
|
[
|
||
|
COGL_EXTRA_CFLAGS="-DCOGL_ENABLE_DEBUG -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
|
||
|
],
|
||
|
[AC_MSG_ERROR([Unknown argument for --enable-debug])]
|
||
|
)
|
||
|
|
||
|
AC_SUBST(COGL_DEBUG_CFLAGS)
|
||
|
|
||
|
|
||
|
dnl ============================================================
|
||
|
dnl Enable strict compiler flags
|
||
|
dnl ============================================================
|
||
|
|
||
|
# use strict compiler flags only when building from git; the rules for
|
||
|
# distcheck will take care of turning this on when making a release
|
||
|
m4_define([default], [m4_if(cogl_release_status, [git], [yes], [no])])
|
||
|
AC_ARG_ENABLE(
|
||
|
[maintainer-flags],
|
||
|
[AC_HELP_STRING([--enable-maintainer-flags=@<:@no/yes/error@:>@], [Use strict compiler flags @<:@default=]default[@:>@])],
|
||
|
[],
|
||
|
enable_maintainer_flags=default
|
||
|
)
|
||
|
|
||
|
MAINTAINER_COMPILER_FLAGS="-Wall -Wshadow -Wcast-align -Wuninitialized
|
||
|
-Wno-strict-aliasing -Wempty-body -Wformat
|
||
|
-Wformat-security -Winit-self
|
||
|
-Wdeclaration-after-statement -Wvla
|
||
|
-Wpointer-arith"
|
||
|
|
||
|
AS_CASE(
|
||
|
[$enable_maintainer_flags],
|
||
|
[yes],
|
||
|
[
|
||
|
AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
|
||
|
],
|
||
|
[no],
|
||
|
[
|
||
|
],
|
||
|
[error],
|
||
|
[
|
||
|
MAINTAINER_COMPILER_FLAGS="$MAINTAINER_COMPILER_FLAGS -Werror"
|
||
|
AS_COMPILER_FLAGS([MAINTAINER_CFLAGS], [$MAINTAINER_COMPILER_FLAGS])
|
||
|
],
|
||
|
[*],
|
||
|
[AC_MSG_ERROR([Invalid option for --enable-maintainer-flags])]
|
||
|
)
|
||
|
|
||
|
# strip leading spaces
|
||
|
COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS ${MAINTAINER_CFLAGS/# }"
|
||
|
|
||
|
|
||
|
dnl ============================================================
|
||
|
dnl Choose image loading backend
|
||
|
dnl ============================================================
|
||
|
AC_ARG_ENABLE(
|
||
|
[gdk-pixbuf],
|
||
|
[AC_HELP_STRING([--enable-gdk-pixbuf=@<:@no/yes@:>@], [Enable image loading via gdk-pixbuf @<:@default=yes@:>@])],
|
||
|
[],
|
||
|
enable_gdk_pixbuf=yes
|
||
|
)
|
||
|
|
||
|
if test "x$enable_gdk_pixbuf" = "xyes"; then
|
||
|
PKG_CHECK_EXISTS([xi], [have_gdk_pixbuf=yes], [have_gdk_pixbuf=no])
|
||
|
else
|
||
|
have_gdk_pixbuf=no
|
||
|
fi
|
||
|
|
||
|
AC_ARG_ENABLE(
|
||
|
[quartz-image],
|
||
|
[AC_HELP_STRING([--enable-quartz-image=@<:@no/yes@:>@], [Enable image loading via quartz @<:@default=no@:>@])],
|
||
|
[],
|
||
|
enable_quartz_image=no
|
||
|
)
|
||
|
|
||
|
AS_IF(
|
||
|
[test "x$have_gdk_pixbuf" = "xyes"],
|
||
|
[
|
||
|
AC_DEFINE([USE_GDKPIXBUF], 1, [Use GdkPixbuf for loading image data])
|
||
|
COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES gdk-pixbuf-2.0 >= gdk_pixbuf_req_version"
|
||
|
COGL_IMAGE_BACKEND="gdk-pixbuf"
|
||
|
],
|
||
|
[test "x$enable_quartz_image" = "xyes"],
|
||
|
[
|
||
|
EXPERIMENTAL_CONFIG=yes
|
||
|
EXPERIMENTAL_OPTIONS="$EXPERIMENTAL_OPTIONS Quartz Core Graphics,"
|
||
|
AC_DEFINE([USE_QUARTZ], 1,
|
||
|
[Use Core Graphics (Quartz) for loading image data])
|
||
|
COGL_IMAGE_BACKEND="quartz"
|
||
|
],
|
||
|
[
|
||
|
EXPERIMENTAL_CONFIG=yes
|
||
|
EXPERIMENTAL_OPTIONS="$EXPERIMENTAL_OPTIONS fallback image decoding (stb_image),"
|
||
|
AC_DEFINE([USE_INTERNAL], 1,
|
||
|
[Use internal image decoding for loading image data])
|
||
|
COGL_IMAGE_BACKEND="stb_image"
|
||
|
]
|
||
|
)
|
||
|
|
||
|
|
||
|
dnl ============================================================
|
||
|
dnl Determine which window systems and drivers we can support
|
||
|
dnl ============================================================
|
||
|
|
||
|
AM_CONDITIONAL(COGL_STANDALONE_BUILD, [true])
|
||
|
AC_DEFINE([COGL_HAS_FULL_WINSYS], [1], [Cogl can create its own OpenGL context])
|
||
|
|
||
|
AC_DEFINE([COGL_HAS_X11_SUPPORT], [1], [Cogl supports the X11 window system])
|
||
|
AC_DEFINE([COGL_HAS_XLIB_SUPPORT], [1], [Cogl supports X11 using the Xlib API])
|
||
|
AC_DEFINE([COGL_HAS_GLX_SUPPORT], [1], [Cogl supports OpenGL using the GLX API])
|
||
|
AC_DEFINE([HAVE_COGL_GL], [1], [Have GL for rendering])
|
||
|
|
||
|
AM_CONDITIONAL(SUPPORT_GLX, [true])
|
||
|
AM_CONDITIONAL(SUPPORT_X11, [true])
|
||
|
AM_CONDITIONAL(SUPPORT_XLIB, [true])
|
||
|
AM_CONDITIONAL(SUPPORT_EGL, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_POWERVR_X11, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_POWERVR_NULL, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_POWERVR_GDL, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_DRM_SURFACELESS, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_OSX, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_WIN32, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_CEX100, [false])
|
||
|
AM_CONDITIONAL(SUPPORT_WAYLAND, [false])
|
||
|
|
||
|
AM_CONDITIONAL([COGL_DRIVER_GLES], [false])
|
||
|
AM_CONDITIONAL([COGL_DRIVER_GL], [true])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Compiler stuff.
|
||
|
dnl ================================================================
|
||
|
AC_PROG_CC
|
||
|
AC_PROG_CPP
|
||
|
AM_PROG_CC_C_O
|
||
|
AC_ISC_POSIX
|
||
|
AC_C_CONST
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Libtool stuff.
|
||
|
dnl ================================================================
|
||
|
dnl AC_PROG_LIBTOOL
|
||
|
dnl LIBTOOL="$LIBTOOL --preserve-dup-deps"
|
||
|
LT_PREREQ([2.2.6])
|
||
|
LT_INIT([disable-static])
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl I18n stuff.
|
||
|
dnl ================================================================
|
||
|
AM_GNU_GETTEXT_VERSION([0.17])
|
||
|
AM_GNU_GETTEXT([external])
|
||
|
|
||
|
GETTEXT_PACKAGE="cogl"
|
||
|
AC_SUBST(GETTEXT_PACKAGE)
|
||
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,
|
||
|
"$GETTEXT_PACKAGE",
|
||
|
[The prefix for our gettext translation domains.])
|
||
|
AS_ALL_LINGUAS
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Documentation stuff.
|
||
|
dnl ================================================================
|
||
|
GTK_DOC_CHECK([gtk_doc_req_version], [--flavour no-tmpl])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Check for dependency packages.
|
||
|
dnl ================================================================
|
||
|
|
||
|
dnl ============================================================
|
||
|
dnl Check glib dependencies
|
||
|
dnl ============================================================
|
||
|
AM_PATH_GLIB_2_0([glib_req_version],
|
||
|
[have_glib=yes], [have_glib=no],
|
||
|
[gobject gthread gmodule-no-export])
|
||
|
AS_IF([test "x$have_glib" = "xno"], AC_MSG_ERROR([glib-2.0 is required]))
|
||
|
|
||
|
COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES glib-2.0 pangocairo >= pangocairo_req_version gl"
|
||
|
AC_SUBST(COGL_PKG_REQUIRES)
|
||
|
PKG_CHECK_MODULES(COGL_DEP, [$COGL_PKG_REQUIRES])
|
||
|
|
||
|
dnl ============================================================
|
||
|
dnl Check X11 dependencies (if supporting any X11 based winsys)
|
||
|
dnl ============================================================
|
||
|
AS_IF(
|
||
|
[test "x$SUPPORT_XLIB" = "x1"],
|
||
|
[COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES x11 xext xfixes >= xfixes_req_version xdamage xcomposite >= xcomposite_req_version"]
|
||
|
)
|
||
|
|
||
|
AM_CONDITIONAL(X11_TESTS, [test "x$SUPPORT_XLIB" = "x1"])
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Misc program dependencies.
|
||
|
dnl ================================================================
|
||
|
AC_PROG_INSTALL
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl GObject-Introspection check
|
||
|
dnl ================================================================
|
||
|
GOBJECT_INTROSPECTION_CHECK([gi_req_version])
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Checks for header files.
|
||
|
dnl ================================================================
|
||
|
AC_PATH_X
|
||
|
AC_HEADER_STDC
|
||
|
AC_CHECK_HEADERS(fcntl.h limits.h unistd.h signal.h)
|
||
|
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Checks for library functions.
|
||
|
dnl ================================================================
|
||
|
AC_TYPE_SIGNAL
|
||
|
AC_CHECK_FUNCS(putenv strdup)
|
||
|
|
||
|
|
||
|
COGL_DEFINES_SYMBOLS="COGL_HAS_X11 COGL_HAS_X11_SUPPORT COGL_HAS_XLIB COGL_HAS_XLIB_SUPPORT COGL_HAS_GL CLUTTER_COGL_HAS_GL"
|
||
|
|
||
|
COGL_DEFINES=""
|
||
|
for x in $COGL_DEFINES_SYMBOLS; do
|
||
|
COGL_DEFINES="$COGL_DEFINES
|
||
|
#define $x 1"
|
||
|
done;
|
||
|
|
||
|
AC_SUBST(COGL_DEFINES)
|
||
|
|
||
|
COGL_GL_HEADER_INCLUDES="#include <GL/gl.h>"
|
||
|
AC_SUBST(COGL_GL_HEADER_INCLUDES)
|
||
|
|
||
|
AM_CONDITIONAL([COGL_DRIVER_GL], [true])
|
||
|
AC_DEFINE([COGL_ENABLE_EXPERIMENTAL_2_0_API], [1],
|
||
|
[Can use Cogl 2.0 API internally])
|
||
|
|
||
|
PKG_CHECK_EXISTS([gl],
|
||
|
[BACKEND_PC_FILES="$BACKEND_PC_FILES gl"],
|
||
|
# if a pkg-config file isn't found just add -lGL
|
||
|
# and hope for the best.
|
||
|
[FLAVOUR_LIBS="$FLAVOUR_LIBS -lGL"])
|
||
|
|
||
|
COGL_WINSYS=glx
|
||
|
AC_SUBST([COGL_WINSYS])
|
||
|
COGL_DRIVER=gl
|
||
|
AC_SUBST([COGL_DRIVER])
|
||
|
|
||
|
COGL_DEBUG_CFLAGS="-DCOGL_GL_DEBUG -DCOGL_OBJECT_DEBUG -DCOGL_HANDLE_DEBUG -DCOGL_ENABLE_DEBUG"
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl What needs to be substituted in other files
|
||
|
dnl ================================================================
|
||
|
AC_SUBST(COGL_DEP_CFLAGS)
|
||
|
AC_SUBST(COGL_DEP_LIBS)
|
||
|
AC_SUBST(COGL_EXTRA_CFLAGS)
|
||
|
AC_SUBST(COGL_EXTRA_LDFLAGS)
|
||
|
|
||
|
AC_OUTPUT(
|
||
|
Makefile
|
||
|
cogl/Makefile
|
||
|
cogl/cogl-1.0.pc
|
||
|
cogl/cogl-$COGL_MAJOR_VERSION.0.pc:cogl/cogl.pc.in
|
||
|
cogl/cogl-defines.h
|
||
|
pango/Makefile
|
||
|
po/Makefile.in
|
||
|
)
|
||
|
|
||
|
dnl ================================================================
|
||
|
dnl Dah Da!
|
||
|
dnl ================================================================
|
||
|
echo ""
|
||
|
echo "Cogl - $COGL_1_VERSION/$COGL_VERSION (${COGL_RELEASE_STATUS})"
|
||
|
|
||
|
# Global flags
|
||
|
echo ""
|
||
|
echo " • Global:"
|
||
|
echo " Prefix: ${prefix}"
|
||
|
|
||
|
# Compiler/Debug related flags
|
||
|
echo ""
|
||
|
echo " • Compiler options:"
|
||
|
echo " Cogl debug: ${enable_debug}"
|
||
|
echo " Compiler flags: ${CFLAGS} ${COGL_EXTRA_CFLAGS}"
|
||
|
|
||
|
# Miscellaneous
|
||
|
echo ""
|
||
|
echo " • Extra:"
|
||
|
echo " Build introspection data: ${enable_introspection}"
|
||
|
echo " Image backend: ${COGL_IMAGE_BACKEND}"
|
||
|
|
||
|
echo ""
|
||
|
|
||
|
# General warning about experimental features
|
||
|
if test "x$EXPERIMENTAL_CONFIG" = "xyes"; then
|
||
|
echo ""
|
||
|
echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
|
||
|
echo " *WARNING*"
|
||
|
echo ""
|
||
|
echo " The stability of your build might be affected by one or more"
|
||
|
echo " experimental configuration options."
|
||
|
echo
|
||
|
echo " experimental options: $EXPERIMENTAL_OPTIONS"
|
||
|
echo "☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠☠"
|
||
|
echo ""
|
||
|
fi
|