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