123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- # 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_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
- else ifeq ($(shell uname -s),Darwin)
- ifeq ($(AR),ar)
- APPLE_BUILD ?= 1
- endif
- 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.12
- SOEXT_X509=so.0
- SOEXT_CRYPTO=so.3
- # Set AR_DASH= (empty string) to use an ar implementation that does not accept
- # the - prefix for command line options (e.g. llvm-ar)
- AR_DASH ?= -
- ARFLAGS = $(AR_DASH)src
- ifdef APPLE_BUILD
- ifneq ($(APPLE_BUILD),0)
- ARFLAGS = $(AR_DASH)Src
- RLFLAGS = -no_warning_for_no_symbols -c
- RL ?= ranlib
- endif
- endif
- DLEXT ?= so
- ifdef WINDOWS_BUILD
- # Windows shared library extension:
- DLEXT = dll
- else ifdef APPLE_BUILD
- ifneq ($(APPLE_BUILD),0)
- # Mac OS X shared library extension:
- DLEXT = dylib
- endif
- endif
- OBJS_CRYPTO= aes.o aesni.o arc4.o \
- aria.o asn1parse.o asn1write.o \
- base64.o bignum.o blowfish.o \
- camellia.o ccm.o chacha20.o \
- chachapoly.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 \
- hkdf.o \
- hmac_drbg.o md.o md2.o \
- md4.o md5.o md_wrap.o \
- memory_buffer_alloc.o nist_kw.o \
- oid.o padlock.o pem.o \
- pk.o pk_wrap.o pkcs12.o \
- pkcs5.o pkparse.o pkwrite.o \
- platform.o platform_util.o poly1305.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
- 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) $(ARFLAGS) $@ $(OBJS_TLS)
- ifdef APPLE_BUILD
- ifneq ($(APPLE_BUILD),0)
- echo " RL $@"
- $(RL) $(RLFLAGS) $@
- endif
- endif
- 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) libmbedx509.dylib
- echo " LD $@"
- $(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(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) $(ARFLAGS) $@ $(OBJS_X509)
- ifdef APPLE_BUILD
- ifneq ($(APPLE_BUILD),0)
- echo " RL $@"
- $(RL) $(RLFLAGS) $@
- endif
- endif
- 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) libmbedcrypto.dylib
- echo " LD $@"
- $(CC) -dynamiclib -L. -lmbedcrypto $(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) $(ARFLAGS) $@ $(OBJS_CRYPTO)
- ifdef APPLE_BUILD
- ifneq ($(APPLE_BUILD),0)
- echo " RL $@"
- $(RL) $(RLFLAGS) $@
- endif
- endif
- 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
|