[pulseaudio-discuss] [PATCHv2 19/60] build: Make the build of bluetooth modules BlueZ 4 specific

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Fri Aug 16 00:59:06 PDT 2013


On Tue, 2013-08-13 at 01:53 -0300, jprvita at gmail.com wrote:
> From: João Paulo Rechi Vita <jprvita at openbossa.org>
> 
> ---
>  configure.ac    | 28 ++++++++++++++++------------
>  src/Makefile.am | 23 ++++++++++++++---------
>  2 files changed, 30 insertions(+), 21 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 616a990..1c023dd 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -981,21 +981,25 @@ AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
>  
>  #### BlueZ support (optional, dependent on D-Bus) ####
>  
> -AC_ARG_ENABLE([bluez],
> -    AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
> +AC_ARG_ENABLE([bluez4],
> +    AS_HELP_STRING([--disable-bluez4],[Disable optional BlueZ 4 support]))
>  
> -AS_IF([test "x$enable_bluez" != "xno"],
> -    [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.99 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
> -    HAVE_BLUEZ=0)
> -AS_IF([test "x$enable_bluez" != "xno"],
> +AS_IF([test "x$enable_bluez4" != "xno"],
> +    [PKG_CHECK_MODULES(BLUEZ_4, [ bluez >= 4.99 bluez < 5.0 ], HAVE_BLUEZ_4=1, HAVE_BLUEZ_4=0)],
> +    HAVE_BLUEZ_4=0)

This disables bluez4 support if bluez5 version of the .pc file is
installed. I thought earlier that bluez5 wouldn't install the file at
all, but I learned today that it does install it if bluez is built with
--enable-library. Let's not have the PKG_CHECK_MODULES check at all,
since we aren't using libbluetooth. Support for both versions shall be
built by default, regardless of the installed .pc file version.

> +AS_IF([test "x$enable_bluez4" != "xno"],
>      [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
>      HAVE_SBC=0)
> -AS_IF([test "x$HAVE_SBC" != "x1"], HAVE_BLUEZ=0)
> -AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_BLUEZ=0)
> +AS_IF([test "x$HAVE_SBC" != "x1"], HAVE_BLUEZ_4=0)
> +AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_BLUEZ_4=0)
>  
> -AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
> -    [AC_MSG_ERROR([*** BLUEZ support not found (requires BlueZ, sbc, and D-Bus)])])
> +AS_IF([test "x$enable_bluez4" = "xyes" && test "x$HAVE_BLUEZ_4" = "x0"],
> +    [AC_MSG_ERROR([*** BLUEZ 4 support not found (requires bluez >= 4.99 and < 5.0, sbc, and D-Bus)])])
>  
> +AC_SUBST(HAVE_BLUEZ_4)
> +AM_CONDITIONAL([HAVE_BLUEZ_4], [test "x$HAVE_BLUEZ_4" = x1])
> +
> +AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], HAVE_BLUEZ=1)
>  AC_SUBST(HAVE_BLUEZ)
>  AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
>  
> @@ -1389,7 +1393,7 @@ AS_IF([test "x$HAVE_XEN" = "x1"], ENABLE_XEN=yes, ENABLE_XEN=no)
>  AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
>  AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
>  AS_IF([test "x$HAVE_SYSTEMD" = "x1"], ENABLE_SYSTEMD=yes, ENABLE_SYSTEMD=no)
> -AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
> +AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
>  AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
>  AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
>  AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
> @@ -1440,7 +1444,7 @@ echo "
>      Enable LIRC:                   ${ENABLE_LIRC}
>      Enable Xen PV driver:          ${ENABLE_XEN}
>      Enable D-Bus:                  ${ENABLE_DBUS}
> -      Enable BlueZ:                ${ENABLE_BLUEZ}
> +      Enable BlueZ 4:              ${ENABLE_BLUEZ_4}
>      Enable udev:                   ${ENABLE_UDEV}
>        Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
>      Enable systemd login:          ${ENABLE_SYSTEMD}
> diff --git a/src/Makefile.am b/src/Makefile.am
> index ff37877..0e94725 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -1320,8 +1320,12 @@ endif
>  
>  if HAVE_BLUEZ
>  modlibexec_LTLIBRARIES += \
> +		module-bluetooth-policy.la
> +endif
> +
> +if HAVE_BLUEZ_4
> +modlibexec_LTLIBRARIES += \
>  		module-bluetooth-proximity.la \
> -		module-bluetooth-policy.la \
>  		libbluez4-util.la \
>  		module-bluez4-discover.la \
>  		module-bluez4-device.la
> @@ -2012,10 +2016,16 @@ module_bluetooth_proximity_la_LIBADD = $(MODULE_LIBADD) $(DBUS_LIBS)
>  module_bluetooth_proximity_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) -DPA_BT_PROXIMITY_HELPER=\"$(pulselibexecdir)/proximity-helper\"
>  
>  proximity_helper_SOURCES = modules/bluetooth/proximity-helper.c
> -proximity_helper_LDADD = $(AM_LDADD) $(BLUEZ_LIBS)
> -proximity_helper_CFLAGS = $(AM_CFLAGS) $(BLUEZ_CFLAGS)
> +proximity_helper_LDADD = $(AM_LDADD) $(BLUEZ_4_LIBS)
> +proximity_helper_CFLAGS = $(AM_CFLAGS) $(BLUEZ_4_CFLAGS)

Uh, so we do use libbluetooth after all.

I did some investigation, and it seems that module-bluetooth-proximity
uses BlueZ 3 APIs, meaning that it hasn't worked for a while. Nobody has
complained, so nobody is using the module. Let's remove the proximity
code.

-- 
Tanu



More information about the pulseaudio-discuss mailing list