blob: 8a01f913df11c6b4f90db63caa14c419f9a2ba06 [file] [log] [blame]
Dan Willemsen21986fb2016-07-14 15:23:56 -07001// Note that some host libraries have the same module name as the target
2// libraries. This is currently needed to build, for example, adb. But it's
3// probably something that should be changed.
4
Paul Duffincb6fdd22019-06-04 13:24:44 +01005package {
6 default_visibility: ["//visibility:private"],
7}
8
Dan Willemsen21986fb2016-07-14 15:23:56 -07009// Pull in the autogenerated sources modules
10build = ["sources.bp"]
11
12// Used by libcrypto, libssl, bssl tool, and native tests
13cc_defaults {
14 name: "boringssl_flags",
Steven Morelandf593be82017-04-14 04:51:23 -070015 vendor_available: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -070016
17 cflags: [
18 "-fvisibility=hidden",
19 "-DBORINGSSL_SHARED_LIBRARY",
David Benjaminfc8a7862018-06-25 19:02:46 -040020 "-DBORINGSSL_ANDROID_SYSTEM",
Dan Willemsen21986fb2016-07-14 15:23:56 -070021 "-DOPENSSL_SMALL",
22 "-D_XOPEN_SOURCE=700",
Chih-Hung Hsieh9146d992017-09-27 10:26:03 -070023 "-Werror",
Dan Willemsen21986fb2016-07-14 15:23:56 -070024 "-Wno-unused-parameter",
25 ],
26
27 cppflags: [
28 "-Wall",
29 "-Werror",
30 ],
31
32 conlyflags: ["-std=c99"],
David Benjaminfc8a7862018-06-25 19:02:46 -040033
34 // Build BoringSSL and its tests against the same STL.
35 sdk_version: "9",
36 target: {
37 android: {
38 stl: "libc++_static",
39 },
40 },
Dan Willemsen21986fb2016-07-14 15:23:56 -070041}
42
43// Used by libcrypto + libssl
44cc_defaults {
45 name: "boringssl_defaults",
46
47 local_include_dirs: ["src/include"],
48 export_include_dirs: ["src/include"],
David Benjaminfc8a7862018-06-25 19:02:46 -040049 cflags: ["-DBORINGSSL_IMPLEMENTATION"],
Dan Willemsen21986fb2016-07-14 15:23:56 -070050}
51
52//// libcrypto
Dan Willemsen21986fb2016-07-14 15:23:56 -070053cc_defaults {
54 name: "libcrypto_defaults",
55 host_supported: true,
56
57 // Windows and Macs both have problems with assembly files
58 target: {
59 windows: {
60 enabled: true,
61 cflags: ["-DOPENSSL_NO_ASM"],
62 host_ldlibs: ["-lws2_32"],
63 },
64 darwin: {
65 cflags: ["-DOPENSSL_NO_ASM"],
66 },
Kenny Root7b550be2016-09-20 15:25:24 -070067 host: {
Dan Willemsen21986fb2016-07-14 15:23:56 -070068 host_ldlibs: ["-lpthread"],
69 },
70 },
71
72 local_include_dirs: ["src/crypto"],
73
Dan Willemsen21986fb2016-07-14 15:23:56 -070074 arch: {
Dan Willemsen21986fb2016-07-14 15:23:56 -070075 arm64: {
76 clang_asflags: ["-march=armv8-a+crypto"],
77 },
78 },
79}
80
81// Target and host library
82cc_library {
83 name: "libcrypto",
Paul Duffincb6fdd22019-06-04 13:24:44 +010084 visibility: ["//visibility:public"],
Vijay Venkatraman3caad952017-05-16 12:00:57 -070085 vendor_available: true,
dimitry09dd3be2019-05-09 16:42:01 +020086 native_bridge_supported: true,
Justin Yun47949c52017-07-24 15:19:43 +090087 vndk: {
88 enabled: true,
89 },
Jooyung Hanb6b07c32019-01-18 15:31:20 +090090 double_loadable: true,
Jiyong Parkc3463952018-04-27 21:44:32 +090091 recovery_available: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +010092 defaults: [
93 "libcrypto_sources",
94 "libcrypto_defaults",
95 "boringssl_defaults",
96 "boringssl_flags",
97 ],
Dan Willemsen2b2c24b2016-07-21 11:03:36 -070098 unique_host_soname: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -070099}
100
101// Static library
102// This should only be used for host modules that will be in a JVM, all other
103// modules should use the static variant of libcrypto.
104cc_library_static {
105 name: "libcrypto_static",
Paul Duffincb6fdd22019-06-04 13:24:44 +0100106 visibility: ["//visibility:public"],
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100107 defaults: [
108 "libcrypto_sources",
109 "libcrypto_defaults",
110 "boringssl_defaults",
111 "boringssl_flags",
112 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700113
114 target: {
115 host: {
David Benjaminc0dedc02017-01-24 17:54:24 -0500116 // TODO: b/26160319. ASAN breaks use of this library in JVM.
Dan Willemsen21986fb2016-07-14 15:23:56 -0700117 // Re-enable sanitization when the issue with making clients of this library
118 // preload ASAN runtime is resolved. Without that, clients are getting runtime
David Benjaminc0dedc02017-01-24 17:54:24 -0500119 // errors due to unresolved ASAN symbols, such as
Dan Willemsen21986fb2016-07-14 15:23:56 -0700120 // __asan_option_detect_stack_use_after_return.
121 sanitize: {
122 never: true,
123 },
124 },
125 },
126}
127
Dan Willemsen21986fb2016-07-14 15:23:56 -0700128//// libssl
129
130// Target static library
131// Deprecated: all users should move to libssl
132cc_library_static {
133 name: "libssl_static",
Paul Duffincb6fdd22019-06-04 13:24:44 +0100134 visibility: ["//visibility:public"],
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100135 defaults: [
136 "libssl_sources",
137 "boringssl_defaults",
138 "boringssl_flags",
139 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700140}
141
142// Static and Shared library
143cc_library {
144 name: "libssl",
Paul Duffincb6fdd22019-06-04 13:24:44 +0100145 visibility: ["//visibility:public"],
Dan Willemsenea55e182018-10-23 13:41:19 -0700146 recovery_available: true,
Justin Yun47949c52017-07-24 15:19:43 +0900147 vendor_available: true,
dimitry09dd3be2019-05-09 16:42:01 +0200148 native_bridge_supported: true,
Justin Yun47949c52017-07-24 15:19:43 +0900149 vndk: {
150 enabled: true,
151 },
Dan Willemsen21986fb2016-07-14 15:23:56 -0700152 host_supported: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100153 defaults: [
154 "libssl_sources",
155 "boringssl_defaults",
156 "boringssl_flags",
157 ],
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700158 unique_host_soname: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -0700159
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700160 shared_libs: ["libcrypto"],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700161}
162
Dan Willemsen21986fb2016-07-14 15:23:56 -0700163// Tool
164cc_binary {
165 name: "bssl",
166 host_supported: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100167 defaults: [
168 "bssl_sources",
169 "boringssl_flags",
170 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700171
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700172 shared_libs: [
173 "libcrypto",
174 "libssl",
175 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700176 target: {
Dan Willemsen21986fb2016-07-14 15:23:56 -0700177 darwin: {
178 enabled: false,
179 },
180 },
181}
Dan Willemsen2458a412016-07-15 09:28:31 -0700182
Adam Langley7c167932018-02-02 14:44:53 -0800183cc_binary {
184 name: "cavp",
185 host_supported: true,
186 srcs: [
Srinivas Paladugudd42a612019-08-09 19:30:39 +0000187 "src/fipstools/cavp_aes_gcm_test.cc",
188 "src/fipstools/cavp_aes_test.cc",
189 "src/fipstools/cavp_ctr_drbg_test.cc",
190 "src/fipstools/cavp_ecdsa2_keypair_test.cc",
191 "src/fipstools/cavp_ecdsa2_pkv_test.cc",
192 "src/fipstools/cavp_ecdsa2_siggen_test.cc",
193 "src/fipstools/cavp_ecdsa2_sigver_test.cc",
194 "src/fipstools/cavp_hmac_test.cc",
195 "src/fipstools/cavp_kas_test.cc",
196 "src/fipstools/cavp_keywrap_test.cc",
197 "src/fipstools/cavp_main.cc",
198 "src/fipstools/cavp_rsa2_keygen_test.cc",
199 "src/fipstools/cavp_rsa2_siggen_test.cc",
200 "src/fipstools/cavp_rsa2_sigver_test.cc",
201 "src/fipstools/cavp_sha_monte_test.cc",
202 "src/fipstools/cavp_sha_test.cc",
203 "src/fipstools/cavp_tdes_test.cc",
204 "src/fipstools/cavp_test_util.cc",
205 "src/fipstools/cavp_tlskdf_test.cc",
Adam Langley7c167932018-02-02 14:44:53 -0800206 ],
207
208 shared_libs: [
209 "libcrypto",
210 ],
211
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100212 defaults: [
213 "boringssl_test_support_sources",
214 "boringssl_flags",
215 ],
Adam Langley7c167932018-02-02 14:44:53 -0800216}
217
Dan Willemsen2458a412016-07-15 09:28:31 -0700218// Test support library
219cc_library_static {
220 name: "boringssl_test_support",
221 host_supported: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100222 defaults: [
223 "boringssl_test_support_sources",
224 "boringssl_flags",
225 ],
Dan Willemsen2458a412016-07-15 09:28:31 -0700226
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700227 shared_libs: [
228 "libcrypto",
229 "libssl",
230 ],
Dan Willemsen2458a412016-07-15 09:28:31 -0700231}
232
233// Tests
234cc_test {
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100235 name: "boringssl_crypto_test",
236 test_suites: ["device-tests"],
237 host_supported: true,
238 defaults: [
239 "boringssl_crypto_test_sources",
240 "boringssl_flags",
241 ],
242 whole_static_libs: ["boringssl_test_support"],
David Benjaminf31229b2017-01-25 14:08:15 -0500243
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100244 shared_libs: ["libcrypto"],
David Benjaminf31229b2017-01-25 14:08:15 -0500245}
246
247cc_test {
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100248 name: "boringssl_ssl_test",
249 test_suites: ["device-tests"],
250 host_supported: true,
251 defaults: [
252 "boringssl_ssl_test_sources",
253 "boringssl_flags",
254 ],
255 whole_static_libs: ["boringssl_test_support"],
David Benjaminf31229b2017-01-25 14:08:15 -0500256
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100257 shared_libs: [
258 "libcrypto",
259 "libssl",
260 ],
David Benjaminf31229b2017-01-25 14:08:15 -0500261}