Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / third_party / mbedtls / repo / library / Makefile
1
2 # Also see "include/mbedtls/config.h"
3
4 CFLAGS  ?= -O2
5 WARNING_CFLAGS ?=  -Wall -W -Wdeclaration-after-statement
6 LDFLAGS ?=
7
8 LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
9 LOCAL_LDFLAGS =
10
11 ifdef DEBUG
12 LOCAL_CFLAGS += -g3
13 endif
14
15 # MicroBlaze specific options:
16 # CFLAGS += -mno-xl-soft-mul -mxl-barrel-shift
17
18 # To compile on Plan9:
19 # CFLAGS += -D_BSD_EXTENSION
20
21 # if were running on Windows build for Windows
22 ifdef WINDOWS
23 WINDOWS_BUILD=1
24 else ifeq ($(shell uname -s),Darwin)
25 ifeq ($(AR),ar)
26 APPLE_BUILD ?= 1
27 endif
28 endif
29
30 # To compile as a shared library:
31 ifdef SHARED
32 # all code is position-indep with mingw, avoid warning about useless flag
33 ifndef WINDOWS_BUILD
34 LOCAL_CFLAGS += -fPIC -fpic
35 endif
36 endif
37
38 SOEXT_TLS=so.13
39 SOEXT_X509=so.1
40 SOEXT_CRYPTO=so.3
41
42 # Set AR_DASH= (empty string) to use an ar implementation that does not accept
43 # the - prefix for command line options (e.g. llvm-ar)
44 AR_DASH ?= -
45
46 ARFLAGS = $(AR_DASH)src
47 ifdef APPLE_BUILD
48 ifneq ($(APPLE_BUILD),0)
49 ARFLAGS = $(AR_DASH)Src
50 RLFLAGS = -no_warning_for_no_symbols -c
51 RL ?= ranlib
52 endif
53 endif
54
55 DLEXT ?= so
56 ifdef WINDOWS_BUILD
57 # Windows shared library extension:
58 DLEXT = dll
59 else ifdef APPLE_BUILD
60 ifneq ($(APPLE_BUILD),0)
61 # Mac OS X shared library extension:
62 DLEXT = dylib
63 endif
64 endif
65
66
67
68 # Look in crypto for libmbedcrypto.
69 LOCAL_LDFLAGS += -L../crypto/library
70 LOCAL_CFLAGS += -I../crypto/include
71 CRYPTO := ../crypto/library/
72
73 OBJS_X509=      certs.o         pkcs11.o        x509.o          \
74                 x509_create.o   x509_crl.o      x509_crt.o      \
75                 x509_csr.o      x509write_crt.o x509write_csr.o
76
77 OBJS_TLS=       debug.o         net_sockets.o           \
78                 ssl_cache.o     ssl_ciphersuites.o      \
79                 ssl_cli.o       ssl_cookie.o            \
80                 ssl_srv.o       ssl_ticket.o            \
81                 ssl_tls.o
82
83 .SILENT:
84
85 .PHONY: all static shared clean
86
87 ifndef SHARED
88 all: static
89 else
90 all: shared static
91 endif
92
93 static: libmbedcrypto.a libmbedx509.a libmbedtls.a
94
95 shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)
96
97 # tls
98 libmbedtls.a: $(OBJS_TLS)
99         echo "  AR    $@"
100         $(AR) $(ARFLAGS) $@ $(OBJS_TLS)
101 ifdef APPLE_BUILD
102 ifneq ($(APPLE_BUILD),0)
103         echo "  RL    $@"
104         $(RL) $(RLFLAGS) $@
105 endif
106 endif
107
108 libmbedtls.$(SOEXT_TLS): $(OBJS_TLS) libmbedx509.so
109         echo "  LD    $@"
110         $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
111
112 libmbedtls.so: libmbedtls.$(SOEXT_TLS)
113         echo "  LN    $@ -> $<"
114         ln -sf $< $@
115
116 libmbedtls.dylib: $(OBJS_TLS) libmbedx509.dylib
117         echo "  LD    $@"
118         $(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
119
120 libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll
121         echo "  LD    $@"
122         $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -lmbedx509 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
123
124 # x509
125 libmbedx509.a: $(OBJS_X509)
126         echo "  AR    $@"
127         $(AR) $(ARFLAGS) $@ $(OBJS_X509)
128 ifdef APPLE_BUILD
129 ifneq ($(APPLE_BUILD),0)
130         echo "  RL    $@"
131         $(RL) $(RLFLAGS) $@
132 endif
133 endif
134
135 libmbedx509.$(SOEXT_X509): $(OBJS_X509) $(CRYPTO)libmbedcrypto.so
136         echo "  LD    $@"
137         $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
138
139 libmbedx509.so: libmbedx509.$(SOEXT_X509)
140         echo "  LN    $@ -> $<"
141         ln -sf $< $@
142
143 libmbedx509.dylib: $(OBJS_X509) libmbedcrypto.dylib
144         echo "  LD    $@"
145         $(CC) -dynamiclib -L. -lmbedcrypto  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
146
147 libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll
148         echo "  LD    $@"
149         $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_X509) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
150
151 libmbedcrypto.%:
152         $(MAKE) CRYPTO_INCLUDES:="-I../../include -I../include" -C ../crypto/library $@
153
154 .c.o:
155         echo "  CC    $<"
156         $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<
157
158 clean:
159 ifndef WINDOWS
160         rm -f *.o libmbed*
161 else
162         del /Q /F *.o libmbed*
163 endif