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