OSDN Git Service

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