Prepare library split
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index 44fbc13..f721cd9 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -2,76 +2,88 @@
 option(USE_SHARED_MBEDTLS_LIBRARY "Build mbed TLS shared library." OFF)
 option(LINK_WITH_PTHREAD "Explicitly link mbed TLS library to pthread." OFF)
 
+set(src_crypto
+    aes.c
+    aesni.c
+    arc4.c
+    asn1parse.c
+    asn1write.c
+    base64.c
+    bignum.c
+    blowfish.c
+    camellia.c
+    ccm.c
+    cipher.c
+    cipher_wrap.c
+    ctr_drbg.c
+    des.c
+    dhm.c
+    ecdh.c
+    ecdsa.c
+    ecp.c
+    ecp_curves.c
+    entropy.c
+    entropy_poll.c
+    error.c
+    gcm.c
+    havege.c
+    hmac_drbg.c
+    md.c
+    md2.c
+    md4.c
+    md5.c
+    md_wrap.c
+    memory_buffer_alloc.c
+    oid.c
+    padlock.c
+    pem.c
+    pk.c
+    pk_wrap.c
+    pkcs12.c
+    pkcs5.c
+    pkparse.c
+    pkwrite.c
+    platform.c
+    ripemd160.c
+    rsa.c
+    sha1.c
+    sha256.c
+    sha512.c
+    threading.c
+    version.c
+    version_features.c
+    xtea.c
+)
+
+set(src_x509
+    certs.c
+    pkcs11.c
+    x509.c
+    x509_create.c
+    x509_crl.c
+    x509_crt.c
+    x509_csr.c
+    x509write_crt.c
+    x509write_csr.c
+)
+
+set(src_tls
+    debug.c
+    net.c
+    ssl_cache.c
+    ssl_ciphersuites.c
+    ssl_cli.c
+    ssl_cookie.c
+    ssl_srv.c
+    ssl_ticket.c
+    ssl_tls.c
+    timing.c
+)
+
 set(src
-     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
-     ctr_drbg.c
-     debug.c
-     des.c
-     dhm.c
-     ecp.c
-     ecp_curves.c
-     ecdh.c
-     ecdsa.c
-     entropy.c
-     entropy_poll.c
-     error.c
-     gcm.c
-     havege.c
-     hmac_drbg.c
-     md.c
-     md_wrap.c
-     md2.c
-     md4.c
-     md5.c
-     memory_buffer_alloc.c
-     net.c
-     oid.c
-     padlock.c
-     pem.c
-     pkcs5.c
-     pkcs11.c
-     pkcs12.c
-     pk.c
-     pk_wrap.c
-     pkparse.c
-     pkwrite.c
-     platform.c
-     ripemd160.c
-     rsa.c
-     sha1.c
-     sha256.c
-     sha512.c
-     ssl_cache.c
-     ssl_cookie.c
-     ssl_ticket.c
-     ssl_ciphersuites.c
-     ssl_cli.c
-     ssl_srv.c
-     ssl_tls.c
-     threading.c
-     timing.c
-     version.c
-     version_features.c
-     x509.c
-     x509_crt.c
-     x509_crl.c
-     x509_csr.c
-     x509_create.c
-     x509write_crt.c
-     x509write_csr.c
-     xtea.c
+    ${src_crypto}
+    ${src_x509}
+    ${src_tls}
 )
 
 if(WIN32)
diff --git a/library/Makefile b/library/Makefile
index dc12049..976b1f0 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -42,34 +42,35 @@
 DLEXT=dll
 endif
 
-OBJS=	aes.o		aesni.o		arc4.o			\
-		asn1parse.o								\
-		asn1write.o base64.o	bignum.o		\
-		blowfish.o	camellia.o	ccm.o			\
-		certs.o		cipher.o	cipher_wrap.o	\
-		ctr_drbg.o	debug.o		des.o			\
-		dhm.o		ecdh.o		ecdsa.o			\
-		ecp.o		ecp_curves.o				\
-		entropy.o	entropy_poll.o				\
-		error.o		gcm.o		havege.o		\
-		hmac_drbg.o								\
-		md.o		md_wrap.o	md2.o			\
-		md4.o		md5.o						\
-		memory_buffer_alloc.o	net.o			\
-		oid.o		padlock.o	pem.o			\
-		pkcs5.o		pkcs11.o	pkcs12.o		\
-		pk.o		pk_wrap.o	pkparse.o		\
-		pkwrite.o	platform.o	ripemd160.o		\
-		rsa.o		sha1.o		sha256.o		\
-		sha512.o	ssl_cache.o	ssl_cli.o		\
-		ssl_cookie.o			ssl_ticket.o	\
-		ssl_srv.o   ssl_ciphersuites.o			\
-		ssl_tls.o	threading.o	timing.o		\
-		version.o	version_features.o			\
-		x509.o		x509_create.o				\
-		x509_crl.o	x509_crt.o	x509_csr.o		\
-		x509write_crt.o			x509write_csr.o	\
-		xtea.o
+OBJS_CRYPTO=	aes.o		aesni.o		arc4.o		\
+		asn1parse.o	asn1write.o	base64.o	\
+		bignum.o	blowfish.o	camellia.o	\
+		ccm.o		cipher.o	cipher_wrap.o	\
+		ctr_drbg.o	des.o		dhm.o		\
+		ecdh.o		ecdsa.o		ecp.o		\
+		ecp_curves.o	entropy.o	entropy_poll.o	\
+		error.o		gcm.o		havege.o	\
+		hmac_drbg.o	md.o		md2.o		\
+		md4.o		md5.o		md_wrap.o	\
+		memory_buffer_alloc.o		oid.o		\
+		padlock.o	pem.o		pk.o		\
+		pk_wrap.o	pkcs12.o	pkcs5.o		\
+		pkparse.o	pkwrite.o	platform.o	\
+		ripemd160.o	rsa.o		sha1.o		\
+		sha256.o	sha512.o	threading.o	\
+		timing.o	version.o			\
+		version_features.o		xtea.o
+
+OBJS_X509=	certs.o		pkcs11.o	x509.o		\
+		x509_create.o	x509_crl.o	x509_crt.o	\
+		x509_csr.o	x509write_crt.o	x509write_csr.o
+
+OBJS_TLS=	debug.o		net.o		ssl_cache.o	\
+		ssl_ciphersuites.o		ssl_cli.o	\
+		ssl_cookie.o	ssl_srv.o	ssl_ticket.o	\
+		ssl_tls.o
+
+OBJS=$(OBJS_CRYPTO) $(OBJS_X509) $(OBJS_TLS)
 
 .SILENT: