2 # Also see "include/mbedtls/config.h"
5 WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement
8 LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
15 # MicroBlaze specific options:
16 # CFLAGS += -mno-xl-soft-mul -mxl-barrel-shift
18 # To compile on Plan9:
19 # CFLAGS += -D_BSD_EXTENSION
21 # if were running on Windows build for Windows
26 # To compile as a shared library:
28 # all code is position-indep with mingw, avoid warning about useless flag
30 LOCAL_CFLAGS += -fPIC -fpic
39 # OSX shared library extension:
42 # Windows shared library extension:
47 OBJS_CRYPTO= aes.o aesni.o arc4.o \
48 asn1parse.o asn1write.o base64.o \
49 bignum.o blowfish.o camellia.o \
50 ccm.o cipher.o cipher_wrap.o \
51 cmac.o ctr_drbg.o des.o \
52 dhm.o ecdh.o ecdsa.o \
54 ecp_curves.o entropy.o entropy_poll.o \
55 error.o gcm.o havege.o \
56 hmac_drbg.o md.o md2.o \
57 md4.o md5.o md_wrap.o \
58 memory_buffer_alloc.o oid.o \
59 padlock.o pem.o pk.o \
60 pk_wrap.o pkcs12.o pkcs5.o \
61 pkparse.o pkwrite.o platform.o \
62 ripemd160.o rsa.o sha1.o \
63 sha256.o sha512.o threading.o \
65 version_features.o xtea.o
67 OBJS_X509= certs.o pkcs11.o x509.o \
68 x509_create.o x509_crl.o x509_crt.o \
69 x509_csr.o x509write_crt.o x509write_csr.o
71 OBJS_TLS= debug.o net_sockets.o \
72 ssl_cache.o ssl_ciphersuites.o \
73 ssl_cli.o ssl_cookie.o \
74 ssl_srv.o ssl_ticket.o \
79 .PHONY: all static shared clean
87 static: libmbedcrypto.a libmbedx509.a libmbedtls.a
89 shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)
92 libmbedtls.a: $(OBJS_TLS)
94 $(AR) -rc $@ $(OBJS_TLS)
98 libmbedtls.$(SOEXT_TLS): $(OBJS_TLS) libmbedx509.so
100 $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
102 libmbedtls.so: libmbedtls.$(SOEXT_TLS)
106 libmbedtls.dylib: $(OBJS_TLS)
108 $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
110 libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll
112 $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -lmbedx509 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
115 libmbedx509.a: $(OBJS_X509)
117 $(AR) -rc $@ $(OBJS_X509)
121 libmbedx509.$(SOEXT_X509): $(OBJS_X509) libmbedcrypto.so
123 $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
125 libmbedx509.so: libmbedx509.$(SOEXT_X509)
129 libmbedx509.dylib: $(OBJS_X509)
131 $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
133 libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll
135 $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_X509) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
138 libmbedcrypto.a: $(OBJS_CRYPTO)
140 $(AR) -rc $@ $(OBJS_CRYPTO)
144 libmbedcrypto.$(SOEXT_CRYPTO): $(OBJS_CRYPTO)
146 $(CC) -shared -Wl,-soname,$@ $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO)
148 libmbedcrypto.so: libmbedcrypto.$(SOEXT_CRYPTO)
152 libmbedcrypto.dylib: $(OBJS_CRYPTO)
154 $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO)
156 libmbedcrypto.dll: $(OBJS_CRYPTO)
158 $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_CRYPTO) -lws2_32 -lwinmm -lgdi32 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
162 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<
168 del /Q /F *.o libmbed*