dnl configure.ac
dnl
dnl xfwm4 - window manager for the Xfce4 desktop environment
dnl

m4_define([xfwm4_version], [4.5.0])

m4_define([gtk_minimum_version], [2.6.0])
m4_define([xfce_minimum_version], [4.4.0])
m4_define([xcomposite_minimum_version], [0.2])
m4_define([wnck_minimum_version], [2.12])
m4_define([startup_notification_minimum_version], [0.5])
m4_define([intltool_minimum_version], [0.31])

dnl init autoconf
AC_COPYRIGHT([Copyright (c) 2002-2007
        The Xfce development team. All rights reserved.

Written for Xfce by Olivier Fourdan <fourdan@xfce.org>.])
AC_INIT([xfwm4], [xfwm4_version], [xfce4-dev@xfce.org])
AM_INIT_AUTOMAKE([xfwm4], [xfwm4_version()])

AM_INIT_AUTOMAKE([1.8 dist-bzip2 tar-ustar])
AM_CONFIG_HEADER([config.h])

AM_MAINTAINER_MODE

dnl check for UNIX variants
AC_AIX
AC_ISC_POSIX
AC_MINIX
AM_CONDITIONAL([HAVE_CYGWIN], [test "`uname | grep \"CYGWIN\"`" != ""])

dnl check for basic programs
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_INTLTOOL([intltool_minimum_version], [no-xml])
AC_PROG_LIBTOOL

dnl Check C Compiler Characteristics
AC_C_CONST
AC_C_INLINE

dnl check for standard header files
AC_HEADER_STDC
AC_CHECK_FUNCS([daemon setsid])
AC_CHECK_FUNCS(opendir)

dnl Check for i18n support
XDT_I18N([@LINGUAS@])

dnl Check for X11 window system
XDT_CHECK_LIBX11_REQUIRE
XDT_CHECK_LIBSM

dnl Check for Xext library
AC_CHECK_LIB([Xext], [XShapeCombineShape],
  [
    if ! echo $LIBX11_LIBS | grep -q -- '-lXext'; then
      LIBX11_LIBS="$LIBX11_LIBS -lXext"
    fi
  ], [], [$LIBX11_CFLAGS $LIBX11_LDFLAGS $LIBX11_LIBS])

XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [gtk_minimum_version])
XDT_CHECK_PACKAGE([LIBXFCE4MCS_CLIENT], [libxfce4mcs-client-1.0], [xfce_minimum_version])
XDT_CHECK_PACKAGE([LIBXFCE4MCS_MANAGER], [libxfce4mcs-manager-1.0], [xfce_minimum_version])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [xfce_minimum_version])
XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [xfce_minimum_version])
XDT_CHECK_PACKAGE([LIBWNCK], [libwnck-1.0], [wnck_minimum_version])
XFCE_MCS_PLUGIN([XFCE_MCS_MANAGER], [xfce_minimum_version])

dnl
dnl Startup notification support
dnl
LIBSTARTUP_NOTIFICATION_FOUND="no"
XDT_CHECK_OPTIONAL_PACKAGE([LIBSTARTUP_NOTIFICATION],
                       [libstartup-notification-1.0], [startup_notification_minimum_version],
                       [startup-notification], 
                       [startup notification library], [yes])


