gala/configure.ac

281 lines
8.9 KiB
Plaintext

# If not 1, append revision to the version number and enable other development stuff
m4_define([gala_released], [0])
m4_define([gala_major_version], [0])
m4_define([gala_minor_version], [2])
m4_define([gala_micro_version], [0])
m4_define([gala_nano_version], [0])
# If library source has changed since last release, increment revision
# If interfaces have been removed or changed since last release,
# increment current and set revision to 0
# If interfaces have been added since last release, increment age
# If interfaces have been removed since last release, set age to 0
m4_define([gala_lt_current], [0])
m4_define([gala_lt_revision], [0])
m4_define([gala_lt_age], [0])
# Display the nano_version only if it's not '0'
m4_define([gala_base_version],
gala_major_version.gala_minor_version.gala_micro_version)
m4_define([gala_full_version],
[m4_if(gala_nano_version, [0],
gala_base_version, gala_base_version.gala_nano_version)])
# Extend version with bzr revision for non-release builds
m4_define([gala_version], m4_if(gala_released, [1],
[gala_full_version], [m4_esyscmd([build-aux/bzr-version-gen gala_full_version])]))
m4_define([gala_major_minor_version], gala_major_version.gala_minor_version)
m4_define([gala_module_version], gala_lt_current)
AC_INIT([gala], gala_version,
[https://bugs.launchpad.net/gala], [gala],
[https://launchpad.net/gala])
AC_DEFINE(RELEASE_NAME, "Window Manager.", Codename of this release)
AC_DEFINE(VERSION_INFO, m4_if(gala_released, [1], "Release", "Development"), Version info for package)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_PREREQ([2.65])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_SRCDIR([configure.ac])
AM_INIT_AUTOMAKE([1.11 tar-ustar dist-xz no-dist-gzip -Wno-portability subdir-objects])
AM_MAINTAINER_MODE
AC_PROG_CC
AM_PROG_CC_C_O
AC_DISABLE_STATIC
LT_INIT
PKG_PROG_PKG_CONFIG([0.21])
GLIB_GSETTINGS
AC_SUBST([CFLAGS])
AC_SUBST([CPPFLAGS])
AC_SUBST([LDFLAGS])
LT_CURRENT=gala_lt_current
LT_REVISION=gala_lt_revision
LT_AGE=gala_lt_age
AC_SUBST([LT_CURRENT])
AC_SUBST([LT_REVISION])
AC_SUBST([LT_AGE])
GALA_MAJOR_MINOR_VERSION=gala_major_minor_version
AC_SUBST([GALA_MAJOR_MINOR_VERSION])
API_VERSION=0.2
AC_SUBST([API_VERSION])
# -----------------------------------------------------------
# Vala
# -----------------------------------------------------------
VALA_MIN_VERSION=0.22.0
AM_PROG_VALAC([$VALA_MIN_VERSION])
if test "x$VALAC" = "x"; then
AC_MSG_ERROR([Vala requested but valac >= $VALA_MIN_VERSION is not installed])
fi
AC_PATH_PROG([VAPIGEN], [vapigen], [])
if test "x$VAPIGEN" = "x"; then
AC_MSG_ERROR([Vala must be built with --enable-vapigen])
fi
# -----------------------------------------------------------
# Dependencies
# -----------------------------------------------------------
GTK_MIN_VERSION=3.4.0
GLIB_MIN_VERSION=2.32.0
PLANK_MIN_VERSION=0.3.0
MUTTER_MIN_VERSION=3.8.4
MUTTER_API="3.8"
GALA_CORE_PKGS="gobject-2.0 >= $GLIB_MIN_VERSION \
glib-2.0 >= $GLIB_MIN_VERSION \
gio-2.0 >= $GLIB_MIN_VERSION \
gio-unix-2.0 >= $GLIB_MIN_VERSION \
gmodule-2.0 \
gtk+-3.0 >= $GTK_MIN_VERSION \
gdk-x11-3.0 >= $GTK_MIN_VERSION \
libbamf3 \
clutter-1.0 \
clutter-gtk-1.0 \
granite \
libmutter >= $MUTTER_MIN_VERSION \
gee-0.8 \
gnome-desktop-3.0 \
plank >= $PLANK_MIN_VERSION"
GALA_CORE_VALA_PKGS="--pkg gio-unix-2.0 \
--pkg gmodule-2.0 \
--pkg gtk+-3.0 \
--pkg gdk-x11-3.0 \
--pkg libbamf3 \
--pkg libmutter \
--pkg clutter-1.0 \
--pkg clutter-gtk-1.0 \
--pkg granite \
--pkg gee-0.8 \
--pkg gdesktopenums-3.0 \
--pkg gnome-desktop-3.0 \
--pkg xfixes-4.0 \
--pkg plank"
VALAFLAGS="--target-glib=2.32"
VALAFLAGS_CORE="--thread"
PKG_CHECK_MODULES(GALA_CORE, $GALA_CORE_PKGS)
# Plugins
PLUGIN_LDFLAGS="-module -avoid-version"
AC_SUBST([PLUGIN_LDFLAGS])
# -----------------------------------------------------------
# Optional Dependencies
# -----------------------------------------------------------
# 3.10
PKG_CHECK_MODULES(MUTTER310, [libmutter >= 3.9], [have_mutter310=yes], [have_mutter310=no])
if test "x$have_mutter310" = "xyes" ; then
PKG_CHECK_MODULES(MUTTER310, [libmutter >= 3.10.4])
VALAFLAGS="$VALAFLAGS --define HAS_MUTTER310"
MUTTER_API="3.10"
fi
# 3.12
PKG_CHECK_MODULES(MUTTER312, [libmutter >= 3.11], [have_mutter312=yes], [have_mutter312=no])
if test "x$have_mutter312" = "xyes" ; then
PKG_CHECK_MODULES(MUTTER312, [libmutter >= 3.12.2])
VALAFLAGS="$VALAFLAGS --define HAS_MUTTER312"
MUTTER_API="3.12"
fi
# 3.14
PKG_CHECK_MODULES(MUTTER314, [libmutter >= 3.13], [have_mutter314=yes], [have_mutter314=no])
if test "x$have_mutter314" = "xyes" ; then
PKG_CHECK_MODULES(MUTTER314, [libmutter >= 3.14.0])
VALAFLAGS="$VALAFLAGS --define HAS_MUTTER314"
MUTTER_API="3.14"
fi
AM_CONDITIONAL([HAVE_MUTTER314], [test "x$have_mutter314" = "xyes"])
# 3.16
PKG_CHECK_MODULES(MUTTER316, [libmutter >= 3.15], [have_mutter316=yes], [have_mutter316=no])
if test "x$have_mutter316" = "xyes" ; then
PKG_CHECK_MODULES(MUTTER316, [libmutter >= 3.15.2])
VALAFLAGS="$VALAFLAGS --define HAS_MUTTER316"
MUTTER_API="3.16"
fi
# -----------------------------------------------------------
# Dependencies for Notifications plugin
# -----------------------------------------------------------
NOTIFICATION_PLUGIN_PKGS="libcanberra \
libcanberra-gtk3"
NOTIFICATION_PLUGIN_VALA_PKGS="--pkg libcanberra \
--pkg libcanberra-gtk"
PKG_CHECK_MODULES(NOTIFICAION_PLUGIN, $NOTIFICATION_PLUGIN_PKGS)
AC_SUBST([NOTIFICATION_PLUGIN_VALA_PKGS])
# -----------------------------------------------------------
# Additional configure flags
# -----------------------------------------------------------
# Enable Vala debug-flag by default for non-release builds
AC_ARG_ENABLE([debug],
AS_HELP_STRING([--disable-debug],[compile without debug code]),
[enable_debug=$enableval], [m4_if(gala_released, [1], [enable_debug=no], [enable_debug=yes])])
if test "x$enable_debug" = "xyes" ; then
VALAFLAGS_CORE="$VALAFLAGS_CORE -g"
fi
GALA_CORE_VALAFLAGS="$VALAFLAGS $VALAFLAGS_CORE $GALA_CORE_VALA_PKGS"
AC_SUBST(GALA_CORE_VALAFLAGS)
GALA_DOCS_VALAFLAGS="$VALAFLAGS $GALA_CORE_VALA_PKGS"
AC_SUBST(GALA_DOCS_VALAFLAGS)
# -----------------------------------------------------------
# Additional build flags
# -----------------------------------------------------------
# Use RUNPATH instead of RPATH if needed
CFLAGS="$CFLAGS -Wl,--enable-new-dtags"
# -----------------------------------------------------------
# Documentation
# -----------------------------------------------------------
VALADOC_MIN_VERSION=0.3.1
AC_ARG_ENABLE([docs],
AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
[enable_docs=$enableval], [enable_docs=no])
AM_CONDITIONAL([ENABLE_DOCS], [test "x$enable_docs" = "xyes"])
have_valadoc=no
if test "x$enable_docs" = "xyes"; then
# make sure the library is new enough and the program exists
PKG_CHECK_MODULES([VALADOC], [valadoc-1.0 >= $VALADOC_MIN_VERSION])
AC_PATH_PROG([VALADOC], [valadoc], [:])
AS_IF([test "$VALADOC" != :], have_valadoc=yes)
fi
AM_CONDITIONAL([HAVE_VALADOC], [test "x$have_valadoc" = "xyes"])
if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then
AC_MSG_ERROR([Doc building requested but valadoc not installed.])
fi
# -----------------------------------------------------------
# Gettext
# -----------------------------------------------------------
GETTEXT_PACKAGE=AC_PACKAGE_NAME
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
IT_PROG_INTLTOOL([0.35.0])
# -----------------------------------------------------------
# Final output
# -----------------------------------------------------------
AC_CONFIG_FILES([
Makefile
src/Makefile
lib/Makefile
lib/gala.pc
docs/Makefile
data/Makefile
data/org.pantheon.desktop.gala.gschema.xml.in
data/icons/Makefile
vapi/Makefile
plugins/Makefile
plugins/maskcorners/Makefile
plugins/notify/Makefile
plugins/zoom/Makefile
po/Makefile.in
])
AC_OUTPUT
echo "
${PACKAGE} ${VERSION}
Prefix......................: ${prefix}
Vala Compiler...............: ${VALAC}
Vala Flags..................: ${VALAFLAGS}
C Compiler Flags............: ${CFLAGS}
Using Mutter................: ${MUTTER_API}
Documentation...............: ${have_valadoc}
"