bctoolbox: fix mbedtls/polarssl dependency
authorJörg Krause <joerg.krause@embedded.rocks>
Tue, 14 Feb 2017 22:44:01 +0000 (23:44 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 20 Feb 2017 21:19:18 +0000 (22:19 +0100)
Currently we force selection on mbedtls for bctoolbox. If, for whatever
reason, mbedTLS is not found, bctoolbox searches for PolarSSL and, if
not present, fails with:

```
  Could NOT find PolarSSL (missing: POLARSSL_INCLUDE_DIRS
  HAVE_POLARSSL_SSL_H)
```

This happens because bctoolbox enables support for mbedTLS and PolarSSL
by default, whereas, if both are enabled, mbedTLS is preferred over
PolarSSL.

However, crypto support is not mandatory and support for both libraries
can be turned off. Therefore, optionally depend on mbedTLS or PolarSSL
and enable/disable the library support explicitly.

This fixes the issue of searching for PolarSSL altough the dependency is
not declared in the bctoolbox package.

Note, that this does not fix the issue why mbedtls is not found although
it is enabled. This issue is address in this thread [1].

Fixes:
http://autobuild.buildroot.net/results/cfe/cfeb2f542598e5d450b332fb51a6d79bae24158c/
.. and more.

[1] http://lists.busybox.net/pipermail/buildroot/2017-February/183055.html

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/bctoolbox/Config.in
package/bctoolbox/bctoolbox.mk

index 834f6e2a6a919b6dbf865aaafa8544533145e462..e9e69205f8c9d435f537aed1535f8bdb07eabb5c 100644 (file)
@@ -2,11 +2,13 @@ config BR2_PACKAGE_BCTOOLBOX
        bool "bctoolbox"
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_HAS_THREADS
-       select BR2_PACKAGE_MBEDTLS # mbedtls is preferred over polarssl
        help
          Utilities library used by Belledonne Communications
          softwares like belle-sip, mediastreamer2 and linphone.
 
+         Select BR2_PACKAGE_MBEDTLS (preferred) or
+         BR2_PACKAGE_POLARSSL for crypto support.
+
          https://github.com/BelledonneCommunications/bctoolbox
 
 comment "bctoolbox needs a toolchain w/ C++, threads"
index 64c67792a74f399b63bdb666c8b9282586b2dcc9..5eea0575fca1d32edf45e86e090ccebc316caf26 100644 (file)
@@ -17,6 +17,22 @@ BCTOOLBOX_CONF_OPTS = \
        -DENABLE_TESTS=OFF \
        -DGIT_EXECUTABLE=OFF
 
+# bctoolbox can be build with mbedTLS or PolarSSL support. If both
+# libraries are present, mbedTLS is preferred over PolarSSL.
+ifeq ($(BR2_PACKAGE_MBEDTLS),y)
+BCTOOLBOX_DEPENDENCIES += mbedtls
+BCTOOLBOX_CONF_OPTS += -DENABLE_MBEDTLS=ON
+else
+BCTOOLBOX_CONF_OPTS += -DENABLE_MBEDTLS=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_POLARSSL),y)
+BCTOOLBOX_DEPENDENCIES += polarssl
+BCTOOLBOX_CONF_OPTS += -DENABLE_POLARSSL=ON
+else
+BCTOOLBOX_CONF_OPTS += -DENABLE_POLARSSL=OFF
+endif
+
 ifeq ($(BR2_STATIC_LIBS),y)
 BCTOOLBOX_CONF_OPTS += -DENABLE_SHARED=OFF -DENABLE_STATIC=ON
 else ifeq ($(BR2_SHARED_STATIC_LIBS),y)