| @@ -147,114 +147,126 @@ AC_CONFIG_LINKS( [doc/images/ccrma.gif:doc/images/ccrma.gif] ) | |||
| # Checks for package options and external software | |||
| AC_CANONICAL_HOST | |||
| AC_MSG_CHECKING([for audio API]) | |||
| # Aggregate options into a single string. | |||
| AS_IF([test "x$with_jack" = "xyes"], [systems="$systems jack"]) | |||
| AS_IF([test "x$with_alsa" = "xyes"], [systems="$systems alsa"]) | |||
| AS_IF([test "x$with_pulse" = "xyes"], [systems="$systems pulse"]) | |||
| AS_IF([test "x$with_oss" = "xyes"], [systems="$systems oss"]) | |||
| AS_IF([test "x$with_core" = "xyes"], [systems="$systems core"]) | |||
| AS_IF([test "x$with_asio" = "xyes"], [systems="$systems asio"]) | |||
| AS_IF([test "x$with_ds" = "xyes"], [systems="$systems ds"]) | |||
| AS_IF([test "x$with_wasapi" = "xyes"], [systems="$systems wasapi"]) | |||
| required=" $systems " | |||
| # If none, assign defaults if any are known for this OS. | |||
| # User must specified with-* options for any unknown OS. | |||
| AS_IF([test "x$systems" = "x"], | |||
| AS_CASE([$host], | |||
| [*-*-netbsd*], [systems="oss"], | |||
| [*-*-freebsd*], [systems="oss"], | |||
| [*-*-linux*], [systems="alsa pulse jack oss"], | |||
| [*-apple*], [systems="core jack"], | |||
| [*-mingw32*], [systems="asio ds wasapi jack"] | |||
| )) | |||
| AS_IF([test "x$with_jack" = "xyes"], [ | |||
| AC_MSG_RESULT([using JACK]) | |||
| AC_CHECK_LIB(jack, jack_client_open, , AC_MSG_ERROR([JACK support requires the jack library!])) | |||
| api="$api -D__UNIX_JACK__" | |||
| req="$req jack" | |||
| # For each audio system, check if it is selected and found. | |||
| # Note: Order specified above is not necessarily respected. However, | |||
| # *actual* priority is set at run-time, see RtAudio::openRtApi. | |||
| # One AS_CASE per system, since they are not mutually-exclusive. | |||
| systems=" $systems " | |||
| AS_CASE(["$systems"], [*" alsa "*], [ | |||
| AC_CHECK_LIB(asound, snd_pcm_open, | |||
| [api="$api -D__LINUX_ALSA__" | |||
| req="$req alsa" | |||
| need_pthread=yes | |||
| found="$found ALSA" | |||
| LIBS="-lasound $LIBS"], | |||
| AS_CASE(["$required"], [*" alsa "*], | |||
| AC_MSG_ERROR([ALSA support requires the asound library!]))) | |||
| ]) | |||
| AS_CASE(["$systems"], [*" pulse "*], [ | |||
| AC_CHECK_LIB(pulse-simple, pa_simple_flush, | |||
| [api="$api -D__LINUX_PULSE__" | |||
| req="$req libpulse-simple" | |||
| need_pthread=yes | |||
| found="$found PulseAudio" | |||
| LIBS="-lpulse-simple $LIBS"], | |||
| AS_CASE(["$required"], [*" pulse "*], | |||
| AC_MSG_ERROR([PulseAudio support requires the pulse-simple library!]))) | |||
| ]) | |||
| AS_CASE([$host], | |||
| [*-*-netbsd*], | |||
| AS_IF([test "x$api" = "x"], [ | |||
| AC_MSG_RESULT([using OSS]) | |||
| api="$api -D__LINUX_OSS__" | |||
| AC_CHECK_LIB(ossaudio, main, , AC_MSG_ERROR([RtAudio requires the ossaudio library])) | |||
| AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([RtAudio requires the pthread library!])) | |||
| ]), | |||
| [*-*-freebsd*], | |||
| AS_IF([test "x$api" = "x"], [ | |||
| AC_MSG_RESULT([using OSS]) | |||
| api="$api -D__LINUX_OSS__" | |||
| AC_CHECK_LIB(ossaudio, main, , AC_MSG_ERROR([RtAudio requires the ossaudio library])) | |||
| AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([RtAudio requires the pthread library!])) | |||
| ]), | |||
| [*-*-linux*], [ | |||
| # Look for ALSA flag | |||
| AS_IF([test "x$with_alsa" = "xyes"], [ | |||
| AC_MSG_RESULT([using ALSA]) | |||
| api="$api -D__LINUX_ALSA__" | |||
| req="$req alsa" | |||
| AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR([ALSA support requires the asound library!])) | |||
| ]) | |||
| # Look for PULSE flag | |||
| AS_IF([test "x$with_pulse" = "xyes"], [ | |||
| AC_MSG_RESULT([using PulseAudio]) | |||
| api="$api -D__LINUX_PULSE__" | |||
| req="$req libpulse-simple" | |||
| AC_CHECK_LIB(pulse-simple, pa_simple_flush, , AC_MSG_ERROR([PulseAudio support requires the pulse-simple library!])) | |||
| ]) | |||
| AS_CASE(["$systems"], [*" oss "*], [ | |||
| AC_CHECK_LIB(ossaudio, main, | |||
| [api="$api -D__LINUX_OSS__" | |||
| need_pthread=yes | |||
| found="$found OSS" | |||
| LIBS="-lossaudio $LIBS"], | |||
| AS_CASE(["$required"], [*" oss "*], | |||
| AC_MSG_ERROR([RtAudio requires the ossaudio library]))) | |||
| ]) | |||
| # Look for OSS flag | |||
| AS_IF([test "x$with_oss" = "xyes"], [ | |||
| AC_MSG_RESULT([using OSS]) | |||
| api="$api -D__LINUX_OSS__" | |||
| ]) | |||
| AS_CASE(["$systems"], [*" jack "*], [ | |||
| AC_CHECK_LIB(jack, jack_client_open, | |||
| [api="$api -D__UNIX_JACK__" | |||
| req="$req jack" | |||
| need_pthread=yes | |||
| found="$found JACK" | |||
| LIBS="-ljack $LIBS"], | |||
| AS_CASE(["$required"], [*" jack "*], | |||
| AC_MSG_ERROR([JACK support requires the jack library!]))) | |||
| ]) | |||
| # If no audio api flags specified, use ALSA | |||
| AS_IF([test "x$api" = "x" ], [ | |||
| AC_MSG_RESULT([using ALSA]) | |||
| api="${api} -D__LINUX_ALSA__" | |||
| req="${req} alsa" | |||
| AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR([ALSA support requires the asound library!])) | |||
| ]) | |||
| AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([RtAudio requires the pthread library!])) | |||
| ], | |||
| [*-apple*],[ | |||
| # Look for Core flag | |||
| AS_IF([test "x$with_core" = "xyes"], [ | |||
| AC_MSG_RESULT([using CoreAudio]) | |||
| api="$api -D__MACOSX_CORE__" | |||
| AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [], [AC_MSG_ERROR([CoreAudio header files not found!])] ) | |||
| LIBS="$LIBS -framework CoreAudio -framework CoreFoundation" | |||
| ]) | |||
| # If no audio api flags specified, use CoreAudio | |||
| AS_IF([test "x$api" = "x" ], [ | |||
| AC_MSG_RESULT([using CoreAudio]) | |||
| api="${api} -D__MACOSX_CORE__" | |||
| AC_CHECK_HEADER(CoreAudio/CoreAudio.h, | |||
| [], | |||
| [AC_MSG_ERROR([CoreAudio header files not found!])] ) | |||
| LIBS="LIBS -framework CoreAudio -framework CoreFoundation" | |||
| ]) | |||
| AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([RtAudio requires the pthread library!])) | |||
| ], | |||
| [*-mingw32*],[ | |||
| AS_IF([test "x$with_asio" = "xyes" ], [ | |||
| AC_MSG_RESULT([using ASIO]) | |||
| api="$api -D__WINDOWS_ASIO__" | |||
| use_asio=yes | |||
| CPPFLAGS="-I$srcdir/include $CPPFLAGS" | |||
| ]) | |||
| # Look for DirectSound flag | |||
| AS_IF([test "x$with_ds" = "xyes" ], [ | |||
| AC_MSG_RESULT([using DirectSound]) | |||
| api="$api -D__WINDOWS_DS__" | |||
| LIBS="-ldsound -lwinmm $LIBS" | |||
| ]) | |||
| # Look for WASAPI flag | |||
| AS_IF([test "x$with_wasapi" = "xyes"], [ | |||
| AC_MSG_RESULT([using WASAPI]) | |||
| api="$api -D__WINDOWS_WASAPI__" | |||
| LIBS="-lwinmm -luuid -lksuser $LIBS" | |||
| CPPFLAGS="-I$srcdir/include $CPPFLAGS" | |||
| ]) | |||
| # If no audio api flags specified, use DS | |||
| AS_IF([test "x$api" = "x" ], [ | |||
| AC_MSG_RESULT([using DirectSound]) | |||
| api="$api -D__WINDOWS_DS__" | |||
| LIBS="-ldsound -lwinmm $LIBS" | |||
| ]) | |||
| LIBS="-lole32 $LIBS" | |||
| ],[ | |||
| AS_CASE(["$systems"], [*" core "*], [ | |||
| AC_CHECK_HEADER(CoreAudio/CoreAudio.h, | |||
| [api="$api -D__MACOSX_CORE__" | |||
| need_pthread=yes | |||
| found="$found CoreAudio", | |||
| LIBS="$LIBS -framework CoreAudio -framework CoreFoundation"], | |||
| AS_CASE(["$required"], [*" core "*], | |||
| AC_MSG_ERROR([CoreAudio header files not found!]))) | |||
| ]) | |||
| AS_CASE(["$systems"], [*" asio "*], [ | |||
| api="$api -D__WINDOWS_ASIO__" | |||
| use_asio=yes | |||
| CPPFLAGS="-I$srcdir/include $CPPFLAGS" | |||
| need_ole32=yes | |||
| found="$found ASIO" | |||
| ]) | |||
| AS_CASE(["$systems"], [*" ds "*], [ | |||
| api="$api -D__WINDOWS_DS__" | |||
| need_ole32=yes | |||
| found="$found DirectSound" | |||
| LIBS="-ldsound -lwinmm $LIBS" | |||
| ]) | |||
| AS_CASE(["$systems"], [*" wasapi "*], [ | |||
| api="$api -D__WINDOWS_WASAPI__" | |||
| CPPFLAGS="-I$srcdir/include $CPPFLAGS" | |||
| need_ole32=yes | |||
| found="$found WASAPI" | |||
| LIBS="-lwinmm -luuid -lksuser $LIBS" | |||
| ]) | |||
| AS_IF([test -n "$need_ole32"], [LIBS="-lole32 $LIBS"]) | |||
| AS_IF([test -n "$need_pthread"],[ | |||
| AC_MSG_CHECKING([for pthread]) | |||
| AC_CHECK_LIB(pthread, pthread_create, , | |||
| AC_MSG_ERROR([RtAudio requires the pthread library!]))]) | |||
| AC_MSG_CHECKING([for audio API]) | |||
| # Error case: no known realtime systems found. | |||
| AS_IF([test x"$api" = "x"], [ | |||
| AC_MSG_RESULT([none]) | |||
| # Default case for unknown realtime systems. | |||
| AC_MSG_ERROR([Unknown system type for realtime support!]) | |||
| ] | |||
| ) | |||
| ], [ | |||
| AC_MSG_RESULT([$found]) | |||
| ]) | |||
| AM_CONDITIONAL( ASIO, [test "x${use_asio}" = "xyes" ]) | |||