blob: 04060ab561642defdce178cdc3f556f7d9e5817e [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
Dmitry Shmidtf9bdef92014-04-25 10:46:36 -070027# Disable unused parameter warnings
28L_CFLAGS += -Wno-unused-parameter
29
Christopher Ferrisb6c19e02017-02-23 15:50:04 -080030# Disable macro redefined warnings
31L_CFLAGS += -Wno-macro-redefined
32
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070033# Set Android extended P2P functionality
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080034L_CFLAGS += -DANDROID_P2P
Dmitry Shmidt41712582015-06-29 11:02:15 -070035
Dmitry Shmidtb58836e2014-04-29 14:35:56 -070036ifeq ($(BOARD_HOSTAPD_PRIVATE_LIB),)
Dmitry Shmidt41712582015-06-29 11:02:15 -070037L_CFLAGS += -DANDROID_LIB_STUB
Mike J. Chen0cc49e82012-12-05 11:20:29 -080038endif
39
Jeff Johnson205f2142012-09-03 22:12:17 -070040# Use Android specific directory for control interface sockets
41L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\"
42L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/hostapd\"
43
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -080044# Use Android specific directory for hostapd_cli command completion history
45L_CFLAGS += -DCONFIG_HOSTAPD_CLI_HISTORY_DIR=\"/data/misc/wifi\"
46
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070047# To force sizeof(enum) = 4
48ifeq ($(TARGET_ARCH),arm)
49L_CFLAGS += -mabi=aapcs-linux
50endif
51
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070052INCLUDES = $(LOCAL_PATH)
53INCLUDES += $(LOCAL_PATH)/src
54INCLUDES += $(LOCAL_PATH)/src/utils
Stephen Smalleyf1396b42012-11-16 12:50:03 -050055INCLUDES += system/security/keystore/include
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070056ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -080057ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -080058INCLUDES += external/libnl/include
Dmitry Shmidtcd446452014-02-18 16:03:35 -080059else
60INCLUDES += external/libnl-headers
61endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070062endif
63
64
65ifndef CONFIG_OS
66ifdef CONFIG_NATIVE_WINDOWS
67CONFIG_OS=win32
68else
69CONFIG_OS=unix
70endif
71endif
72
73ifeq ($(CONFIG_OS), internal)
74L_CFLAGS += -DOS_NO_C_LIB_DEFINES
75endif
76
77ifdef CONFIG_NATIVE_WINDOWS
78L_CFLAGS += -DCONFIG_NATIVE_WINDOWS
79LIBS += -lws2_32
80endif
81
82OBJS = main.c
83OBJS += config_file.c
84
85OBJS += src/ap/hostapd.c
86OBJS += src/ap/wpa_auth_glue.c
87OBJS += src/ap/drv_callbacks.c
88OBJS += src/ap/ap_drv_ops.c
89OBJS += src/ap/utils.c
90OBJS += src/ap/authsrv.c
91OBJS += src/ap/ieee802_1x.c
92OBJS += src/ap/ap_config.c
Dmitry Shmidtd5e49232012-12-03 15:08:10 -080093OBJS += src/ap/eap_user_db.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070094OBJS += src/ap/ieee802_11_auth.c
95OBJS += src/ap/sta_info.c
96OBJS += src/ap/wpa_auth.c
97OBJS += src/ap/tkip_countermeasures.c
98OBJS += src/ap/ap_mlme.c
99OBJS += src/ap/wpa_auth_ie.c
100OBJS += src/ap/preauth_auth.c
101OBJS += src/ap/pmksa_cache_auth.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800102OBJS += src/ap/ieee802_11_shared.c
103OBJS += src/ap/beacon.c
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800104OBJS += src/ap/bss_load.c
Dmitry Shmidt849734c2016-05-27 09:59:01 -0700105OBJS += src/ap/neighbor_db.c
106OBJS += src/ap/rrm.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700107OBJS_d =
108OBJS_p =
109LIBS =
110LIBS_c =
111HOBJS =
112LIBS_h =
113
114NEED_RC4=y
115NEED_AES=y
116NEED_MD5=y
117NEED_SHA1=y
118
119OBJS += src/drivers/drivers.c
120L_CFLAGS += -DHOSTAPD
121
122ifdef CONFIG_WPA_TRACE
123L_CFLAGS += -DWPA_TRACE
124OBJS += src/utils/trace.c
125HOBJS += src/utils/trace.c
126LDFLAGS += -rdynamic
127L_CFLAGS += -funwind-tables
128ifdef CONFIG_WPA_TRACE_BFD
129L_CFLAGS += -DWPA_TRACE_BFD
130LIBS += -lbfd
131LIBS_c += -lbfd
132LIBS_h += -lbfd
133endif
134endif
135
136OBJS += src/utils/eloop.c
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800137
138ifdef CONFIG_ELOOP_POLL
139L_CFLAGS += -DCONFIG_ELOOP_POLL
140endif
141
142ifdef CONFIG_ELOOP_EPOLL
143L_CFLAGS += -DCONFIG_ELOOP_EPOLL
144endif
145
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700146OBJS += src/utils/common.c
147OBJS += src/utils/wpa_debug.c
148OBJS += src/utils/wpabuf.c
149OBJS += src/utils/os_$(CONFIG_OS).c
150OBJS += src/utils/ip_addr.c
151
152OBJS += src/common/ieee802_11_common.c
153OBJS += src/common/wpa_common.c
Dmitry Shmidt746bde52015-01-12 13:01:47 -0800154OBJS += src/common/hw_features_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700155
156OBJS += src/eapol_auth/eapol_auth_sm.c
157
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700158
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700159ifndef CONFIG_NO_DUMP_STATE
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800160# define HOSTAPD_DUMP_STATE to include support for dumping internal state
161# through control interface commands (undefine it, if you want to save in
162# binary size)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700163L_CFLAGS += -DHOSTAPD_DUMP_STATE
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700164OBJS += src/eapol_auth/eapol_auth_dump.c
165endif
166
167ifdef CONFIG_NO_RADIUS
168L_CFLAGS += -DCONFIG_NO_RADIUS
169CONFIG_NO_ACCOUNTING=y
170else
171OBJS += src/radius/radius.c
172OBJS += src/radius/radius_client.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700173OBJS += src/radius/radius_das.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700174endif
175
176ifdef CONFIG_NO_ACCOUNTING
177L_CFLAGS += -DCONFIG_NO_ACCOUNTING
178else
179OBJS += src/ap/accounting.c
180endif
181
182ifdef CONFIG_NO_VLAN
183L_CFLAGS += -DCONFIG_NO_VLAN
184else
185OBJS += src/ap/vlan_init.c
Dmitry Shmidte4663042016-04-04 10:07:49 -0700186OBJS += src/ap/vlan_ifconfig.c
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800187OBJS += src/ap/vlan.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700188ifdef CONFIG_FULL_DYNAMIC_VLAN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700189# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
190# and VLAN interfaces for the VLAN feature.
191L_CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
192OBJS += src/ap/vlan_full.c
193ifdef CONFIG_VLAN_NETLINK
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700194OBJS += src/ap/vlan_util.c
Dmitry Shmidte4663042016-04-04 10:07:49 -0700195else
196OBJS += src/ap/vlan_ioctl.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700197endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700198endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700199endif
200
201ifdef CONFIG_NO_CTRL_IFACE
202L_CFLAGS += -DCONFIG_NO_CTRL_IFACE
203else
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -0800204OBJS += src/common/ctrl_iface_common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700205OBJS += ctrl_iface.c
206OBJS += src/ap/ctrl_iface_ap.c
207endif
208
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700209L_CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
210
211ifdef CONFIG_IAPP
212L_CFLAGS += -DCONFIG_IAPP
213OBJS += src/ap/iapp.c
214endif
215
216ifdef CONFIG_RSN_PREAUTH
217L_CFLAGS += -DCONFIG_RSN_PREAUTH
218CONFIG_L2_PACKET=y
219endif
220
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800221ifdef CONFIG_HS20
222NEED_AES_OMAC1=y
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -0800223CONFIG_PROXYARP=y
224endif
225
226ifdef CONFIG_PROXYARP
227CONFIG_L2_PACKET=y
228endif
229
230ifdef CONFIG_SUITEB
231L_CFLAGS += -DCONFIG_SUITEB
232NEED_SHA256=y
233NEED_AES_OMAC1=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800234endif
235
Dmitry Shmidt40b07202015-01-27 13:40:23 -0800236ifdef CONFIG_SUITEB192
237L_CFLAGS += -DCONFIG_SUITEB192
238NEED_SHA384=y
239endif
240
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700241ifdef CONFIG_IEEE80211W
242L_CFLAGS += -DCONFIG_IEEE80211W
243NEED_SHA256=y
244NEED_AES_OMAC1=y
245endif
246
247ifdef CONFIG_IEEE80211R
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800248L_CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700249OBJS += src/ap/wpa_auth_ft.c
250NEED_SHA256=y
251NEED_AES_OMAC1=y
252NEED_AES_UNWRAP=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700253NEED_AES_SIV=y
254NEED_ETH_P_OUI=y
255NEED_SHA256=y
256NEED_HMAC_SHA256_KDF=y
257endif
258
259ifdef NEED_ETH_P_OUI
260L_CFLAGS += -DCONFIG_ETH_P_OUI
261OBJS += src/ap/eth_p_oui.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700262endif
263
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800264ifdef CONFIG_SAE
265L_CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800266OBJS += src/common/sae.c
267NEED_ECC=y
268NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800269endif
270
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700271ifdef CONFIG_OWE
272L_CFLAGS += -DCONFIG_OWE
273NEED_ECC=y
274NEED_HMAC_SHA256_KDF=y
275NEED_HMAC_SHA384_KDF=y
276NEED_HMAC_SHA512_KDF=y
277NEED_SHA256=y
278NEED_SHA384=y
279NEED_SHA512=y
280endif
281
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800282ifdef CONFIG_FILS
283L_CFLAGS += -DCONFIG_FILS
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800284OBJS += src/ap/fils_hlp.c
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800285NEED_SHA384=y
286NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700287ifdef CONFIG_FILS_SK_PFS
288L_CFLAGS += -DCONFIG_FILS_SK_PFS
289NEED_ECC=y
290endif
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800291endif
292
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800293ifdef CONFIG_WNM
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700294L_CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700295OBJS += src/ap/wnm_ap.c
296endif
297
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700298ifdef CONFIG_IEEE80211N
299L_CFLAGS += -DCONFIG_IEEE80211N
300endif
301
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700302ifdef CONFIG_IEEE80211AC
303L_CFLAGS += -DCONFIG_IEEE80211AC
304endif
305
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800306ifdef CONFIG_IEEE80211AX
307L_CFLAGS += -DCONFIG_IEEE80211AX
308endif
309
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800310ifdef CONFIG_MBO
311L_CFLAGS += -DCONFIG_MBO
312OBJS += src/ap/mbo_ap.c
313endif
314
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800315ifdef CONFIG_FST
316L_CFLAGS += -DCONFIG_FST
317OBJS += src/fst/fst.c
318OBJS += src/fst/fst_group.c
319OBJS += src/fst/fst_iface.c
320OBJS += src/fst/fst_session.c
321OBJS += src/fst/fst_ctrl_aux.c
322ifdef CONFIG_FST_TEST
323L_CFLAGS += -DCONFIG_FST_TEST
324endif
325ifndef CONFIG_NO_CTRL_IFACE
326OBJS += src/fst/fst_ctrl_iface.c
327endif
328endif
329
330
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700331include $(LOCAL_PATH)/src/drivers/drivers.mk
332
333OBJS += $(DRV_AP_OBJS)
334L_CFLAGS += $(DRV_AP_CFLAGS)
335LDFLAGS += $(DRV_AP_LDFLAGS)
336LIBS += $(DRV_AP_LIBS)
337
338ifdef CONFIG_L2_PACKET
339ifdef CONFIG_DNET_PCAP
340ifdef CONFIG_L2_FREEBSD
341LIBS += -lpcap
342OBJS += src/l2_packet/l2_packet_freebsd.c
343else
344LIBS += -ldnet -lpcap
345OBJS += src/l2_packet/l2_packet_pcap.c
346endif
347else
348OBJS += src/l2_packet/l2_packet_linux.c
349endif
350else
351OBJS += src/l2_packet/l2_packet_none.c
352endif
353
354
355ifdef CONFIG_EAP_MD5
356L_CFLAGS += -DEAP_SERVER_MD5
357OBJS += src/eap_server/eap_server_md5.c
358CHAP=y
359endif
360
361ifdef CONFIG_EAP_TLS
362L_CFLAGS += -DEAP_SERVER_TLS
363OBJS += src/eap_server/eap_server_tls.c
364TLS_FUNCS=y
365endif
366
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700367ifdef CONFIG_EAP_UNAUTH_TLS
368L_CFLAGS += -DEAP_SERVER_UNAUTH_TLS
369ifndef CONFIG_EAP_TLS
370OBJS += src/eap_server/eap_server_tls.c
371TLS_FUNCS=y
372endif
373endif
374
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700375ifdef CONFIG_EAP_PEAP
376L_CFLAGS += -DEAP_SERVER_PEAP
377OBJS += src/eap_server/eap_server_peap.c
378OBJS += src/eap_common/eap_peap_common.c
379TLS_FUNCS=y
380CONFIG_EAP_MSCHAPV2=y
381endif
382
383ifdef CONFIG_EAP_TTLS
384L_CFLAGS += -DEAP_SERVER_TTLS
385OBJS += src/eap_server/eap_server_ttls.c
386TLS_FUNCS=y
387CHAP=y
388endif
389
390ifdef CONFIG_EAP_MSCHAPV2
391L_CFLAGS += -DEAP_SERVER_MSCHAPV2
392OBJS += src/eap_server/eap_server_mschapv2.c
393MS_FUNCS=y
394endif
395
396ifdef CONFIG_EAP_GTC
397L_CFLAGS += -DEAP_SERVER_GTC
398OBJS += src/eap_server/eap_server_gtc.c
399endif
400
401ifdef CONFIG_EAP_SIM
402L_CFLAGS += -DEAP_SERVER_SIM
403OBJS += src/eap_server/eap_server_sim.c
404CONFIG_EAP_SIM_COMMON=y
405NEED_AES_CBC=y
406endif
407
408ifdef CONFIG_EAP_AKA
409L_CFLAGS += -DEAP_SERVER_AKA
410OBJS += src/eap_server/eap_server_aka.c
411CONFIG_EAP_SIM_COMMON=y
412NEED_SHA256=y
413NEED_AES_CBC=y
414endif
415
416ifdef CONFIG_EAP_AKA_PRIME
417L_CFLAGS += -DEAP_SERVER_AKA_PRIME
418endif
419
420ifdef CONFIG_EAP_SIM_COMMON
421OBJS += src/eap_common/eap_sim_common.c
422# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be
423# replaced with another file implementating the interface specified in
424# eap_sim_db.h.
425OBJS += src/eap_server/eap_sim_db.c
426NEED_FIPS186_2_PRF=y
427endif
428
429ifdef CONFIG_EAP_PAX
430L_CFLAGS += -DEAP_SERVER_PAX
431OBJS += src/eap_server/eap_server_pax.c src/eap_common/eap_pax_common.c
432endif
433
434ifdef CONFIG_EAP_PSK
435L_CFLAGS += -DEAP_SERVER_PSK
436OBJS += src/eap_server/eap_server_psk.c src/eap_common/eap_psk_common.c
437NEED_AES_OMAC1=y
438NEED_AES_ENCBLOCK=y
439NEED_AES_EAX=y
440endif
441
442ifdef CONFIG_EAP_SAKE
443L_CFLAGS += -DEAP_SERVER_SAKE
444OBJS += src/eap_server/eap_server_sake.c src/eap_common/eap_sake_common.c
445endif
446
447ifdef CONFIG_EAP_GPSK
448L_CFLAGS += -DEAP_SERVER_GPSK
449OBJS += src/eap_server/eap_server_gpsk.c src/eap_common/eap_gpsk_common.c
450ifdef CONFIG_EAP_GPSK_SHA256
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800451L_CFLAGS += -DEAP_GPSK_SHA256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700452endif
453NEED_SHA256=y
454NEED_AES_OMAC1=y
455endif
456
457ifdef CONFIG_EAP_PWD
458L_CFLAGS += -DEAP_SERVER_PWD
459OBJS += src/eap_server/eap_server_pwd.c src/eap_common/eap_pwd_common.c
460NEED_SHA256=y
461endif
462
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700463ifdef CONFIG_EAP_EKE
464L_CFLAGS += -DEAP_SERVER_EKE
465OBJS += src/eap_server/eap_server_eke.c src/eap_common/eap_eke_common.c
466NEED_DH_GROUPS=y
467NEED_DH_GROUPS_ALL=y
468endif
469
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700470ifdef CONFIG_EAP_VENDOR_TEST
471L_CFLAGS += -DEAP_SERVER_VENDOR_TEST
472OBJS += src/eap_server/eap_server_vendor_test.c
473endif
474
475ifdef CONFIG_EAP_FAST
476L_CFLAGS += -DEAP_SERVER_FAST
477OBJS += src/eap_server/eap_server_fast.c
478OBJS += src/eap_common/eap_fast_common.c
479TLS_FUNCS=y
480NEED_T_PRF=y
481NEED_AES_UNWRAP=y
482endif
483
484ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700485L_CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC
486OBJS += src/utils/uuid.c
487OBJS += src/ap/wps_hostapd.c
488OBJS += src/eap_server/eap_server_wsc.c src/eap_common/eap_wsc_common.c
489OBJS += src/wps/wps.c
490OBJS += src/wps/wps_common.c
491OBJS += src/wps/wps_attr_parse.c
492OBJS += src/wps/wps_attr_build.c
493OBJS += src/wps/wps_attr_process.c
494OBJS += src/wps/wps_dev_attr.c
495OBJS += src/wps/wps_enrollee.c
496OBJS += src/wps/wps_registrar.c
497NEED_DH_GROUPS=y
498NEED_SHA256=y
499NEED_BASE64=y
500NEED_AES_CBC=y
501NEED_MODEXP=y
502CONFIG_EAP=y
503
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700504ifdef CONFIG_WPS_NFC
505L_CFLAGS += -DCONFIG_WPS_NFC
506OBJS += src/wps/ndef.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700507NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700508endif
509
510ifdef NEED_WPS_OOB
511L_CFLAGS += -DCONFIG_WPS_OOB
512endif
513
514ifdef CONFIG_WPS_UPNP
515L_CFLAGS += -DCONFIG_WPS_UPNP
516OBJS += src/wps/wps_upnp.c
517OBJS += src/wps/wps_upnp_ssdp.c
518OBJS += src/wps/wps_upnp_web.c
519OBJS += src/wps/wps_upnp_event.c
520OBJS += src/wps/wps_upnp_ap.c
521OBJS += src/wps/upnp_xml.c
522OBJS += src/wps/httpread.c
523OBJS += src/wps/http_client.c
524OBJS += src/wps/http_server.c
525endif
526
527ifdef CONFIG_WPS_STRICT
528L_CFLAGS += -DCONFIG_WPS_STRICT
529OBJS += src/wps/wps_validate.c
530endif
531
532ifdef CONFIG_WPS_TESTING
533L_CFLAGS += -DCONFIG_WPS_TESTING
534endif
535
536endif
537
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700538ifdef CONFIG_DPP
539L_CFLAGS += -DCONFIG_DPP
540OBJS += src/common/dpp.c
541OBJS += src/ap/dpp_hostapd.c
542OBJS += src/ap/gas_query_ap.c
543NEED_AES_SIV=y
544NEED_HMAC_SHA256_KDF=y
545NEED_HMAC_SHA384_KDF=y
546NEED_HMAC_SHA512_KDF=y
547NEED_SHA256=y
548NEED_SHA384=y
549NEED_SHA512=y
550NEED_JSON=y
551NEED_GAS=y
552NEED_BASE64=y
553endif
554
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700555ifdef CONFIG_EAP_IKEV2
556L_CFLAGS += -DEAP_SERVER_IKEV2
557OBJS += src/eap_server/eap_server_ikev2.c src/eap_server/ikev2.c
558OBJS += src/eap_common/eap_ikev2_common.c src/eap_common/ikev2_common.c
559NEED_DH_GROUPS=y
560NEED_DH_GROUPS_ALL=y
561NEED_MODEXP=y
562NEED_CIPHER=y
563endif
564
565ifdef CONFIG_EAP_TNC
566L_CFLAGS += -DEAP_SERVER_TNC
567OBJS += src/eap_server/eap_server_tnc.c
568OBJS += src/eap_server/tncs.c
569NEED_BASE64=y
570ifndef CONFIG_DRIVER_BSD
571LIBS += -ldl
572endif
573endif
574
575# Basic EAP functionality is needed for EAPOL
576OBJS += eap_register.c
577OBJS += src/eap_server/eap_server.c
578OBJS += src/eap_common/eap_common.c
579OBJS += src/eap_server/eap_server_methods.c
580OBJS += src/eap_server/eap_server_identity.c
581L_CFLAGS += -DEAP_SERVER_IDENTITY
582
583ifdef CONFIG_EAP
584L_CFLAGS += -DEAP_SERVER
585endif
586
587ifdef CONFIG_PKCS12
588L_CFLAGS += -DPKCS12_FUNCS
589endif
590
591ifdef MS_FUNCS
592OBJS += src/crypto/ms_funcs.c
593NEED_DES=y
594NEED_MD4=y
595endif
596
597ifdef CHAP
598OBJS += src/eap_common/chap.c
599endif
600
601ifdef TLS_FUNCS
602NEED_DES=y
603# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS)
604L_CFLAGS += -DEAP_TLS_FUNCS
605OBJS += src/eap_server/eap_server_tls_common.c
606NEED_TLS_PRF=y
607endif
608
609ifndef CONFIG_TLS
610CONFIG_TLS=openssl
611endif
612
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700613ifdef CONFIG_TLSV11
614L_CFLAGS += -DCONFIG_TLSV11
615endif
616
617ifdef CONFIG_TLSV12
618L_CFLAGS += -DCONFIG_TLSV12
619NEED_SHA256=y
620endif
621
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700622ifeq ($(CONFIG_TLS), openssl)
623ifdef TLS_FUNCS
624OBJS += src/crypto/tls_openssl.c
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800625OBJS += src/crypto/tls_openssl_ocsp.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700626LIBS += -lssl
627endif
628OBJS += src/crypto/crypto_openssl.c
629HOBJS += src/crypto/crypto_openssl.c
630ifdef NEED_FIPS186_2_PRF
631OBJS += src/crypto/fips_prf_openssl.c
632endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800633NEED_SHA256=y
634NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700635LIBS += -lcrypto
636LIBS_h += -lcrypto
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700637ifndef CONFIG_TLS_DEFAULT_CIPHERS
638CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
639endif
640L_CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700641endif
642
643ifeq ($(CONFIG_TLS), gnutls)
644ifdef TLS_FUNCS
645OBJS += src/crypto/tls_gnutls.c
646LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700647endif
648OBJS += src/crypto/crypto_gnutls.c
649HOBJS += src/crypto/crypto_gnutls.c
650ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -0700651OBJS += src/crypto/fips_prf_internal.c
652OBJS += src/crypto/sha1-internal.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700653endif
654LIBS += -lgcrypt
655LIBS_h += -lgcrypt
656CONFIG_INTERNAL_SHA256=y
657CONFIG_INTERNAL_RC4=y
658CONFIG_INTERNAL_DH_GROUP5=y
659endif
660
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700661ifeq ($(CONFIG_TLS), internal)
662ifndef CONFIG_CRYPTO
663CONFIG_CRYPTO=internal
664endif
665ifdef TLS_FUNCS
666OBJS += src/crypto/crypto_internal-rsa.c
667OBJS += src/crypto/tls_internal.c
668OBJS += src/tls/tlsv1_common.c
669OBJS += src/tls/tlsv1_record.c
670OBJS += src/tls/tlsv1_cred.c
671OBJS += src/tls/tlsv1_server.c
672OBJS += src/tls/tlsv1_server_write.c
673OBJS += src/tls/tlsv1_server_read.c
674OBJS += src/tls/asn1.c
675OBJS += src/tls/rsa.c
676OBJS += src/tls/x509v3.c
677OBJS += src/tls/pkcs1.c
678OBJS += src/tls/pkcs5.c
679OBJS += src/tls/pkcs8.c
680NEED_SHA256=y
681NEED_BASE64=y
682NEED_TLS_PRF=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700683ifdef CONFIG_TLSV12
684NEED_TLS_PRF_SHA256=y
685endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700686NEED_MODEXP=y
687NEED_CIPHER=y
688L_CFLAGS += -DCONFIG_TLS_INTERNAL
689L_CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
690endif
691ifdef NEED_CIPHER
692NEED_DES=y
693OBJS += src/crypto/crypto_internal-cipher.c
694endif
695ifdef NEED_MODEXP
696OBJS += src/crypto/crypto_internal-modexp.c
697OBJS += src/tls/bignum.c
698endif
699ifeq ($(CONFIG_CRYPTO), libtomcrypt)
700OBJS += src/crypto/crypto_libtomcrypt.c
701LIBS += -ltomcrypt -ltfm
702LIBS_h += -ltomcrypt -ltfm
703CONFIG_INTERNAL_SHA256=y
704CONFIG_INTERNAL_RC4=y
705CONFIG_INTERNAL_DH_GROUP5=y
706endif
707ifeq ($(CONFIG_CRYPTO), internal)
708OBJS += src/crypto/crypto_internal.c
709NEED_AES_DEC=y
710L_CFLAGS += -DCONFIG_CRYPTO_INTERNAL
711ifdef CONFIG_INTERNAL_LIBTOMMATH
712L_CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
713ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
714L_CFLAGS += -DLTM_FAST
715endif
716else
717LIBS += -ltommath
718LIBS_h += -ltommath
719endif
720CONFIG_INTERNAL_AES=y
721CONFIG_INTERNAL_DES=y
722CONFIG_INTERNAL_SHA1=y
723CONFIG_INTERNAL_MD4=y
724CONFIG_INTERNAL_MD5=y
725CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800726CONFIG_INTERNAL_SHA384=y
727CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700728CONFIG_INTERNAL_RC4=y
729CONFIG_INTERNAL_DH_GROUP5=y
730endif
731ifeq ($(CONFIG_CRYPTO), cryptoapi)
732OBJS += src/crypto/crypto_cryptoapi.c
733OBJS_p += src/crypto/crypto_cryptoapi.c
734L_CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
735CONFIG_INTERNAL_SHA256=y
736CONFIG_INTERNAL_RC4=y
737endif
738endif
739
740ifeq ($(CONFIG_TLS), none)
741ifdef TLS_FUNCS
742OBJS += src/crypto/tls_none.c
743L_CFLAGS += -DEAP_TLS_NONE
744CONFIG_INTERNAL_AES=y
745CONFIG_INTERNAL_SHA1=y
746CONFIG_INTERNAL_MD5=y
747endif
748OBJS += src/crypto/crypto_none.c
749OBJS_p += src/crypto/crypto_none.c
750CONFIG_INTERNAL_SHA256=y
751CONFIG_INTERNAL_RC4=y
752endif
753
754ifndef TLS_FUNCS
755OBJS += src/crypto/tls_none.c
756ifeq ($(CONFIG_TLS), internal)
757CONFIG_INTERNAL_AES=y
758CONFIG_INTERNAL_SHA1=y
759CONFIG_INTERNAL_MD5=y
760CONFIG_INTERNAL_RC4=y
761endif
762endif
763
764AESOBJS = # none so far
765ifdef CONFIG_INTERNAL_AES
766AESOBJS += src/crypto/aes-internal.c src/crypto/aes-internal-enc.c
767endif
768
Dmitry Shmidtaff761d2015-02-06 10:50:36 -0800769ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700770AESOBJS += src/crypto/aes-wrap.c
Dmitry Shmidtaff761d2015-02-06 10:50:36 -0800771endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700772ifdef NEED_AES_EAX
773AESOBJS += src/crypto/aes-eax.c
774NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700775NEED_AES_OMAC1=y
776endif
777ifdef NEED_AES_SIV
778AESOBJS += src/crypto/aes-siv.c
779NEED_AES_CTR=y
780NEED_AES_OMAC1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700781endif
782ifdef NEED_AES_CTR
783AESOBJS += src/crypto/aes-ctr.c
784endif
785ifdef NEED_AES_ENCBLOCK
786AESOBJS += src/crypto/aes-encblock.c
787endif
788ifdef NEED_AES_OMAC1
789AESOBJS += src/crypto/aes-omac1.c
790endif
791ifdef NEED_AES_UNWRAP
Dmitry Shmidtaff761d2015-02-06 10:50:36 -0800792ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700793NEED_AES_DEC=y
794AESOBJS += src/crypto/aes-unwrap.c
795endif
Dmitry Shmidtaff761d2015-02-06 10:50:36 -0800796endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700797ifdef NEED_AES_CBC
798NEED_AES_DEC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700799ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700800AESOBJS += src/crypto/aes-cbc.c
801endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700802endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700803ifdef NEED_AES_DEC
804ifdef CONFIG_INTERNAL_AES
805AESOBJS += src/crypto/aes-internal-dec.c
806endif
807endif
808ifdef NEED_AES
809OBJS += $(AESOBJS)
810endif
811
812SHA1OBJS =
813ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700814ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700815SHA1OBJS += src/crypto/sha1.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700816endif
817SHA1OBJS += src/crypto/sha1-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700818ifdef CONFIG_INTERNAL_SHA1
819SHA1OBJS += src/crypto/sha1-internal.c
820ifdef NEED_FIPS186_2_PRF
821SHA1OBJS += src/crypto/fips_prf_internal.c
822endif
823endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700824ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700825SHA1OBJS += src/crypto/sha1-pbkdf2.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700826endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700827ifdef NEED_T_PRF
828SHA1OBJS += src/crypto/sha1-tprf.c
829endif
830ifdef NEED_TLS_PRF
831SHA1OBJS += src/crypto/sha1-tlsprf.c
832endif
833endif
834
835ifdef NEED_SHA1
836OBJS += $(SHA1OBJS)
837endif
838
Dmitry Shmidtaff761d2015-02-06 10:50:36 -0800839ifneq ($(CONFIG_TLS), openssl)
840OBJS += src/crypto/md5.c
841endif
842
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700843ifdef NEED_MD5
844ifdef CONFIG_INTERNAL_MD5
845OBJS += src/crypto/md5-internal.c
846HOBJS += src/crypto/md5-internal.c
847endif
848endif
849
850ifdef NEED_MD4
851ifdef CONFIG_INTERNAL_MD4
852OBJS += src/crypto/md4-internal.c
853endif
854endif
855
856ifdef NEED_DES
857ifdef CONFIG_INTERNAL_DES
858OBJS += src/crypto/des-internal.c
859endif
860endif
861
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800862ifdef CONFIG_NO_RC4
863L_CFLAGS += -DCONFIG_NO_RC4
864endif
865
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700866ifdef NEED_RC4
867ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800868ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700869OBJS += src/crypto/rc4.c
870endif
871endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800872endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700873
874ifdef NEED_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700875L_CFLAGS += -DCONFIG_SHA256
876ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700877OBJS += src/crypto/sha256.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700878endif
879OBJS += src/crypto/sha256-prf.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700880ifdef CONFIG_INTERNAL_SHA256
881OBJS += src/crypto/sha256-internal.c
882endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700883ifdef NEED_TLS_PRF_SHA256
884OBJS += src/crypto/sha256-tlsprf.c
885endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700886ifdef NEED_HMAC_SHA256_KDF
887OBJS += src/crypto/sha256-kdf.c
888endif
889ifdef NEED_HMAC_SHA384_KDF
890OBJS += src/crypto/sha384-kdf.c
891endif
892ifdef NEED_HMAC_SHA512_KDF
893OBJS += src/crypto/sha512-kdf.c
894endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700895endif
Dmitry Shmidt40b07202015-01-27 13:40:23 -0800896ifdef NEED_SHA384
897L_CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800898ifneq ($(CONFIG_TLS), openssl)
899OBJS += src/crypto/sha384.c
900endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800901OBJS += src/crypto/sha384-prf.c
Dmitry Shmidt40b07202015-01-27 13:40:23 -0800902endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700903ifdef NEED_SHA512
904L_CFLAGS += -DCONFIG_SHA512
905ifneq ($(CONFIG_TLS), openssl)
906ifneq ($(CONFIG_TLS), linux)
907OBJS += src/crypto/sha512.c
908endif
909endif
910OBJS += src/crypto/sha512-prf.c
911endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700912
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800913ifdef CONFIG_INTERNAL_SHA384
914L_CFLAGS += -DCONFIG_INTERNAL_SHA384
915OBJS += src/crypto/sha384-internal.c
916endif
917
918ifdef CONFIG_INTERNAL_SHA512
919L_CFLAGS += -DCONFIG_INTERNAL_SHA512
920OBJS += src/crypto/sha512-internal.c
921endif
922
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700923ifdef NEED_DH_GROUPS
924OBJS += src/crypto/dh_groups.c
925endif
926ifdef NEED_DH_GROUPS_ALL
927L_CFLAGS += -DALL_DH_GROUPS
928endif
929ifdef CONFIG_INTERNAL_DH_GROUP5
930ifdef NEED_DH_GROUPS
931OBJS += src/crypto/dh_group5.c
932endif
933endif
934
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800935ifdef NEED_ECC
936L_CFLAGS += -DCONFIG_ECC
937endif
938
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700939ifdef CONFIG_NO_RANDOM_POOL
940L_CFLAGS += -DCONFIG_NO_RANDOM_POOL
941else
942OBJS += src/crypto/random.c
943HOBJS += src/crypto/random.c
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700944HOBJS += src/utils/eloop.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700945HOBJS += $(SHA1OBJS)
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700946ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700947HOBJS += src/crypto/md5.c
948endif
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700949endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700950
951ifdef CONFIG_RADIUS_SERVER
952L_CFLAGS += -DRADIUS_SERVER
953OBJS += src/radius/radius_server.c
954endif
955
956ifdef CONFIG_IPV6
957L_CFLAGS += -DCONFIG_IPV6
958endif
959
960ifdef CONFIG_DRIVER_RADIUS_ACL
961L_CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL
962endif
963
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700964ifdef NEED_BASE64
965OBJS += src/utils/base64.c
966endif
967
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700968ifdef NEED_JSON
969OBJS += src/utils/json.c
970L_CFLAGS += -DCONFIG_JSON
971endif
972
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700973ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700974OBJS += src/ap/wmm.c
975OBJS += src/ap/ap_list.c
976OBJS += src/ap/ieee802_11.c
977OBJS += src/ap/hw_features.c
Dmitry Shmidt051af732013-10-22 13:52:46 -0700978OBJS += src/ap/dfs.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700979L_CFLAGS += -DNEED_AP_MLME
980endif
981ifdef CONFIG_IEEE80211N
982OBJS += src/ap/ieee802_11_ht.c
983endif
984
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700985ifdef CONFIG_IEEE80211AC
986OBJS += src/ap/ieee802_11_vht.c
987endif
988
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800989ifdef CONFIG_IEEE80211AX
990OBJS += src/ap/ieee802_11_he.c
991endif
992
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700993ifdef CONFIG_P2P_MANAGER
994L_CFLAGS += -DCONFIG_P2P_MANAGER
995OBJS += src/ap/p2p_hostapd.c
996endif
997
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700998ifdef CONFIG_HS20
999L_CFLAGS += -DCONFIG_HS20
1000OBJS += src/ap/hs20.c
1001CONFIG_INTERWORKING=y
1002endif
1003
1004ifdef CONFIG_INTERWORKING
1005L_CFLAGS += -DCONFIG_INTERWORKING
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001006NEED_GAS=y
1007endif
1008
1009ifdef NEED_GAS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001010OBJS += src/common/gas.c
1011OBJS += src/ap/gas_serv.c
1012endif
1013
Dmitry Shmidtfb45fd52015-01-05 13:08:17 -08001014ifdef CONFIG_PROXYARP
1015L_CFLAGS += -DCONFIG_PROXYARP
1016OBJS += src/ap/x_snoop.c
1017OBJS += src/ap/dhcp_snoop.c
1018ifdef CONFIG_IPV6
1019OBJS += src/ap/ndisc_snoop.c
1020endif
1021endif
1022
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001023OBJS += src/drivers/driver_common.c
1024
Dmitry Shmidt54605472013-11-08 11:10:19 -08001025ifdef CONFIG_ACS
1026L_CFLAGS += -DCONFIG_ACS
1027OBJS += src/ap/acs.c
1028LIBS += -lm
1029endif
1030
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001031ifdef CONFIG_NO_STDOUT_DEBUG
1032L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1033endif
1034
Paul Stewart092955c2017-02-06 09:13:09 -08001035ifdef CONFIG_DEBUG_SYSLOG
1036L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
1037endif
1038
Dmitry Shmidt54605472013-11-08 11:10:19 -08001039ifdef CONFIG_DEBUG_LINUX_TRACING
1040L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1041endif
1042
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001043ifdef CONFIG_DEBUG_FILE
1044L_CFLAGS += -DCONFIG_DEBUG_FILE
1045endif
1046
1047ifdef CONFIG_ANDROID_LOG
1048L_CFLAGS += -DCONFIG_ANDROID_LOG
1049endif
1050
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -07001051OBJS_c = hostapd_cli.c
1052OBJS_c += src/common/wpa_ctrl.c
1053OBJS_c += src/utils/os_$(CONFIG_OS).c
1054OBJS_c += src/common/cli.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001055OBJS_c += src/utils/eloop.c
Dmitry Shmidta3dc3092015-06-23 11:21:28 -07001056OBJS_c += src/utils/common.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001057ifdef CONFIG_WPA_TRACE
1058OBJS_c += src/utils/trace.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001059endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001060OBJS_c += src/utils/wpa_debug.c
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001061ifdef CONFIG_WPA_CLI_EDIT
1062OBJS_c += src/utils/edit.c
1063else
1064OBJS_c += src/utils/edit_simple.c
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001065endif
1066
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001067########################
1068
1069include $(CLEAR_VARS)
1070LOCAL_MODULE := hostapd_cli
1071LOCAL_MODULE_TAGS := debug
Po-Chien Hsueh2051e4b2017-02-10 11:34:58 +08001072LOCAL_PROPRIETARY_MODULE := true
Ying Wange93dd112013-04-09 21:53:29 -07001073LOCAL_SHARED_LIBRARIES := libc libcutils liblog
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001074LOCAL_CFLAGS := $(L_CFLAGS)
1075LOCAL_SRC_FILES := $(OBJS_c)
1076LOCAL_C_INCLUDES := $(INCLUDES)
1077include $(BUILD_EXECUTABLE)
1078
1079########################
1080include $(CLEAR_VARS)
1081LOCAL_MODULE := hostapd
1082LOCAL_MODULE_TAGS := optional
Po-Chien Hsueh2051e4b2017-02-10 11:34:58 +08001083LOCAL_PROPRIETARY_MODULE := true
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001084ifdef CONFIG_DRIVER_CUSTOM
1085LOCAL_STATIC_LIBRARIES := libCustomWifi
1086endif
1087ifneq ($(BOARD_HOSTAPD_PRIVATE_LIB),)
1088LOCAL_STATIC_LIBRARIES += $(BOARD_HOSTAPD_PRIVATE_LIB)
1089endif
Ying Wange93dd112013-04-09 21:53:29 -07001090LOCAL_SHARED_LIBRARIES := libc libcutils liblog libcrypto libssl
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001091ifdef CONFIG_DRIVER_NL80211
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001092ifneq ($(wildcard external/libnl),)
Dmitry Shmidtd620e6d2014-02-18 11:07:59 -08001093LOCAL_SHARED_LIBRARIES += libnl
Dmitry Shmidtcd446452014-02-18 16:03:35 -08001094else
1095LOCAL_STATIC_LIBRARIES += libnl_2
1096endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001097endif
1098LOCAL_CFLAGS := $(L_CFLAGS)
1099LOCAL_SRC_FILES := $(OBJS)
1100LOCAL_C_INCLUDES := $(INCLUDES)
Christopher Wiley5ec95102016-07-13 10:34:47 -07001101LOCAL_INIT_RC := hostapd.android.rc
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001102include $(BUILD_EXECUTABLE)
1103
1104endif # ifeq ($(WPA_BUILD_HOSTAPD),true)