1LOCAL_PATH:= $(call my-dir)
2include $(CLEAR_VARS)
3
4ifeq ($(TARGET_ARCH),arm)
5	LOCAL_CFLAGS += -DOPENSSL_BN_ASM_MONT -DAES_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
6	LOCAL_SRC_FILES:= 0.9.9-dev/bn/armv4-mont.s \
7	                  0.9.9-dev/aes/aes-armv4.s \
8	                  0.9.9-dev/sha/sha1-armv4-large.s \
9	                  0.9.9-dev/sha/sha256-armv4.s \
10	                  0.9.9-dev/sha/sha512-armv4.s
11else
12	LOCAL_SRC_FILES:= aes/aes_core.c
13endif
14
15ifeq ($(TARGET_SIMULATOR),true)
16	# Make valgrind happy.
17	LOCAL_CFLAGS += -DPURIFY
18endif
19
20LOCAL_SRC_FILES+= \
21	cryptlib.c \
22	mem.c \
23	mem_clr.c \
24	mem_dbg.c \
25	cversion.c \
26	dyn_lck.c \
27	ex_data.c \
28	tmdiff.c \
29	cpt_err.c \
30	ebcdic.c \
31	uid.c \
32	o_time.c \
33	o_str.c \
34	o_dir.c \
35	aes/aes_misc.c \
36	aes/aes_ecb.c \
37	aes/aes_cbc.c \
38	aes/aes_cfb.c \
39	aes/aes_ofb.c \
40	aes/aes_ctr.c \
41	aes/aes_wrap.c \
42	asn1/a_object.c \
43	asn1/a_bitstr.c \
44	asn1/a_utctm.c \
45	asn1/a_gentm.c \
46	asn1/a_time.c \
47	asn1/a_int.c \
48	asn1/a_octet.c \
49	asn1/a_print.c \
50	asn1/a_type.c \
51	asn1/a_set.c \
52	asn1/a_dup.c \
53	asn1/a_d2i_fp.c \
54	asn1/a_i2d_fp.c \
55	asn1/a_enum.c \
56	asn1/a_utf8.c \
57	asn1/a_sign.c \
58	asn1/a_digest.c \
59	asn1/a_verify.c \
60	asn1/a_mbstr.c \
61	asn1/a_strex.c \
62	asn1/x_algor.c \
63	asn1/x_val.c \
64	asn1/x_pubkey.c \
65	asn1/x_sig.c \
66	asn1/x_req.c \
67	asn1/x_attrib.c \
68	asn1/x_bignum.c \
69	asn1/x_long.c \
70	asn1/x_name.c \
71	asn1/x_x509.c \
72	asn1/x_x509a.c \
73	asn1/x_crl.c \
74	asn1/x_info.c \
75	asn1/x_spki.c \
76	asn1/nsseq.c \
77	asn1/d2i_pu.c \
78	asn1/d2i_pr.c \
79	asn1/i2d_pu.c \
80	asn1/i2d_pr.c \
81	asn1/t_req.c \
82	asn1/t_x509.c \
83	asn1/t_x509a.c \
84	asn1/t_crl.c \
85	asn1/t_pkey.c \
86	asn1/t_spki.c \
87	asn1/t_bitst.c \
88	asn1/tasn_new.c \
89	asn1/tasn_fre.c \
90	asn1/tasn_enc.c \
91	asn1/tasn_dec.c \
92	asn1/tasn_utl.c \
93	asn1/tasn_typ.c \
94	asn1/f_int.c \
95	asn1/f_string.c \
96	asn1/n_pkey.c \
97	asn1/f_enum.c \
98	asn1/a_hdr.c \
99	asn1/x_pkey.c \
100	asn1/a_bool.c \
101	asn1/x_exten.c \
102	asn1/asn1_par.c \
103	asn1/asn1_lib.c \
104	asn1/asn1_err.c \
105	asn1/a_meth.c \
106	asn1/a_bytes.c \
107	asn1/a_strnid.c \
108	asn1/evp_asn1.c \
109	asn1/asn_pack.c \
110	asn1/p5_pbe.c \
111	asn1/p5_pbev2.c \
112	asn1/p8_pkey.c \
113	asn1/asn_moid.c \
114	asn1/asn1_gen.c \
115	asn1/asn_mime.c \
116	bio/bio_lib.c \
117	bio/bio_cb.c \
118	bio/bio_err.c \
119	bio/bss_mem.c \
120	bio/bss_null.c \
121	bio/bss_fd.c \
122	bio/bss_file.c \
123	bio/bss_sock.c \
124	bio/bss_conn.c \
125	bio/bf_null.c \
126	bio/bf_buff.c \
127	bio/b_print.c \
128	bio/b_dump.c \
129	bio/b_sock.c \
130	bio/bss_acpt.c \
131	bio/bf_nbio.c \
132	bio/bss_log.c \
133	bio/bss_bio.c \
134	bio/bss_dgram.c \
135	bn/bn_add.c \
136	bn/bn_div.c \
137	bn/bn_exp.c \
138	bn/bn_lib.c \
139	bn/bn_ctx.c \
140	bn/bn_mul.c \
141	bn/bn_mod.c \
142	bn/bn_opt.c \
143	bn/bn_print.c \
144	bn/bn_rand.c \
145	bn/bn_shift.c \
146	bn/bn_word.c \
147	bn/bn_blind.c \
148	bn/bn_kron.c \
149	bn/bn_sqrt.c \
150	bn/bn_gcd.c \
151	bn/bn_prime.c \
152	bn/bn_err.c \
153	bn/bn_sqr.c \
154	bn/bn_asm.c \
155	bn/bn_recp.c \
156	bn/bn_mont.c \
157	bn/bn_mpi.c \
158	bn/bn_exp2.c \
159	bn/bn_nist.c \
160	bn/bn_gf2m.c \
161	bn/bn_x931p.c \
162	buffer/buffer.c \
163	buffer/buf_err.c \
164	buffer/buf_str.c \
165	comp/comp_lib.c \
166	comp/comp_err.c \
167	comp/c_rle.c \
168	comp/c_zlib.c \
169	conf/conf_err.c \
170	conf/conf_lib.c \
171	conf/conf_api.c \
172	conf/conf_def.c \
173	conf/conf_mod.c \
174	conf/conf_mall.c \
175	conf/conf_sap.c \
176	des/cbc_cksm.c \
177	des/cbc_enc.c \
178	des/cfb64enc.c \
179	des/cfb_enc.c \
180	des/des_lib.c \
181	des/ecb3_enc.c \
182	des/ecb_enc.c \
183	des/enc_read.c \
184	des/enc_writ.c \
185	des/fcrypt.c \
186	des/ofb64enc.c \
187	des/ofb_enc.c \
188	des/pcbc_enc.c \
189	des/qud_cksm.c \
190	des/rand_key.c \
191	des/rpc_enc.c \
192	des/set_key.c \
193	des/des_enc.c \
194	des/fcrypt_b.c \
195	des/xcbc_enc.c \
196	des/str2key.c \
197	des/cfb64ede.c \
198	des/ofb64ede.c \
199	des/ede_cbcm_enc.c \
200	des/des_old.c \
201	des/des_old2.c \
202	des/read2pwd.c \
203	dso/dso_dl.c \
204	dso/dso_dlfcn.c \
205	dso/dso_err.c \
206	dso/dso_lib.c \
207	dso/dso_null.c \
208	dso/dso_openssl.c \
209	dso/dso_win32.c \
210	dso/dso_vms.c \
211	err/err.c \
212	err/err_bio.c \
213	err/err_def.c \
214	err/err_all.c \
215	err/err_prn.c \
216	err/err_str.c \
217	evp/encode.c \
218	evp/digest.c \
219	evp/enc_min.c \
220	evp/evp_cnf.c \
221	evp/evp_enc.c \
222	evp/evp_key.c \
223	evp/evp_acnf.c \
224	evp/e_des.c \
225	evp/e_des3.c \
226	evp/e_rc4.c \
227	evp/e_aes.c \
228	evp/names.c \
229	evp/e_xcbc_d.c \
230	evp/e_rc2.c \
231	evp/e_rc5.c \
232	evp/m_null.c \
233	evp/m_md2.c \
234	evp/m_md4.c \
235	evp/m_md5.c \
236	evp/m_sha.c \
237	evp/m_sha1.c \
238	evp/m_dss.c \
239	evp/m_dss1.c \
240	evp/m_mdc2.c \
241	evp/p_open.c \
242	evp/p_seal.c \
243	evp/p_sign.c \
244	evp/p_verify.c \
245	evp/p_lib.c \
246	evp/p_enc.c \
247	evp/p_dec.c \
248	evp/bio_md.c \
249	evp/bio_b64.c \
250	evp/bio_enc.c \
251	evp/evp_err.c \
252	evp/e_null.c \
253	evp/c_all.c \
254	evp/c_allc.c \
255	evp/c_alld.c \
256	evp/evp_lib.c \
257	evp/bio_ok.c \
258	evp/evp_pkey.c \
259	evp/evp_pbe.c \
260	evp/p5_crpt.c \
261	evp/p5_crpt2.c \
262	evp/e_old.c \
263	hmac/hmac.c \
264	krb5/krb5_asn.c \
265	lhash/lhash.c \
266	lhash/lh_stats.c \
267	md4/md4_dgst.c \
268	md4/md4_one.c \
269	md5/md5_dgst.c \
270	md5/md5_one.c \
271	objects/o_names.c \
272	objects/obj_dat.c \
273	objects/obj_lib.c \
274	objects/obj_err.c \
275	ocsp/ocsp_asn.c \
276	ocsp/ocsp_cl.c \
277	ocsp/ocsp_err.c \
278	ocsp/ocsp_ext.c \
279	ocsp/ocsp_ht.c \
280	ocsp/ocsp_lib.c \
281	ocsp/ocsp_prn.c \
282	ocsp/ocsp_srv.c \
283	ocsp/ocsp_vfy.c \
284	pem/pem_sign.c \
285	pem/pem_seal.c \
286	pem/pem_info.c \
287	pem/pem_lib.c \
288	pem/pem_all.c \
289	pem/pem_err.c \
290	pem/pem_x509.c \
291	pem/pem_xaux.c \
292	pem/pem_oth.c \
293	pem/pem_pk8.c \
294	pem/pem_pkey.c \
295	pkcs12/p12_add.c \
296	pkcs12/p12_asn.c \
297	pkcs12/p12_attr.c \
298	pkcs12/p12_crpt.c \
299	pkcs12/p12_crt.c \
300	pkcs12/p12_decr.c \
301	pkcs12/p12_init.c \
302	pkcs12/p12_key.c \
303	pkcs12/p12_kiss.c \
304	pkcs12/p12_mutl.c \
305	pkcs12/p12_utl.c \
306	pkcs12/p12_npas.c \
307	pkcs12/pk12err.c \
308	pkcs12/p12_p8d.c \
309	pkcs12/p12_p8e.c \
310	pkcs7/pk7_asn1.c \
311	pkcs7/pk7_lib.c \
312	pkcs7/pkcs7err.c \
313	pkcs7/pk7_doit.c \
314	pkcs7/pk7_smime.c \
315	pkcs7/pk7_attr.c \
316	pkcs7/pk7_mime.c \
317	rand/md_rand.c \
318	rand/randfile.c \
319	rand/rand_lib.c \
320	rand/rand_err.c \
321	rand/rand_egd.c \
322	rand/rand_unix.c \
323	rc2/rc2_ecb.c \
324	rc2/rc2_skey.c \
325	rc2/rc2_cbc.c \
326	rc2/rc2cfb64.c \
327	rc2/rc2ofb64.c \
328	rc4/rc4_skey.c \
329	rc4/rc4_enc.c \
330	rsa/rsa_x931g.c \
331	rsa/rsa_eay.c \
332	rsa/rsa_eng.c \
333	rsa/rsa_gen.c \
334	rsa/rsa_lib.c \
335	rsa/rsa_sign.c \
336	rsa/rsa_saos.c \
337	rsa/rsa_err.c \
338	rsa/rsa_pk1.c \
339	rsa/rsa_ssl.c \
340	rsa/rsa_none.c \
341	rsa/rsa_oaep.c \
342	rsa/rsa_chk.c \
343	rsa/rsa_null.c \
344	rsa/rsa_pss.c \
345	rsa/rsa_x931.c \
346	rsa/rsa_asn1.c \
347	sha/sha_dgst.c \
348	sha/sha1dgst.c \
349	sha/sha_one.c \
350	sha/sha1_one.c \
351	sha/sha256.c \
352	sha/sha512.c \
353	stack/stack.c \
354	txt_db/txt_db.c \
355	ui/ui_err.c \
356	ui/ui_lib.c \
357	ui/ui_openssl.c \
358	ui/ui_util.c \
359	ui/ui_compat.c \
360	x509/x509_def.c \
361	x509/x509_d2.c \
362	x509/x509_r2x.c \
363	x509/x509_cmp.c \
364	x509/x509_obj.c \
365	x509/x509_req.c \
366	x509/x509spki.c \
367	x509/x509_vfy.c \
368	x509/x509_set.c \
369	x509/x509cset.c \
370	x509/x509rset.c \
371	x509/x509_err.c \
372	x509/x509name.c \
373	x509/x509_v3.c \
374	x509/x509_ext.c \
375	x509/x509_att.c \
376	x509/x509_vpm.c \
377	x509/x509type.c \
378	x509/x509_lu.c \
379	x509/x_all.c \
380	x509/x509_txt.c \
381	x509/x509_trs.c \
382	x509/by_file.c \
383	x509/by_dir.c \
384	x509v3/v3_bcons.c \
385	x509v3/v3_bitst.c \
386	x509v3/v3_conf.c \
387	x509v3/v3_extku.c \
388	x509v3/v3_ia5.c \
389	x509v3/v3_lib.c \
390	x509v3/v3_prn.c \
391	x509v3/v3_utl.c \
392	x509v3/v3err.c \
393	x509v3/v3_genn.c \
394	x509v3/v3_alt.c \
395	x509v3/v3_skey.c \
396	x509v3/v3_akey.c \
397	x509v3/v3_pku.c \
398	x509v3/v3_int.c \
399	x509v3/v3_enum.c \
400	x509v3/v3_sxnet.c \
401	x509v3/v3_cpols.c \
402	x509v3/v3_crld.c \
403	x509v3/v3_purp.c \
404	x509v3/v3_info.c \
405	x509v3/v3_akeya.c \
406	x509v3/v3_ocsp.c \
407	x509v3/v3_pcia.c \
408	x509v3/v3_pci.c \
409	x509v3/v3_pmaps.c \
410	x509v3/v3_pcons.c \
411	x509v3/v3_ncons.c \
412	x509v3/pcy_lib.c \
413	x509v3/pcy_cache.c \
414	x509v3/pcy_node.c \
415	x509v3/pcy_map.c \
416	x509v3/pcy_data.c \
417	x509v3/pcy_tree.c \
418	dh/dh_asn1.c \
419	dh/dh_check.c \
420	dh/dh_depr.c \
421	dh/dh_err.c \
422	dh/dh_gen.c \
423	dh/dh_key.c \
424	dh/dh_lib.c \
425	dsa/dsa_asn1.c \
426	dsa/dsa_depr.c \
427	dsa/dsa_err.c \
428	dsa/dsa_gen.c \
429	dsa/dsa_key.c \
430	dsa/dsa_lib.c \
431	dsa/dsa_ossl.c \
432	dsa/dsa_sign.c \
433	dsa/dsa_utl.c \
434	dsa/dsa_vrf.c \
435	ripemd/rmd_dgst.c \
436	ripemd/rmd_one.c \
437	evp/m_ripemd.c
438
439LOCAL_CFLAGS += -DNO_WINDOWS_BRAINDEATH
440
441include $(LOCAL_PATH)/../android-config.mk
442
443LOCAL_C_INCLUDES += \
444	external/openssl \
445	external/openssl/include \
446	external/zlib
447
448LOCAL_SHARED_LIBRARIES += libz
449
450ifneq ($(TARGET_SIMULATOR),true)
451	LOCAL_SHARED_LIBRARIES += libdl
452endif
453
454LOCAL_LDLIBS += -ldl
455
456LOCAL_MODULE:= libcrypto
457
458include $(BUILD_SHARED_LIBRARY)
459