blob: dc2bfc543b64d732be565e3c931a2a251431a6c5 [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
49
Kenny Root30c14792016-07-21 14:33:54 -070050// This should be removed when clang can compile everything.
51libcrypto_sources_no_clang = [
Robert Sloan572a4e22017-04-17 10:52:19 -070052 "linux-arm/crypto/fipsmodule/aes-armv4.S",
53 "linux-arm/crypto/fipsmodule/bsaes-armv7.S",
Kenny Root30c14792016-07-21 14:33:54 -070054]
55
Dan Willemsen21986fb2016-07-14 15:23:56 -070056cc_defaults {
57 name: "libcrypto_defaults",
58 host_supported: true,
59
60 // Windows and Macs both have problems with assembly files
61 target: {
62 windows: {
63 enabled: true,
64 cflags: ["-DOPENSSL_NO_ASM"],
65 host_ldlibs: ["-lws2_32"],
66 },
67 darwin: {
68 cflags: ["-DOPENSSL_NO_ASM"],
69 },
Kenny Root7b550be2016-09-20 15:25:24 -070070 host: {
Dan Willemsen21986fb2016-07-14 15:23:56 -070071 host_ldlibs: ["-lpthread"],
72 },
73 },
74
75 local_include_dirs: ["src/crypto"],
76
Dan Willemsen21986fb2016-07-14 15:23:56 -070077 arch: {
Dan Willemsen21986fb2016-07-14 15:23:56 -070078 arm64: {
79 clang_asflags: ["-march=armv8-a+crypto"],
80 },
81 },
Kenny Root30c14792016-07-21 14:33:54 -070082
83 // This should be removed when clang can compile everything.
84 exclude_srcs: libcrypto_sources_no_clang,
85 whole_static_libs: ["libcrypto_no_clang"],
Dan Willemsen21986fb2016-07-14 15:23:56 -070086}
87
88// Target and host library
89cc_library {
90 name: "libcrypto",
Vijay Venkatraman3caad952017-05-16 12:00:57 -070091 vendor_available: true,
Justin Yun47949c52017-07-24 15:19:43 +090092 vndk: {
93 enabled: true,
94 },
Jiyong Parkc3463952018-04-27 21:44:32 +090095 recovery_available: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -070096 defaults: ["libcrypto_sources", "libcrypto_defaults", "boringssl_defaults", "boringssl_flags"],
Dan Willemsen2b2c24b2016-07-21 11:03:36 -070097 unique_host_soname: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -070098}
99
Kenny Root30c14792016-07-21 14:33:54 -0700100// Target and host library: files that don't compile with clang. This should
101// go away when clang can compile everything with integrated assembler.
102cc_library_static {
103 name: "libcrypto_no_clang",
104 defaults: ["boringssl_defaults", "boringssl_flags"],
105 host_supported: true,
Jiyong Parkc3463952018-04-27 21:44:32 +0900106 recovery_available: true,
Kenny Root30c14792016-07-21 14:33:54 -0700107
108 target: {
109 windows: {
110 enabled: true,
111 },
112 },
113
114 local_include_dirs: ["src/crypto"],
115
116 arch: {
117 arm: {
118 clang_asflags: ["-no-integrated-as"],
119 srcs: libcrypto_sources_no_clang,
120 },
121 },
122}
123
Dan Willemsen21986fb2016-07-14 15:23:56 -0700124// Static library
125// This should only be used for host modules that will be in a JVM, all other
126// modules should use the static variant of libcrypto.
127cc_library_static {
128 name: "libcrypto_static",
129 defaults: ["libcrypto_sources", "libcrypto_defaults", "boringssl_defaults", "boringssl_flags"],
130
131 target: {
132 host: {
David Benjaminc0dedc02017-01-24 17:54:24 -0500133 // TODO: b/26160319. ASAN breaks use of this library in JVM.
Dan Willemsen21986fb2016-07-14 15:23:56 -0700134 // Re-enable sanitization when the issue with making clients of this library
135 // preload ASAN runtime is resolved. Without that, clients are getting runtime
David Benjaminc0dedc02017-01-24 17:54:24 -0500136 // errors due to unresolved ASAN symbols, such as
Dan Willemsen21986fb2016-07-14 15:23:56 -0700137 // __asan_option_detect_stack_use_after_return.
138 sanitize: {
139 never: true,
140 },
141 },
142 },
143}
144
Dan Willemsen21986fb2016-07-14 15:23:56 -0700145//// libssl
146
147// Target static library
148// Deprecated: all users should move to libssl
149cc_library_static {
150 name: "libssl_static",
151 defaults: ["libssl_sources", "boringssl_defaults", "boringssl_flags"],
152}
153
154// Static and Shared library
155cc_library {
156 name: "libssl",
Justin Yun47949c52017-07-24 15:19:43 +0900157 vendor_available: true,
158 vndk: {
159 enabled: true,
160 },
Dan Willemsen21986fb2016-07-14 15:23:56 -0700161 host_supported: true,
162 defaults: ["libssl_sources", "boringssl_defaults", "boringssl_flags"],
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700163 unique_host_soname: true,
Dan Willemsen21986fb2016-07-14 15:23:56 -0700164
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700165 shared_libs: ["libcrypto"],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700166}
167
Dan Willemsen21986fb2016-07-14 15:23:56 -0700168// Tool
169cc_binary {
170 name: "bssl",
171 host_supported: true,
172 defaults: ["bssl_sources", "boringssl_flags"],
173
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700174 shared_libs: [
175 "libcrypto",
176 "libssl",
177 ],
Dan Willemsen21986fb2016-07-14 15:23:56 -0700178 target: {
Dan Willemsen21986fb2016-07-14 15:23:56 -0700179 darwin: {
180 enabled: false,
181 },
182 },
183}
Dan Willemsen2458a412016-07-15 09:28:31 -0700184
Adam Langley7c167932018-02-02 14:44:53 -0800185cc_binary {
186 name: "cavp",
187 host_supported: true,
188 srcs: [
189 "src/fipstools/cavp_aes_gcm_test.cc",
190 "src/fipstools/cavp_aes_test.cc",
191 "src/fipstools/cavp_ctr_drbg_test.cc",
192 "src/fipstools/cavp_ecdsa2_keypair_test.cc",
193 "src/fipstools/cavp_ecdsa2_pkv_test.cc",
194 "src/fipstools/cavp_ecdsa2_siggen_test.cc",
195 "src/fipstools/cavp_ecdsa2_sigver_test.cc",
196 "src/fipstools/cavp_hmac_test.cc",
197 "src/fipstools/cavp_kas_test.cc",
198 "src/fipstools/cavp_keywrap_test.cc",
199 "src/fipstools/cavp_main.cc",
200 "src/fipstools/cavp_rsa2_keygen_test.cc",
201 "src/fipstools/cavp_rsa2_siggen_test.cc",
202 "src/fipstools/cavp_rsa2_sigver_test.cc",
203 "src/fipstools/cavp_sha_monte_test.cc",
204 "src/fipstools/cavp_sha_test.cc",
205 "src/fipstools/cavp_tdes_test.cc",
206 "src/fipstools/cavp_test_util.cc",
207 "src/fipstools/cavp_tlskdf_test.cc",
208 ],
209
210 shared_libs: [
211 "libcrypto",
212 ],
213
214 defaults: ["boringssl_test_support_sources", "boringssl_flags"],
215}
216
Dan Willemsen2458a412016-07-15 09:28:31 -0700217// Test support library
218cc_library_static {
219 name: "boringssl_test_support",
220 host_supported: true,
221 defaults: ["boringssl_test_support_sources", "boringssl_flags"],
222
Dan Willemsen2b2c24b2016-07-21 11:03:36 -0700223 shared_libs: [
224 "libcrypto",
225 "libssl",
226 ],
Dan Willemsen2458a412016-07-15 09:28:31 -0700227}
228
229// Tests
230cc_test {
David Benjaminf31229b2017-01-25 14:08:15 -0500231 name: "boringssl_crypto_test",
Dan Shi9397df82017-03-29 23:23:34 -0700232 test_suites: ["device-tests"],
David Benjaminf31229b2017-01-25 14:08:15 -0500233 host_supported: true,
234 defaults: ["boringssl_crypto_test_sources", "boringssl_flags"],
235 whole_static_libs: ["boringssl_test_support"],
236
David Benjaminf31229b2017-01-25 14:08:15 -0500237 shared_libs: ["libcrypto"],
238}
239
240cc_test {
241 name: "boringssl_ssl_test",
Dan Shi9397df82017-03-29 23:23:34 -0700242 test_suites: ["device-tests"],
David Benjaminf31229b2017-01-25 14:08:15 -0500243 host_supported: true,
244 defaults: ["boringssl_ssl_test_sources", "boringssl_flags"],
245 whole_static_libs: ["boringssl_test_support"],
246
David Benjaminf31229b2017-01-25 14:08:15 -0500247 shared_libs: ["libcrypto", "libssl"],
248}