Import("env") env.Append( CPPPATH=[ # "#/lib/mbedtls", "#/lib/mbedtls/include", ], SDK_HEADERS=[ File("mbedtls/include/mbedtls/des.h"), File("mbedtls/include/mbedtls/sha1.h"), File("mbedtls/include/mbedtls/sha256.h"), File("mbedtls/include/mbedtls/md5.h"), File("mbedtls/include/mbedtls/md.h"), File("mbedtls/include/mbedtls/ecdsa.h"), File("mbedtls/include/mbedtls/ecdh.h"), File("mbedtls/include/mbedtls/ecp.h"), # File("mbedtls/include/mbedtls/sha1.h"), ], CPPDEFINES=[("MBEDTLS_CONFIG_FILE", '\\"mbedtls_cfg.h\\"')], ) libenv = env.Clone(FW_LIB_NAME="mbedtls") libenv.ApplyLibFlags() libenv.AppendUnique( CCFLAGS=[ # Required for lib to be linkable with .faps "-mword-relocations", "-mlong-calls", # Crappy code :) "-Wno-redundant-decls", ], ) # If we were to build full mbedtls, we would need to use this: # sources = libenv.GlobRecursive("*.c*", "mbedtls/library") # Otherwise, we can just use the files we need: sources = [ File("mbedtls/library/bignum.c"), File("mbedtls/library/bignum_core.c"), File("mbedtls/library/ecdsa.c"), File("mbedtls/library/ecp.c"), File("mbedtls/library/ecp_curves.c"), File("mbedtls/library/md.c"), File("mbedtls/library/md5.c"), File("mbedtls/library/platform_util.c"), File("mbedtls/library/ripemd160.c"), File("mbedtls/library/sha1.c"), File("mbedtls/library/sha256.c"), File("mbedtls/library/des.c"), ] Depends(sources, File("mbedtls_cfg.h")) lib = libenv.StaticLibrary("${FW_LIB_NAME}", sources) libenv.Install("${LIB_DIST_DIR}", lib) Return("lib")