dnl
dnl XSync support
dnl
XSYNC_LIBS=
AC_ARG_ENABLE([xsync],
AC_HELP_STRING([--enable-xsync], [try to use the xsync extension])
AC_HELP_STRING([--disable-xsync], [don't try to use the xsync extension]),
  [], [enable_xsync=yes])
have_xsync="no"
if test x"$enable_xsync" = x"yes"; then
  AC_CHECK_LIB([Xext], [XSyncQueryExtension],
      [ have_xsync="yes"
        XSYNC_LIBS=" -lXext"
        AC_DEFINE([HAVE_XSYNC], [1], [Define to enable xsync])
      ],[])
fi
AC_SUBST([XSYNC_LIBS])

dnl
dnl Render support
dnl
AC_ARG_ENABLE([render],
AC_HELP_STRING([--enable-render], [try to use the render extension])
AC_HELP_STRING([--disable-render], [don't try to use the render extension]),
  [], [enable_render=yes])
have_render="no"
RENDER_LIBS=
if test x"$enable_render" = x"yes"; then
  if $PKG_CONFIG --print-errors --exists xrender 2>&1; then
    PKG_CHECK_MODULES(RENDER, xrender)
    have_render="yes"
    AC_DEFINE([HAVE_RENDER], [1], [Define to enable render])
  else
    dnl fallback to check for libXrender 
    AC_CHECK_LIB([Xrender], [XRenderCreatePicture],
        [ have_render="yes"
          RENDER_LIBS=" -lXrender"
          AC_DEFINE([HAVE_RENDER], [1], [Define to enable render])
        ],[])
  fi
fi
AC_SUBST([RENDER_LIBS])

dnl
dnl RANDR extension
dnl (please note that Xrandr requires Xrender - and no, it's not a typo ;)
dnl
AC_ARG_ENABLE([randr],
AC_HELP_STRING([--enable-randr], [try to use the randr extension (requires render)])
AC_HELP_STRING([--disable-randr], [don't try to use the randr extension]),
  [], [enable_randr=yes])
RANDR_LIBS=
have_xrandr="no"
if test x"$enable_randr" = x"yes"; then
  if test x"$have_render" = x"yes"; then
    have_xrandr="no"
    ac_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $LIBX11_CFLAGS"
    AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
                 [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
                                  RANDR_LIBS="-lXrandr -lXrender"
                                  AC_DEFINE([HAVE_RANDR], [1], [Define to enable xrandr])
                                  have_xrandr="yes",,
                                  [#include <X11/Xlib.h>])],, 
                  $LIBS $LIBX11_LDFLAGS $LIBX11_LIBS -lXrender -lXext)
    CFLAGS="$ac_CFLAGS"
  fi
fi
AC_SUBST([RANDR_LIBS])

dnl
dnl Xcomposite and related extensions
dnl
compositor="no"
ENABLE_COMPOSITOR=""
AC_ARG_ENABLE([compositor],
AC_HELP_STRING([--enable-compositor], [enable compositor in xfwm4 (default)])
AC_HELP_STRING([--disable-compositor], [disable compositor in xfwm4]),
  [], [enable_compositor=yes])

if test x"$enable_compositor" = x"yes"; then
  if test x"$have_render" = x"yes"; then
    if $PKG_CONFIG --print-errors --exists xcomposite xfixes xdamage xrender 2>&1; then
      PKG_CHECK_MODULES(COMPOSITOR, xcomposite >= [xcomposite_minimum_version] xfixes xdamage)
      AC_DEFINE([HAVE_COMPOSITOR], [1], [Define to enable compositor])
      ENABLE_COMPOSITOR="--enable-compositor"
      compositor="yes"
    fi
  fi
fi
AC_SUBST(ENABLE_COMPOSITOR)

dnl
dnl Old unsupported KDE systray protocol
dnl
ENABLE_KDE_SYSTRAY=""
kde_systray="no"
AC_ARG_ENABLE([kde_systray],
  AC_HELP_STRING([--enable-kde-systray], [enable KDE systray proxy (deprecated)]),
  kde_systray="$enableval",
  kde_systray="no")

if test x"$kde_systray" = x"yes"; then
  AC_DEFINE([ENABLE_KDE_SYSTRAY_PROXY], [1], [Define to enable KDE systray proxy support])
  ENABLE_KDE_SYSTRAY="--enable-kde-systray"
fi
AC_SUBST(ENABLE_KDE_SYSTRAY)

dnl Check for debugging support
XDT_FEATURE_DEBUG

REVISION=unknown
if test x"@REVISION@" != x""; then
    REVISION=@REVISION@
fi
AC_DEFINE_UNQUOTED([REVISION], "$REVISION", [svn revision number])
AC_SUBST([REVISION])

AC_OUTPUT([ 
Makefile
doc/Makefile
doc/C/Makefile
doc/C/images/Makefile
doc/fr/Makefile
doc/fr/images/Makefile
doc/it/Makefile
doc/it/images/Makefile
defaults/Makefile
icons/Makefile
icons/48x48/Makefile
icons/scalable/Makefile
mcs-plugin/Makefile
po/Makefile.in 
src/Makefile
themes/Makefile
themes/daloa/Makefile
themes/default/Makefile
themes/default.keys/Makefile
themes/default-4.0/Makefile
themes/default-4.2/Makefile
themes/default-4.4/Makefile
themes/kokodi/Makefile
themes/moheli/Makefile
themes/sassandra/Makefile
themes/stoneage/Makefile
themes/therapy/Makefile
themes/tyrex/Makefile
themes/wallis/Makefile
xfwm4.spec
])

echo
echo "Build Configuration for $PACKAGE version $VERSION revision $REVISION:"
echo "  Startup notification support:                 $LIBSTARTUP_NOTIFICATION_FOUND"
echo "  XSync support:                                $have_xsync"
echo "  Render support:                               $have_render"
echo "  Xrandr support:                               $have_xrandr"
echo "  Embedded compositor:                          $compositor"
echo "  KDE systray protocol proxy:                   $kde_systray"
echo