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