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