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