AC_PREREQ(2.63)
AC_INIT([mate-power-manager], [1.6.1], [http://www.mate-desktop.org/])
AC_CONFIG_SRCDIR(src)
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
# enable nice build output on automake1.11
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_INSTALL
LT_INIT
IT_PROG_INTLTOOL([0.35.0])
MATE_COMPILE_WARNINGS
MATE_DOC_INIT
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
dnl ---------------------------------------------------------------------------
dnl - Use strict options (default enabled for devs, disabled in releases)
dnl ---------------------------------------------------------------------------
dnl if .git directory is present, considering we are working in the repository
if test -d ".git"; then
default_strict=yes
else
default_strict=no
fi
AC_ARG_ENABLE(strict, AS_HELP_STRING([--enable-strict],
[Enable strict compilation options]), enable_strict=$enableval,
enable_strict=$default_strict)
if test x$enable_strict != xno; then
CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
CPPFLAGS="$CPPFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED"
CPPFLAGS="$CPPFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE"
CPPFLAGS="$CPPFLAGS -DGSEAL_ENABLE"
if test "$GCC" = "yes"; then
WARNINGFLAGS="$WARNINGFLAGS -Werror"
fi
fi
if test "$GCC" = "yes"; then
WARNINGFLAGS="$WARNINGFLAGS -Wall"
WARNINGFLAGS="$WARNINGFLAGS -Wcast-align -Wno-uninitialized"
WARNINGFLAGS="$WARNINGFLAGS -Wmissing-declarations"
# WARNINGFLAGS="$WARNINGFLAGS -Wredundant-decls"
# WARNINGFLAGS="$WARNINGFLAGS -Wmissing-noreturn"
WARNINGFLAGS="$WARNINGFLAGS -Wpointer-arith"
WARNINGFLAGS="$WARNINGFLAGS -Wcast-align"
WARNINGFLAGS="$WARNINGFLAGS -Wwrite-strings"
WARNINGFLAGS="$WARNINGFLAGS -Winit-self"
WARNINGFLAGS="$WARNINGFLAGS -Wreturn-type"
WARNINGFLAGS="$WARNINGFLAGS -Wformat-nonliteral"
WARNINGFLAGS="$WARNINGFLAGS -Wformat-security"
WARNINGFLAGS="$WARNINGFLAGS -Wmissing-include-dirs"
WARNINGFLAGS="$WARNINGFLAGS -Wmissing-format-attribute"
WARNINGFLAGS="$WARNINGFLAGS -Wclobbered"
WARNINGFLAGS="$WARNINGFLAGS -Wempty-body"
WARNINGFLAGS="$WARNINGFLAGS -Wignored-qualifiers"
# WARNINGFLAGS="$WARNINGFLAGS -Wsign-compare"
WARNINGFLAGS="$WARNINGFLAGS -Wtype-limits"
# WARNINGFLAGS="$WARNINGFLAGS -Wuninitialized"
# WARNINGFLAGS="$WARNINGFLAGS -Waggregate-return"
WARNINGFLAGS="$WARNINGFLAGS -Wdeclaration-after-statement"
WARNINGFLAGS="$WARNINGFLAGS -Wshadow"
WARNINGFLAGS="$WARNINGFLAGS -Winline"
# WARNINGFLAGS="$WARNINGFLAGS -Wswitch-enum"
WARNINGFLAGS="$WARNINGFLAGS -Wmissing-parameter-type"
WARNINGFLAGS="$WARNINGFLAGS -Woverride-init"
WARNINGFLAGS="$WARNINGFLAGS -Wno-strict-aliasing"
else
WARNINGFLAGS=""
fi
AC_SUBST(WARNINGFLAGS)
dnl ---------------------------------------------------------------------------
dnl - Debugging switches (uncomment this if you want to use gdb)
dnl ---------------------------------------------------------------------------
CPPFLAGS="$CPPFLAGS -g"
CPPFLAGS="$CPPFLAGS -fexceptions"
dnl ---------------------------------------------------------------------------
dnl - gettext stuff
dnl ---------------------------------------------------------------------------
GETTEXT_PACKAGE=AC_PACKAGE_NAME
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE(GETTEXT_PACKAGE, "AC_PACKAGE_NAME", [foo])
AM_GLIB_GNU_GETTEXT
GLIB_GSETTINGS
dnl ----------------------------------------------------------------------------
dnl - Library dependencies
dnl ----------------------------------------------------------------------------
GTK_API_VERSION=2.0
GLIB_REQUIRED=2.13.0
GIO_REQUIRED=2.25.0
GTK_REQUIRED=2.17.7
GDK_REQUIRED=2.11.0
MATE_KEYRING_REQUIRED=1.1.0
DBUS_REQUIRED=1.0
DBUS_GLIB_REQUIRED=0.70
LIBNOTIFY_REQUIRED=0.7.0
CAIRO_REQUIRED=1.0.0
UNIQUE_REQUIRED=0.9.4
LIBPANEL_REQUIRED=1.5.0
XRANDR_REQUIRED=1.2.0
CANBERRA_REQUIRED=0.10
UPOWER_REQUIRED=0.9.1
dnl ----------------------------------------------------------------------------
dnl GTK library version
dnl ----------------------------------------------------------------------------
AC_MSG_CHECKING([which gtk+ version to compile against])
AC_ARG_WITH([gtk],
[AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 2.0)])],
[case "$with_gtk" in
2.0|3.0) ;;
*) AC_MSG_ERROR([invalid gtk version specified]) ;;
esac],
[with_gtk=2.0])
AC_MSG_RESULT([$with_gtk])
case "$with_gtk" in
2.0) GTK_API_VERSION=2.0
GTK_REQUIRED=2.17.7
;;
3.0) GTK_API_VERSION=3.0
GTK_REQUIRED=3.0.0
;;
esac
dnl ---------------------------------------------------------------------------
dnl - Check library dependencies
dnl ---------------------------------------------------------------------------
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 gio-2.0 >= $GIO_REQUIRED)
PKG_CHECK_MODULES(CANBERRA, libcanberra-gtk >= $CANBERRA_REQUIRED)
PKG_CHECK_MODULES(DBUS,[
dbus-glib-1 >= $DBUS_GLIB_REQUIRED
dbus-1 >= $DBUS_REQUIRED
gthread-2.0])
PKG_CHECK_MODULES(MATE, [
gtk+-2.0 >= $GTK_REQUIRED
cairo >= $CAIRO_REQUIRED])
PKG_CHECK_MODULES(GDK, [
gdk-2.0 >= $GDK_REQUIRED
gdk-x11-2.0 >= $GDK_REQUIRED])
PKG_CHECK_MODULES(X11, [
xrandr >= $XRANDR_REQUIRED
xrender x11 xext xproto])
PKG_CHECK_MODULES(X11, x11 xrender)
PKG_CHECK_EXISTS(
[xrandr >= 1.3],
[AC_DEFINE(HAVE_XRANDR_13, 1, [xrandr 1.3 available])])
PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= $LIBNOTIFY_REQUIRED)
dnl ----------------------------------------------------------------------------
dnl - Unique
dnl ----------------------------------------------------------------------------
#PKG_CHECK_MODULES(UNIQUE, unique-1.0 >= $UNIQUE_REQUIRED)
case "$with_gtk" in
2.0) LIBUNIQUE_VERSION=1.0
;;
3.0) LIBUNIQUE_VERSION=3.0
;;
esac
PKG_CHECK_MODULES(UNIQUE, unique-$LIBUNIQUE_VERSION, enable_libunique=yes, enable_libunique=no)
AC_SUBST([UNIQUE_CFLAGS])
AC_SUBST([UNIQUE_LIBS])
AC_ARG_ENABLE(unique, [ --enable-unique enable the use of libunique instead of g_application or gtk_application], enable_libunique=yes,)
if test "x$enable_libunique" = "xyes"; then
UNIQUE_CFLAGS="$UNIQUE_CFLAGS -DUSE_UNIQUE=1"
# fix for deprecated on 2.26
# unique en la version 1.0, contiene simbolos no definidos a partir de
# glib 2.26, pero puede ser obviado si se utiliza -DG_CONST_RETURN=const
if $PKG_CONFIG --atleast-version 2.26 glib-2.0; then
UNIQUE_CFLAGS="$UNIQUE_CFLAGS -DG_CONST_RETURN=const"
fi
fi
PKG_CHECK_MODULES(UPOWER, upower-glib >= $UPOWER_REQUIRED)
dnl ---------------------------------------------------------------------------
dnl - Check XF86XK_Keys
dnl ---------------------------------------------------------------------------
PKG_CHECK_EXISTS(
[xproto >= 7.0.14],
[AC_DEFINE(HAVE_XF86XK_BATTERY, 1, [Define if XF86XK_Battery is available])])
PKG_CHECK_EXISTS(
[xproto >= 7.0.15],
[AC_DEFINE(HAVE_XF86XK_SUSPEND, 1, [Define if XF86XK_Suspend is available])
AC_DEFINE(HAVE_XF86XK_HIBERNATE, 1, [Define if XF86XK_Hibernate is available])])
dnl ---------------------------------------------------------------------------
dnl - Make paths available for source files
dnl ---------------------------------------------------------------------------
AC_SUBST(SYSCONFDIR, $sysconfdir)
AC_SUBST(DATADIR, $datadir)
AC_SUBST(BINDIR, $bindir)
AC_SUBST(SBINDIR, $sbindir)
dnl ---------------------------------------------------------------------------
dnl - Where should we put documentation ?
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(doc-dir,
AS_HELP_STRING([--with-doc-dir=
],
[directory to install documentation]),
[DOCDIR="$with_doc_dir/mate-power-manager-$VERSION"],
[DOCDIR="$DATADIR/doc/mate-power-manager-$VERSION"])
AC_SUBST(DOCDIR)
dnl ---------------------------------------------------------------------------
dnl - Build self tests
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(tests,
AS_HELP_STRING([--enable-tests],
[Build self tests]),
enable_tests=$enableval,enable_tests=no)
AC_MSG_CHECKING([whether to support tests])
have_tests=no
if test x$enable_tests = xyes ; then
have_tests=yes
AC_DEFINE(HAVE_TESTS, 1, [Define if we want to use the self tests])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL([HAVE_TESTS], [test $have_tests = yes])
dnl ---------------------------------------------------------------------------
dnl - Build mate-keyring support
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(keyring,
[AS_HELP_STRING([--without-keyring],
[Disable the use of mate-keyring])],
[],
[with_keyring=yes])
AM_CONDITIONAL([WITH_KEYRING],[test "$with_keyring" = "yes"])
if test "$with_keyring" = "yes"; then
PKG_CHECK_MODULES(KEYRING, mate-keyring-1 >= $MATE_KEYRING_REQUIRED)
AC_DEFINE([WITH_KEYRING],[1],[Define if KEYRING support is enabled])
fi
dnl ---------------------------------------------------------------------------
dnl - Build applets
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(applets,
AS_HELP_STRING([--disable-applets],
[Build the extra power applets]),
enable_applets=$enableval,enable_applets=yes)
AC_MSG_CHECKING([whether to build applet support])
have_applets=no
if test x$enable_applets = xyes ; then
have_applets=yes
PKG_CHECK_MODULES(PANEL, [libmatepanelapplet-4.0 >= $LIBPANEL_REQUIRED])
AC_DEFINE(HAVE_APPLETS, 1, [Define if we are building applets])
fi
AC_MSG_RESULT([$have_applets])
AM_CONDITIONAL([HAVE_APPLETS], [test $have_applets = yes])
dnl ---------------------------------------------------------------------------
dnl systemd inhibit
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(systemdinhibit,
AS_HELP_STRING([--with-systemdinhibit],
[Add systemdinhibit support]),,
with_systemdinhibit=auto)
use_systemdinhibit=no
if test "x$with_systemdinhibit" != "xno" ; then
PKG_CHECK_MODULES(SYSTEMD_INHIBIT, libsystemd-login >= 195 libsystemd-daemon >= 195 , use_systemdinhibit=yes, use_systemdinhibit=no)
if test "x$use_systemdinhibit" = "xyes"; then
AC_DEFINE(WITH_SYSTEMD_INHIBIT, 1, [systemdinhibit support])
fi
fi
AM_CONDITIONAL(WITH_SYSTEMD_INHIBIT, test x$use_systemdinhibit = xyes)
AC_SUBST(WITH_SYSTEMD_INHIBIT)
dnl ---------------------------------------------------------------------------
dnl systemd sleep
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(systemdsleep,
AS_HELP_STRING([--with-systemdsleep],
[Use logind for suspend and hibernate instead of upower]),,
with_systemdsleep=auto)
use_systemdsleep=no
if test "x$with_systemdsleep" != "xno" ; then
PKG_CHECK_MODULES(SYSTEMD_SLEEP, libsystemd-login >= 195 libsystemd-daemon >= 195 , use_systemdsleep=yes, use_systemdsleep=no)
if test "x$use_systemdsleep" = "xyes"; then
AC_DEFINE(WITH_SYSTEMD_SLEEP, 1, [systemdsleeo support])
fi
fi
AM_CONDITIONAL(WITH_SYSTEMD_SLEEP, test x$use_systemdsleep = xyes)
AC_SUBST(WITH_SYSTEMD_SLEEP)
dnl ---------------------------------------------------------------------------
dnl - DocBook Documentation
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(docbook-docs,
AS_HELP_STRING([--enable-docbook-docs],
[build documentation (requires xmlto)]),
enable_docbook_docs=$enableval,enable_docbook_docs=auto)
AC_PATH_PROG(XMLTO, xmlto, no)
AC_MSG_CHECKING([whether to build DocBook documentation])
if test x$enable_docbook_docs = xauto ; then
if test x$XMLTO = xno ; then
enable_docbook_docs=no
else
enable_docbook_docs=yes
fi
fi
if test x$enable_docbook_docs = xyes -a x$XMLTO = xno; then
AC_MSG_ERROR([Building DocBook docs explicitly required, but DocBook not found])
fi
AM_CONDITIONAL(DOCBOOK_DOCS_ENABLED, test x$enable_docbook_docs = xyes)
AC_MSG_RESULT(yes)
dnl ---------------------------------------------------------------------------
dnl - Are we specifying a different dbus root ?
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(dbus-services,
AS_HELP_STRING([--with-dbus-services=],
[where D-BUS services directory is]),
[DBUS_SERVICES_DIR="$with_dbus_services"],
[DBUS_SERVICES_DIR="$DATADIR/dbus-1/services"])
AC_SUBST(DBUS_SERVICES_DIR)
dnl ---------------------------------------------------------------------------
dnl - Check for Solaris kstat support
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING(for Solaris kstat)
AC_CHECK_LIB(kstat, kstat_open,
[
AC_DEFINE(HAVE_KSTAT, 1, [Define if Solaris kstat is support])
GPM_EXTRA_LIBS="$GPM_EXTRA_LIBS -lkstat"
])
AC_SUBST(GPM_EXTRA_LIBS)
dnl ---------------------------------------------------------------------------
dnl - Is docbook2man available?
dnl ---------------------------------------------------------------------------
AC_PATH_PROG(DOCBOOK2MAN, docbook2man, no)
if test "$DOCBOOK2MAN" = "no" ; then
AC_MSG_WARN([docbook2man not found, will not be able to build man documentation])
fi
AM_CONDITIONAL(HAVE_DOCBOOK2MAN, [test "$DOCBOOK2MAN" != "no"])
dnl ---------------------------------------------------------------------------
dnl - Makefiles, etc.
dnl ---------------------------------------------------------------------------
AC_CONFIG_FILES([
Makefile
src/Makefile
applets/Makefile
applets/brightness/Makefile
applets/inhibit/Makefile
docs/Makefile
man/Makefile
help/Makefile
po/Makefile.in
tools/Makefile
policy/Makefile
data/Makefile
data/mate-power-manager.desktop.in
data/mate-power-preferences.desktop.in
data/mate-power-statistics.desktop.in
data/icons/Makefile
data/icons/16x16/Makefile
data/icons/16x16/actions/Makefile
data/icons/16x16/apps/Makefile
data/icons/16x16/status/Makefile
data/icons/22x22/Makefile
data/icons/22x22/actions/Makefile
data/icons/22x22/apps/Makefile
data/icons/22x22/status/Makefile
data/icons/24x24/Makefile
data/icons/24x24/actions/Makefile
data/icons/24x24/apps/Makefile
data/icons/24x24/status/Makefile
data/icons/32x32/Makefile
data/icons/32x32/actions/Makefile
data/icons/32x32/apps/Makefile
data/icons/32x32/status/Makefile
data/icons/48x48/Makefile
data/icons/48x48/actions/Makefile
data/icons/48x48/apps/Makefile
data/icons/48x48/status/Makefile
data/icons/scalable/Makefile
data/icons/scalable/actions/Makefile
data/icons/scalable/apps/Makefile
data/icons/scalable/status/Makefile
])
AC_OUTPUT
dnl ==========================================================================
echo "
MATE Power Manager $VERSION
=============================
prefix: ${prefix}
datadir: ${datadir}
compiler: ${CC}
cflags: ${CFLAGS}
mate-keyring support: ${with_keyring}
Building extra applets: ${enable_applets}
Self test support: ${have_tests}
Use libunique: ${enable_libunique}
systemd support: ${use_systemdinhibit}
systemd sleep support: ${use_systemdsleep}
Docbook support: ${enable_docbook_docs}
documentation dir: $DOCDIR
dbus-1 services dir: $DBUS_SERVICES_DIR
"
if [[ "${prefix}" != "/usr" ]] ; then
echo '
WARNING!!! MATE Power Manager uses the "pkexec" utility to provide root
permissions necessary for the "mate-power-backlight-helper" executable to run.
A link should be provided from the file
"/usr/share/polkit-1/actions/org.mate.power.policy" to the installed version
"${prefix}/share/polkit-1/actions/org.mate.power.policy" after installation.
'
fi