From 16f6e9403314e73e985f63e5c28b347d06374d82 Mon Sep 17 00:00:00 2001 From: Alexander Traud Date: Tue, 6 Mar 2018 13:28:15 +0100 Subject: BuildSystem: Enable PortAudio in NetBSD. In NetBSD, PortAudio 1 is still the default version. PortAudio 2 can be installed side by side but gets placed in a 'portaudio2' subdirectory. To find PortAudio 2 even in a subdirectory, the tool pkg-config is queried via AST_PKG_CONFIG_CHECK. For those platforms, which do not list PowerAudio 2 via pkg-config, the previous check remains and is executed thereafter. ASTERISK-27721 Change-Id: I4175500126909ad1b181fff8e11bb4a3a6ae4fa9 --- configure | 96 ++++++++++++++++++++++++++++++++++++++++ configure.ac | 1 + include/asterisk/autoconfig.h.in | 2 +- 3 files changed, 98 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 18609ca20..fec2c6515 100755 --- a/configure +++ b/configure @@ -657,6 +657,8 @@ GMIME_LIBS GMIME_CFLAGS PBX_SSL_OP_NO_TLSV1_2 PBX_SSL_OP_NO_TLSV1_1 +PORTAUDIO_LIBS +PORTAUDIO_CFLAGS PYTHONDEV_LIBS PYTHONDEV_CFLAGS PYTHONDEV_INCLUDE @@ -1485,6 +1487,8 @@ PJPROJECT_CFLAGS PJPROJECT_LIBS PYTHONDEV_CFLAGS PYTHONDEV_LIBS +PORTAUDIO_CFLAGS +PORTAUDIO_LIBS GMIME_CFLAGS GMIME_LIBS GTK2_CFLAGS @@ -2244,6 +2248,10 @@ Some influential environment variables: C compiler flags for PYTHONDEV, overriding pkg-config PYTHONDEV_LIBS linker flags for PYTHONDEV, overriding pkg-config + PORTAUDIO_CFLAGS + C compiler flags for PORTAUDIO, overriding pkg-config + PORTAUDIO_LIBS + linker flags for PORTAUDIO, overriding pkg-config GMIME_CFLAGS C compiler flags for GMIME, overriding pkg-config GMIME_LIBS linker flags for GMIME, overriding pkg-config @@ -26345,6 +26353,94 @@ fi + if test "x${PBX_PORTAUDIO}" != "x1" -a "${USE_PORTAUDIO}" != "no"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PORTAUDIO" >&5 +$as_echo_n "checking for PORTAUDIO... " >&6; } + +if test -n "$PORTAUDIO_CFLAGS"; then + pkg_cv_PORTAUDIO_CFLAGS="$PORTAUDIO_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"portaudio-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "portaudio-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PORTAUDIO_CFLAGS=`$PKG_CONFIG --cflags "portaudio-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$PORTAUDIO_LIBS"; then + pkg_cv_PORTAUDIO_LIBS="$PORTAUDIO_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"portaudio-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "portaudio-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PORTAUDIO_LIBS=`$PKG_CONFIG --libs "portaudio-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + PORTAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "portaudio-2.0" 2>&1` + else + PORTAUDIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "portaudio-2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$PORTAUDIO_PKG_ERRORS" >&5 + + + PBX_PORTAUDIO=0 + + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + PBX_PORTAUDIO=0 + + +else + PORTAUDIO_CFLAGS=$pkg_cv_PORTAUDIO_CFLAGS + PORTAUDIO_LIBS=$pkg_cv_PORTAUDIO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + PBX_PORTAUDIO=1 + PORTAUDIO_INCLUDE="$PORTAUDIO_CFLAGS" + PORTAUDIO_LIB="$PORTAUDIO_LIBS" + +$as_echo "#define HAVE_PORTAUDIO 1" >>confdefs.h + + +fi + fi + + if test "x${PBX_PORTAUDIO}" != "x1" -a "${USE_PORTAUDIO}" != "no"; then pbxlibdir="" # if --with-PORTAUDIO=DIR has been specified, use it. diff --git a/configure.ac b/configure.ac index a59646cfd..c962c84d2 100644 --- a/configure.ac +++ b/configure.ac @@ -2294,6 +2294,7 @@ AST_PKG_CONFIG_CHECK([PYTHONDEV], [python]) AST_EXT_LIB_CHECK([POPT], [popt], [poptStrerror], [popt.h]) +AST_PKG_CONFIG_CHECK([PORTAUDIO], [portaudio-2.0]) AST_EXT_LIB_CHECK([PORTAUDIO], [portaudio], [Pa_GetDeviceCount], [portaudio.h]) AST_EXT_LIB_CHECK([PRI], [pri], [pri_connected_line_update], [libpri.h]) diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in index 06114616d..6d747ae5a 100644 --- a/include/asterisk/autoconfig.h.in +++ b/include/asterisk/autoconfig.h.in @@ -663,7 +663,7 @@ /* Define to 1 if you have the popt library. */ #undef HAVE_POPT -/* Define to 1 if you have the PortAudio library. */ +/* Define if your system has the PORTAUDIO libraries. */ #undef HAVE_PORTAUDIO /* Define to 1 if you have the `pow' function. */ -- cgit v1.2.3