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