Merge pull request #97 from Patater/tls-generated-sources

Use generated source files from Mbed TLS
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index 9039216..072e74a 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -29,7 +29,6 @@
     ecp_curves.c
     entropy.c
     entropy_poll.c
-    error.c
     gcm.c
     havege.c
     hkdf.c
@@ -65,11 +64,27 @@
     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 6ed5e68..3058a31 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -73,7 +73,7 @@
 		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 @@
 		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 @@
 
 .c.o:
 	echo "  CC    $<"
-	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<
+	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $< -o $@
 
 clean:
 ifndef WINDOWS