diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 903921677d..072e74aff9 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -29,7 +29,6 @@ set(src_crypto ecp_curves.c entropy.c entropy_poll.c - error.c gcm.c havege.c hkdf.c @@ -65,11 +64,27 @@ set(src_crypto sha512.c threading.c timing.c - version.c - version_features.c xtea.c ) +# For files generated by the parent project (Mbed TLS) when building Mbed +# Crypto as a submodule, ensure that the parent project instance is used. +if(USE_CRYPTO_SUBMODULE) +set(src_crypto + ${src_crypto} + ${CMAKE_SOURCE_DIR}/library/version.c + ${CMAKE_SOURCE_DIR}/library/version_features.c + ${CMAKE_SOURCE_DIR}/library/error.c +) +else() +set(src_crypto + ${src_crypto} + version.c + version_features.c + error.c +) +endif() + set(src_x509 certs.c pkcs11.c diff --git a/library/Makefile b/library/Makefile index 6ed5e68613..3058a31c96 100644 --- a/library/Makefile +++ b/library/Makefile @@ -73,7 +73,7 @@ OBJS_CRYPTO= aes.o aesni.o arc4.o \ dhm.o ecdh.o ecdsa.o \ ecjpake.o ecp.o \ ecp_curves.o entropy.o entropy_poll.o \ - error.o gcm.o havege.o \ + gcm.o havege.o \ hkdf.o \ hmac_drbg.o md.o md2.o \ md4.o md5.o md_wrap.o \ @@ -88,8 +88,22 @@ OBJS_CRYPTO= aes.o aesni.o arc4.o \ psa_its_file.o \ ripemd160.o rsa_internal.o rsa.o \ sha1.o sha256.o sha512.o \ - threading.o timing.o version.o \ - version_features.o xtea.o + threading.o timing.o \ + xtea.o + +# For files generated by the parent project (Mbed TLS) when building Mbed +# Crypto as a submodule, ensure that the parent project instance is used. +ifeq ($(USE_CRYPTO_SUBMODULE), 1) +OBJS_CRYPTO += ../../library/error.o +OBJS_CRYPTO += ../../library/version.o +OBJS_CRYPTO += ../../library/version_features.o +else +OBJS_CRYPTO += error.o +OBJS_CRYPTO += version.o +OBJS_CRYPTO += version_features.o +endif + +$(info $(OBJS_CRYPTO)) OBJS_X509= certs.o pkcs11.o x509.o \ x509_create.o x509_crl.o x509_crt.o \ @@ -198,7 +212,7 @@ libmbedcrypto.dll: $(OBJS_CRYPTO) .c.o: echo " CC $<" - $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $< + $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $< -o $@ clean: ifndef WINDOWS