blob: dcafbaf0bec2414613e3414fb9f670c633c97eac [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
5// Pull in the autogenerated sources modules
6build = ["sources.bp"]
7
8// Used by libcrypto, libssl, bssl tool, and native tests
9cc_defaults {
10 name: "boringssl_flags",
Steven Morelandf593be82017-04-14 04:51:23 -070011 vendor_available: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -070012
13 cflags: [
14 "-fvisibility=hidden",
15 "-DBORINGSSL_SHARED_LIBRARY",
David Benjaminfc8a7862018-06-25 19:02:46 -040016 "-DBORINGSSL_ANDROID_SYSTEM",
Dan Willemsen21986fb2016-07-14 15:23:56 -070017 "-DOPENSSL_SMALL",
18 "-D_XOPEN_SOURCE=700",
Chih-Hung Hsieh9146d992017-09-27 10:26:03 -070019 "-Werror",
Dan Willemsen21986fb2016-07-14 15:23:56 -070020 "-Wno-unused-parameter",
21 ],
22
23 cppflags: [
24 "-Wall",
25 "-Werror",
26 ],
27
28 conlyflags: ["-std=c99"],
David Benjaminfc8a7862018-06-25 19:02:46 -040029
30 // Build BoringSSL and its tests against the same STL.
31 sdk_version: "9",
32 target: {
33 android: {
34 stl: "libc++_static",
35 },
36 },
Dan Willemsen21986fb2016-07-14 15:23:56 -070037}
38
39// Used by libcrypto + libssl
40cc_defaults {
41 name: "boringssl_defaults",
42
43 local_include_dirs: ["src/include"],
44 export_include_dirs: ["src/include"],
David Benjaminfc8a7862018-06-25 19:02:46 -040045 cflags: ["-DBORINGSSL_IMPLEMENTATION"],
Dan Willemsen21986fb2016-07-14 15:23:56 -070046}
47
48//// libcrypto
Dan Willemsen21986fb2016-07-14 15:23:56 -070049cc_defaults {
50 name: "libcrypto_defaults",
51 host_supported: true,
52
53 // Windows and Macs both have problems with assembly files
54 target: {
55 windows: {
56 enabled: true,
57 cflags: ["-DOPENSSL_NO_ASM"],
58 host_ldlibs: ["-lws2_32"],
59 },
60 darwin: {
61 cflags: ["-DOPENSSL_NO_ASM"],
62 },
Kenny Root7b550be2016-09-20 15:25:24 -070063 host: {
Dan Willemsen21986fb2016-07-14 15:23:56 -070064 host_ldlibs: ["-lpthread"],
65 },
66 },
67
68 local_include_dirs: ["src/crypto"],
69
Dan Willemsen21986fb2016-07-14 15:23:56 -070070 arch: {
Dan Willemsen21986fb2016-07-14 15:23:56 -070071 arm64: {
72 clang_asflags: ["-march=armv8-a+crypto"],
73 },
74 },
75}
76
77// Target and host library
78cc_library {
79 name: "libcrypto",
Vijay Venkatraman3caad952017-05-16 12:00:57 -070080 vendor_available: true,
dimitry09dd3be2019-05-09 16:42:01 +020081 native_bridge_supported: true,
Justin Yun47949c52017-07-24 15:19:43 +090082 vndk: {
83 enabled: true,
84 },
Jooyung Hanb6b07c32019-01-18 15:31:20 +090085 double_loadable: true,
Jiyong Parkc3463952018-04-27 21:44:32 +090086 recovery_available: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +010087 defaults: [
88 "libcrypto_sources",
89 "libcrypto_defaults",
90 "boringssl_defaults",
91 "boringssl_flags",
92 ],
Dan Willemsen2b2c24b2016-07-21 11:03:36 -070093 unique_host_soname: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -070094}
95
96// Static library
97// This should only be used for host modules that will be in a JVM, all other
98// modules should use the static variant of libcrypto.
99cc_library_static {
100 name: "libcrypto_static",
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100101 defaults: [
102 "libcrypto_sources",
103 "libcrypto_defaults",
104 "boringssl_defaults",
105 "boringssl_flags",
106 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700107
108 target: {
109 host: {
David Benjaminc0dedc02017-01-24 17:54:24 -0500110 // TODO: b/26160319. ASAN breaks use of this library in JVM.
Dan Willemsen21986fb2016-07-14 15:23:56 -0700111 // Re-enable sanitization when the issue with making clients of this library
112 // preload ASAN runtime is resolved. Without that, clients are getting runtime
David Benjaminc0dedc02017-01-24 17:54:24 -0500113 // errors due to unresolved ASAN symbols, such as
Dan Willemsen21986fb2016-07-14 15:23:56 -0700114 // __asan_option_detect_stack_use_after_return.
115 sanitize: {
116 never: true,
117 },
118 },
119 },
120}
121
Dan Willemsen21986fb2016-07-14 15:23:56 -0700122//// libssl
123
124// Target static library
125// Deprecated: all users should move to libssl
126cc_library_static {
127 name: "libssl_static",
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100128 defaults: [
129 "libssl_sources",
130 "boringssl_defaults",
131 "boringssl_flags",
132 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700133}
134
135// Static and Shared library
136cc_library {
137 name: "libssl",
Dan Willemsenea55e182018-10-23 13:41:19 -0700138 recovery_available: true,
Justin Yun47949c52017-07-24 15:19:43 +0900139 vendor_available: true,
dimitry09dd3be2019-05-09 16:42:01 +0200140 native_bridge_supported: true,
Justin Yun47949c52017-07-24 15:19:43 +0900141 vndk: {
142 enabled: true,
143 },
Dan Willemsen21986fb2016-07-14 15:23:56 -0700144 host_supported: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100145 defaults: [
146 "libssl_sources",
147 "boringssl_defaults",
148 "boringssl_flags",
149 ],
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700150 unique_host_soname: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -0700151
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700152 shared_libs: ["libcrypto"],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700153}
154
Dan Willemsen21986fb2016-07-14 15:23:56 -0700155// Tool
156cc_binary {
157 name: "bssl",
158 host_supported: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100159 defaults: [
160 "bssl_sources",
161 "boringssl_flags",
162 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700163
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700164 shared_libs: [
165 "libcrypto",
166 "libssl",
167 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700168 target: {
Dan Willemsen21986fb2016-07-14 15:23:56 -0700169 darwin: {
170 enabled: false,
171 },
172 },
173}
Dan Willemsen2458a412016-07-15 09:28:31 -0700174
Adam Langley7c167932018-02-02 14:44:53 -0800175cc_binary {
176 name: "cavp",
177 host_supported: true,
178 srcs: [
179 "src/fipstools/cavp_aes_gcm_test.cc",
180 "src/fipstools/cavp_aes_test.cc",
181 "src/fipstools/cavp_ctr_drbg_test.cc",
182 "src/fipstools/cavp_ecdsa2_keypair_test.cc",
183 "src/fipstools/cavp_ecdsa2_pkv_test.cc",
184 "src/fipstools/cavp_ecdsa2_siggen_test.cc",
185 "src/fipstools/cavp_ecdsa2_sigver_test.cc",
186 "src/fipstools/cavp_hmac_test.cc",
187 "src/fipstools/cavp_kas_test.cc",
188 "src/fipstools/cavp_keywrap_test.cc",
189 "src/fipstools/cavp_main.cc",
190 "src/fipstools/cavp_rsa2_keygen_test.cc",
191 "src/fipstools/cavp_rsa2_siggen_test.cc",
192 "src/fipstools/cavp_rsa2_sigver_test.cc",
193 "src/fipstools/cavp_sha_monte_test.cc",
194 "src/fipstools/cavp_sha_test.cc",
195 "src/fipstools/cavp_tdes_test.cc",
196 "src/fipstools/cavp_test_util.cc",
197 "src/fipstools/cavp_tlskdf_test.cc",
198 ],
199
200 shared_libs: [
201 "libcrypto",
202 ],
203
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100204 defaults: [
205 "boringssl_test_support_sources",
206 "boringssl_flags",
207 ],
Adam Langley7c167932018-02-02 14:44:53 -0800208}
209
Dan Willemsen2458a412016-07-15 09:28:31 -0700210// Test support library
211cc_library_static {
212 name: "boringssl_test_support",
213 host_supported: true,
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100214 defaults: [
215 "boringssl_test_support_sources",
216 "boringssl_flags",
217 ],
Dan Willemsen2458a412016-07-15 09:28:31 -0700218
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700219 shared_libs: [
220 "libcrypto",
221 "libssl",
222 ],
Dan Willemsen2458a412016-07-15 09:28:31 -0700223}
224
225// Tests
226cc_test {
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100227 name: "boringssl_crypto_test",
228 test_suites: ["device-tests"],
229 host_supported: true,
230 defaults: [
231 "boringssl_crypto_test_sources",
232 "boringssl_flags",
233 ],
234 whole_static_libs: ["boringssl_test_support"],
David Benjaminf31229b2017-01-25 14:08:15 -0500235
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100236 shared_libs: ["libcrypto"],
David Benjaminf31229b2017-01-25 14:08:15 -0500237}
238
239cc_test {
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100240 name: "boringssl_ssl_test",
241 test_suites: ["device-tests"],
242 host_supported: true,
243 defaults: [
244 "boringssl_ssl_test_sources",
245 "boringssl_flags",
246 ],
247 whole_static_libs: ["boringssl_test_support"],
David Benjaminf31229b2017-01-25 14:08:15 -0500248
Paul Duffinf6a61fd2019-06-25 12:06:25 +0100249 shared_libs: [
250 "libcrypto",
251 "libssl",
252 ],
David Benjaminf31229b2017-01-25 14:08:15 -0500253}