Android.mk revision 8d520ff1dc2da35cdca849e982051b86468016d8
1LOCAL_PATH := $(call my-dir)
2
3WPA_BUILD_HOSTAPD := false
4ifneq ($(TARGET_SIMULATOR),true)
5  ifneq ($(BOARD_HOSTAPD_DRIVER),)
6    WPA_BUILD_HOSTAPD := true
7    CONFIG_DRIVER_$(BOARD_HOSTAPD_DRIVER) := y
8  endif
9endif
10
11include $(LOCAL_PATH)/.config
12
13# To ignore possible wrong network configurations
14L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS
15
16# To force sizeof(enum) = 4
17ifeq ($(TARGET_ARCH),arm)
18L_CFLAGS += -mabi=aapcs-linux
19endif
20
21# To allow non-ASCII characters in SSID
22L_CFLAGS += -DWPA_UNICODE_SSID
23
24# OpenSSL is configured without engines on Android
25L_CFLAGS += -DOPENSSL_NO_ENGINE
26
27INCLUDES = $(LOCAL_PATH)
28INCLUDES += $(LOCAL_PATH)/src
29INCLUDES += $(LOCAL_PATH)/src/utils
30INCLUDES += external/openssl/include
31INCLUDES += frameworks/base/cmds/keystore
32ifdef CONFIG_DRIVER_NL80211
33INCLUDES += external/libnl_2/include
34endif
35
36
37ifndef CONFIG_OS
38ifdef CONFIG_NATIVE_WINDOWS
39CONFIG_OS=win32
40else
41CONFIG_OS=unix
42endif
43endif
44
45ifeq ($(CONFIG_OS), internal)
46L_CFLAGS += -DOS_NO_C_LIB_DEFINES
47endif
48
49ifdef CONFIG_NATIVE_WINDOWS
50L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
51LIBS += -lws2_32
52endif
53
54OBJS = main.c
55OBJS += config_file.c
56
57OBJS += src/ap/hostapd.c
58OBJS += src/ap/wpa_auth_glue.c
59OBJS += src/ap/drv_callbacks.c
60OBJS += src/ap/ap_drv_ops.c
61OBJS += src/ap/utils.c
62OBJS += src/ap/authsrv.c
63OBJS += src/ap/ieee802_1x.c
64OBJS += src/ap/ap_config.c
65OBJS += src/ap/ieee802_11_auth.c
66OBJS += src/ap/sta_info.c
67OBJS += src/ap/wpa_auth.c
68OBJS += src/ap/tkip_countermeasures.c
69OBJS += src/ap/ap_mlme.c
70OBJS += src/ap/wpa_auth_ie.c
71OBJS += src/ap/preauth_auth.c
72OBJS += src/ap/pmksa_cache_auth.c
73OBJS_d =
74OBJS_p =
75LIBS =
76LIBS_c =
77HOBJS =
78LIBS_h =
79
80NEED_RC4=y
81NEED_AES=y
82NEED_MD5=y
83NEED_SHA1=y
84
85OBJS += src/drivers/drivers.c
86L_CFLAGS += -DHOSTAPD
87
88ifdef CONFIG_WPA_TRACE
89L_CFLAGS += -DWPA_TRACE
90OBJS += src/utils/trace.c
91HOBJS += src/utils/trace.c
92LDFLAGS += -rdynamic
93L_CFLAGS += -funwind-tables
94ifdef CONFIG_WPA_TRACE_BFD
95L_CFLAGS += -DWPA_TRACE_BFD
96LIBS += -lbfd
97LIBS_c += -lbfd
98LIBS_h += -lbfd
99endif
100endif
101
102OBJS += src/utils/eloop.c
103OBJS += src/utils/common.c
104OBJS += src/utils/wpa_debug.c
105OBJS += src/utils/wpabuf.c
106OBJS += src/utils/os_$(CONFIG_OS).c
107OBJS += src/utils/ip_addr.c
108
109OBJS += src/common/ieee802_11_common.c
110OBJS += src/common/wpa_common.c
111
112OBJS += src/eapol_auth/eapol_auth_sm.c
113
114
115ifndef CONFIG_NO_DUMP_STATE
116# define HOSTAPD_DUMP_STATE to include SIGUSR1 handler for dumping state to
117# a file (undefine it, if you want to save in binary size)
118L_CFLAGS += -DHOSTAPD_DUMP_STATE
119OBJS += dump_state.c
120OBJS += src/eapol_auth/eapol_auth_dump.c
121endif
122
123ifdef CONFIG_NO_RADIUS
124L_CFLAGS += -DCONFIG_NO_RADIUS
125CONFIG_NO_ACCOUNTING=y
126else
127OBJS += src/radius/radius.c
128OBJS += src/radius/radius_client.c
129endif
130
131ifdef CONFIG_NO_ACCOUNTING
132L_CFLAGS += -DCONFIG_NO_ACCOUNTING
133else
134OBJS += src/ap/accounting.c
135endif
136
137ifdef CONFIG_NO_VLAN
138L_CFLAGS += -DCONFIG_NO_VLAN
139else
140OBJS += src/ap/vlan_init.c
141endif
142
143ifdef CONFIG_NO_CTRL_IFACE
144L_CFLAGS += -DCONFIG_NO_CTRL_IFACE
145else
146OBJS += ctrl_iface.c
147OBJS += src/ap/ctrl_iface_ap.c
148endif
149
150OBJS += src/crypto/md5.c
151
152L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
153
154ifdef CONFIG_IAPP
155L_CFLAGS += -DCONFIG_IAPP
156OBJS += src/ap/iapp.c
157endif
158
159ifdef CONFIG_RSN_PREAUTH
160L_CFLAGS += -DCONFIG_RSN_PREAUTH
161CONFIG_L2_PACKET=y
162endif
163
164ifdef CONFIG_PEERKEY
165L_CFLAGS += -DCONFIG_PEERKEY
166OBJS += src/ap/peerkey_auth.c
167endif
168
169ifdef CONFIG_IEEE80211W
170L_CFLAGS += -DCONFIG_IEEE80211W
171NEED_SHA256=y
172NEED_AES_OMAC1=y
173endif
174
175ifdef CONFIG_IEEE80211R
176L_CFLAGS += -DCONFIG_IEEE80211R
177OBJS += src/ap/wpa_auth_ft.c
178NEED_SHA256=y
179NEED_AES_OMAC1=y
180NEED_AES_UNWRAP=y
181endif
182
183ifdef CONFIG_IEEE80211N
184L_CFLAGS += -DCONFIG_IEEE80211N
185endif
186
187include $(LOCAL_PATH)/src/drivers/drivers.mk
188
189OBJS += $(DRV_AP_OBJS)
190L_CFLAGS += $(DRV_AP_CFLAGS)
191LDFLAGS += $(DRV_AP_LDFLAGS)
192LIBS += $(DRV_AP_LIBS)
193
194ifdef CONFIG_L2_PACKET
195ifdef CONFIG_DNET_PCAP
196ifdef CONFIG_L2_FREEBSD
197LIBS += -lpcap
198OBJS += src/l2_packet/l2_packet_freebsd.c
199else
200LIBS += -ldnet -lpcap
201OBJS += src/l2_packet/l2_packet_pcap.c
202endif
203else
204OBJS += src/l2_packet/l2_packet_linux.c
205endif
206else
207OBJS += src/l2_packet/l2_packet_none.c
208endif
209
210
211ifdef CONFIG_EAP_MD5
212L_CFLAGS += -DEAP_SERVER_MD5
213OBJS += src/eap_server/eap_server_md5.c
214CHAP=y
215endif
216
217ifdef CONFIG_EAP_TLS
218L_CFLAGS += -DEAP_SERVER_TLS
219OBJS += src/eap_server/eap_server_tls.c
220TLS_FUNCS=y
221endif
222
223ifdef CONFIG_EAP_PEAP
224L_CFLAGS += -DEAP_SERVER_PEAP
225OBJS += src/eap_server/eap_server_peap.c
226OBJS += src/eap_common/eap_peap_common.c
227TLS_FUNCS=y
228CONFIG_EAP_MSCHAPV2=y
229endif
230
231ifdef CONFIG_EAP_TTLS
232L_CFLAGS += -DEAP_SERVER_TTLS
233OBJS += src/eap_server/eap_server_ttls.c
234TLS_FUNCS=y
235CHAP=y
236endif
237
238ifdef CONFIG_EAP_MSCHAPV2
239L_CFLAGS += -DEAP_SERVER_MSCHAPV2
240OBJS += src/eap_server/eap_server_mschapv2.c
241MS_FUNCS=y
242endif
243
244ifdef CONFIG_EAP_GTC
245L_CFLAGS += -DEAP_SERVER_GTC
246OBJS += src/eap_server/eap_server_gtc.c
247endif
248
249ifdef CONFIG_EAP_SIM
250L_CFLAGS += -DEAP_SERVER_SIM
251OBJS += src/eap_server/eap_server_sim.c
252CONFIG_EAP_SIM_COMMON=y
253NEED_AES_CBC=y
254endif
255
256ifdef CONFIG_EAP_AKA
257L_CFLAGS += -DEAP_SERVER_AKA
258OBJS += src/eap_server/eap_server_aka.c
259CONFIG_EAP_SIM_COMMON=y
260NEED_SHA256=y
261NEED_AES_CBC=y
262endif
263
264ifdef CONFIG_EAP_AKA_PRIME
265L_CFLAGS += -DEAP_SERVER_AKA_PRIME
266endif
267
268ifdef CONFIG_EAP_SIM_COMMON
269OBJS += src/eap_common/eap_sim_common.c
270# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be
271# replaced with another file implementating the interface specified in
272# eap_sim_db.h.
273OBJS += src/eap_server/eap_sim_db.c
274NEED_FIPS186_2_PRF=y
275endif
276
277ifdef CONFIG_EAP_PAX
278L_CFLAGS += -DEAP_SERVER_PAX
279OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c
280endif
281
282ifdef CONFIG_EAP_PSK
283L_CFLAGS += -DEAP_SERVER_PSK
284OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c
285NEED_AES_OMAC1=y
286NEED_AES_ENCBLOCK=y
287NEED_AES_EAX=y
288endif
289
290ifdef CONFIG_EAP_SAKE
291L_CFLAGS += -DEAP_SERVER_SAKE
292OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c
293endif
294
295ifdef CONFIG_EAP_GPSK
296L_CFLAGS += -DEAP_SERVER_GPSK
297OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c
298ifdef CONFIG_EAP_GPSK_SHA256
299L_CFLAGS += -DEAP_SERVER_GPSK_SHA256
300endif
301NEED_SHA256=y
302NEED_AES_OMAC1=y
303endif
304
305ifdef CONFIG_EAP_PWD
306L_CFLAGS += -DEAP_SERVER_PWD
307OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c
308NEED_SHA256=y
309endif
310
311ifdef CONFIG_EAP_VENDOR_TEST
312L_CFLAGS += -DEAP_SERVER_VENDOR_TEST
313OBJS += src/eap_server/eap_server_vendor_test.c
314endif
315
316ifdef CONFIG_EAP_FAST
317L_CFLAGS += -DEAP_SERVER_FAST
318OBJS += src/eap_server/eap_server_fast.c
319OBJS += src/eap_common/eap_fast_common.c
320TLS_FUNCS=y
321NEED_T_PRF=y
322NEED_AES_UNWRAP=y
323endif
324
325ifdef CONFIG_WPS
326ifdef CONFIG_WPS2
327L_CFLAGS += -DCONFIG_WPS2
328endif
329
330L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC
331OBJS += src/utils/uuid.c
332OBJS += src/ap/wps_hostapd.c
333OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c
334OBJS += src/wps/wps.c
335OBJS += src/wps/wps_common.c
336OBJS += src/wps/wps_attr_parse.c
337OBJS += src/wps/wps_attr_build.c
338OBJS += src/wps/wps_attr_process.c
339OBJS += src/wps/wps_dev_attr.c
340OBJS += src/wps/wps_enrollee.c
341OBJS += src/wps/wps_registrar.c
342NEED_DH_GROUPS=y
343NEED_SHA256=y
344NEED_BASE64=y
345NEED_AES_CBC=y
346NEED_MODEXP=y
347CONFIG_EAP=y
348
349ifdef CONFIG_WPS_UFD
350L_CFLAGS += -DCONFIG_WPS_UFD
351OBJS += src/wps/wps_ufd.c
352NEED_WPS_OOB=y
353endif
354
355ifdef CONFIG_WPS_NFC
356L_CFLAGS += -DCONFIG_WPS_NFC
357OBJS += src/wps/ndef.c
358OBJS += src/wps/wps_nfc.c
359NEED_WPS_OOB=y
360ifdef CONFIG_WPS_NFC_PN531
361PN531_PATH ?= /usr/local/src/nfc
362L_CFLAGS += -DCONFIG_WPS_NFC_PN531
363L_CFLAGS += -I${PN531_PATH}/inc
364OBJS += src/wps/wps_nfc_pn531.c
365LIBS += ${PN531_PATH}/lib/wpsnfc.dll
366LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll
367endif
368endif
369
370ifdef NEED_WPS_OOB
371L_CFLAGS += -DCONFIG_WPS_OOB
372endif
373
374ifdef CONFIG_WPS_UPNP
375L_CFLAGS += -DCONFIG_WPS_UPNP
376OBJS += src/wps/wps_upnp.c
377OBJS += src/wps/wps_upnp_ssdp.c
378OBJS += src/wps/wps_upnp_web.c
379OBJS += src/wps/wps_upnp_event.c
380OBJS += src/wps/wps_upnp_ap.c
381OBJS += src/wps/upnp_xml.c
382OBJS += src/wps/httpread.c
383OBJS += src/wps/http_client.c
384OBJS += src/wps/http_server.c
385endif
386
387ifdef CONFIG_WPS_STRICT
388L_CFLAGS += -DCONFIG_WPS_STRICT
389OBJS += src/wps/wps_validate.c
390endif
391
392ifdef CONFIG_WPS_TESTING
393L_CFLAGS += -DCONFIG_WPS_TESTING
394endif
395
396endif
397
398ifdef CONFIG_EAP_IKEV2
399L_CFLAGS += -DEAP_SERVER_IKEV2
400OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c
401OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
402NEED_DH_GROUPS=y
403NEED_DH_GROUPS_ALL=y
404NEED_MODEXP=y
405NEED_CIPHER=y
406endif
407
408ifdef CONFIG_EAP_TNC
409L_CFLAGS += -DEAP_SERVER_TNC
410OBJS += src/eap_server/eap_server_tnc.c
411OBJS += src/eap_server/tncs.c
412NEED_BASE64=y
413ifndef CONFIG_DRIVER_BSD
414LIBS += -ldl
415endif
416endif
417
418# Basic EAP functionality is needed for EAPOL
419OBJS += eap_register.c
420OBJS += src/eap_server/eap_server.c
421OBJS += src/eap_common/eap_common.c
422OBJS += src/eap_server/eap_server_methods.c
423OBJS += src/eap_server/eap_server_identity.c
424L_CFLAGS += -DEAP_SERVER_IDENTITY
425
426ifdef CONFIG_EAP
427L_CFLAGS += -DEAP_SERVER
428endif
429
430ifdef CONFIG_PKCS12
431L_CFLAGS += -DPKCS12_FUNCS
432endif
433
434ifdef MS_FUNCS
435OBJS += src/crypto/ms_funcs.c
436NEED_DES=y
437NEED_MD4=y
438endif
439
440ifdef CHAP
441OBJS += src/eap_common/chap.c
442endif
443
444ifdef TLS_FUNCS
445NEED_DES=y
446# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS)
447L_CFLAGS += -DEAP_TLS_FUNCS
448OBJS += src/eap_server/eap_server_tls_common.c
449NEED_TLS_PRF=y
450endif
451
452ifndef CONFIG_TLS
453CONFIG_TLS=openssl
454endif
455
456ifeq ($(CONFIG_TLS), openssl)
457ifdef TLS_FUNCS
458OBJS += src/crypto/tls_openssl.c
459LIBS += -lssl
460endif
461OBJS += src/crypto/crypto_openssl.c
462HOBJS += src/crypto/crypto_openssl.c
463ifdef NEED_FIPS186_2_PRF
464OBJS += src/crypto/fips_prf_openssl.c
465endif
466LIBS += -lcrypto
467LIBS_h += -lcrypto
468endif
469
470ifeq ($(CONFIG_TLS), gnutls)
471ifdef TLS_FUNCS
472OBJS += src/crypto/tls_gnutls.c
473LIBS += -lgnutls -lgpg-error
474ifdef CONFIG_GNUTLS_EXTRA
475L_CFLAGS += -DCONFIG_GNUTLS_EXTRA
476LIBS += -lgnutls-extra
477endif
478endif
479OBJS += src/crypto/crypto_gnutls.c
480HOBJS += src/crypto/crypto_gnutls.c
481ifdef NEED_FIPS186_2_PRF
482OBJS += src/crypto/fips_prf_gnutls.c
483endif
484LIBS += -lgcrypt
485LIBS_h += -lgcrypt
486CONFIG_INTERNAL_SHA256=y
487CONFIG_INTERNAL_RC4=y
488CONFIG_INTERNAL_DH_GROUP5=y
489endif
490
491ifeq ($(CONFIG_TLS), schannel)
492ifdef TLS_FUNCS
493OBJS += src/crypto/tls_schannel.c
494endif
495OBJS += src/crypto/crypto_cryptoapi.c
496OBJS_p += src/crypto/crypto_cryptoapi.c
497CONFIG_INTERNAL_SHA256=y
498CONFIG_INTERNAL_RC4=y
499CONFIG_INTERNAL_DH_GROUP5=y
500endif
501
502ifeq ($(CONFIG_TLS), nss)
503ifdef TLS_FUNCS
504OBJS += src/crypto/tls_nss.c
505LIBS += -lssl3
506endif
507OBJS += src/crypto/crypto_nss.c
508ifdef NEED_FIPS186_2_PRF
509OBJS += src/crypto/fips_prf_nss.c
510endif
511LIBS += -lnss3
512LIBS_h += -lnss3
513CONFIG_INTERNAL_MD4=y
514CONFIG_INTERNAL_DH_GROUP5=y
515endif
516
517ifeq ($(CONFIG_TLS), internal)
518ifndef CONFIG_CRYPTO
519CONFIG_CRYPTO=internal
520endif
521ifdef TLS_FUNCS
522OBJS += src/crypto/crypto_internal-rsa.c
523OBJS += src/crypto/tls_internal.c
524OBJS += src/tls/tlsv1_common.c
525OBJS += src/tls/tlsv1_record.c
526OBJS += src/tls/tlsv1_cred.c
527OBJS += src/tls/tlsv1_server.c
528OBJS += src/tls/tlsv1_server_write.c
529OBJS += src/tls/tlsv1_server_read.c
530OBJS += src/tls/asn1.c
531OBJS += src/tls/rsa.c
532OBJS += src/tls/x509v3.c
533OBJS += src/tls/pkcs1.c
534OBJS += src/tls/pkcs5.c
535OBJS += src/tls/pkcs8.c
536NEED_SHA256=y
537NEED_BASE64=y
538NEED_TLS_PRF=y
539NEED_MODEXP=y
540NEED_CIPHER=y
541L_CFLAGS += -DCONFIG_TLS_INTERNAL
542L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
543endif
544ifdef NEED_CIPHER
545NEED_DES=y
546OBJS += src/crypto/crypto_internal-cipher.c
547endif
548ifdef NEED_MODEXP
549OBJS += src/crypto/crypto_internal-modexp.c
550OBJS += src/tls/bignum.c
551endif
552ifeq ($(CONFIG_CRYPTO), libtomcrypt)
553OBJS += src/crypto/crypto_libtomcrypt.c
554LIBS += -ltomcrypt -ltfm
555LIBS_h += -ltomcrypt -ltfm
556CONFIG_INTERNAL_SHA256=y
557CONFIG_INTERNAL_RC4=y
558CONFIG_INTERNAL_DH_GROUP5=y
559endif
560ifeq ($(CONFIG_CRYPTO), internal)
561OBJS += src/crypto/crypto_internal.c
562NEED_AES_DEC=y
563L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
564ifdef CONFIG_INTERNAL_LIBTOMMATH
565L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
566ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
567L_CFLAGS += -DLTM_FAST
568endif
569else
570LIBS += -ltommath
571LIBS_h += -ltommath
572endif
573CONFIG_INTERNAL_AES=y
574CONFIG_INTERNAL_DES=y
575CONFIG_INTERNAL_SHA1=y
576CONFIG_INTERNAL_MD4=y
577CONFIG_INTERNAL_MD5=y
578CONFIG_INTERNAL_SHA256=y
579CONFIG_INTERNAL_RC4=y
580CONFIG_INTERNAL_DH_GROUP5=y
581endif
582ifeq ($(CONFIG_CRYPTO), cryptoapi)
583OBJS += src/crypto/crypto_cryptoapi.c
584OBJS_p += src/crypto/crypto_cryptoapi.c
585L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
586CONFIG_INTERNAL_SHA256=y
587CONFIG_INTERNAL_RC4=y
588endif
589endif
590
591ifeq ($(CONFIG_TLS), none)
592ifdef TLS_FUNCS
593OBJS += src/crypto/tls_none.c
594L_CFLAGS += -DEAP_TLS_NONE
595CONFIG_INTERNAL_AES=y
596CONFIG_INTERNAL_SHA1=y
597CONFIG_INTERNAL_MD5=y
598endif
599OBJS += src/crypto/crypto_none.c
600OBJS_p += src/crypto/crypto_none.c
601CONFIG_INTERNAL_SHA256=y
602CONFIG_INTERNAL_RC4=y
603endif
604
605ifndef TLS_FUNCS
606OBJS += src/crypto/tls_none.c
607ifeq ($(CONFIG_TLS), internal)
608CONFIG_INTERNAL_AES=y
609CONFIG_INTERNAL_SHA1=y
610CONFIG_INTERNAL_MD5=y
611CONFIG_INTERNAL_RC4=y
612endif
613endif
614
615AESOBJS = # none so far
616ifdef CONFIG_INTERNAL_AES
617AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c
618endif
619
620AESOBJS += src/crypto/aes-wrap.c
621ifdef NEED_AES_EAX
622AESOBJS += src/crypto/aes-eax.c
623NEED_AES_CTR=y
624endif
625ifdef NEED_AES_CTR
626AESOBJS += src/crypto/aes-ctr.c
627endif
628ifdef NEED_AES_ENCBLOCK
629AESOBJS += src/crypto/aes-encblock.c
630endif
631ifdef NEED_AES_OMAC1
632AESOBJS += src/crypto/aes-omac1.c
633endif
634ifdef NEED_AES_UNWRAP
635NEED_AES_DEC=y
636AESOBJS += src/crypto/aes-unwrap.c
637endif
638ifdef NEED_AES_CBC
639NEED_AES_DEC=y
640AESOBJS += src/crypto/aes-cbc.c
641endif
642ifdef NEED_AES_DEC
643ifdef CONFIG_INTERNAL_AES
644AESOBJS += src/crypto/aes-internal-dec.c
645endif
646endif
647ifdef NEED_AES
648OBJS += $(AESOBJS)
649endif
650
651SHA1OBJS =
652ifdef NEED_SHA1
653SHA1OBJS += src/crypto/sha1.c
654ifdef CONFIG_INTERNAL_SHA1
655SHA1OBJS += src/crypto/sha1-internal.c
656ifdef NEED_FIPS186_2_PRF
657SHA1OBJS += src/crypto/fips_prf_internal.c
658endif
659endif
660SHA1OBJS += src/crypto/sha1-pbkdf2.c
661ifdef NEED_T_PRF
662SHA1OBJS += src/crypto/sha1-tprf.c
663endif
664ifdef NEED_TLS_PRF
665SHA1OBJS += src/crypto/sha1-tlsprf.c
666endif
667endif
668
669ifdef NEED_SHA1
670OBJS += $(SHA1OBJS)
671endif
672
673ifdef NEED_MD5
674ifdef CONFIG_INTERNAL_MD5
675OBJS += src/crypto/md5-internal.c
676HOBJS += src/crypto/md5-internal.c
677endif
678endif
679
680ifdef NEED_MD4
681ifdef CONFIG_INTERNAL_MD4
682OBJS += src/crypto/md4-internal.c
683endif
684endif
685
686ifdef NEED_DES
687ifdef CONFIG_INTERNAL_DES
688OBJS += src/crypto/des-internal.c
689endif
690endif
691
692ifdef NEED_RC4
693ifdef CONFIG_INTERNAL_RC4
694OBJS += src/crypto/rc4.c
695endif
696endif
697
698ifdef NEED_SHA256
699OBJS += src/crypto/sha256.c
700ifdef CONFIG_INTERNAL_SHA256
701OBJS += src/crypto/sha256-internal.c
702endif
703endif
704
705ifdef NEED_DH_GROUPS
706OBJS += src/crypto/dh_groups.c
707endif
708ifdef NEED_DH_GROUPS_ALL
709L_CFLAGS += -DALL_DH_GROUPS
710endif
711ifdef CONFIG_INTERNAL_DH_GROUP5
712ifdef NEED_DH_GROUPS
713OBJS += src/crypto/dh_group5.c
714endif
715endif
716
717ifdef CONFIG_NO_RANDOM_POOL
718L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
719else
720OBJS += src/crypto/random.c
721HOBJS += src/crypto/random.c
722HOBJS += $(SHA1OBJS)
723HOBJS += src/crypto/md5.c
724endif
725
726ifdef CONFIG_RADIUS_SERVER
727L_CFLAGS += -DRADIUS_SERVER
728OBJS += src/radius/radius_server.c
729endif
730
731ifdef CONFIG_IPV6
732L_CFLAGS += -DCONFIG_IPV6
733endif
734
735ifdef CONFIG_DRIVER_RADIUS_ACL
736L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL
737endif
738
739ifdef CONFIG_FULL_DYNAMIC_VLAN
740# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
741# and vlan interfaces for the vlan feature.
742L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
743endif
744
745ifdef NEED_BASE64
746OBJS += src/utils/base64.c
747endif
748
749ifdef NEED_AP_MLME
750OBJS += src/ap/beacon.c
751OBJS += src/ap/wmm.c
752OBJS += src/ap/ap_list.c
753OBJS += src/ap/ieee802_11.c
754OBJS += src/ap/hw_features.c
755L_CFLAGS += -DNEED_AP_MLME
756endif
757ifdef CONFIG_IEEE80211N
758OBJS += src/ap/ieee802_11_ht.c
759endif
760
761ifdef CONFIG_P2P_MANAGER
762L_CFLAGS += -DCONFIG_P2P_MANAGER
763OBJS += src/ap/p2p_hostapd.c
764endif
765
766ifdef CONFIG_NO_STDOUT_DEBUG
767L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
768endif
769
770ifdef CONFIG_DEBUG_FILE
771L_CFLAGS += -DCONFIG_DEBUG_FILE
772endif
773
774ifdef CONFIG_ANDROID_LOG
775L_CFLAGS += -DCONFIG_ANDROID_LOG
776endif
777
778OBJS_c = hostapd_cli.c src/common/wpa_ctrl.c src/utils/os_$(CONFIG_OS).c
779ifdef CONFIG_WPA_TRACE
780OBJS_c += src/utils/trace.c
781OBJS_c += src/utils/wpa_debug.c
782endif
783
784ifeq ($(WPA_BUILD_HOSTAPD),true)
785
786########################
787
788include $(CLEAR_VARS)
789LOCAL_MODULE := hostapd_cli
790LOCAL_MODULE_TAGS := debug
791LOCAL_SHARED_LIBRARIES := libc libcutils
792LOCAL_CFLAGS := $(L_CFLAGS)
793LOCAL_SRC_FILES := $(OBJS_c)
794LOCAL_C_INCLUDES := $(INCLUDES)
795include $(BUILD_EXECUTABLE)
796
797########################
798include $(CLEAR_VARS)
799LOCAL_MODULE := hostapd
800LOCAL_MODULE_TAGS := optional
801ifdef CONFIG_DRIVER_CUSTOM
802LOCAL_STATIC_LIBRARIES := libCustomWifi
803endif
804ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),)
805LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB)
806endif
807LOCAL_SHARED_LIBRARIES := libc libcutils libcrypto libssl
808ifdef CONFIG_DRIVER_NL80211
809LOCAL_STATIC_LIBRARIES += libnl_2
810endif
811LOCAL_CFLAGS := $(L_CFLAGS)
812LOCAL_SRC_FILES := $(OBJS)
813LOCAL_C_INCLUDES := $(INCLUDES)
814include $(BUILD_EXECUTABLE)
815
816endif # ifeq ($(WPA_BUILD_HOSTAPD),true)
817