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