AC_PREREQ(2.52) m4_define(totem_version_major, 2) m4_define(totem_version_minor, 21) m4_define(totem_version_micro, 0) AC_INIT([totem], [totem_version_major.totem_version_minor.totem_version_micro], [http://bugzilla.gnome.org/enter_bug.cgi?product=totem]) AC_CONFIG_SRCDIR([src/totem.c]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([1.9 dist-bzip2 no-dist-gzip check-news]) dnl Add the languages which your application supports to po/LINGUAS GETTEXT_PACKAGE=totem AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define to the Gettext package name]) AC_SUBST(GETTEXT_PACKAGE) AM_GLIB_GNU_GETTEXT IT_PROG_INTLTOOL([0.35.0]) GNOME_DOC_INIT AC_PROG_CXX AM_PROG_CC_C_O AC_PROG_LIBTOOL() PKG_PROG_PKG_CONFIG AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal]) AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums]) # Requirements GLIB_REQS=2.13.4 GTK_REQS=2.11.6 GNOMEVFS_REQS=2.16.0 GNOMEUI_REQS=2.3.3 LIBGNOME_REQS=2.14.0 GNOMEICON_REQS=2.15.90 DBUS_REQS=0.61 VALA_REQS=0.0.8 # Before making a release, the PLPARSER_LT_VERSION string should be modified. # The string is of the form C:R:A. # - If interfaces have been changed or added, but binary compatibility has # been preserved, change to C+1:0:A+1 # - If binary compatibility has been broken (eg removed or changed interfaces) # change to C+1:0:0 # - If the interface is the same as the previous version, change to C:R+1:A PLPARSER_LT_VERSION=9:0:0 AC_SUBST(PLPARSER_LT_VERSION) TOTEM_VERSION_MAJOR=totem_version_major TOTEM_VERSION_MINOR=totem_version_minor TOTEM_VERSION_MICRO=totem_version_micro AC_SUBST(TOTEM_VERSION_MAJOR) AC_SUBST(TOTEM_VERSION_MINOR) AC_SUBST(TOTEM_VERSION_MICRO) TOTEM_PL_PARSER_VERSION_MAJOR=totem_version_major TOTEM_PL_PARSER_VERSION_MINOR=totem_version_minor TOTEM_PL_PARSER_VERSION_MICRO=totem_version_micro AC_SUBST(TOTEM_PL_PARSER_VERSION_MAJOR) AC_SUBST(TOTEM_PL_PARSER_VERSION_MINOR) AC_SUBST(TOTEM_PL_PARSER_VERSION_MICRO) # The full list of plugins allowed_plugins="screensaver ontop galago gromit lirc media-player-keys mythtv properties sidebar-test skipto sample-python sample-vala bemused youtube" PLUGINDIR='${libdir}/totem/plugins' AC_SUBST(PLUGINDIR) AC_ARG_ENABLE(nvtv, AC_HELP_STRING([--enable-nvtv],[Enable support for TV-output with nvtv]), enable_nvtv="$enableval", enable_nvtv=yes) if test x$enable_nvtv = xyes; then PKG_CHECK_MODULES(NVTV, nvtvsimple >= 0.4.5, found_nvtv=yes, found_nvtv=no) if test x"$found_nvtv" = "xyes" ; then AC_DEFINE(HAVE_NVTV,1,[Define to 1 if nvtv is available and used.]) fi fi dnl xine or gst ? dnl the two versions here implicate the gstreamer core and gst-plugins dnl release versions. XINE_REQS=1.1.7 GST_MAJORMINOR=0.10 GST_REQS=0.10.12 GSTPLUG_REQS=0.10.12 AC_ARG_ENABLE(xine, AC_HELP_STRING([--enable-xine], [use xine instead of GStreamer for the backend]), [case "${enableval}" in yes) ENABLE_XINE=yes ;; no) ENABLE_XINE=no ;; *) AC_MSG_ERROR([ ***** Bad value ${enableval} for --enable-xine ***** Please use one of the following: ***** --enable-xine=yes ***** --enable-xine=no ]) ;; esac], [ENABLE_XINE=auto]) dnl Default value HAVE_GSTREAMER=no if test x$ENABLE_XINE = xno || test x$ENABLE_XINE = xauto; then dnl Check for the required GStreamer versions for missing plugins dnl installation, unless this has been disabled. AC_MSG_CHECKING([whether to enable easy codec installation support]) AC_ARG_ENABLE([easy-codec-installation], [ AS_HELP_STRING([--enable-easy-codec-installation], [Whether to enable easy codec installation support for GStreamer] ) ], [ case "${enableval}" in yes) enable_easy_codec_installation=yes ;; no) enable_easy_codec_installation=no ;; *) enable_easy_codec_installation=auto ;; esac ], [ dnl default value enable_easy_codec_installation=auto ] ) AC_MSG_RESULT([$enable_easy_codec_installation]) if test "x$enable_easy_codec_installation" != "xno"; then PKG_CHECK_MODULES(MISSING_PLUGINS, gstreamer-plugins-base-0.10, [ MISSING_PLUGINS_LIBS="$MISSING_PLUGINS_LIBS -lgstpbutils-0.10" AC_DEFINE([ENABLE_MISSING_PLUGIN_INSTALLATION], 1, [Whether we can and want to do installation of missing plugins]) ]) fi MM="gstreamer-0.10 >= $GST_REQS gstreamer-base-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GSTPLUG_REQS gconf-2.0" PKG_CHECK_MODULES(GST, $MM, HAVE_GSTREAMER=yes, HAVE_GSTREAMER=no) GST_LIBS="$GST_LIBS -lgstbase-$GST_MAJORMINOR -lgstinterfaces-$GST_MAJORMINOR -lgstvideo-$GST_MAJORMINOR -lgstaudio-$GST_MAJORMINOR -lgstpbutils-$GST_MAJORMINOR" AC_SUBST(GST_LIBS) EXTRA_BACKEND_LIBS="-lgstinterfaces-$GST_MAJORMINOR -lgstvideo-$GST_MAJORMINOR -lgstaudio-$GST_MAJORMINOR -lgstpbutils-$GST_MAJORMINOR" AC_MSG_CHECKING(for backend libraries) dnl Give error and exit if we don't have gstreamer if test "x$HAVE_GSTREAMER" = "xno"; then AC_MSG_ERROR(you need the GStreamer or the xine-lib development packages installed) fi AC_MSG_RESULT(GStreamer-$GST_MAJORMINOR) dnl Check for required plugins gst010_toolsdir=`$PKG_CONFIG --variable=toolsdir gstreamer-0.10` gst010_inspect="$gst010_toolsdir/gst-inspect-0.10" dnl Check for elements from gst-plugins-base for base_element in playbin ffmpegcolorspace videoscale do AC_MSG_CHECKING([GStreamer 0.10 $base_element plugin]) if $gst010_inspect $base_element >/dev/null 2>/dev/null; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([ Cannot find required GStreamer-0.10 plugin '$base_element'. It should be part of gst-plugins-base. Please install it. ]) fi done dnl Check for elements from gst-plugins-good for good_element in gconfaudiosink gconfvideosink goom do AC_MSG_CHECKING([GStreamer 0.10 $good_element plugin]) if $gst010_inspect $good_element >/dev/null 2>/dev/null; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([ Cannot find required GStreamer-0.10 plugin '$good_element'. It should be part of gst-plugins-good. Please install it. ]) fi done fi if test x$ENABLE_XINE = xno && test x$HAVE_GSTREAMER = xno; then AC_MSG_CHECKING(for backend libraries) AC_MSG_RESULT([none]) AC_MSG_ERROR(you need the GStreamer or the xine-lib development packages installed) fi if test x$HAVE_GSTREAMER = xno; then MM="libxine >= $XINE_REQS gconf-2.0" PKG_CHECK_MODULES(XINE, $MM, HAVE_XINE=yes, [ AC_MSG_RESULT(no) HAVE_XINE=no ]) AC_MSG_CHECKING(for backend libraries) if test x$HAVE_XINE = xyes; then AC_MSG_RESULT([xine-lib]) else AC_MSG_WARN([No xine-lib found]) fi fi if test "$HAVE_GSTREAMER" = "yes"; then AC_DEFINE([HAVE_GSTREAMER],[1],[Define if using gst backend]) fi AM_CONDITIONAL(TOTEM_GST, test "x$HAVE_GSTREAMER" = "xyes") AC_MSG_CHECKING([Whether not to check for iso-codes]) AC_ARG_ENABLE([iso-codes], AS_HELP_STRING([--disable-iso-codes],[Whether not to check for iso-codes at build-time]), [],[disable_iso_codes_check=no]) if test x$disable_iso_codes_check = xno ; then AC_MSG_RESULT([no]) else AC_MSG_RESULT([yes]) fi if test x$disable_iso_codes_check = "xno" ; then AC_MSG_CHECKING([whether iso-codes has iso-639 domain]) if $PKG_CONFIG --variable=domains iso-codes | grep 639 >/dev/null ; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["`$PKG_CONFIG --variable=prefix iso-codes`"],[ISO codes prefix]) ISO_CODES=iso-codes else AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],[$prefix],[ISO codes prefix]) ISO_CODES="" fi dnl Check for GTK+ only build AC_ARG_ENABLE(gtk, AC_HELP_STRING([--enable-gtk],[compile a gtk+ only version]), [case "${enableval}" in yes) ENABLE_GTK=yes ;; no) ENABLE_GTK=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk) ;; esac], [ENABLE_GTK=no]) dnl Default value dnl Seems that the order matters because libtool blows dnl Also check if we're going to be using GTK+ only if test x$ENABLE_GTK = "xno" ; then # FIXME: use gmodule-no-export instead! PKG_CHECK_MODULES(EXTRA_GNOME, glib-2.0 >= $GLIB_REQS gtk+-2.0 >= $GTK_REQS libgnomeui-2.0 >= $GNOMEUI_REQS gnome-vfs-2.0 >= $GNOMEVFS_REQS gnome-vfs-module-2.0 >= $GNOMEVFS_REQS libgnome-2.0 >= $LIBGNOME_REQS gnome-desktop-2.0 >= 2.1.5 gnome-icon-theme >= $GNOMEICON_REQS gmodule-2.0 $ISO_CODES $MM) HAVE_GNOME=yes else # FIXME: use gmodule-no-export instead! PKG_CHECK_MODULES(EXTRA_GNOME, glib-2.0 >= $GLIB_REQS gtk+-2.0 >= $GTK_REQS gnome-vfs-2.0 >= $GNOMEVFS_REQS gnome-vfs-module-2.0 >= $GNOMEVFS_REQS gnome-icon-theme >= $GNOMEICON_REQS gmodule-2.0 $ISO_CODES $MM) AC_DEFINE(USE_STABLE_LIBGNOMEUI, 1, [defined if we don't have GNOME]) AC_DEFINE(HAVE_GTK_ONLY, 1, [defined if GNOME isn't used]) HAVE_GNOME=no fi AM_CONDITIONAL(HAVE_GNOME, test x$HAVE_GNOME = "xyes") EXTRA_GNOME_CFLAGS="$EXTRA_GNOME_CFLAGS" EXTRA_GNOME_LIBS="$EXTRA_GNOME_LIBS $EXTRA_BACKEND_LIBS" AC_SUBST(EXTRA_GNOME_CFLAGS) AC_SUBST(EXTRA_GNOME_LIBS) PKG_CHECK_MODULES(GTK, gtk+-2.0 $MM gthread-2.0) AC_SUBST(GTK_CFLAGS) GTK_LIBS="$GTK_LIBS $EXTRA_BACKEND_LIBS" AC_SUBST(GTK_LIBS) # ******************** # Movie player plugins # ******************** plugin_error_or_ignore() { if test "${error_on_bad_plugin}" == "1" ; then AC_MSG_ERROR([$1]) else AC_MSG_WARN([$1 (disabling plugin)]) fi } AC_ARG_WITH([plugins], [AS_HELP_STRING([--with-plugins],[Which Totem plugins to compile (default: auto; "all", "none" and "autodetect" are valid)])], [], [with_plugins=autodetect]) used_plugins="" used_plugins2="" if test "x${with_plugins}" == "xautodetect" ; then # Default to all plugins and just ignore them if they won't compile with_plugins="all" error_on_bad_plugin="0" else # Clean up the plugin list and error if a plugin won't compile with_plugins=`echo ,"${with_plugins}", | sed -e 's/[[ ,]][[ ,]]*/ /g' -e 's/,$//'` error_on_bad_plugin="1" fi # Iterate through the wanted plugins and weed out bad ones (or error) for wanted_plugin in ${with_plugins}; do for allowed_plugin in ${allowed_plugins}; do case ${wanted_plugin} in all) # List all plugins as being used used_plugins=${allowed_plugins} ;; autodetect) # List all plugins as being used used_plugins=${allowed_plugins} ;; none) used_plugins="";; # List no plugins ${allowed_plugin}) used_plugins="${used_plugins} ${wanted_plugin}";; # List the plugin *) ;; esac done done # Check for plugin-specific requirements and error if necessary for plugin in ${used_plugins}; do add_plugin="1" case ${plugin} in galago) PKG_CHECK_MODULES(LIBGALAGO, libgalago >= 0.5.2, [HAVE_LIBGALAGO=yes], [HAVE_LIBGALAGO=no]) if test "${HAVE_LIBGALAGO}" != "yes" ; then plugin_error_or_ignore "you need libgalago >= 0.5.2 installed for the galago plugin" add_plugin="0" fi ;; media-player-keys) PKG_CHECK_MODULES(MEDIA_PLAYER_KEYS, gnome-settings-daemon >= 2.17.4 dbus-glib-1, [HAVE_MEDIA_PLAYER_KEYS=yes], [HAVE_MEDIA_PLAYER_KEYS=no]) if test "${HAVE_MEDIA_PLAYER_KEYS}" != "yes" ; then plugin_error_or_ignore "you need gnome-settings-daemon >= 2.17.4 and dbus-glib-1 installed for the media-player-keys plugin" add_plugin="0" fi ;; lirc) AC_CHECK_LIB(lirc_client, lirc_init, [AC_CHECK_HEADER(lirc/lirc_client.h, [LIRC_LIBS="-llirc_client" HAVE_LIRC=yes], [ LIRC_LIBS="" HAVE_LIRC=no])]) AC_SUBST(LIRC_LIBS) if test "${HAVE_LIRC}" != "yes" ; then plugin_error_or_ignore "you need lirc_client installed for the lirc plugin" add_plugin="0" fi ;; mythtv) PKG_CHECK_MODULES(GMYTH, gmyth >= 0.3.0, [HAVE_GMYTH=yes], [HAVE_GMYTH=no]) if test "${HAVE_GMYTH}" != "yes"; then plugin_error_or_ignore "you need GMyth >= 0.3.0 installed for the MythTV plugin" add_plugin="0" fi ;; bemused) PKG_CHECK_MODULES(BEMUSED, bluez, [HAVE_BLUEZ=yes], [HAVE_BLUEZ=no]) if test "${HAVE_BLUEZ}" != "yes" ; then plugin_error_or_ignore "you need the bluez libraries installed for the Bemused plugin" add_plugin="0" fi ;; esac # Add the specified plugin if test "${add_plugin}" == "1" ; then used_plugins2="${used_plugins2} ${plugin}" fi done ALL_PLUGINS=$allowed_plugins PLUGINS=$used_plugins2 AC_MSG_CHECKING([which plugins to compile]) AC_MSG_RESULT([$PLUGINS]) AC_SUBST([ALL_PLUGINS]) AC_SUBST([PLUGINS]) # *************** # Browser plugins # *************** AC_MSG_CHECKING([whether to compile the browser plugins]) AC_ARG_ENABLE([browser-plugins], [AS_HELP_STRING([--enable-browser-plugins],[compile the totem browser plugins])], [],[enable_browser_plugins=autodetect]) # Backward compatibility AC_ARG_ENABLE([mozilla],[],[enable_browser_plugins=$enableval],[]) AC_MSG_RESULT([$enable_browser_plugins]) # Check which mozilla to use if test "$enable_browser_plugins" != "no" ; then AC_MSG_CHECKING([which gecko to use]) AC_ARG_WITH([gecko], [AS_HELP_STRING([--with-gecko],[Which gecko engine to use (default: autodetect)])]) # backward compat AC_ARG_WITH([mozilla],[],[with_gecko=$withval]) GECKOS="xulrunner firefox mozilla-firefox seamonkey mozilla" gecko=$with_gecko if test -z "$with_gecko"; then dnl Autodetect gecko for g in $GECKOS; do if $PKG_CONFIG --exists $g-xpcom; then gecko=$g break; fi done elif ! $PKG_CONFIG --exists $gecko-xpcom; then AC_MSG_ERROR([Gecko "$gecko" not found]) fi if test -z "$gecko" -a "$enable_browser_plugins" = "autodetect"; then dnl No gecko found, disable plugin AC_MSG_WARN([No gecko found, disabling plugin]) enable_browser_plugins=no elif test -z "$gecko"; then AC_MSG_ERROR([No gecko found]) elif ! ( echo "$GECKOS" | egrep "(^| )$gecko(\$| )" > /dev/null); then AC_MSG_ERROR([Unknown gecko "$gecko" specified]) else enable_browser_plugins=yes fi AC_MSG_RESULT([$gecko]) case "$gecko" in mozilla) MOZILLA_VERSION_MIN=1.7 ;; seamonkey) MOZILLA_VERSION_MIN=1.0 ;; *firefox) MOZILLA_VERSION_MIN=1.0 ;; xulrunner) MOZILLA_VERSION_MIN=1.8 ;; esac MOZILLA=$gecko AC_SUBST([MOZILLA]) if test "$enable_cxx_warnings" != "no" -a "$GXX" = "yes"; then PLUGIN_EXTRA_WARN_CXXFLAGS="-Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Woverloaded-virtual" else PLUGIN_EXTRA_WARN_CXXFLAGS= fi AC_SUBST([PLUGIN_EXTRA_WARN_CXXFLAGS]) fi # Check for mozilla modules, but keep the CFLAGS and LIBS in # separate vars if test "$enable_browser_plugins" = "yes" ; then PKG_CHECK_MODULES([MOZILLA_NOT_LINKED], [$MOZILLA-xpcom >= $MOZILLA_VERSION_MIN \ $MOZILLA-plugin],, [enable_browser_plugins=no]) fi # Check for other required modules, and merge CFLAGS, but not link # flags to avoid linking against -lxpcom -lplds4 -lplc4 -lnspr4 if test "$enable_browser_plugins" = "yes" ; then PKG_CHECK_MODULES([BROWSER_PLUGIN], [glib-2.0 gnome-vfs-2.0 >= $GNOMEVFS_REQS gnome-vfs-module-2.0 >= $GNOMEVFS_REQS gthread-2.0], [],[enable_browser_plugins=no]) BROWSER_PLUGIN_CFLAGS="$MOZILLA_NOT_LINKED_CFLAGS $BROWSER_PLUGIN_CFLAGS" AC_SUBST([BROWSER_PLUGIN_CFLAGS]) AC_SUBST([BROWSER_PLUGIN_LIBS]) # Earlier versions misdetect playlists PKG_CHECK_EXISTS([shared-mime-info >= 0.22], [], [AC_MSG_ERROR([ The Browser plugin requires shared-mime-info >= 0.22 to function.])]) fi if test "$enable_browser_plugins" = "yes" ; then PKG_CHECK_MODULES([DBUS], [dbus-glib-1 >= $DBUS_REQS],, [enable_browser_plugins=no]) DBUSLIBDIR="`$PKG_CONFIG dbus-glib-1 --variable=libdir`" DBUSBINDIR="`echo $DBUSLIBDIR | sed -e s/lib/bin/`" AC_PATH_PROG([DBUS_BIND], [dbus-binding-tool], [no], [$DBUSBINDIR:$PATH]) if test "x$DBUS_BIND" = "xno"; then AC_MSG_WARN([dbus-binding-tool not found]) enable_browser_plugins=no fi fi # Sets some variables, and check for xpidl if test "$enable_browser_plugins" = "yes" ; then MOZILLA_PREFIX="`$PKG_CONFIG $MOZILLA-xpcom --variable=prefix`" MOZILLA_LIBDIR="`$PKG_CONFIG $MOZILLA-xpcom --variable=libdir`" MOZILLA_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir $MOZILLA-xpcom`" MOZILLA_XPCOM_CFLAGS="-I`$PKG_CONFIG --variable=includedir $MOZILLA-xpcom`" MOZILLA_PLUGINDIR="${MOZILLA_PLUGINDIR:-"\${libdir}/mozilla/plugins"}" AC_PATH_PROG([MOZILLA_XPIDL], [xpidl], [no], [$MOZILLA_LIBDIR:$PATH]) if test "x$MOZILLA_XPIDL" = "xno"; then AC_MSG_ERROR([xpidl compiler not found]) fi AC_PATH_PROG([MOZILLA_XPT_LINK],[xpt_link],[no],[$MOZILLA_LIBDIR:$PATH]) if test "$MOZILLA_XPT_LINK" = "no"; then AC_MSG_ERROR([xpt_link not found]) fi AC_SUBST([MOZILLA_PREFIX]) AC_SUBST([MOZILLA_LIBDIR]) AC_SUBST([MOZILLA_XPCOM_CFLAGS]) AC_SUBST([MOZILLA_INCLUDE_ROOT]) AC_ARG_VAR([MOZILLA_PLUGINDIR],[Where to install the plugin to]) fi # Search for the idl include directory if test "$enable_browser_plugins" = "yes" ; then dnl This only works on gecko 1.8 MOZILLA_IDLDIR="`$PKG_CONFIG --variable=idldir $MOZILLA-xpcom`" dnl Fallback for older versions if test "x$MOZILLA_IDLDIR" = "x"; then MOZILLA_IDLDIR="`echo $MOZILLA_LIBDIR | sed -e s!lib!share/idl!`" fi dnl Some distributions (Gentoo) have it in unusual places if test "x$MOZILLA_IDLDIR" = "x"; then MOZILLA_IDLDIR="$MOZILLA_INCLUDE_ROOT/idl" fi AC_SUBST([MOZILLA_IDLDIR]) fi if test "$enable_browser_plugins" = "yes" ; then AC_DEFINE([ENABLE_BROWSER_PLUGINS],[1],[Define if you build the mozilla plugin]) fi AM_CONDITIONAL([ENABLE_BROWSER_PLUGINS], [test "$enable_browser_plugins" = "yes"]) # check for libxpcomglue_s LIBXPCOMGLUE_S= if test "$enable_browser_plugins" = "yes"; then AC_LANG_PUSH([C++]) __SAVE_CPPFLAGS=$CPPFLAGS __SAVE_CXXFLAGS=$CXXFLAGS __SAVE_LIBS=$LIBS __SAVE_LDFLAGS=$LDFLAGS CPPFLAGS="$CPPFLAGS -I$MOZILLA_INCLUDE_ROOT" CXXFLAGS="$CXXFLAGS $MOZILLA_NOT_LINKED_CFLAGS" LIBS="$LIBS -L$MOZILLA_LIBDIR -lxpcom -lxpcomglue_s" LDFLAGS="$LDFLAGS -Wl,--rpath -Wl,$MOZILLA_LIBDIR" AC_MSG_CHECKING([for libxpcomglue_s]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include #include ]],[[ nsCString s; const char *t = s.get (); ]])], [have_libxpcomglue_s=yes], [have_libxpcomglue_s=no]) AC_MSG_RESULT([$have_libxpcomglue_s]) CPPFLAGS=$__SAVE_CPPFLAGS CXXFLAGS=$__SAVE_CXXFLAGS LIBS=$__SAVE_LIBS LDFLAGS=$__SAVE_LDFLAGS AC_LANG_POP([C++]) if test "$have_libxpcomglue_s" = "yes"; then LIBXPCOMGLUE_S="-L$MOZILLA_LIBDIR -lxpcomglue_s" else AC_MSG_WARN([libxpcomglue_s not available; plugins may not be portable]) fi fi AC_SUBST([LIBXPCOMGLUE_S]) # check for -fno-rtti flag if test "$enable_browser_plugins" = "yes"; then AC_LANG_PUSH([C++]) __SAVE_CXXFLAGS=$CXXFLAGS CXXFLAGS="-fno-rtti $CXXFLAGS" AC_MSG_CHECKING([for -fno-rtti compiler flag]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],[have_no_rtti_flag=yes],[have_no_rtti_flag=no]) AC_MSG_RESULT([$have_no_rtti_flag]) CXXFLAGS=$__SAVE_CXXFLAGS AC_LANG_POP([C++]) if test "$have_no_rtti_flag" = "yes"; then AM_CXXFLAGS="-fno-rtti $AM_CXXFLAGS" fi fi # check for some additional xpcom headers and for string compatibility if test "$enable_browser_plugins" = "yes"; then AC_LANG_PUSH([C++]) __SAVE_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $MOZILLA_NOT_LINKED_CFLAGS -I$MOZILLA_INCLUDE_ROOT/xpcom" AC_CHECK_HEADERS([nsTArray.h]) AC_MSG_CHECKING([whether we need string glue]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ #include #include ],[ nsDependentCString test("Test"); ])],[need_string_glue=no],[need_string_glue=yes]) AC_MSG_RESULT([$need_string_glue]) CPPFLAGS=$__SAVE_CPPFLAGS AC_LANG_POP([C++]) if test "$need_string_glue" = "yes"; then AC_DEFINE([NEED_STRING_GLUE],[1],[Define if we need string glue]) fi fi # check which plugins to enable if test "$enable_browser_plugins" = "yes"; then AC_MSG_CHECKING([whether to enable the basic browser plugin]) AC_ARG_ENABLE([basic-plugin], AS_HELP_STRING([--disable-basic-plugin],[Whether to disable the basic browser plugin]), [],[enable_basic_plugin=yes]) AC_MSG_RESULT([$enable_basic_plugin]) AC_MSG_CHECKING([whether to enable the GMP browser plugin]) AC_ARG_ENABLE([gmp-plugin], AS_HELP_STRING([--enable-gmp-plugin],[Whether to enable the GMP browser plugin]), [],[enable_gmp_plugin=yes]) AC_MSG_RESULT([$enable_gmp_plugin]) AC_MSG_CHECKING([whether to enable the Complex browser plugin]) AC_ARG_ENABLE([complex-plugin], AS_HELP_STRING([--enable-complex-plugin],[Whether to enable the complex browser plugin]), [],[enable_complex_plugin=yes]) AC_MSG_RESULT([$enable_complex_plugin]) AC_MSG_CHECKING([whether to enable the NarrowSpace browser plugin]) AC_ARG_ENABLE([narrowspace-plugin], AS_HELP_STRING([--enable-narrowspace-plugin],[Whether to enable the NarrowSpace browser plugin]), [],[enable_narrowspace_plugin=yes]) AC_MSG_RESULT([$enable_narrowspace_plugin]) AC_MSG_CHECKING([whether to enable the MullY browser plugin]) AC_ARG_ENABLE([mully-plugin], AS_HELP_STRING([--enable-mully-plugin],[Whether to enable the MullY browser plugin]), [],[enable_mully_plugin=yes]) AC_MSG_RESULT([$enable_mully_plugin]) AC_MSG_CHECKING([whether to enable the Cone browser plugin]) AC_ARG_ENABLE([cone-plugin], AS_HELP_STRING([--enable-cone-plugin],[Whether to enable the Cone browser plugin]), [],[enable_cone_plugin=yes]) AC_MSG_RESULT([$enable_cone_plugin]) fi AM_CONDITIONAL([ENABLE_BASIC_PLUGIN],[test "$enable_basic_plugin" = "yes"]) AM_CONDITIONAL([ENABLE_GMP_PLUGIN],[test "$enable_gmp_plugin" = "yes"]) AM_CONDITIONAL([ENABLE_COMPLEX_PLUGIN],[test "$enable_complex_plugin" = "yes"]) AM_CONDITIONAL([ENABLE_NARROWSPACE_PLUGIN],[test "$enable_narrowspace_plugin" = "yes"]) AM_CONDITIONAL([ENABLE_MULLY_PLUGIN],[test "$enable_mully_plugin" = "yes"]) AM_CONDITIONAL([ENABLE_CONE_PLUGIN],[test "$enable_cone_plugin" = "yes"]) dnl ******** dnl Nautilus dnl ******** dnl Check for Nautilus property page build AC_ARG_ENABLE(nautilus, AC_HELP_STRING([--enable-nautilus],[compile the nautilus plugin]), [case "${enableval}" in yes) ENABLE_NAUTILUS=yes ;; no) ENABLE_NAUTILUS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-nautilus) ;; esac], [ENABLE_NAUTILUS=yes]) dnl Default value if test x$ENABLE_NAUTILUS = "xyes" ; then PKG_CHECK_MODULES(NAUTILUS, gtk+-2.0 $MM gthread-2.0 libnautilus-extension, [HAVE_NAUTILUS=yes], [HAVE_NAUTILUS=no]) fi NAUTILUS_LIBS="$NAUTILUS_LIBS $EXTRA_BACKEND_LIBS" AC_SUBST(NAUTILUS_CFLAGS) AC_SUBST(NAUTILUS_LIBS) if test x$HAVE_NAUTILUS = "xyes"; then AC_DEFINE(HAVE_NAUTILUS, 1, [defined if you build the nautilus plugin]) fi AM_CONDITIONAL(HAVE_NAUTILUS, test x$HAVE_NAUTILUS = "xyes") dnl *** dnl HAL dnl *** AC_ARG_WITH(hal, AC_HELP_STRING([--without-hal], [Disable HAL support])) if test "x$with_hal" != "xno"; then PKG_CHECK_MODULES(HAL, hal >= 0.5 hal < 0.6 dbus-1 >= $DBUS_REQS, enable_hal05=yes, enable_hal05=no) if test x$enable_hal05 = xyes; then enable_hal=yes AC_DEFINE(HAVE_HAL, 1, [Define if you HAL support]) else if test "x$with_hal" = "xyes"; then AC_MSG_ERROR([HAL support explicitly requested but HAL couldn't be found]) fi fi fi AM_CONDITIONAL(HAVE_HAL, test x"$enable_hal" = xyes) dnl *************************** dnl D-Bus for gnome-screensaver dnl *************************** AC_ARG_WITH(dbus, AC_HELP_STRING([--with-dbus], [Enable D-BUS support]),, with_dbus=auto) if test "x$with_dbus" != "xno"; then PKG_CHECK_MODULES(DBUS, dbus-glib-1 >= $DBUS_REQS, enable_dbus=yes, enable_dbus=no) if test "x$with_dbus" = xyes && test "x$enable_dbus" = xno; then AC_MSG_ERROR([D-BUS explicitly requested but no support found]) fi if test "x$enable_dbus" = xyes; then AC_DEFINE(WITH_DBUS, 1, [Define if D-BUS is enabled]) fi fi AM_CONDITIONAL(WITH_DBUS, test "x$enable_dbus" = "xyes") AC_PATH_X if test x"$x_includes" != x"NONE" && test -n "$x_includes" ; then X_INCLUDES=-I`echo $x_includes | sed -e "s/:/ -I/g"` fi if test x"$x_libraries" != x"NONE" && test -n "$x_libraries" ; then X_LIBRARIES=-L`echo $x_libraries | sed -e "s/:/ -L/g"` fi CFLAGS="$X_INCLUDES $CFLAGS" LIBS="$X_LIBRARIES $LIBS" XTEST_LIBS="" enable_xtest=no AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTEST_LIBS="-lX11 -lXtst $X_LIBRARIES" enable_xtest=yes AC_DEFINE(HAVE_XTEST, 1, [defined if you have XTest library]), , $X_LIBRARIES) AC_SUBST(XTEST_LIBS) PKG_CHECK_MODULES(XVIDMODE, xrandr >= 1.1.1 xxf86vm >= 1.0.1, have_xvidmode=yes, have_xvidmode=no) AM_CONDITIONAL(HAVE_XVIDMODE, [test x$have_xvidmode = xyes]) if test x$have_xvidmode = xyes; then AC_DEFINE(HAVE_XVIDMODE,, [Define this if you have the XVidMode and XRandR extension installed]) fi X_LIBS="" if test x$(pkg-config --variable=target gtk+-2.0) = xx11; then dnl Explicitely link against libX11 to avoid problems with crappy linkers X_LIBS="$X_LIBRARIES -lX11" fi AC_SUBST(X_LIBS) dnl Multimedia keys have_xfree=no AC_COMPILE_IFELSE([ #include int main(int argc,char **argv) { return 0; } ], have_xfree=yes ) AC_MSG_CHECKING(for X11 XFree86 headers) AC_MSG_RESULT([$have_xfree]) if test x"$have_xfree" = "xyes" ; then AC_DEFINE(HAVE_XFREE, 1, [defined if you have X11/XF86keysym.h]) fi AC_PATH_PROG(GCONFTOOL, gconftool-2) AM_GCONF_SOURCE_2 dnl Check for packages for building libtotem-plparser.la PKG_CHECK_MODULES(TOTEM_PLPARSER, [gtk+-2.0 libxml-2.0 gnome-vfs-2.0 gnome-vfs-module-2.0]) PKG_CHECK_MODULES([TOTEM_PLPARSER_MINI], [gnome-vfs-2.0 gnome-vfs-module-2.0]) GNOME_COMMON_INIT GNOME_DEBUG_CHECK GNOME_COMPILE_WARNINGS([maximum]) GNOME_CXX_WARNINGS GNOME_MAINTAINER_MODE_DEFINES dnl debug AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[disables compilation of debugging messages]), [case "${enableval}" in yes) ENABLE_DEBUG=yes ;; no) ENABLE_DEBUG=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-debug) ;; esac], [ENABLE_DEBUG=no]) dnl Default value if test x$ENABLE_DEBUG = xyes; then AC_DEFINE(TOTEM_DEBUG, 1, [Define if DEBUG statements should be compiled in]) fi dnl run in source tree AC_ARG_ENABLE(run-in-source-tree, AC_HELP_STRING([--disable-run-in-source-tree],[disable search for UI files and plugins in local directory ]), [case "${enableval}" in yes) ENABLE_RUN_IN_SOURCE_TREE=yes ;; no) ENABLE_RUN_IN_SOURCE_TREE=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-run-in-source-tree) ;; esac], [ENABLE_RUN_IN_SOURCE_TREE=yes]) dnl Default value if test x$ENABLE_RUN_IN_SOURCE_TREE = xyes; then AC_DEFINE(TOTEM_RUN_IN_SOURCE_TREE, 1, [enable search for UI files and plugins in local directory]) fi if test "$GCC" = "yes" ; then CFLAGS="\ -Wall \ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith \ -Wcast-align -Wsign-compare \ -fno-strict-aliasing \ $CFLAGS" fi AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_CFLAGS]) AC_SUBST([AM_CXXFLAGS]) AC_SUBST([AM_LDFLAGS]) dnl ================================================================ dnl Python plugins dnl ================================================================ AC_MSG_CHECKING([whether Python plugin support is requested]) AC_ARG_ENABLE([python], AS_HELP_STRING([--enable-python],[Enable python support]), [enable_python=$enableval have_python=$enableval], [enable_python=autodetect have_python=yes]) AC_MSG_RESULT([$enable_python]) if test "x$have_python" != "xyes"; then if test "x$enable_python" = "xyes"; then AC_MSG_ERROR([Python not found]) elif test "x$enable_python" = "xautodetect"; then enable_python=no AC_MSG_WARN([Python not found, disabling python support]) fi fi if test "x$have_python" != "xno"; then AM_PATH_PYTHON([2.3],[],[no]) if test "x$PYTHON" = "x:"; then have_python=no fi fi if test "x$have_python" != "xno"; then PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'` PY_EXEC_PREFIX=`$PYTHON -c 'import sys ; print sys.exec_prefix'` PYTHON_LIBS="-lpython$PYTHON_VERSION" if test -d $PY_EXEC_PREFIX/lib64 ; then PYTHON_LIB_LOC="-L$PY_EXEC_PREFIX/lib64/python$PYTHON_VERSION/config" PYTHON_MAKEFILE="$PY_EXEC_PREFIX/lib64/python$PYTHON_VERSION/config/Makefile" else PYTHON_LIB_LOC="-L$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config" PYTHON_MAKEFILE="$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config/Makefile" fi PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION" PYTHON_LOCALMODLIBS=`sed -n -e 's/^LOCALMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_BASEMODLIBS=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_OTHER_LIBS=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_EXTRA_LIBS="$PYTHON_LOCALMODLIBS $PYTHON_BASEMODLIBS $PYTHON_OTHER_LIBS" AC_SUBST([PYTHON_LIBS]) AC_SUBST([PYTHON_LIB_LOC]) AC_SUBST([PYTHON_CFLAGS]) AC_SUBST([PYTHON_EXTRA_LIBS]) dnl FIXME: do we really need this test? AC_MSG_CHECKING([whether we can build a shared library depending on libpython]) rm -rf testpython mkdir testpython cd testpython cat > testpython.c < int testpython (void) { Py_Exit (0); } EOF if /bin/sh ../libtool --mode=compile ${CC} $PYTHON_CFLAGS -c testpython.c >/dev/null 2>&1 && \ /bin/sh ../libtool --mode=link ${CC} -o testpython.la -rpath `pwd` -module -avoid-version $PYTHON_LIB_LOC testpython.lo $PYTHON_LIBS $PYTHON_EXTRA_LIBS >/dev/null 2>&1 && \ grep 'dlname.*testpython' testpython.la >/dev/null 2>&1; then result=yes else result=no have_python=no fi cd .. rm -rf testpython AC_MSG_RESULT([$result]) fi if test "x$have_python" != "xno"; then PYGTK_REQUIRED=2.12.0 PKG_CHECK_MODULES([PYGTK], [ pygtk-2.0 >= $PYGTK_REQUIRED], [], [ have_python=no if test "x$enable_python" = "xyes"; then AC_MSG_ERROR([$PYGTK_PKG_ERRORS]) elif test "x$enable_python" = "xautodetect"; then enable_python=no AC_MSG_WARN([$PYGTK_PKG_ERRORS]) AC_MSG_WARN([Disabling python support]) fi ]) AC_SUBST([PYGTK_CFLAGS]) AC_SUBST([PYGTK_LIBS]) fi if test "x$have_python" != "xno"; then AC_MSG_CHECKING([for pygtk defs]) PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` AC_MSG_RESULT([$PYGTK_DEFSDIR]) AC_MSG_CHECKING([for pygtk codegen]) PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" AC_MSG_RESULT([$PYGTK_CODEGEN]) AC_MSG_CHECKING([for pygtk h2def]) PYGTK_H2DEF="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/h2def.py" AC_MSG_RESULT([$PYGTK_H2DEF]) AC_SUBST([PYGTK_DEFSDIR]) AC_SUBST([PYGTK_CODEGEN]) AC_SUBST([PYGTK_H2DEF]) dnl uncomment when http://bugzilla.gnome.org/show_bug.cgi?id=351072 fixed dnl PKG_CHECK_EXISTS([pygobject-2.0 >= X.XX.X], dnl AC_DEFINE([PYGOBJECT_CAN_MARSHAL_GVALUE])) dnl Check for -fno-strict-aliasing FLAGS="-fno-strict-aliasing" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $FLAGS" AC_MSG_CHECKING([whether [$]CC understands $FLAGS]) AC_TRY_COMPILE([], [], [compiler_has_option=yes], [compiler_has_option=no]) CFLAGS="$save_CFLAGS" AC_MSG_RESULT($compiler_has_option) if test $compiler_has_option = yes; then NO_STRICT_ALIASING_CFLAGS="$FLAGS" fi AC_SUBST([NO_STRICT_ALIASING_CFLAGS]) fi if test "x$have_python" != "xno" -a "x$enable_python" != "xno"; then enable_python=yes AC_DEFINE([ENABLE_PYTHON],[1],[Define to compile with python plugin support]) fi AM_CONDITIONAL([ENABLE_PYTHON],[test "x$enable_python" = "xyes"]) dnl ================================================================ dnl Vala plugins dnl ================================================================ AC_MSG_CHECKING([whether Vala plugin support is requested]) AC_ARG_ENABLE([vala], AS_HELP_STRING([--enable-vala],[Enable Vala plugin support]), [enable_vala=$enableval have_vala=$enableval], [enable_vala=autodetect have_vala=yes]) AC_MSG_RESULT([$enable_vala]) if test "x$enable_vala" != "xno"; then PKG_CHECK_MODULES(VALA, vala-1.0 >= $VALA_REQS, with_vala=yes, with_vala=no) if test "x$with_vala" = "xyes"; then VALAC="`pkg-config --variable=prefix vala-1.0`/bin/valac" AC_SUBST([VALAC]) elif test "x$enable_vala" = "xyes"; then AC_MSG_ERROR([Vala plugin support explicitly requested, but not found]) fi fi AM_CONDITIONAL(ENABLE_VALA, test "x$with_vala" = "xyes") AC_OUTPUT([ Makefile totem.spec totem-plparser.pc totem-plparser-uninstalled.pc lib/Makefile src/Makefile src/plugins/Makefile src/plugins/bemused/Makefile src/plugins/screensaver/Makefile src/plugins/ontop/Makefile src/plugins/galago/Makefile src/plugins/gromit/Makefile src/plugins/lirc/Makefile src/plugins/media-player-keys/Makefile src/plugins/mythtv/Makefile src/plugins/properties/Makefile src/plugins/sidebar-test/Makefile src/plugins/skipto/Makefile src/plugins/sample-python/Makefile src/plugins/sample-vala/Makefile src/plugins/totem/Makefile src/plugins/youtube/Makefile src/backend/Makefile src/plparse/Makefile src/plparse/totem-pl-parser-features.h browser-plugin/Makefile browser-plugin/idl/Makefile data/Makefile data/totem.desktop.in.in data/icons/Makefile data/icons/16x16/Makefile data/icons/22x22/Makefile data/icons/24x24/Makefile data/icons/32x32/Makefile data/icons/scalable/Makefile po/Makefile.in help/Makefile help/bg/Makefile bindings/Makefile bindings/python/Makefile bindings/vala/Makefile ]) AC_MSG_NOTICE([Totem was configured with the following options:]) if test x$HAVE_GSTREAMER = xno ; then AC_MSG_NOTICE([** Using the xine backend]) else AC_MSG_NOTICE([** Using the GStreamer-$GST_MAJORMINOR backend]) if test "x$MISSING_PLUGINS_LIBS" != "x"; then AC_MSG_NOTICE([** Easy codec installation support enabled]) else AC_MSG_NOTICE([ Easy codec installation support disabled]) fi fi if test x$found_nvtv = xyes ; then AC_MSG_NOTICE([** nvtv support enabled]) else AC_MSG_NOTICE([ nvtv support disabled]) fi if test x$ENABLE_GTK = xyes ; then AC_MSG_NOTICE([** GTK+-only version enabled]) else AC_MSG_NOTICE([** GNOME version enabled]) fi if test x$enable_python = xyes ; then AC_MSG_NOTICE([** Python binding support enabled]) else AC_MSG_NOTICE([ Python binding support disabled]) fi if test x$enable_vala = xyes ; then AC_MSG_NOTICE([** Vala binding support enabled]) else AC_MSG_NOTICE([ Vala binding support disabled]) fi if test "x${PLUGINS}" != "x" ; then for allowed_plugin in ${ALL_PLUGINS}; do for plugin in ${PLUGINS}; do case ${allowed_plugin} in ${plugin}) AC_MSG_NOTICE([** ${allowed_plugin} plugin enabled]) continue 2 ;; *);; esac done AC_MSG_NOTICE([ ${allowed_plugin} plugin disabled]) done else AC_MSG_NOTICE([ No Totem plugins enabled]) fi if test x$enable_browser_plugins = xyes ; then AC_MSG_NOTICE([** Browser plugin enabled (using $MOZILLA)]) if test x$enable_basic_plugin = xyes ; then AC_MSG_NOTICE([** Basic browser plugin enabled]) else AC_MSG_NOTICE([ Basic browser plugin disabled]) fi if test x$enable_gmp_plugin = xyes ; then AC_MSG_NOTICE([** GMP (Windows Media) plugin enabled]) else AC_MSG_NOTICE([ GMP (Windows Media) plugin disabled]) fi if test x$enable_complex_plugin = xyes ; then AC_MSG_NOTICE([** Complex (Real) plugin enabled]) else AC_MSG_NOTICE([ Complex (Real) plugin disabled]) fi if test x$enable_narrowspace_plugin = xyes ; then AC_MSG_NOTICE([** NarrowSpace (QuickTime) plugin enabled]) else AC_MSG_NOTICE([ NarrowSpace (QuickTime) plugin disabled]) fi if test x$enable_mully_plugin = xyes ; then AC_MSG_NOTICE([** MullY (DivX) plugin enabled]) else AC_MSG_NOTICE([ MullY (DivX) plugin disabled]) fi if test x$enable_cone_plugin = xyes ; then AC_MSG_NOTICE([** Cone (VLC) plugin enabled]) else AC_MSG_NOTICE([ Cone (VLC) plugin disabled]) fi else AC_MSG_NOTICE([ Browser plugin disabled]) fi if test x$ENABLE_NAUTILUS = xyes ; then AC_MSG_NOTICE([** Nautilus properties page enabled]) else AC_MSG_NOTICE([ Nautilus properties page disabled]) fi if test x$disable_iso_codes_check = xno ; then AC_MSG_NOTICE([** iso-codes support checked]) else AC_MSG_NOTICE([ iso-codes support checked at run-time]) fi if test x$enable_hal = xyes ; then AC_MSG_NOTICE([** HAL support enabled]) else AC_MSG_NOTICE([ HAL support disabled]) fi if test x$enable_xtest = xyes ; then AC_MSG_NOTICE([** XTest (legacy screensaver) support enabled]) else AC_MSG_NOTICE([ XTest (legacy screensaver) support disabled]) fi if test x$enable_dbus = xyes ; then AC_MSG_NOTICE([** D-Bus (gnome-screensaver) support enabled]) else AC_MSG_NOTICE([ D-Bus (gnome-screensaver) support disabled]) fi if test x$have_xvidmode = xyes ; then AC_MSG_NOTICE([** XVidmode support enabled]) else AC_MSG_NOTICE([ XVidmode support disabled]) fi if test x$have_xfree = xyes ; then AC_MSG_NOTICE([** XFree86 multimedia keys support enabled]) else AC_MSG_NOTICE([ XFree86 multimedia keys support disabled]) fi AC_MSG_NOTICE([End options])