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