123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- # Also see "include/mbedtls/config.h"
- CFLAGS ?= -O2
- WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement
- LDFLAGS ?=
- #LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
- LOCAL_CFLAGS = $(WARNING_CFLAGS) -I./ -D_FILE_OFFSET_BITS=64
- LOCAL_LDFLAGS =
- ifdef DEBUG
- LOCAL_CFLAGS += -g3
- endif
- # MicroBlaze specific options:
- # CFLAGS += -mno-xl-soft-mul -mxl-barrel-shift
- # To compile on Plan9:
- # CFLAGS += -D_BSD_EXTENSION
- # if were running on Windows build for Windows
- ifdef WINDOWS
- WINDOWS_BUILD=1
- endif
- # To compile as a shared library:
- ifdef SHARED
- # all code is position-indep with mingw, avoid warning about useless flag
- ifndef WINDOWS_BUILD
- LOCAL_CFLAGS += -fPIC -fpic
- endif
- endif
- SOEXT_TLS=so.10
- SOEXT_X509=so.0
- SOEXT_CRYPTO=so.0
- DLEXT=so
- # OSX shared library extension:
- # DLEXT=dylib
- # Windows shared library extension:
- ifdef WINDOWS_BUILD
- DLEXT=dll
- endif
- 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 \
- cmac.o ctr_drbg.o des.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 \
- 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_sockets.o \
- ssl_cache.o ssl_ciphersuites.o \
- ssl_cli.o ssl_cookie.o \
- ssl_srv.o ssl_ticket.o \
- ssl_tls.o
- .SILENT:
- .PHONY: all static shared clean
- ifndef SHARED
- all: static
- else
- all: shared static
- endif
- static: libmbedcrypto.a libmbedx509.a libmbedtls.a
- shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)
- # tls
- libmbedtls.a: $(OBJS_TLS)
- echo " AR $@"
- $(AR) -rc $@ $(OBJS_TLS)
- echo " RL $@"
- $(AR) -s $@
- libmbedtls.$(SOEXT_TLS): $(OBJS_TLS) libmbedx509.so
- echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
- libmbedtls.so: libmbedtls.$(SOEXT_TLS)
- echo " LN $@ -> $<"
- ln -sf $< $@
- libmbedtls.dylib: $(OBJS_TLS)
- echo " LD $@"
- $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
- libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll
- echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -lmbedx509 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
- # x509
- libmbedx509.a: $(OBJS_X509)
- echo " AR $@"
- $(AR) -rc $@ $(OBJS_X509)
- echo " RL $@"
- $(AR) -s $@
- libmbedx509.$(SOEXT_X509): $(OBJS_X509) libmbedcrypto.so
- echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
- libmbedx509.so: libmbedx509.$(SOEXT_X509)
- echo " LN $@ -> $<"
- ln -sf $< $@
- libmbedx509.dylib: $(OBJS_X509)
- echo " LD $@"
- $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
- libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll
- echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_X509) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
- # crypto
- libmbedcrypto.a: $(OBJS_CRYPTO)
- echo " AR $@"
- $(AR) -rc $@ $(OBJS_CRYPTO)
- echo " RL $@"
- $(AR) -s $@
- libmbedcrypto.$(SOEXT_CRYPTO): $(OBJS_CRYPTO)
- echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO)
- libmbedcrypto.so: libmbedcrypto.$(SOEXT_CRYPTO)
- echo " LN $@ -> $<"
- ln -sf $< $@
- libmbedcrypto.dylib: $(OBJS_CRYPTO)
- echo " LD $@"
- $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO)
- libmbedcrypto.dll: $(OBJS_CRYPTO)
- echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_CRYPTO) -lws2_32 -lwinmm -lgdi32 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
- .c.o:
- echo " CC $<"
- $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<
- clean:
- ifndef WINDOWS
- rm -f *.o libmbed*
- else
- del /Q /F *.o libmbed*
- endif
|