OSDN Git Service

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