diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 460 |
1 files changed, 460 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..36a16b1 --- /dev/null +++ b/configure.ac @@ -0,0 +1,460 @@ +AC_PREREQ(2.60) + +AC_INIT([mate-media], + [2011.12.01], + [http://bugzilla.mate.org/enter_bug.cgi?product=mate-media]) + +AC_CONFIG_AUX_DIR([build-aux]) + +AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-bzip2 -Wall -Wno-portability tar-pax foreign]) + +AS_VERSION + +AM_MAINTAINER_MODE + +if type -p stow > /dev/null && test -d /usr/local/stow ; then + AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE}-${VERSION} ***]) + ac_default_prefix="/usr/local/stow/${PACKAGE}-${VERSION}" +fi + +AM_CONFIG_HEADER([config.h]) +AC_CONFIG_MACRO_DIR([m4]) + +IT_PROG_INTLTOOL([0.35.0]) + +AC_PROG_CC +AC_ISC_POSIX + +# Checks for programs. +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET + +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([fcntl.h limits.h malloc.h strings.h sys/ioctl.h unistd.h]) +AC_CHECK_HEADERS([sys/sockio.h sys/param.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T +AC_TYPE_SIZE_T + +# Checks for library functions. +AC_PROG_GCC_TRADITIONAL +AC_FUNC_MMAP + +# CFLAGS +MATE_COMPILE_WARNINGS + +# AS_NANO(GM_RELEASE="yes", GM_RELEASE="no") +AS_COMPILER_FLAG(-Wall, GM_ERROR_CFLAGS="-Wall") + +if test "x$GM_RELEASE" = "xno" +then + AS_COMPILER_FLAG(-Werror, GM_ERROR_CFLAGS="$GM_ERROR_CFLAGS -Werror") +fi +AC_MSG_NOTICE([Using $GM_ERROR_CFLAGS as error checking CFLAGS]) + +GLIB_REQUIRED_VERSION=2.18.2 +GTK_REQUIRED_VERSION=2.18.0 +MATECONF_REQUIRED_VERSION=2.6.1 +PA_REQUIRED_VERSION=0.9.16 +CANBERRA_REQUIRED_VERSION=0.13 + +dnl======================================================================= +dnl Check for libcanberra +dnl======================================================================= + +PKG_CHECK_MODULES(SOUND_THEME, + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gtk+-2.0 >= $GTK_REQUIRED_VERSION + gio-2.0 + mateconf-2.0 >= $MATECONF_REQUIRED_VERSION + libcanberra-gtk >= $CANBERRA_REQUIRED_VERSION + libxml-2.0, + have_soundtheme=yes, + have_soundtheme=no) + +if test "x$have_soundtheme" = "xyes" ; then + AC_DEFINE(HAVE_SOUND_THEME, [], [Define if we can build sound theme]) +fi +AM_CONDITIONAL(HAVE_SOUND_THEME, test x$have_soundtheme = xyes) +AC_SUBST(HAVE_SOUND_THEME) +AC_SUBST(SOUNDTHEME_CFLAGS) +AC_SUBST(SOUNDTHEME_LIBS) + +dnl======================================================================= +dnl Check for the new volume control modules +dnl======================================================================= + +dnl The new mate-volume-control needs a newer GTK+ +GTK_REQUIRED_VERSION=2.15.1 + +AC_ARG_ENABLE([pulseaudio], + AS_HELP_STRING([--enable-pulseaudio], + [Enable PulseAudio support @<:@default=auto@:>@]), + enable_pulseaudio=$enableval, enable_pulseaudio=auto) + +if test "x$enable_pulseaudio" != "xno"; then + + PKG_CHECK_MODULES(PULSEAUDIO, + libpulse >= $PA_REQUIRED_VERSION libpulse-mainloop-glib >= $PA_REQUIRED_VERSION, + have_pulseaudio=yes, + have_pulseaudio=no) + + if test "x$enable_pulseaudio" = "xyes" -a "x$have_pulseaudio" = "xno"; then + AC_MSG_ERROR([PulseAudio support explicitly requested but dependencies not found]) + fi + + if test "x$have_pulseaudio" = "xyes" ; then + PKG_CHECK_MODULES(VOLUME_CONTROL, + gobject-2.0 >= $GLIB_REQUIRED_VERSION + gtk+-2.0 >= $GTK_REQUIRED_VERSION + gio-2.0 + mateconf-2.0 >= $MATECONF_REQUIRED_VERSION + libcanberra-gtk >= $CANBERRA_REQUIRED_VERSION + unique-1.0 + libxml-2.0 + ) + + AC_SUBST(VOLUME_CONTROL_CFLAGS) + AC_SUBST(VOLUME_CONTROL_LIBS) + + if $PKG_CONFIG --atleast-version 2.26 glib-2.0; then + VOLUME_CONTROL_CFLAGS="$VOLUME_CONTROL_CFLAGS -DG_CONST_RETURN=const" + fi + + AC_DEFINE(HAVE_PULSEAUDIO, [], [Define if we have pulseaudio]) + fi +else + have_pulseaudio=no +fi +AM_CONDITIONAL(HAVE_PULSEAUDIO, test x$have_pulseaudio = xyes) +AC_SUBST(HAVE_PULSEAUDIO) +AC_SUBST(PULSEAUDIO_CFLAGS) +AC_SUBST(PULSEAUDIO_LIBS) + +dnl======================================================================= +dnl profiles +dnl======================================================================= + +have_profiles=no + +AC_ARG_ENABLE([profiles], + AS_HELP_STRING([--enable-profiles], [enable mate media profiles]), + ,enable_profiles=yes) + +if test "x$enable_profiles" = "xyes"; then + PKG_CHECK_MODULES(GMP, [ + gtk+-2.0 >= $GTK_REQUIRED_VERSION + gstreamer-0.10 + mateconf-2.0 + gio-2.0], + have_profiles=yes) +fi +AC_SUBST(GMP_CFLAGS) +AC_SUBST(GMP_LIBS) +AM_CONDITIONAL(HAVE_GMP, [test x$have_profiles = xyes]) + +dnl Profiles glade ui: needed to edit .ui files with glade3 +have_gladeui=no + +PKG_CHECK_MODULES(GLADEUI, [gladeui-1.0], have_gladeui=yes, have_gladeui=no) +AC_SUBST(GLADEUI_CFLAGS) +AC_SUBST(GLADEUI_LIBS) +AM_CONDITIONAL(HAVE_GLADEUI, [test x$have_gladeui = xyes]) + +GLADEUI_CATALOG_DIR="`$PKG_CONFIG --variable=catalogdir gladeui-1.0`" +AC_SUBST(GLADEUI_CATALOG_DIR) + +GLADEUI_MODULE_DIR="`$PKG_CONFIG --variable=moduledir gladeui-1.0`" +AC_SUBST(GLADEUI_MODULE_DIR) + +dnl======================================================================= +dnl Check for GStreamer and GSR deps +dnl======================================================================= + +GST_REQ=0.10.23 +GST_PLUGINS_BASE_REQ=0.10.23 +GST_MAJORMINOR=0.10 + +dnl make available to Makefile.am +AC_SUBST(GST_MAJORMINOR) +AC_DEFINE_UNQUOTED(GST_MAJORMINOR_QUOTED, "$GST_MAJORMINOR", + [major/minor of GStreamer as a string constant]) + +have_gst=no + +PKG_CHECK_MODULES(GSR, [ + gstreamer-$GST_MAJORMINOR >= $GST_REQ + gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQ + gtk+-2.0 >= 2.6.0 + gio-2.0 + mateconf-2.0], + have_gst=yes, + [ + AC_MSG_RESULT(no) + AC_MSG_WARN($GSR_PKG_ERRORS) + PROGRAMS_GRECORD_ERROR="$GSR_PKG_ERRORS" + ]) + +have_grecord=no +grecord_reason="" + +AC_ARG_ENABLE([grecord], + AS_HELP_STRING([--enable-grecord], [enable mate sound recorder]), + ,enable_grecord=yes) + +if test "x$have_profiles" = "xno" ; then + AC_MSG_WARN([Grecord will be disabled because of disabled profiles]) + enable_grecord=no + have_grecord=no + grecord_reason=", mate media profiles is disabled" +fi + +if test "x$have_gst" = "xyes" && test "x$enable_grecord" = "xyes"; then + have_grecord=yes +else + if test "x$have_gst" = "xno"; then + AC_MSG_WARN([You need GStreamer installed for the mixer and recorder to work]) + sleep 5 2>/dev/null + fi +fi + +AC_SUBST(GSR_CFLAGS) +AC_SUBST(GSR_LIBS) +AM_CONDITIONAL(HAVE_GSTREAMER, [test x$have_gst = xyes]) +AM_CONDITIONAL(HAVE_GRECORD, [test x$have_grecord = xyes]) + +dnl uninstalled gsr ui dir +AC_DEFINE_UNQUOTED(GSR_UIDIR_UNINSTALLED, "`pwd`/grecord/src", + [path to uninstalled mate-sound-recorder UI dir]) + +AC_PATH_PROG(MATECONFTOOL, mateconftool-2) +AM_MATECONF_SOURCE_2 + +AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) + +dnl======================================================================= +dnl i18n +dnl======================================================================= + +GETTEXT_PACKAGE=mate-media-2.0 +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Define to the Gettext package name]) +AM_GLIB_GNU_GETTEXT + +MATE_DOC_INIT + +AM_PROG_LIBTOOL +AM_PROG_CC_C_O + +dnl======================================================================= +dnl gstreamer-properties +dnl======================================================================= + +have_gstprops=no + +AC_ARG_ENABLE([gstprops], + AS_HELP_STRING([--enable-gstprops], [enable gstreamer properties]), + ,enable_gstprops=yes) + +if test "x$have_gst" = "xyes" && test "x$enable_gstprops" = "xyes"; +then + PKG_CHECK_MODULES(GSTPROPS, [ + glib-2.0 + gtk+-2.0 >= $GTK_REQUIRED_VERSION + mateconf-2.0 + gstreamer-$GST_MAJORMINOR + gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_PLUGINS_BASE_REQ + libxml-2.0], + have_gstprops=yes) + + GSTPROPS_LIBS="$GSTPROPS_LIBS -lgstinterfaces-$GST_MAJORMINOR" + + MATECC_DESKTOP_DIR=${datadir}/control-center-2.0/capplets + AS_AC_EXPAND(MATECC_DESKTOP_DIR, $MATECC_DESKTOP_DIR) + AC_DEFINE_UNQUOTED(MATECC_DESKTOP_DIR, "$MATECC_DESKTOP_DIR", + [Install path for Mate control-center integration]) + AC_SUBST(MATECC_DESKTOP_DIR) + AC_SUBST(PROGRAMS_GSTPROPS) +fi + +AC_SUBST(GSTPROPS_CFLAGS) +AC_SUBST(GSTPROPS_LIBS) +AM_CONDITIONAL(HAVE_GSTPROPS, [test x$have_gstprops = xyes]) + +dnl======================================================================= +dnl gst-mixer +dnl======================================================================= + +have_gstmixer=no + +AC_ARG_ENABLE([gstmix], + AS_HELP_STRING([--enable-gstmix], [enable gstreamer mixer]), + ,enable_gstmix=auto) + +if test "x$enable_gstmix" = "xauto" && test "x$have_pulseaudio" = "xno"; then + enable_gstmix=yes +fi + +if test "x$have_gst" = "xyes" && test "x$enable_gstmix" = "xyes"; +then + PKG_CHECK_MODULES(GSTMIXER, [ + gtk+-2.0 + mateconf-2.0 + gstreamer-$GST_MAJORMINOR + gstreamer-plugins-base-$GST_MAJORMINOR + ], + [ + OLD_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $GSTMIXER_CFLAGS" + + AC_CHECK_HEADER(gst/audio/mixerutils.h, + [AC_CHECK_HEADER(gst/interfaces/mixer.h, + [AC_CHECK_HEADER(gst/interfaces/propertyprobe.h, have_gstmixer=yes)])]) + + CPPFLAGS=$OLD_CPPFLAGS + GSTMIXER_LIBS="$GSTMIXER_LIBS -lgstinterfaces-$GST_MAJORMINOR -lgstaudio-$GST_MAJORMINOR" + ]) +fi + +AC_SUBST(GSTMIXER_CFLAGS) +AC_SUBST(GSTMIXER_LIBS) +AM_CONDITIONAL(HAVE_GSTMIXER, [test x$have_gstmixer = xyes]) + + +dnl --------------------------------------------------------------------------- +dnl - Finish +dnl --------------------------------------------------------------------------- + +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) + +MATE_MAINTAINER_MODE_DEFINES +MATE_COMPILE_WARNINGS([maximum]) +MATE_CXX_WARNINGS + +# Turn on the additional warnings last, so warnings don't affect other tests. +AC_ARG_ENABLE(more-warnings, + [AC_HELP_STRING([--enable-more-warnings], + [Maximum compiler warnings])], + set_more_warnings="$enableval",[ + if test -d $srcdir/.git; then + set_more_warnings=yes + else + set_more_warnings=no + fi + ]) +AC_MSG_CHECKING(for more warnings) +if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + CFLAGS="\ + -Wall \ + -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ + -Wnested-externs -Wpointer-arith \ + -Wcast-align -Wsign-compare \ + $CFLAGS" + + for option in -Wno-unused-parameter -Wno-strict-aliasing -Wno-sign-compare; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done + unset option +else + AC_MSG_RESULT(no) +fi + + +AC_SUBST(CFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(LIBS) +AC_SUBST(LDFLAGS) + +AC_CONFIG_FILES([ +Makefile +po/Makefile.in +sound-theme/Makefile +sound-theme/sounds/Makefile +mate-volume-control/Makefile +mate-volume-control/data/Makefile +mate-volume-control/data/mate-volume-control.desktop.in +mate-volume-control/data/icons/Makefile +mate-volume-control/data/icons/16x16/Makefile +mate-volume-control/data/icons/16x16/status/Makefile +mate-volume-control/data/icons/22x22/Makefile +mate-volume-control/data/icons/22x22/status/Makefile +mate-volume-control/data/icons/24x24/Makefile +mate-volume-control/data/icons/24x24/status/Makefile +mate-volume-control/data/icons/32x32/Makefile +mate-volume-control/data/icons/32x32/status/Makefile +mate-volume-control/data/icons/scalable/Makefile +mate-volume-control/data/icons/scalable/devices/Makefile +mate-volume-control/data/icons/scalable/status/Makefile +mate-volume-control/src/Makefile +grecord/Makefile +grecord/mate-sound-recorder.schemas.in +grecord/src/Makefile +grecord/doc/Makefile +grecord/icons/Makefile +grecord/icons/16x16/Makefile +grecord/icons/22x22/Makefile +grecord/icons/24x24/Makefile +grecord/icons/32x32/Makefile +grecord/icons/48x48/Makefile +grecord/icons/scalable/Makefile +gstreamer-properties/Makefile +gstreamer-properties/help/Makefile +gst-mixer/Makefile +gst-mixer/icons/Makefile +gst-mixer/icons/16x16/Makefile +gst-mixer/icons/16x16/devices/Makefile +gst-mixer/icons/16x16/status/Makefile +gst-mixer/src/Makefile +gst-mixer/pixmaps/Makefile +gst-mixer/doc/Makefile +profiles/Makefile +profiles/mate-audio-profiles.schemas.in +profiles/mate-media-profiles.pc +profiles/glade/Makefile +profiles/help/Makefile +grecord/mate-sound-recorder.desktop.in +gst-mixer/mate-volume-control.desktop.in +gstreamer-properties/mate-gstreamer-properties.desktop.in +]) + +AC_OUTPUT + +echo " + + ${PACKAGE} ${VERSION} + ============ + + + Prefix: ${prefix} + Source code location: ${srcdir} + Compiler: ${CC} + CFLAGS: ${CFLAGS} + + Volume Control $have_pulseaudio + GStreamer properties: $have_gstprops + GStreamer profiles: $have_profiles (GladeUI: $have_gladeui) + Sound recorder: $have_grecord$grecord_reason + + *Deprecated*: + + GStreamer mixer: $have_gstmixer + +" + |