1dnl Process this file with autoconf to produce a configure script. 2dnl 3dnl Copyright (C) 2001 - 2014 Rob Caelers & Raymond Penners 4dnl 5 6m4_define([workrave_major_version], [1]) 7m4_define([workrave_minor_version], [10]) 8m4_define([workrave_micro_version], [44]) 9m4_define([workrave_version_suffix], [0]) 10m4_define([workrave_version], 11 [workrave_major_version.workrave_minor_version.workrave_micro_version]) 12#m4_define([workrave_version], 13# [workrave_major_version.workrave_minor_version.workrave_micro_version.workrave_version_suffix]) 14#m4_define([workrave_version], 15# [workrave_major_version.workrave_minor_version]) 16m4_define([workrave_resource_version], 17 [workrave_major_version,workrave_minor_version,workrave_micro_version,workrave_version_suffix]) 18 19AC_PREREQ([2.67]) 20AC_INIT([workrave], 21 [workrave_version], 22 [https://github.com/rcaelers/workrave/issues], 23 [workrave], 24 [http://www.workrave.org]) 25AC_CANONICAL_HOST 26AC_CANONICAL_TARGET 27 28AC_CONFIG_SRCDIR([backend/include/ICore.hh]) 29AC_CONFIG_MACRO_DIR([m4]) 30AC_CONFIG_HEADER([config.h]) 31 32AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign silent-rules tar-ustar subdir-objects]) 33dnl AM_SILENT_RULES([yes]) 34 35GNOME_SHELL_VERSION=3.26.1 36AC_SUBST(GNOME_SHELL_VERSION) 37 38if test -d $srcdir/.git && test "$TINDERBOX_BUILD" = yes; then 39 git_version=`git describe --tags --abbrev=10 --dirty 2>/dev/null` 40 AC_DEFINE_UNQUOTED(GIT_VERSION, "$git_version", [GIT Version]) 41fi 42 43 44dnl 45dnl Command line options. 46dnl 47 48AC_ARG_ENABLE(app-gtk, 49 [AS_HELP_STRING([--disable-app-gtk], 50 [compile without Gtk support (NOT recommended)])]) 51 52AC_ARG_ENABLE(app-text, 53 [AS_HELP_STRING([--enable-app-text], 54 [compile with dummy text GUI support (NOT recommended)])]) 55 56AC_ARG_ENABLE(xml, 57 [AS_HELP_STRING([--disable-xml], 58 [compile without XML support])]) 59 60AC_ARG_ENABLE(gconf, 61 [AS_HELP_STRING([--enable-gconf], 62 [compile with Gnome gconf2 support])]) 63 64AC_ARG_ENABLE(gsettings, 65 [AS_HELP_STRING([--disable-gsettings], 66 [compile without GSettings support])]) 67 68AC_ARG_ENABLE(gnome3, 69 [AS_HELP_STRING([--disable-gnome3], 70 [compile without Gnome 3 support])]) 71 72AC_ARG_ENABLE(indicator, 73 [AS_HELP_STRING([--enable-indicator], 74 [compile with Unity/Ayatana indicator applet support])]) 75 76AC_ARG_ENABLE(xfce, 77 [AS_HELP_STRING([--enable-xfce], 78 [compile with preliminary XFCE applet support])]) 79 80AC_ARG_ENABLE(mate, 81 [AS_HELP_STRING([--enable-mate], 82 [compile with preliminary MATE applet support])]) 83AC_ARG_ENABLE(dbus, 84 [AS_HELP_STRING([--disable-dbus], 85 [compile without DBus support])]) 86 87AC_ARG_ENABLE(gstreamer, 88 [AS_HELP_STRING([--disable-gstreamer], 89 [compile without GStreamer audio support])]) 90 91AC_ARG_ENABLE(pulse, 92 [AS_HELP_STRING([--disable-pulse], 93 [compile without PulseAudio support])]) 94 95AC_ARG_ENABLE(debug, 96 [AS_HELP_STRING([--enable-debug], 97 [compile with debugging flags set])]) 98 99AC_ARG_ENABLE(distribution, 100 [AS_HELP_STRING([--disable-distribution], 101 [compile without support for distributed operation])]) 102 103AC_ARG_ENABLE(experimental, 104 [AS_HELP_STRING([--enable-experimental], 105 [compile with experimental features])]) 106 107AC_ARG_ENABLE(exercises, 108 [AS_HELP_STRING([--disable-exercises], 109 [compile without exercises support])]) 110 111AC_ARG_ENABLE(tests, 112 [AS_HELP_STRING([--enable-tests], 113 [compile with test code])]) 114 115AC_ARG_ENABLE(tracing, 116 [AS_HELP_STRING([--enable-tracing], 117 [compile with method call tracing])], 118 [test "x$enable_tracing" = "xyes" && enable_debug=yes]) 119 120AC_ARG_ENABLE(monitors, 121 [AS_HELP_STRING([--enable-monitors=LIST], 122 [comma separated list of activity monitors to use, currently support: record, screensaver, x11events (Unix Only) @<:@default=yes@:>@])]) 123 124 125case x"$target" in 126 xNONE | x) 127 target_or_host="$host" ;; 128 *) 129 target_or_host="$target" ;; 130esac 131 132 133dnl 134dnl Checks for programs 135dnl 136 137AC_USE_SYSTEM_EXTENSIONS 138 139AC_PROG_CC 140AM_PROG_CC_C_O 141AM_PROG_AR 142AC_PROG_OBJC 143AC_PROG_OBJCXX 144AC_PROG_CXX 145AC_PROG_CPP 146AC_PROG_INSTALL 147AC_PROG_LN_S 148AC_PROG_MAKE_SET 149AC_PROG_LIBTOOL 150AC_CHECK_PROGS(M4, gm4 m4, m4) 151 152AC_CHECK_PROGS(WINDRES, ${target_or_host}-windres,false) 153 154dnl 155dnl checks for compiler characteristics 156dnl 157 158AC_LANG([C++]) 159AC_REQUIRE_CPP 160AC_C_INLINE 161AC_C_CONST 162 163AC_DEFUN([ADD_COMPILER_FLAG],[ 164AX_CHECK_COMPILE_FLAG([$1],[ 165CPPFLAGS="$CPPFLAGS $1" 166])]) 167 168ADD_COMPILER_FLAG([-Wno-cast-function-type]) 169 170dnl 171dnl Headers/Types/Functions 172dnl 173 174AC_HEADER_STDC 175AC_CHECK_HEADERS([errno.h stdlib.h sys/time.h sys/select.h unistd.h]) 176AC_CHECK_MEMBER(MOUSEHOOKSTRUCT.hwnd,AC_DEFINE(HAVE_STRUCT_MOUSEHOOKSTRUCT,,[struct MOUSEHOOKSTRUCT]),, [#include <windows.h>]) 177AC_CHECK_MEMBER(MOUSEHOOKSTRUCTEX.mouseData,AC_DEFINE(HAVE_STRUCT_MOUSEHOOKSTRUCTEX,,[struct MOUSEHOOKSTRUCTEX]),, [#include <windows.h>]) 178 179have_ishelldispatch=no 180AC_MSG_CHECKING([IShellDispatch]) 181AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <shlobj.h>]], [[ IShellDispatch* pShellDispatch = NULL; ]])],[have_ishelldispatch=yes 182 AC_DEFINE(HAVE_ISHELLDISPATCH, 1, "IShellDispatch") 183 AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) 184 185AC_CHECK_FUNCS([gettimeofday nanosleep select setlocale realpath]) 186 187have_extern_timezone_defined=no 188AC_MSG_CHECKING([external timezone variable defined in time.h]) 189AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[ timezone += 1; 190 return 0;]])],[have_extern_timezone_defined=yes 191 AC_DEFINE(HAVE_EXTERN_TIMEZONE_DEFINED, 1, "External timezone") 192 AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) 193 194have_extern_timezone=no 195AC_MSG_CHECKING([external timezone variable]) 196AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[ extern long timezone; 197 timezone += 1; 198 return 0;]])],[have_extern_timezone=yes 199 AC_DEFINE(HAVE_EXTERN_TIMEZONE, 1, "External timezone") 200 AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) 201 202dnl Update version and date. 203AC_SUBST(VERSION) 204ISODATE=`date +%Y-%m-%d` 205AC_SUBST(ISODATE) 206 207RESOURCE_VERSION=workrave_resource_version 208AC_SUBST(RESOURCE_VERSION) 209 210AC_CANONICAL_HOST 211AC_PREFIX_PROGRAM(workrave) 212 213dnl 214dnl Checking target platform. 215dnl 216AC_MSG_CHECKING([for platform]) 217 218platform_os_win32=no 219platform_os_osx=no 220platform_os_unix=no 221platform_variant_x11=no 222 223case "$target_or_host" in 224 *-*mingw*|*-*-mingw*|*-*-cygwin*) 225 platform_os_win32=yes 226 platform_os_name="Windows" 227 AC_DEFINE(PLATFORM_OS_WIN32,,[Define if compiling for the Win32 platform]) 228 AC_DEFINE(HAVE_LANGUAGE_SELECTION,,[Define if the UI language can be defined in the preferences]) 229 ;; 230 *-*-darwin* | *-*-rhapsody*) 231 platform_os_osx=yes 232 platform_os_name="OS X" 233 AC_DEFINE(PLATFORM_OS_OSX,,[Define if compiling for the OS X platform]) 234 ;; 235 *) 236 platform_os_unix=yes 237 platform_os_name="Unix" 238 AC_DEFINE(PLATFORM_OS_UNIX,,[Define if compiling for a Unix platform]) 239 ;; 240esac 241 242AC_MSG_RESULT([$platform_os_name]) 243 244AM_CONDITIONAL(PLATFORM_OS_WIN32, test "x$platform_os_win32" = "xyes") 245AM_CONDITIONAL(PLATFORM_OS_OSX, test "x$platform_os_osx" = "xyes") 246AM_CONDITIONAL(PLATFORM_OS_UNIX, test "x$platform_os_unix" = "xyes") 247AM_CONDITIONAL(HAVE_LANGUAGE_SELECTION, test "x$platform_os_win32" = "xyes") 248 249dnl 250dnl Debug 251dnl 252 253config_debug=no 254config_tracing=no 255 256if test "x$enable_debug" = "xyes" 257then 258 config_debug=yes 259 CFLAGS="${CFLAGS} -O0 -g -Wall" 260 CXXFLAGS="${CXXFLAGS} -O0 -g -Wall" 261 LDFLAGS="${LDFLAGS} -g" 262 263 AC_DEFINE([GLIBCXX_FORCE_NEW], , [Define for debugging purposes]) 264 AC_DEFINE([GLIBCPP_FORCE_NEW], , [Define for debugging purposes]) 265else 266 AC_DEFINE([NDEBUG], , [Define if debugging code should be disabled]) 267fi 268 269if test "x$enable_tracing" = "xyes" 270then 271 config_tracing=yes 272 AC_DEFINE([TRACING], , [Define to enable method call tracing]) 273fi 274 275 276dnl 277dnl Windows specific checks 278dnl 279 280have_dsound=no 281LIBSTDCPP_LIBS= 282WIN32CONSOLE= 283DIRECTSOUNDLIBS= 284 285if test "x$platform_os_win32" = "xyes" 286then 287 LIBSTDCPP_LIBS=-lstdc++ 288 289 AC_DEFINE([_WIN32_IE], [0x0600], [Windows version]) 290 AC_DEFINE([_WIN32_WINNT], [0x0600], [Windows version]) 291 292 #if test "x$enable_debug" != "xyes" 293 #then 294 WIN32CONSOLE=-mwindows 295 #else 296 # WIN32CONSOLE=-mconsole 297 #fi 298 299 enable_gconf=no 300 enable_gnome3=no 301 enable_xml=no 302 enable_indicator=no 303 enable_xfce=no 304 enable_mate=no 305 306 AC_CHECK_HEADER(dsound.h, [ AC_DEFINE(HAVE_DSOUND, 1, [Define if we have DirectSound]) 307 have_dsound=yes DIRECTSOUNDLIBS="-ldsound -luuid -ldxguid -ldxerr8" 308 ]) 309 310 AC_CHECK_HEADERS([dxerr.h dxerr8.h], [], [], 311[[#include <windows.h> 312]]) 313 314 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 315#include <mmdeviceapi.h> 316#include <endpointvolume.h> 317 318static REFIID foo = __uuidof(IAudioEndpointVolume); 319 ]], [[ 320 IMMDeviceEnumerator *device_enum = NULL; 321 ]])],[ have_mmdeviceapi=yes 322 AC_DEFINE(HAVE_MMDEVICEAPI_H, 1, [Define if we have mm device api]) 323 AC_MSG_RESULT(yes) 324 ],[AC_MSG_RESULT(no)]) 325 326fi 327 328AC_SUBST(LIBSTDCPP_LIBS) 329AC_SUBST(WIN32CONSOLE) 330AC_SUBST(DIRECTSOUNDLIBS) 331 332AM_CONDITIONAL(HAVE_DSOUND, test "x$have_dsound" = "xyes") 333 334dnl 335dnl OSX specific checks 336dnl 337 338PKG_PROG_PKG_CONFIG 339 340AC_SUBST(OSX_CFLAGS) 341 342if test "x$platform_os_osx" = "xyes" 343then 344 345 PKG_CHECK_MODULES(IGE, gtk-mac-integration >= 2.0, 346 [AC_DEFINE(HAVE_GTK_MAC_INTEGRATION, 1, [Define if we have gtk-mac-integration 2.0+])], 347 [PKG_CHECK_MODULES(IGE, ige-mac-integration >= 0.6, AC_DEFINE(HAVE_IGE_MAC_INTEGRATION, 1, [Define if we have ige-mac-integration 0.6+]))]) 348 349 AC_CHECK_LIB(resolv, res_query) 350 351 AC_CHECK_HEADER(CoreFoundation/CoreFoundation.h, [ AC_CHECK_HEADER(IOKit/IOKitLib.h, 352 [ AC_DEFINE(HAVE_IOKIT, 1, [Define if we have IOKit]) 353 LIBS="$LIBS -framework IOKit -framework CoreFoundation" 354 ])]) 355 356 config_gnome3=no 357 config_gconf=no 358 359 LDFLAGS="$LDFLAGS -headerpad_max_install_names" 360 LIBS="$LIBS -framework CoreServices -framework Carbon -framework Cocoa -framework Foundation" 361 OSX_CFLAGS="" 362fi 363 364AC_SUBST(IGE_LIBS) 365AC_SUBST(IGE_CFLAGS) 366 367dnl 368dnl Unix specific checks 369dnl 370 371if test "x$platform_os_unix" = "xyes" 372then 373 AC_PATH_X 374 AC_PATH_XTRA 375 376 if test x$have_x != xyes ; then 377 AC_MSG_ERROR(X11 required on Unix platform) 378 fi 379 380 LIBS_save=$LIBS 381 if test -n "$ac_x_libraries" 382 then 383 LIBS="$LIBS -L$x_libraries" 384 fi 385 386 CPPFLAGS_save="$CPPFLAGS" 387 if test -n "$x_includes" 388 then 389 CPPFLAGS="$CPPFLAGS -I$x_includes" 390 fi 391 392 have_xrecord=no 393 AC_CHECK_LIB(Xtst, XRecordEnableContext, 394 have_xrecord=yes X_LIBS="$X_LIBS -lXtst" AC_DEFINE(HAVE_XRECORD,,[Define if the RECORD extension is available]), 395 ) 396 if test x$have_xrecord != xyes ; then 397 AC_MSG_ERROR(X RECORD extension headers files required on Unix platform) 398 fi 399 400 AC_CHECK_LIB(Xext, XScreenSaverRegister, 401 have_xscreensaver=yes X_LIBS="$X_LIBS -lX11 -lXext", 402 [], 403 [-lX11 -lXext -lm]) 404 AC_CHECK_LIB(Xss, XScreenSaverRegister, 405 have_xscreensaver=yes X_LIBS="$X_LIBS -lX11 -lXss", 406 [], 407 [-lX11 -lXext -lm]) 408 409 if test "x$have_xscreensaver" = "xyes"; then 410 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 411 #include <X11/Xlib.h> 412 #include <X11/extensions/scrnsaver.h> 413 ]], [[]])], [], [have_xscreensaver=no]) 414 fi 415 416 if test "x$have_xscreensaver" = "xyes" ; then 417 AC_DEFINE(HAVE_SCREENSAVER, 1, [Define if XScreenSaver is available.]) 418 fi 419 420 PKG_CHECK_MODULES(X11SM, sm ice) 421 LIBS=$LIBS_save 422 CPPFLAGS=$CPPFLAGS_save 423fi 424 425dnl 426dnl Monitors 427dnl 428 429if test "x$platform_os_unix" = "xyes" 430then 431 432 if test "x$enable_monitors" = "x"; then 433 enable_monitors="mutter" 434 435 if test "x$have_xrecord" = "xyes" ; then 436 if test "x$enable_monitors" != "x"; then 437 enable_monitors="$enable_monitors," 438 fi 439 enable_monitors="${enable_monitors}record" 440 fi 441 if test "x$have_xscreensaver" = "xyes" ; then 442 if test "x$enable_monitors" != "x"; then 443 enable_monitors="$enable_monitors," 444 fi 445 enable_monitors="${enable_monitors}screensaver" 446 fi 447 448 if test "x$enable_monitors" != "x"; then 449 enable_monitors="$enable_monitors," 450 fi 451 enable_monitors="${enable_monitors}x11events" 452 fi 453 454 loop=${enable_monitors}, 455 456 while echo $loop | grep \, &> /dev/null 457 do 458 monitor=${loop%%\,*} 459 loop=${loop#*\,} 460 461 case "$monitor" in 462 record) 463 if test "x$have_xrecord" != "xyes" ; then 464 AC_MSG_ERROR([record activity monitor not supported.]) 465 fi 466 ;; 467 468 x11events) 469 ;; 470 471 mutter) 472 ;; 473 474 screensaver) 475 if test "x$have_xscreensaver" != "xyes" ; then 476 AC_MSG_ERROR([screensaver activity monitor not supported.]) 477 fi 478 ;; 479 480 *) 481 AC_MSG_ERROR([unknown activity monitor: $monitor]) 482 ;; 483 484 esac 485 done 486 487 AC_DEFINE_UNQUOTED(HAVE_MONITORS, "$enable_monitors", "Enabled activity monitors") 488 489fi 490 491dnl 492dnl DBus 493dnl 494 495config_dbus=no 496have_python_jinja2=no 497 498if test "x$enable_dbus" != "xno" -a "x$platform_os_win32" != "xyes" -a "x$platform_os_osx" != "xyes" 499then 500PKG_CHECK_MODULES([GIO], 501 [gio-2.0 >= 2.26.0], 502 [ config_dbus=yes ], [ config_dbus=no]) 503fi 504 505if test "x$config_dbus" = "xyes" 506then 507 # For now, only needed for DBus. 508 AX_BOOST_BASE([1.52],, AC_MSG_ERROR([requires boost library >= 1.52.])) 509 AX_CXX_COMPILE_STDCXX_11(ext, mandatory) 510 511 AC_DEFINE(HAVE_DBUS, , [DBus support]) 512 513 AS_AC_EXPAND(DATADIR, "$datadir") 514 DBUS_SERVICES_DIR="$DATADIR/dbus-1/services" 515 AC_SUBST(DBUS_SERVICES_DIR) 516 AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [Where services dir for DBUS is]) 517 518 AM_PATH_PYTHON([3.0]) 519 AX_PYTHON_MODULE([jinja2], [needed], python3) 520fi 521 522AM_CONDITIONAL(HAVE_DBUS, test x$config_dbus = xyes) 523AM_CONDITIONAL(HAVE_PYTHON_JINJA2, test x$HAVE_PYMOD_jinja2 = xyes) 524 525 526dnl 527dnl Gnome 528dnl 529 530config_gnome3=no 531config_panelapplet4=no 532config_panelapplet5=no 533config_libgnome_panel=no 534 535if test "x$enable_gnome3" != "xno" -a "x$config_dbus" = "xyes" 536then 537 PKG_CHECK_MODULES([GNOME3], 538 [libgnome-panel >= 3.36.0 gio-2.0 >= 2.26.0], 539 [config_gnome3=yes 540 config_libgnome_panel=yes 541 LIBGNOME_PANEL_MODULES_DIR=`$PKG_CONFIG --variable=modulesdir libgnome-panel` 542 AC_SUBST([LIBGNOME_PANEL_MODULES_DIR], [$LIBGNOME_PANEL_MODULES_DIR]) 543 AC_DEFINE([HAVE_LIBGNOME_PANEL], 1, [Support for GNOME Panel applet])], 544 [ ]) 545 546 if test "x$config_libgnome_panel" != "xyes" 547 then 548 PKG_CHECK_MODULES(GNOME3, 549 [libpanel-applet >= 3.16.1 gio-2.0 >= 2.26.0], 550 [config_gnome3=yes 551 config_panelapplet5=yes 552 AC_DEFINE([HAVE_PANELAPPLET], [1], [Support for Gnome panel applet v4/v5]) 553 AC_DEFINE([HAVE_PANELAPPLET5], [1], [Support for Gnome panel applet v5])], 554 [ ]) 555 556 if test "x$config_panelapplet5" != "xyes" 557 then 558 PKG_CHECK_MODULES([GNOME3], 559 [libpanelapplet-4.0 gio-2.0 >= 2.26.0], 560 [config_gnome3=yes 561 config_panelapplet4=yes 562 AC_DEFINE(HAVE_PANELAPPLET, 1, [Support for Gnome panel applet v4/v5]), 563 AC_DEFINE(HAVE_PANELAPPLET4, 1, [Support for Gnome panel applet v4])], 564 [if test "x$enable_gnome3" = "xyes"; then 565 AC_MSG_ERROR([Gnome 3 development headers not found.]) 566 fi]) 567 fi 568 fi 569fi 570 571AM_CONDITIONAL(HAVE_PANELAPPLET, test "x$config_panelapplet4" = "xyes" -o "x$config_panelapplet5" = "xyes") 572AM_CONDITIONAL(HAVE_PANELAPPLET4, test "x$config_panelapplet4" = "xyes") 573AM_CONDITIONAL(HAVE_PANELAPPLET5, test "x$config_panelapplet5" = "xyes") 574AM_CONDITIONAL(HAVE_LIBGNOME_PANEL, test "x$config_libgnome_panel" = "xyes") 575 576dnl 577dnl GLIB 578dnl 579 580PKG_CHECK_MODULES([GLIB], 581 [glib-2.0 >= 2.10 gmodule-2.0 gthread-2.0], 582 [AC_DEFINE(HAVE_GLIB, , [Define if GLib is available])]) 583 584 585config_gsettings=no 586if test "x$enable_gsettings" != "xno" 587then 588 if test "x$platform_os_unix" = "xyes"; then 589 GLIB_GSETTINGS 590 config_gsettings=yes 591 AC_DEFINE(HAVE_GSETTINGS, 1, [Have GSettings]) 592 fi 593fi 594 595AM_CONDITIONAL(HAVE_GSETTINGS, test "x$config_gsettings" = "xyes") 596 597dnl 598dnl GTK+ 599dnl 600 601config_gtk=no 602config_gtk_version=none 603 604PKG_CHECK_MODULES(GTK, 605 glib-2.0 >= 2.28.0 606 gio-2.0 >= 2.26.0 607 gtk+-3.0 >= 3.0.0 608 gdk-3.0 >= 3.0.0 609 sigc++-2.0 >= 2.2.4.2 610 glibmm-2.4 >= 2.28.0 611 gtkmm-3.0 >= 3.0.0, 612 [config_gtk=yes 613 config_gtk_version=3 614 AC_DEFINE(HAVE_GTK3, 1, Support for GTK3) 615 AC_DEFINE([HAVE_APP_GTK], , [Define if GTK+ is available])], [ ] ) 616 617if test x$config_gtk = xno 618then 619 PKG_CHECK_MODULES(GTK, 620 gtk+-2.0 >= 2.6.0 \ 621 gdk-2.0 >= 2.8 \ 622 sigc++-2.0 \ 623 glibmm-2.4 >= 2.10 \ 624 gtkmm-2.4 >= 2.10, 625 [config_gtk=yes 626 config_gtk_version=2 627 AC_DEFINE([HAVE_APP_GTK], , [Define if GTK+ is available])]) 628fi 629 630AM_CONDITIONAL(HAVE_APP_GTKMM, test $config_gtk = yes) 631AM_CONDITIONAL(HAVE_GTK3, test "x$config_gtk_version" = "x3") 632 633 634dnl 635dnl Introspection 636dnl 637 638#if test "x$platform_os_win32" != "xyes" 639#then 640 GOBJECT_INTROSPECTION_CHECK([0.6.7]) 641#fi 642 643dnl 644dnl Indicator applet 645dnl 646 647config_indicator=no 648 649INDICATOR_REQUIRED_VERSION=0.3.19 650DBUSMENUGLIB_REQUIRED_VERSION=0.1.1 651DBUSMENUGTK_REQUIRED_VERSION=0.3.95 652 653if test "x$enable_indicator" != "xno" -a "x$config_gtk_version" = "x3" 654then 655 if test "x$found_introspection" != "xyes" 656 then 657 AC_MSG_ERROR([Introspection development headers not found.]) 658 else 659 PKG_CHECK_MODULES(INDICATOR, ayatana-indicator3-0.4 >= $INDICATOR_REQUIRED_VERSION 660 dbusmenu-glib-0.4 >= $DBUSMENUGLIB_REQUIRED_VERSION 661 dbusmenu-gtk3-0.4 >= $DBUSMENUGTK_REQUIRED_VERSION, 662 [ config_indicator=yes 663 AC_DEFINE(HAVE_INDICATOR, 1, [Support for indicator applet]) 664 AC_DEFINE(HAVE_INDICATOR_AYATANA, 1, [Support for ayatana indicator applet]) 665 ], 666 667 [ PKG_CHECK_MODULES(INDICATOR, indicator3-0.4 >= $INDICATOR_REQUIRED_VERSION 668 dbusmenu-glib-0.4 >= $DBUSMENUGLIB_REQUIRED_VERSION 669 dbusmenu-gtk3-0.4 >= $DBUSMENUGTK_REQUIRED_VERSION, 670 [ config_indicator=yes 671 AC_DEFINE(HAVE_INDICATOR, 1, [Support for indicator applet])], 672 [if test "x$enable_indicator" = "xyes"; then 673 AC_MSG_ERROR([Indicator development headers not found.]) 674 fi]) 675 ]) 676 677 if test "x$config_indicator" != "xno" 678 then 679 PKG_CHECK_EXISTS(dbusmenu-gtk3-0.4 >= 0.5.90, 680 [ AC_DEFINE(HAVE_DBUSMENU_NEW_INCLUDES, 1, [DBusmenu header in new location])], 681 [ true ] 682 ) 683 684 fi 685 fi 686fi 687 688with_localinstall="no" 689AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install all of the files localy instead of system directories (for distcheck)]), with_localinstall=$enableval, with_localinstall=no) 690 691AS_IF([test "x$with_localinstall" = "xyes"], 692 INDICATORDIR="${libdir}/indicators3/7" 693 INDICATORICONSDIR="${datadir}/libindicate/icons" 694 , 695 INDICATORDIR=`$PKG_CONFIG --variable=indicatordir indicator3-0.4 | sed -e 's%/$%%'` 696 INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir indicator3-0.4` 697 ) 698 699AM_CONDITIONAL(LOCALINSTALL, test "x$with_localinstall" = "xyes") 700 701AC_SUBST(INDICATORDIR) 702AC_SUBST(INDICATORICONSDIR) 703 704AC_SUBST(INDICATORDIR) 705AC_SUBST(INDICATORICONSDIR) 706 707AM_CONDITIONAL(HAVE_INDICATOR, test "x$config_indicator" = "xyes") 708 709dnl 710dnl Xfce 711dnl 712 713config_xfce=no 714config_xfce_gtk_version=none 715 716if test "x$enable_xfce" != "xno" 717then 718 PKG_CHECK_MODULES([LIBXFCE4PANEL], 719 [libxfce4panel-2.0 >= 4.12], 720 [config_xfce=yes 721 config_xfce_gtk_version=3 722 AC_DEFINE(HAVE_XFCE, 1, [Support for xfce applet]) 723 AC_DEFINE(HAVE_XFCE_GTK3, 1, [Support for xfce applet]) 724 ], 725 [ true ]) 726 727 if test x$config_xfce != xyes 728 then 729 PKG_CHECK_MODULES([LIBXFCE4PANEL], 730 [libxfce4panel-1.0 >= 4.4], 731 [config_xfce=yes 732 config_xfce_gtk_version=2 733 AC_DEFINE(HAVE_XFCE, 1, [Support for xfce applet]) 734 AC_DEFINE(HAVE_XFCE_GTK2, 1, [Support for xfce applet]) 735 ], 736 [if test "x$enable_xfce" = "xyes"; then 737 AC_MSG_ERROR([XFCE Panel applet development headers not found.]) 738 fi]) 739 fi 740fi 741 742AM_CONDITIONAL(HAVE_XFCE, test "x$config_xfce" = "xyes") 743 744AM_CONDITIONAL(HAVE_XFCE_GTK2, test "x$config_xfce_gtk_version" = "x2") 745AM_CONDITIONAL(HAVE_XFCE_GTK3, test "x$config_xfce_gtk_version" = "x3") 746 747 748dnl 749dnl Mate 750dnl 751 752config_mate=no 753 754if test "x$enable_mate" != "xno" 755then 756 PKG_CHECK_MODULES([LIBMATEPANEL], 757 [libmatepanelapplet-4.0], 758 [config_mate=yes 759 AC_DEFINE(HAVE_MATE, 1, [Support for mate applet])], 760 [if test "x$enable_mate" = "xyes"; then 761 AC_MSG_ERROR([MATE Panel applet development headers not found.]) 762 fi]) 763 764 config_mate_gtk_version=none 765 if test "x$config_mate" = "xyes" 766 then 767 MATE_GTK=`$PKG_CONFIG --print-requires libmatepanelapplet-4.0 2>/dev/null | grep -m 1 '^gtk+-'` 768 case "$MATE_GTK" in 769 gtk+-2*) 770 config_mate_gtk_version=2 771 ;; 772 gtk+-3*) 773 config_mate_gtk_version=3 774 ;; 775 esac 776 fi 777fi 778 779AM_CONDITIONAL(HAVE_MATE, test "x$config_mate" = "xyes") 780AM_CONDITIONAL(HAVE_MATE_GTK2, test "x$config_mate_gtk_version" = "x2") 781AM_CONDITIONAL(HAVE_MATE_GTK3, test "x$config_mate_gtk_version" = "x3") 782 783 784if test "x$config_mate_gtk_version" = "x2" -o "x$config_xfce_gtk_version" = "x2" 785then 786 PKG_CHECK_MODULES([GTK2], 787 [gtk+-2.0 >= 2.6.0 gdk-2.0 >= 2.8 ], 788 [config_gtk2=yes 789 AC_DEFINE(HAVE_GTK2, 1, [Support for GTK2])], 790 [AC_MSG_ERROR([GTK2 development headers not found.])]) 791fi 792 793AM_CONDITIONAL(HAVE_GTK2, test "x$config_gtk2" = "xyes") 794 795dnl 796dnl GConf 797dnl 798 799config_gconf=no 800 801if test "x$enable_gconf" != "xno" -a "x$config_gnome3" != "xyes" 802then 803 PKG_CHECK_MODULES([GCONF], 804 [gconf-2.0 >= 2.31.1], 805 [config_gconf=yes 806 AC_DEFINE([HAVE_GCONF], , [Define if GConf is available])], 807 [if test "x$enable_gconf" = "xyes"; then 808 AC_MSG_ERROR([GConf development headers not found.]) 809 fi]) 810fi 811 812AM_CONDITIONAL(HAVE_GCONF, test "x$config_gconf" = "xyes") 813 814 815dnl 816dnl XML 817dnl 818 819config_xml=no 820 821if test "x$enable_xml" != "xno" 822then 823 PKG_CHECK_MODULES([GDOME], 824 [gdome2], 825 [config_xml=yes 826 AC_DEFINE([HAVE_GDOME], ,[Define if GDome is available])], 827 [if test "x$enable_xml" = "xyes"; then 828 AC_MSG_ERROR([GDome2 development headers not found.]) 829 fi]) 830fi 831 832AM_CONDITIONAL(HAVE_GDOME, test "x$config_xml" = "xyes") 833 834 835dnl 836dnl GIO/GNet2 networking 837dnl 838 839config_distribution=no 840have_gnet=no 841 842if test "x$enable_distribution" != "xno" 843then 844 PKG_CHECK_MODULES([GIO], 845 [gio-2.0 >= 2.22.0], 846 [config_distribution=yes 847 AC_DEFINE(HAVE_GIO_NET, 1, [Have GIO networking support])], 848 [PKG_CHECK_MODULES([GNET], 849 [gnet-2.0], 850 [config_distribution=yes 851 have_gnet=yes 852 AC_DEFINE([HAVE_GNET], , [Define if GNet is available]) 853 AC_DEFINE([HAVE_GNET2], , [Define if GNet2 is available])], 854 [if test "x$enable_distribution" = "xyes"; then 855 AC_MSG_ERROR([GIO/GNet development headers not found.]) 856 fi])]) 857fi 858 859if test $config_distribution = yes 860then 861 AC_DEFINE([HAVE_DISTRIBUTION], , [Define if network-distributed operation is available]) 862fi 863 864AM_CONDITIONAL(HAVE_DISTRIBUTION, test "x$config_distribution" = "xyes") 865AM_CONDITIONAL(HAVE_GNET, test $have_gnet = yes) 866 867 868dnl 869dnl GStreamer 870dnl 871 872config_gstreamer=no 873 874if test "x$enable_gstreamer" != "xno"; 875then 876 PKG_CHECK_MODULES([GSTREAMER], 877 [gstreamer-0.10], 878 [config_gstreamer=yes 879 AC_DEFINE(HAVE_GSTREAMER, 1, [Use GStreamer for playing sounds])], [ ]) 880 881 if test "x$config_gstreamer" != "xyes"; 882 then 883 PKG_CHECK_MODULES([GSTREAMER], 884 [gstreamer-1.0], 885 [config_gstreamer=yes 886 AC_DEFINE(HAVE_GSTREAMER, 1, [Use GStreamer for playing sounds])], 887 [if test "x$enable_gstreamer" = "xyes"; then 888 AC_MSG_ERROR([GStreamer development headers not found.]) 889 fi]) 890 fi 891fi 892 893 894dnl 895dnl PulseAudio 896dnl 897 898config_pulse=no 899 900if test "$platform_os_unix" = "yes" -a "x$enable_pulse" != "xno" 901then 902 PA_REQUIRED_VERSION=0.9.15 903 PKG_CHECK_MODULES([PULSE], 904 [glib-2.0 libpulse >= $PA_REQUIRED_VERSION libpulse-mainloop-glib >= $PA_REQUIRED_VERSION], 905 [config_pulse=yes 906 AC_DEFINE(CONFIG_PULSE, 1, [Define if PULSE sound server should be used])], 907 [if test "x$enable_pulse" = "xyes"; then 908 AC_MSG_ERROR([Pulseaudio development headers not found.]) 909 fi]) 910fi 911 912AM_CONDITIONAL(CONFIG_PULSE, test "x$config_pulse" = "xyes") 913 914 915dnl 916dnl Internationalization 917dnl 918 919AM_GNU_GETTEXT_VERSION([0.18]) 920AM_GNU_GETTEXT([external]) 921 922dnl Hack because windows gettext package is SEVERELY broken... 923if test "x$platform_os_win32" = "xyes" 924then 925 USE_NLS=yes 926 AC_DEFINE(ENABLE_NLS,1,[Define to 1 if translation of program messages to the user's native language is requested.]) 927 AC_DEFINE(USE_INCLUDED_LIBINTL, "no", [Dont]) 928 AC_DEFINE(BUILD_INCLUDED_LIBINTL, "no", [Dont]) 929 USE_INCLUDED_LIBINTL=no 930 BUILD_INCLUDED_LIBINTL=no 931fi 932 933GETTEXT_PACKAGE=workrave 934AC_SUBST(GETTEXT_PACKAGE) 935AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Define to the gettext domain name.]) 936IT_PROG_INTLTOOL([0.40.0]) 937 938 939dnl 940dnl Manual 941dnl 942dnl (taken from clutter) 943dnl 944 945AC_ARG_ENABLE(manual, 946 AS_HELP_STRING([--enable-manual], 947 [Build user manual. Requires jw and xmlto binaries.])) 948 949if test "x$enable_manual" = "xyes"; then 950 AC_PATH_PROG(JW, jw, no) 951 if test "x$JW" = "xno"; then 952 AC_MSG_ERROR(['jw' program needed by the manual not found in path]) 953 fi 954 955 AC_PATH_PROG(XMLTO, xmlto, no) 956 if test "x$XMLTO" = "xno"; then 957 AC_MSG_ERROR(['xmlto' program needed by the manual not found in path]) 958 fi 959fi 960 961AM_CONDITIONAL(ENABLE_MANUAL, test "x$enable_manual" = "xyes") 962 963 964dnl 965dnl What variant to build 966dnl 967 968variant="" 969 970if test "x$platform_os_win32" = "xyes" 971then 972 variant="$variant win32" 973elif test "x$platform_os_osx" = "xyes" 974then 975 variant="$variant osx unix" 976elif test "x$platform_os_unix" = "xyes" 977then 978 variant="$variant x11 unix" 979fi 980 981WR_BACKEND_INCLUDES="-I\$(top_srcdir)/backend/include" 982WR_COMMON_INCLUDES="-I\$(top_srcdir)/common/include -I\$(top_srcdir)/libs/dbus/include" 983WR_FRONTEND_COMMON_INCLUDES="-I\$(top_srcdir)/frontend/common/include" 984 985for v in $variant; do 986 if test -d common/src/$v 987 then 988 WR_COMMON_INCLUDES="$WR_COMMON_INCLUDES -I\$(top_srcdir)/common/include/$v" 989 fi 990done 991 992WR_LDADD="-lworkrave-backend -lworkrave-frontend-common -lworkrave-common" 993if test "x$config_dbus" = "xyes"; then 994 WR_LDADD="$WR_LDADD -lworkrave-dbus" 995fi 996 997WR_LDFLAGS="-L\$(top_builddir)/common/src/ -L\$(top_builddir)/backend/src/ -L\$(top_builddir)/frontend/common/src -L\$(top_builddir)/libs/dbus/src/" 998 999AC_SUBST(WR_LDADD) 1000AC_SUBST(WR_LDFLAGS) 1001 1002AC_SUBST(WR_FRONTEND_COMMON_INCLUDES) 1003AC_SUBST(WR_COMMON_INCLUDES) 1004AC_SUBST(WR_BACKEND_INCLUDES) 1005 1006dnl 1007dnl Defines 1008dnl 1009 1010config_tests=no 1011if test "x$enable_tests" = "xyes"; then 1012 config_tests=yes 1013 AC_DEFINE([HAVE_TESTS], , [Define if test code is enabled]) 1014fi 1015AM_CONDITIONAL(HAVE_TESTS, test "x$config_tests" = "xyes") 1016 1017config_exercises=no 1018if test "x$enable_exercises" != "xno"; then 1019 config_exercises=yes 1020 AC_DEFINE(HAVE_EXERCISES,,[Define if exercises are available]) 1021fi 1022AM_CONDITIONAL(HAVE_EXERCISES, test "x$config_exercises" = "xyes") 1023 1024config_experimental=no 1025if test "x$enable_experimental" = "xyes"; then 1026 config_experimental=yes 1027 AC_DEFINE(HAVE_EXPERIMENTAL,,[Define if experimental features are available]) 1028fi 1029AM_CONDITIONAL(HAVE_EXPERIMENTAL, test "x$config_experimental" = "xyes") 1030 1031config_text=no 1032if test "x$enable_app_text" = "xyes"; then 1033 config_text=yes 1034 AC_DEFINE(HAVE_APP_TEXT,,[Define if Text is available]) 1035fi 1036AM_CONDITIONAL(HAVE_APP_TEXT, test "x$config_text" = "xyes") 1037 1038 1039dnl 1040dnl Generate language list. 1041dnl 1042 1043if test "x$platform_os_win32" = "xyes" 1044then 1045 LANGFILE="./frontend/gtkmm/win32/setup/lang.iss" 1046 1047 ALL_LINGUAS="$(cat ./po/LINGUAS |grep -v '^#' | tr '\n' ' ' )" 1048 AC_DEFINE_UNQUOTED(ALL_LINGUAS, "$ALL_LINGUAS" ,[All available languages]) 1049 1050 echo -n "; language.iss --- Inno setup file, support languages" > $LANGFILE 1051 echo -en "\r\n" >> $LANGFILE 1052 for a in $ALL_LINGUAS; do 1053 X="Source: \"..\\..\\..\\..\\po\\$a.gmo\"; DestDir: \"{app}\\lib\\locale\\$a\\LC_MESSAGES\"; DestName: \"workrave.mo\"; Flags: ignoreversion;" 1054 echo -n $X >> $LANGFILE 1055 echo -en "\r\n" >> $LANGFILE 1056 done 1057fi 1058 1059dnl 1060dnl Makefile output 1061dnl 1062 1063AC_CONFIG_FILES([Makefile 1064 backend/Makefile 1065 backend/test/Makefile 1066 backend/src/Makefile 1067 backend/src/org.workrave.gschema.xml.in 1068 backend/src/unix/Makefile 1069 backend/src/osx/Makefile 1070 backend/src/win32/Makefile 1071 backend/include/Makefile 1072 common/Makefile 1073 common/bin/Makefile 1074 common/src/Makefile 1075 common/src/win32/Makefile 1076 common/include/Makefile 1077 common/include/win32/Makefile 1078 common/win32/Makefile 1079 common/win32/harpoon/Makefile 1080 common/win32/harpoon/include/Makefile 1081 common/win32/harpoon/src/Makefile 1082 common/win32/harpoonHelper/Makefile 1083 common/win32/harpoonHelper/include/Makefile 1084 common/win32/harpoonHelper/src/Makefile 1085 libs/Makefile 1086 libs/dbus/Makefile 1087 libs/dbus/bin/Makefile 1088 libs/dbus/data/Makefile 1089 libs/dbus/include/Makefile 1090 libs/dbus/include/dbus/Makefile 1091 libs/dbus/src/Makefile 1092 frontend/Makefile 1093 frontend/common/Makefile 1094 frontend/common/include/Makefile 1095 frontend/common/share/Makefile 1096 frontend/common/share/sounds/Makefile 1097 frontend/common/share/sounds/subtle/Makefile 1098 frontend/common/share/sounds/default/Makefile 1099 frontend/common/share/images/Makefile 1100 frontend/common/share/images/16x16/Makefile 1101 frontend/common/share/images/24x24/Makefile 1102 frontend/common/share/images/32x32/Makefile 1103 frontend/common/share/images/48x48/Makefile 1104 frontend/common/share/images/64x64/Makefile 1105 frontend/common/share/images/96x96/Makefile 1106 frontend/common/share/images/128x128/Makefile 1107 frontend/common/share/images/scalable/Makefile 1108 frontend/common/share/images/win32/Makefile 1109 frontend/common/share/images/osx/Makefile 1110 frontend/common/src/Makefile 1111 frontend/common/src/win32/Makefile 1112 frontend/common/src/x11/Makefile 1113 frontend/common/src/osx/Makefile 1114 frontend/applets/Makefile 1115 frontend/applets/win32/Makefile 1116 frontend/applets/win32/src/Makefile 1117 frontend/applets/win32/include/Makefile 1118 frontend/applets/common/Makefile 1119 frontend/applets/common/src/Makefile 1120 frontend/applets/common/include/Makefile 1121 frontend/applets/gnome3/Makefile 1122 frontend/applets/gnome3/src/Makefile 1123 frontend/applets/indicator/Makefile 1124 frontend/applets/indicator/src/Makefile 1125 frontend/applets/indicator/include/Makefile 1126 frontend/applets/xfce/Makefile 1127 frontend/applets/xfce/src/Makefile 1128 frontend/applets/xfce/include/Makefile 1129 frontend/applets/mate/Makefile 1130 frontend/applets/mate/src/Makefile 1131 frontend/applets/mate/include/Makefile 1132 frontend/applets/gnome-shell/Makefile 1133 frontend/applets/gnome-shell/src/Makefile 1134 frontend/applets/cinnamon/Makefile 1135 frontend/applets/cinnamon/src/Makefile 1136 frontend/gtkmm/Makefile 1137 frontend/gtkmm/osx/Makefile 1138 frontend/gtkmm/win32/Makefile 1139 frontend/gtkmm/win32/setup/Makefile 1140 frontend/gtkmm/win32/setup/setup.iss 1141 frontend/gtkmm/win32/setup/src/Makefile 1142 frontend/gtkmm/src/Makefile 1143 frontend/gtkmm/src/org.workrave.gui.gschema.xml.in 1144 frontend/gtkmm/src/win32/Makefile 1145 frontend/gtkmm/src/unix/Makefile 1146 frontend/gtkmm/src/osx/Makefile 1147 frontend/text/Makefile 1148 frontend/text/src/Makefile 1149 frontend/plugin/Makefile 1150 frontend/plugin/distribution/Makefile 1151 frontend/plugin/distribution/gtkmm/Makefile 1152 frontend/plugin/distribution/gtkmm/src/Makefile 1153 frontend/plugin/statistics/Makefile 1154 frontend/plugin/statistics/gtkmm/Makefile 1155 frontend/plugin/statistics/gtkmm/src/Makefile 1156 frontend/plugin/exercises/Makefile 1157 frontend/plugin/exercises/common/Makefile 1158 frontend/plugin/exercises/common/share/Makefile 1159 frontend/plugin/exercises/common/src/Makefile 1160 frontend/plugin/exercises/gtkmm/Makefile 1161 frontend/plugin/exercises/gtkmm/src/Makefile 1162 po/Makefile.in 1163 contrib/Makefile 1164 contrib/plot/Makefile 1165 contrib/send_menu_command/Makefile 1166 contrib/send_menu_command/win32/Makefile 1167 contrib/send_dbus_command/Makefile 1168 contrib/send_dbus_command/kde/Makefile 1169 build/Makefile 1170 m4/Makefile 1171]) 1172 1173AC_OUTPUT 1174 1175dnl ======================================================================== 1176 1177echo "" 1178echo " Workrave $VERSION" 1179echo " ===================" 1180echo "" 1181echo " prefix: ${prefix}" 1182echo "" 1183echo " OS : ${platform_os_name}" 1184echo "" 1185echo " GConf configuration : ${config_gconf}" 1186echo " GSettings configuration : ${config_gsettings}" 1187echo " XML configuration : ${config_xml}" 1188echo "" 1189if test "$platform_os_unix" = "yes"; then 1190echo " Activity Monitors : ${enable_monitors}" 1191echo "" 1192fi 1193echo " Gtk GUI : ${config_gtk} (Gtk${config_gtk_version})" 1194echo " Gnome 3 support : ${config_gnome3}" 1195echo "GObject-Introspection support : ${found_introspection}" 1196echo " Indicator support : ${config_indicator}" 1197echo " XFCE support : ${config_xfce} (Gtk${config_xfce_gtk_version})" 1198echo " MATE support : ${config_mate} (Gtk${config_mate_gtk_version})" 1199echo " DBUS support : ${config_dbus}" 1200echo " Networking support : ${config_distribution}" 1201echo " GStreamer support : ${config_gstreamer}" 1202if test "$platform_os_unix" = "yes"; then 1203echo " Pulseaudio support : ${config_pulse}" 1204fi 1205echo " Exercises : ${config_exercises}" 1206echo "" 1207echo " Experimental features : ${config_experimental}" 1208echo " Debugging : ${config_debug}" 1209echo " Debug logs : ${config_tracing}" 1210echo " Test code : ${config_tests}" 1211echo "" 1212