diff options
Diffstat (limited to 'm4/audio_out.m4')
-rw-r--r-- | m4/audio_out.m4 | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/m4/audio_out.m4 b/m4/audio_out.m4 new file mode 100644 index 000000000..5041dfbba --- /dev/null +++ b/m4/audio_out.m4 @@ -0,0 +1,225 @@ +dnl ----------------- +dnl Audio out plugins +dnl ----------------- +AC_DEFUN([XINE_AUDIO_OUT_PLUGINS], [ + dnl Setup defaults for the target operating system. For example, alsa is + dnl only ever available on Linux, so don't bother checking for it unless + dnl explicitly requested to do so on other operating systems. + dnl Notes: + dnl - Alsa is Linux only + dnl - CoreAudio is Mac OS X only + dnl - EsounD is reported to be available on most platforms + dnl - FusionSound is Linux only, but don't enable it by default + dnl - Jack is Linux and Mac OS X primarily + dnl - OSS is most unix variants + dnl - PulseAudio has been tested on Linux, Solaris, FreeBSD, Windows + dnl - SunAudio is NetBSD, Solaris (anything else?) + dnl - sndio is OpenBSD only + + default_enable_coreaudio=no + default_enable_irixal=no + default_enable_oss=yes + default_enable_sunaudio=no + default_enable_sndio=no + + default_with_alsa=no + default_with_esound=yes + default_with_fusionsound=no + default_with_jack=no + default_with_pulseaudio=no + + case "$host_os" in + cygwin* | mingw*) + default_enable_oss=no + default_with_pulseaudio=yes + ;; + darwin*) + default_enable_coreaudio=yes + default_with_jack=yes + default_enable_oss=no + ;; + freebsd*|kfreebsd*) + default_with_pulseaudio=yes + default_with_jack=yes + ;; + gnu*) + default_with_pulseaudio=yes + default_with_jack=yes + ;; + irix*) + default_enable_irixal=yes + default_enable_oss=no + ;; + linux*) + default_with_alsa=yes + default_with_jack=yes + default_with_pulseaudio=yes + ;; + netbsd*) + default_enable_sunaudio=yes + ;; + openbsd*) + default_enable_oss=no + default_enable_sndio=yes + ;; + solaris*) + default_with_pulseaudio=yes + default_enable_sunaudio=yes + ;; + esac + + + dnl Alsa support + XINE_ARG_WITH([alsa], [Build with ALSA audio output support]) + if test x"$with_alsa" != x"no"; then + PKG_CHECK_MODULES([ALSA], [alsa >= 0.9.0], [have_alsa=yes], [have_alsa=no]) + if test x"$hard_with_alsa" = x"yes" && test x"$have_alsa" != x"yes"; then + AC_MSG_ERROR([ALSA support requested but not found.]) + elif test x"$have_alsa" = x"yes"; then + dnl This is needed by src/input/input_v4l.c + AC_DEFINE([HAVE_ALSA], 1, [Define this if you have ALSA installed]) + fi + fi + AM_CONDITIONAL([ENABLE_ALSA], [test x"$have_alsa" = x"yes"]) + + + dnl CoreAudio for Mac OS X + XINE_ARG_ENABLE([coreaudio], [Enable support for Mac OS X CoreAudio]) + if test x"$enable_coreaudio" != x"no"; then + AC_MSG_CHECKING([for CoreAudio frameworks]) + ac_save_LIBS="$LIBS" LIBS="$LIBS -framework CoreAudio -framework AudioUnit" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[return 0]])], [have_coreaudio=yes], [have_coreaudio=no]) + LIBS="$ac_save_LIBS" + AC_MSG_RESULT([$have_coreaudio]) + if test x"hard_$enable_coreaudio" = x"yes" && test x"$have_coreaudio" != x"yes"; then + AC_MSG_ERROR([CoreAudio support requested, but CoreAudio not found]) + fi + fi + AM_CONDITIONAL([ENABLE_COREAUDIO], [test x"$have_coreaudio" = x"yes"]) + + + dnl EsounD support + XINE_ARG_WITH([esound], [Build with EsounD audio output support]) + if test x"$with_esound" != x"no"; then + PKG_CHECK_MODULES([ESD], [esound], [have_esound=yes], [have_esound=no]) + if test x"$hard_with_esound" = x"yes" && test x"$have_esound" != x"yes"; then + AC_MSG_ERROR([EsounD support requested, but EsounD not found]) + fi + fi + AM_CONDITIONAL([ENABLE_ESD], [test x"$have_esound" = x"yes"]) + + + dnl FusionSound support + XINE_ARG_WITH([fusionsound], [Build with FunsionSound audio output support]) + if test x"$with_fusionsound" != x"no"; then + PKG_CHECK_MODULES([FUSIONSOUND], [fusionsound >= 0.9.23], [have_fusionsound=yes], [have_fusionsound=no]) + if test x"$hard_with_fusionsound" = x"yes" && test x"$have_fusionsound" != x"yes"; then + AC_MSG_ERROR([FusionSound support requested, but FusionSound not found]) + fi + fi + AM_CONDITIONAL([ENABLE_FUSIONSOUND], [test x"$have_fusionsound" = x"yes"]) + + + dnl IRIX style audio interface + XINE_ARG_ENABLE([irixal], [Enable support for IRIX libaudio]) + if test x"$enable_irixal" != x"no"; then + AC_CACHE_CHECK([for IRIX libaudio support], [am_cv_have_irixal], + [AC_CHECK_HEADER([dmedia/audio.h], + [am_cv_have_irixal=yes], [am_cv_have_irixal=no])]) + if test x"$am_cv_have_irixal" = x"yes"; then + AC_DEFINE([HAVE_IRIXAL], 1, [Define this if you have a usable IRIX al interface available]) + IRIXAL_LIBS="-laudio" + IRIXAL_STATIC_LIB="/usr/lib/libaudio.a" + AC_SUBST(IRIXAL_LIBS) + AC_SUBST(IRIXAL_STATIC_LIB) + fi + fi + AM_CONDITIONAL([ENABLE_IRIXAL], [test x"$am_cv_have_irixal" = x"yes"]) + + + dnl JACK support + XINE_ARG_WITH([jack], [Build with Jack support]) + if test x"$with_jack" != x"no"; then + PKG_CHECK_MODULES([JACK], [jack >= 0.100], [have_jack=yes], [have_jack=no]) + if test x"$hard_with_jack" = x"yes" && test x"$have_jack" != x"yes"; then + AC_MSG_ERROR([Jack support requested, but Jack not found]) + fi + fi + AM_CONDITIONAL([ENABLE_JACK], [test x"$have_jack" = x"yes"]) + + + dnl OSS (Open Sound System) + XINE_ARG_ENABLE([oss], [Enable OSS (Open Sound System) support]) + if test x"$enable_oss" != x"no"; then + AC_CHECK_HEADERS([sys/soundcard.h machine/soundcard.h soundcard.h], [break]) + AC_CHECK_DECL([SNDCTL_DSP_SETFRAGMENT], [have_oss=yes], [have_oss=no], + [#ifdef HAVE_SYS_SOUNDCARD_H + # include <sys/soundcard.h> + #endif + #ifdef HAVE_MACHINE_SOUNDCARD_H + # include <sys/soundcard.h> + #endif + #ifdef HAVE_SOUNDCARD_H + # include <soundcard.h> + #endif]) + if test x"$hard_enable_oss" = x"yes" && test x"$have_oss" != x"yes"; then + AC_MSG_ERROR([OSS support requested, but OSS not found]) + fi + fi + AM_CONDITIONAL([ENABLE_OSS], [test x"$have_oss" = x"yes"]) + + + dnl PulseAudio + XINE_ARG_WITH([pulseaudio], [Build with PulseAudio support]) + if test x"$with_pulseaudio" != x"no"; then + PKG_CHECK_MODULES([PULSEAUDIO], [libpulse], [have_pulseaudio="yes"], [have_pulseaudio="no"]) + if test x"$hard_with_pulseaudio" = x"yes" && test x"$have_pulseaudio" != x"yes"; then + AC_MSG_ERROR([PulseAudio support requested, but PulseAudio not found]) + fi + if test x"$have_pulseaudio" = xyes; then + AC_MSG_CHECKING([for pulseaudio >= 0.9.7]) + PKG_CHECK_EXISTS([libpulse >= 0.9.7], + [have_pulseaudio_0_9_7="yes"], + [have_pulseaudio_0_9_7="no"]) + AC_MSG_RESULT([$have_pulseaudio_0_9_7]) + if test x"$have_pulseaudio_0_9_7" = xyes; then + AC_DEFINE([HAVE_PULSEAUDIO_0_9_7], 1, [define this if you have pulseaudio >= 0.9.7]) + fi + fi + fi + AM_CONDITIONAL([ENABLE_PULSEAUDIO], [test x"$have_pulseaudio" = x"yes"]) + + + dnl SUN style audio interface + XINE_ARG_ENABLE([sunaudio], [Enable Sun audio support]) + if test x"$enable_sunaudio" != x"no"; then + AC_MSG_CHECKING([for Sun audio support]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> + #include <sys/audioio.h>]], + [[audio_info_t audio_info; AUDIO_INITINFO(&audio_info)]])], + [have_sunaudio=yes], [have_sunaudio=no]) + AC_MSG_RESULT([$have_sunaudio]) + if test x"$hard_enable_sunaudio" = x"yes" && test x"$have_sunaudio" != x"yes"; then + AC_MSG_ERROR([Sun audio support requested, but Sun audio not found]) + elif test x"$have_sunaudio" = x"yes"; then + dnl NetBSD doesn't have this, but check for it rather than + dnl assuming that it doesn't happen elsewhere. + AC_CHECK_MEMBERS([audio_info_t.output_muted]) + fi + fi + AM_CONDITIONAL([ENABLE_SUNAUDIO], [test x"$have_sunaudio" = x"yes"]) + + + dnl sndio support + XINE_ARG_ENABLE([sndio], [Enable sndio support]) + if test x"$enable_sndio" != "xno"; then + AC_CHECK_LIB([sndio], [sio_open], [SNDIO_LIBS=-lsndio; have_sndio=yes], + [have_sndio=no]) + if test "x$hard_enable_sndio" = "xyes" && test "x$have_sndio" = "xno"; then + AC_MSG_ERROR([sndio support requested, but sndio not found]) + fi + fi + AM_CONDITIONAL([ENABLE_SNDIO], [test "x$have_sndio" = "xyes"]) + AC_SUBST([SNDIO_CFLAGS]) + AC_SUBST([SNDIO_LIBS]) +])dnl XINE_AUDIO_OUT_PLUGINS |