summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2018-02-10 14:06:38 +0100
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2018-02-14 01:34:25 +0100
commitbd3c27ba7862d50b1bf54733e9f890f7084a9ea5 (patch)
tree0ccca56f5fbc3fde1bc00ee72e272b842329c62f
parent9e2b1b3b009f26fc24bbf02b4b66218f00133907 (diff)
Allow building with system wide mbedtls on X11
Using builtin_mbedtls=yes is still the default as many distributions do not ship with mbedtls included.
-rw-r--r--SConstruct1
-rwxr-xr-xmodules/mbedtls/SCsub160
-rw-r--r--modules/websocket/SCsub5
-rw-r--r--platform/x11/detect.py4
4 files changed, 88 insertions, 82 deletions
diff --git a/SConstruct b/SConstruct
index d99f85a12e..ce86dd8830 100644
--- a/SConstruct
+++ b/SConstruct
@@ -181,6 +181,7 @@ opts.Add(BoolVariable('builtin_libtheora', "Use the builtin libtheora library",
opts.Add(BoolVariable('builtin_libvorbis', "Use the builtin libvorbis library", True))
opts.Add(BoolVariable('builtin_libvpx', "Use the builtin libvpx library", True))
opts.Add(BoolVariable('builtin_libwebp', "Use the builtin libwebp library", True))
+opts.Add(BoolVariable('builtin_mbedtls', "Use the builtin mbedTLS library", True))
opts.Add(BoolVariable('builtin_opus', "Use the builtin opus library", True))
opts.Add(BoolVariable('builtin_pcre2', "Use the builtin pcre2 library)", True))
opts.Add(BoolVariable('builtin_recast', "Use the builtin recast library", True))
diff --git a/modules/mbedtls/SCsub b/modules/mbedtls/SCsub
index 40c222b9c8..b846ae38ad 100755
--- a/modules/mbedtls/SCsub
+++ b/modules/mbedtls/SCsub
@@ -5,87 +5,87 @@ Import('env_modules')
env_mbed_tls = env_modules.Clone()
-# Thirdparty source files
-thirdparty_dir = "#thirdparty/mbedtls/library/"
+if env['builtin_mbedtls']:
+ # Thirdparty source files
+ thirdparty_sources = [
+ "aes.c",
+ "aesni.c",
+ "arc4.c",
+ "asn1parse.c",
+ "asn1write.c",
+ "base64.c",
+ "bignum.c",
+ "blowfish.c",
+ "camellia.c",
+ "ccm.c",
+ "certs.c",
+ "cipher.c",
+ "cipher_wrap.c",
+ "cmac.c",
+ "ctr_drbg.c",
+ "debug.c",
+ "des.c",
+ "dhm.c",
+ "ecdh.c",
+ "ecdsa.c",
+ "ecjpake.c",
+ "ecp.c",
+ "ecp_curves.c",
+ "entropy.c",
+ "entropy_poll.c",
+ "error.c",
+ "gcm.c",
+ "havege.c",
+ "hmac_drbg.c",
+ "md2.c",
+ "md4.c",
+ "md5.c",
+ "md.c",
+ "md_wrap.c",
+ "memory_buffer_alloc.c",
+ "net_sockets.c",
+ "oid.c",
+ "padlock.c",
+ "pem.c",
+ "pk.c",
+ "pkcs11.c",
+ "pkcs12.c",
+ "pkcs5.c",
+ "pkparse.c",
+ "pk_wrap.c",
+ "pkwrite.c",
+ "platform.c",
+ "ripemd160.c",
+ "rsa.c",
+ "rsa_internal.c",
+ "sha1.c",
+ "sha256.c",
+ "sha512.c",
+ "ssl_cache.c",
+ "ssl_ciphersuites.c",
+ "ssl_cli.c",
+ "ssl_cookie.c",
+ "ssl_srv.c",
+ "ssl_ticket.c",
+ "ssl_tls.c",
+ "threading.c",
+ "timing.c",
+ "version.c",
+ "version_features.c",
+ "x509.c",
+ "x509_create.c",
+ "x509_crl.c",
+ "x509_crt.c",
+ "x509_csr.c",
+ "x509write_crt.c",
+ "x509write_csr.c",
+ "xtea.c"
+ ]
-thirdparty_sources = [
- "aes.c",
- "aesni.c",
- "arc4.c",
- "asn1parse.c",
- "asn1write.c",
- "base64.c",
- "bignum.c",
- "blowfish.c",
- "camellia.c",
- "ccm.c",
- "certs.c",
- "cipher.c",
- "cipher_wrap.c",
- "cmac.c",
- "ctr_drbg.c",
- "debug.c",
- "des.c",
- "dhm.c",
- "ecdh.c",
- "ecdsa.c",
- "ecjpake.c",
- "ecp.c",
- "ecp_curves.c",
- "entropy.c",
- "entropy_poll.c",
- "error.c",
- "gcm.c",
- "havege.c",
- "hmac_drbg.c",
- "md2.c",
- "md4.c",
- "md5.c",
- "md.c",
- "md_wrap.c",
- "memory_buffer_alloc.c",
- "net_sockets.c",
- "oid.c",
- "padlock.c",
- "pem.c",
- "pk.c",
- "pkcs11.c",
- "pkcs12.c",
- "pkcs5.c",
- "pkparse.c",
- "pk_wrap.c",
- "pkwrite.c",
- "platform.c",
- "ripemd160.c",
- "rsa.c",
- "rsa_internal.c",
- "sha1.c",
- "sha256.c",
- "sha512.c",
- "ssl_cache.c",
- "ssl_ciphersuites.c",
- "ssl_cli.c",
- "ssl_cookie.c",
- "ssl_srv.c",
- "ssl_ticket.c",
- "ssl_tls.c",
- "threading.c",
- "timing.c",
- "version.c",
- "version_features.c",
- "x509.c",
- "x509_create.c",
- "x509_crl.c",
- "x509_crt.c",
- "x509_csr.c",
- "x509write_crt.c",
- "x509write_csr.c",
- "xtea.c"
-]
-
-thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
-env_mbed_tls.add_source_files(env.modules_sources, thirdparty_sources)
-env_mbed_tls.Append(CPPPATH=["#thirdparty/mbedtls/include/"])
+ thirdparty_dir = "#thirdparty/mbedtls/library/"
+ thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
+ env_mbed_tls.add_source_files(env.modules_sources, thirdparty_sources)
+ env_mbed_tls.Append(CPPPATH=["#thirdparty/mbedtls/include/"])
# Module sources
env_mbed_tls.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/websocket/SCsub b/modules/websocket/SCsub
index 5138fc1335..3b0f920bbf 100644
--- a/modules/websocket/SCsub
+++ b/modules/websocket/SCsub
@@ -71,8 +71,9 @@ else:
wrapper_includes = ["#thirdparty/lws/mbedtls_wrapper/include/" + inc for inc in ["internal", "openssl", "platform", ""]]
env_lws.Append(CPPPATH=wrapper_includes)
- mbedtls_includes = "#thirdparty/mbedtls/include"
- env_lws.Append(CPPPATH=[mbedtls_includes])
+ if env['builtin_mbedtls']:
+ mbedtls_includes = "#thirdparty/mbedtls/include"
+ env_lws.Append(CPPPATH=[mbedtls_includes])
if env_lws["platform"] == "windows":
env_lws.Append(CPPPATH=[thirdparty_dir + helper_dir])
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 72265c84ad..c5ef82150b 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -152,6 +152,10 @@ def configure(env):
# FIXME: Check for existence of the libs before parsing their flags with pkg-config
+ if not env['builtin_mbedtls']:
+ # mbedTLS does not provide a pkgconfig config yet. See https://github.com/ARMmbed/mbedtls/issues/228
+ env.Append(LIBS=['mbedtls', 'mbedcrypto', 'mbedx509'])
+
if not env['builtin_libwebp']:
env.ParseConfig('pkg-config libwebp --cflags --libs')