blob: 4c31ba91ef284a0323908000928d852346666dfe [file] [log] [blame]
Hai Shalom899fcc72020-10-19 14:38:18 -07001ALL=hostapd hostapd_cli
2CONFIG_FILE = .config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07003
Hai Shalom899fcc72020-10-19 14:38:18 -07004include ../src/build.rules
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07005
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -08006ifdef LIBS
7# If LIBS is set with some global build system defaults, clone those for
8# LIBS_c, LIBS_h, and LIBS_n to cover hostapd_cli, hlr_auc_gw, and
9# nt_password_hash as well.
10ifndef LIBS_c
11LIBS_c := $(LIBS)
12endif
13ifndef LIBS_h
14LIBS_h := $(LIBS)
15endif
16ifndef LIBS_n
17LIBS_n := $(LIBS)
18endif
Hai Shalom899fcc72020-10-19 14:38:18 -070019ifndef LIBS_s
20LIBS_s := $(LIBS)
21endif
Dmitry Shmidt014a3ff2015-12-28 13:27:49 -080022endif
23
Dmitry Shmidt216983b2015-02-06 10:50:36 -080024CFLAGS += $(EXTRA_CFLAGS)
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080025CFLAGS += -I$(abspath ../src)
26CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070027
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -080028export BINDIR ?= /usr/local/bin/
29
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080030ifndef CONFIG_NO_GITVER
31# Add VERSION_STR postfix for builds from a git repository
32ifeq ($(wildcard ../.git),../.git)
33GITVER := $(shell git describe --dirty=+)
34ifneq ($(GITVER),)
35CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
36endif
37endif
38endif
39
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080040ifdef CONFIG_TESTING_OPTIONS
41CFLAGS += -DCONFIG_TESTING_OPTIONS
42CONFIG_WPS_TESTING=y
43endif
44
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070045ifndef CONFIG_OS
46ifdef CONFIG_NATIVE_WINDOWS
47CONFIG_OS=win32
48else
49CONFIG_OS=unix
50endif
51endif
52
53ifeq ($(CONFIG_OS), internal)
54CFLAGS += -DOS_NO_C_LIB_DEFINES
55endif
56
57ifdef CONFIG_NATIVE_WINDOWS
58CFLAGS += -DCONFIG_NATIVE_WINDOWS
59LIBS += -lws2_32
60endif
61
62OBJS += main.o
63OBJS += config_file.o
64
65OBJS += ../src/ap/hostapd.o
66OBJS += ../src/ap/wpa_auth_glue.o
67OBJS += ../src/ap/drv_callbacks.o
68OBJS += ../src/ap/ap_drv_ops.o
69OBJS += ../src/ap/utils.o
70OBJS += ../src/ap/authsrv.o
71OBJS += ../src/ap/ieee802_1x.o
72OBJS += ../src/ap/ap_config.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -080073OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070074OBJS += ../src/ap/ieee802_11_auth.o
75OBJS += ../src/ap/sta_info.o
76OBJS += ../src/ap/wpa_auth.o
77OBJS += ../src/ap/tkip_countermeasures.o
78OBJS += ../src/ap/ap_mlme.o
79OBJS += ../src/ap/wpa_auth_ie.o
80OBJS += ../src/ap/preauth_auth.o
81OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080082OBJS += ../src/ap/ieee802_11_shared.o
83OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -080084OBJS += ../src/ap/bss_load.o
Dmitry Shmidt849734c2016-05-27 09:59:01 -070085OBJS += ../src/ap/neighbor_db.o
86OBJS += ../src/ap/rrm.o
Sunil Ravi99c035e2024-07-12 01:42:03 +000087OBJS += ../src/common/ptksa_cache.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080088
Dmitry Shmidt7f2c7532016-08-15 09:48:12 -070089OBJS_c = hostapd_cli.o
90OBJS_c += ../src/common/wpa_ctrl.o
91OBJS_c += ../src/utils/os_$(CONFIG_OS).o
92OBJS_c += ../src/common/cli.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070093
94NEED_RC4=y
95NEED_AES=y
96NEED_MD5=y
97NEED_SHA1=y
98
99OBJS += ../src/drivers/drivers.o
100CFLAGS += -DHOSTAPD
101
Dmitry Shmidtaca489e2016-09-28 15:44:14 -0700102ifdef CONFIG_TAXONOMY
103CFLAGS += -DCONFIG_TAXONOMY
104OBJS += ../src/ap/taxonomy.o
105endif
106
Dmitry Shmidt7f93d6f2014-02-21 11:22:49 -0800107ifdef CONFIG_MODULE_TESTS
108CFLAGS += -DCONFIG_MODULE_TESTS
109OBJS += hapd_module_tests.o
110endif
111
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700112ifdef CONFIG_WPA_TRACE
113CFLAGS += -DWPA_TRACE
114OBJS += ../src/utils/trace.o
115HOBJS += ../src/utils/trace.o
116LDFLAGS += -rdynamic
117CFLAGS += -funwind-tables
118ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -0800119CFLAGS += -DPACKAGE="hostapd" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800120LIBS += -lbfd -ldl -liberty -lz
121LIBS_c += -lbfd -ldl -liberty -lz
122LIBS_h += -lbfd -ldl -liberty -lz
Hai Shalomc3565922019-10-28 11:58:20 -0700123LIBS_n += -lbfd -ldl -liberty -lz
Hai Shalom899fcc72020-10-19 14:38:18 -0700124LIBS_s += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700125endif
126endif
127
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800128ifndef CONFIG_ELOOP
129CONFIG_ELOOP=eloop
130endif
131OBJS += ../src/utils/$(CONFIG_ELOOP).o
132OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800133
134ifeq ($(CONFIG_ELOOP), eloop)
135# Using glibc < 2.17 requires -lrt for clock_gettime()
136LIBS += -lrt
137LIBS_c += -lrt
138LIBS_h += -lrt
Dmitry Shmidtbd14a572014-02-18 10:33:49 -0800139LIBS_n += -lrt
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800140endif
141
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800142ifdef CONFIG_ELOOP_POLL
143CFLAGS += -DCONFIG_ELOOP_POLL
144endif
145
146ifdef CONFIG_ELOOP_EPOLL
147CFLAGS += -DCONFIG_ELOOP_EPOLL
148endif
149
Dmitry Shmidtb97e4282016-02-08 10:16:07 -0800150ifdef CONFIG_ELOOP_KQUEUE
151CFLAGS += -DCONFIG_ELOOP_KQUEUE
152endif
153
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700154OBJS += ../src/utils/common.o
Dmitry Shmidta3dc3092015-06-23 11:21:28 -0700155OBJS_c += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700156OBJS += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800157OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700158OBJS += ../src/utils/wpabuf.o
159OBJS += ../src/utils/os_$(CONFIG_OS).o
160OBJS += ../src/utils/ip_addr.o
Hai Shalomfdcde762020-04-02 11:19:20 -0700161OBJS += ../src/utils/crc32.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700162
163OBJS += ../src/common/ieee802_11_common.o
164OBJS += ../src/common/wpa_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -0800165OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700166
167OBJS += ../src/eapol_auth/eapol_auth_sm.o
168
169
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800170ifdef CONFIG_CODE_COVERAGE
Sunil Ravib0ac25f2024-07-12 01:42:03 +0000171CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800172LIBS += -lgcov
173LIBS_c += -lgcov
174LIBS_h += -lgcov
175LIBS_n += -lgcov
176endif
177
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700178ifndef CONFIG_NO_DUMP_STATE
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800179# define HOSTAPD_DUMP_STATE to include support for dumping internal state
180# through control interface commands (undefine it, if you want to save in
181# binary size)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700182CFLAGS += -DHOSTAPD_DUMP_STATE
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700183OBJS += ../src/eapol_auth/eapol_auth_dump.o
184endif
185
186ifdef CONFIG_NO_RADIUS
187CFLAGS += -DCONFIG_NO_RADIUS
188CONFIG_NO_ACCOUNTING=y
189else
190OBJS += ../src/radius/radius.o
191OBJS += ../src/radius/radius_client.o
Dmitry Shmidt04949592012-07-19 12:16:46 -0700192OBJS += ../src/radius/radius_das.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700193endif
194
195ifdef CONFIG_NO_ACCOUNTING
196CFLAGS += -DCONFIG_NO_ACCOUNTING
197else
198OBJS += ../src/ap/accounting.o
199endif
200
201ifdef CONFIG_NO_VLAN
202CFLAGS += -DCONFIG_NO_VLAN
203else
204OBJS += ../src/ap/vlan_init.o
Dmitry Shmidte4663042016-04-04 10:07:49 -0700205OBJS += ../src/ap/vlan_ifconfig.o
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800206OBJS += ../src/ap/vlan.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700207ifdef CONFIG_FULL_DYNAMIC_VLAN
Dmitry Shmidte4663042016-04-04 10:07:49 -0700208# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
209# and VLAN interfaces for the VLAN feature.
210CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
211OBJS += ../src/ap/vlan_full.o
212ifdef CONFIG_VLAN_NETLINK
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700213OBJS += ../src/ap/vlan_util.o
Dmitry Shmidte4663042016-04-04 10:07:49 -0700214else
215OBJS += ../src/ap/vlan_ioctl.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700216endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700217endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700218endif
219
220ifdef CONFIG_NO_CTRL_IFACE
221CFLAGS += -DCONFIG_NO_CTRL_IFACE
222else
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -0800223ifeq ($(CONFIG_CTRL_IFACE), udp)
224CFLAGS += -DCONFIG_CTRL_IFACE_UDP
225else
226ifeq ($(CONFIG_CTRL_IFACE), udp6)
227CFLAGS += -DCONFIG_CTRL_IFACE_UDP
228CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
229else
230ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
231CFLAGS += -DCONFIG_CTRL_IFACE_UDP
232CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
233else
234ifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
235CFLAGS += -DCONFIG_CTRL_IFACE_UDP
236CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
237CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
238else
239CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
240endif
241endif
242endif
243endif
244OBJS += ../src/common/ctrl_iface_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700245OBJS += ctrl_iface.o
246OBJS += ../src/ap/ctrl_iface_ap.o
247endif
248
Dmitry Shmidt31a29cc2016-03-09 15:58:17 -0800249ifndef CONFIG_NO_CTRL_IFACE
250CFLAGS += -DCONFIG_CTRL_IFACE
251endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700252
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700253ifdef CONFIG_RSN_PREAUTH
254CFLAGS += -DCONFIG_RSN_PREAUTH
255CONFIG_L2_PACKET=y
256endif
257
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800258ifdef CONFIG_HS20
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800259CONFIG_PROXYARP=y
260endif
261
262ifdef CONFIG_PROXYARP
263CONFIG_L2_PACKET=y
264endif
265
266ifdef CONFIG_SUITEB
267CFLAGS += -DCONFIG_SUITEB
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800268endif
269
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800270ifdef CONFIG_SUITEB192
271CFLAGS += -DCONFIG_SUITEB192
272NEED_SHA384=y
273endif
274
Hai Shalom74f70d42019-02-11 14:42:39 -0800275ifdef CONFIG_OCV
276CFLAGS += -DCONFIG_OCV
277OBJS += ../src/common/ocv.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700278endif
279
Sunil Ravib0ac25f2024-07-12 01:42:03 +0000280NEED_AES_UNWRAP=y
281
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700282ifdef CONFIG_IEEE80211R
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800283CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700284OBJS += ../src/ap/wpa_auth_ft.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700285NEED_AES_UNWRAP=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700286NEED_AES_SIV=y
287NEED_ETH_P_OUI=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700288NEED_HMAC_SHA256_KDF=y
289endif
290
291ifdef NEED_ETH_P_OUI
292CFLAGS += -DCONFIG_ETH_P_OUI
293OBJS += ../src/ap/eth_p_oui.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700294endif
295
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800296ifdef CONFIG_SAE
297CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800298OBJS += ../src/common/sae.o
Hai Shalom899fcc72020-10-19 14:38:18 -0700299ifdef CONFIG_SAE_PK
300CFLAGS += -DCONFIG_SAE_PK
Sunil8cd6f4d2022-06-28 18:40:46 +0000301NEED_AES_SIV=y
Sunil Ravi79e6c4f2025-01-04 00:47:06 +0000302NEED_BASE64=y
Hai Shalom899fcc72020-10-19 14:38:18 -0700303OBJS += ../src/common/sae_pk.o
304endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800305NEED_ECC=y
306NEED_DH_GROUPS=y
Hai Shalomb755a2a2020-04-23 21:49:02 -0700307NEED_HMAC_SHA256_KDF=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700308NEED_AP_MLME=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700309NEED_DRAGONFLY=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800310endif
311
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700312ifdef CONFIG_OWE
313CFLAGS += -DCONFIG_OWE
314NEED_ECC=y
315NEED_HMAC_SHA256_KDF=y
316NEED_HMAC_SHA384_KDF=y
317NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700318NEED_SHA384=y
319NEED_SHA512=y
320endif
321
Jimmy Chencaaac072019-09-16 16:36:06 +0800322ifdef CONFIG_WAPI_INTERFACE
323L_CFLAGS += -DCONFIG_WAPI_INTERFACE
324endif
325
Hai Shalom81f62d82019-07-22 12:10:00 -0700326ifdef CONFIG_AIRTIME_POLICY
327CFLAGS += -DCONFIG_AIRTIME_POLICY
328OBJS += ../src/ap/airtime_policy.o
329endif
330
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800331ifdef CONFIG_FILS
332CFLAGS += -DCONFIG_FILS
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800333OBJS += ../src/ap/fils_hlp.o
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800334NEED_SHA384=y
335NEED_AES_SIV=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700336ifdef CONFIG_FILS_SK_PFS
337CFLAGS += -DCONFIG_FILS_SK_PFS
338NEED_ECC=y
339endif
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800340endif
341
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800342ifdef CONFIG_WNM
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700343CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700344OBJS += ../src/ap/wnm_ap.o
345endif
346
Dmitry Shmidt04949592012-07-19 12:16:46 -0700347ifdef CONFIG_IEEE80211AC
348CFLAGS += -DCONFIG_IEEE80211AC
349endif
350
Sunil Ravia04bd252022-05-02 22:54:18 -0700351ifdef CONFIG_IEEE80211BE
352CONFIG_IEEE80211AX=y
353CFLAGS += -DCONFIG_IEEE80211BE
354OBJS += ../src/ap/ieee802_11_eht.o
355endif
356
Dmitry Shmidtebd93af2017-02-21 13:40:44 -0800357ifdef CONFIG_IEEE80211AX
358CFLAGS += -DCONFIG_IEEE80211AX
359OBJS += ../src/ap/ieee802_11_he.o
360endif
361
Dmitry Shmidt57c2d392016-02-23 13:40:19 -0800362ifdef CONFIG_MBO
363CFLAGS += -DCONFIG_MBO
364OBJS += ../src/ap/mbo_ap.o
365endif
366
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700367include ../src/drivers/drivers.mak
368OBJS += $(DRV_AP_OBJS)
369CFLAGS += $(DRV_AP_CFLAGS)
370LDFLAGS += $(DRV_AP_LDFLAGS)
371LIBS += $(DRV_AP_LIBS)
372
373ifdef CONFIG_L2_PACKET
374ifdef CONFIG_DNET_PCAP
375ifdef CONFIG_L2_FREEBSD
376LIBS += -lpcap
377OBJS += ../src/l2_packet/l2_packet_freebsd.o
378else
379LIBS += -ldnet -lpcap
380OBJS += ../src/l2_packet/l2_packet_pcap.o
381endif
382else
383OBJS += ../src/l2_packet/l2_packet_linux.o
384endif
385else
386OBJS += ../src/l2_packet/l2_packet_none.o
387endif
388
389
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800390ifdef CONFIG_ERP
391CFLAGS += -DCONFIG_ERP
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800392NEED_HMAC_SHA256_KDF=y
393endif
394
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700395ifdef CONFIG_EAP_MD5
396CFLAGS += -DEAP_SERVER_MD5
397OBJS += ../src/eap_server/eap_server_md5.o
398CHAP=y
399endif
400
401ifdef CONFIG_EAP_TLS
402CFLAGS += -DEAP_SERVER_TLS
403OBJS += ../src/eap_server/eap_server_tls.o
404TLS_FUNCS=y
405endif
406
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700407ifdef CONFIG_EAP_UNAUTH_TLS
408CFLAGS += -DEAP_SERVER_UNAUTH_TLS
409ifndef CONFIG_EAP_TLS
410OBJS += ../src/eap_server/eap_server_tls.o
411TLS_FUNCS=y
412endif
413endif
414
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700415ifdef CONFIG_EAP_PEAP
416CFLAGS += -DEAP_SERVER_PEAP
417OBJS += ../src/eap_server/eap_server_peap.o
418OBJS += ../src/eap_common/eap_peap_common.o
419TLS_FUNCS=y
420CONFIG_EAP_MSCHAPV2=y
421endif
422
423ifdef CONFIG_EAP_TTLS
424CFLAGS += -DEAP_SERVER_TTLS
425OBJS += ../src/eap_server/eap_server_ttls.o
426TLS_FUNCS=y
427CHAP=y
428endif
429
430ifdef CONFIG_EAP_MSCHAPV2
431CFLAGS += -DEAP_SERVER_MSCHAPV2
432OBJS += ../src/eap_server/eap_server_mschapv2.o
433MS_FUNCS=y
434endif
435
436ifdef CONFIG_EAP_GTC
437CFLAGS += -DEAP_SERVER_GTC
438OBJS += ../src/eap_server/eap_server_gtc.o
439endif
440
441ifdef CONFIG_EAP_SIM
442CFLAGS += -DEAP_SERVER_SIM
443OBJS += ../src/eap_server/eap_server_sim.o
444CONFIG_EAP_SIM_COMMON=y
445NEED_AES_CBC=y
446endif
447
448ifdef CONFIG_EAP_AKA
449CFLAGS += -DEAP_SERVER_AKA
450OBJS += ../src/eap_server/eap_server_aka.o
451CONFIG_EAP_SIM_COMMON=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700452NEED_AES_CBC=y
453endif
454
455ifdef CONFIG_EAP_AKA_PRIME
456CFLAGS += -DEAP_SERVER_AKA_PRIME
457endif
458
459ifdef CONFIG_EAP_SIM_COMMON
460OBJS += ../src/eap_common/eap_sim_common.o
461# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be
Hai Shalom899fcc72020-10-19 14:38:18 -0700462# replaced with another file implementing the interface specified in
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700463# eap_sim_db.h.
464OBJS += ../src/eap_server/eap_sim_db.o
465NEED_FIPS186_2_PRF=y
466endif
467
468ifdef CONFIG_EAP_PAX
469CFLAGS += -DEAP_SERVER_PAX
470OBJS += ../src/eap_server/eap_server_pax.o ../src/eap_common/eap_pax_common.o
471endif
472
473ifdef CONFIG_EAP_PSK
474CFLAGS += -DEAP_SERVER_PSK
475OBJS += ../src/eap_server/eap_server_psk.o ../src/eap_common/eap_psk_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700476NEED_AES_ENCBLOCK=y
477NEED_AES_EAX=y
478endif
479
480ifdef CONFIG_EAP_SAKE
481CFLAGS += -DEAP_SERVER_SAKE
482OBJS += ../src/eap_server/eap_server_sake.o ../src/eap_common/eap_sake_common.o
483endif
484
485ifdef CONFIG_EAP_GPSK
486CFLAGS += -DEAP_SERVER_GPSK
487OBJS += ../src/eap_server/eap_server_gpsk.o ../src/eap_common/eap_gpsk_common.o
488ifdef CONFIG_EAP_GPSK_SHA256
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800489CFLAGS += -DEAP_GPSK_SHA256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700490endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700491endif
492
493ifdef CONFIG_EAP_PWD
494CFLAGS += -DEAP_SERVER_PWD
495OBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o
Roshan Pius3a1667e2018-07-03 15:17:14 -0700496NEED_ECC=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700497NEED_DRAGONFLY=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700498endif
499
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700500ifdef CONFIG_EAP_EKE
501CFLAGS += -DEAP_SERVER_EKE
502OBJS += ../src/eap_server/eap_server_eke.o ../src/eap_common/eap_eke_common.o
503NEED_DH_GROUPS=y
504NEED_DH_GROUPS_ALL=y
505endif
506
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700507ifdef CONFIG_EAP_VENDOR_TEST
508CFLAGS += -DEAP_SERVER_VENDOR_TEST
509OBJS += ../src/eap_server/eap_server_vendor_test.o
510endif
511
512ifdef CONFIG_EAP_FAST
513CFLAGS += -DEAP_SERVER_FAST
514OBJS += ../src/eap_server/eap_server_fast.o
515OBJS += ../src/eap_common/eap_fast_common.o
516TLS_FUNCS=y
517NEED_T_PRF=y
518NEED_AES_UNWRAP=y
519endif
520
Hai Shalom81f62d82019-07-22 12:10:00 -0700521ifdef CONFIG_EAP_TEAP
522CFLAGS += -DEAP_SERVER_TEAP
523OBJS += ../src/eap_server/eap_server_teap.o
524OBJS += ../src/eap_common/eap_teap_common.o
525TLS_FUNCS=y
526NEED_T_PRF=y
527NEED_SHA384=y
Hai Shalomc3565922019-10-28 11:58:20 -0700528NEED_TLS_PRF_SHA256=y
529NEED_TLS_PRF_SHA384=y
Hai Shalom81f62d82019-07-22 12:10:00 -0700530NEED_AES_UNWRAP=y
531endif
532
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700533ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700534CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC
535OBJS += ../src/utils/uuid.o
536OBJS += ../src/ap/wps_hostapd.o
537OBJS += ../src/eap_server/eap_server_wsc.o ../src/eap_common/eap_wsc_common.o
538OBJS += ../src/wps/wps.o
539OBJS += ../src/wps/wps_common.o
540OBJS += ../src/wps/wps_attr_parse.o
541OBJS += ../src/wps/wps_attr_build.o
542OBJS += ../src/wps/wps_attr_process.o
543OBJS += ../src/wps/wps_dev_attr.o
544OBJS += ../src/wps/wps_enrollee.o
545OBJS += ../src/wps/wps_registrar.o
546NEED_DH_GROUPS=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700547NEED_BASE64=y
548NEED_AES_CBC=y
549NEED_MODEXP=y
550CONFIG_EAP=y
551
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700552ifdef CONFIG_WPS_NFC
553CFLAGS += -DCONFIG_WPS_NFC
554OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700555NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700556endif
557
558ifdef NEED_WPS_OOB
559CFLAGS += -DCONFIG_WPS_OOB
560endif
561
562ifdef CONFIG_WPS_UPNP
563CFLAGS += -DCONFIG_WPS_UPNP
564OBJS += ../src/wps/wps_upnp.o
565OBJS += ../src/wps/wps_upnp_ssdp.o
566OBJS += ../src/wps/wps_upnp_web.o
567OBJS += ../src/wps/wps_upnp_event.o
568OBJS += ../src/wps/wps_upnp_ap.o
569OBJS += ../src/wps/upnp_xml.o
570OBJS += ../src/wps/httpread.o
571OBJS += ../src/wps/http_client.o
572OBJS += ../src/wps/http_server.o
573endif
574
575ifdef CONFIG_WPS_STRICT
576CFLAGS += -DCONFIG_WPS_STRICT
577OBJS += ../src/wps/wps_validate.o
578endif
579
580ifdef CONFIG_WPS_TESTING
581CFLAGS += -DCONFIG_WPS_TESTING
582endif
583
584endif
585
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700586ifdef CONFIG_DPP
587CFLAGS += -DCONFIG_DPP
588OBJS += ../src/common/dpp.o
Hai Shalom4fbc08f2020-05-18 12:37:00 -0700589OBJS += ../src/common/dpp_auth.o
590OBJS += ../src/common/dpp_backup.o
591OBJS += ../src/common/dpp_crypto.o
592OBJS += ../src/common/dpp_pkex.o
593OBJS += ../src/common/dpp_reconfig.o
594OBJS += ../src/common/dpp_tcp.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700595OBJS += ../src/ap/dpp_hostapd.o
596OBJS += ../src/ap/gas_query_ap.o
597NEED_AES_SIV=y
598NEED_HMAC_SHA256_KDF=y
599NEED_HMAC_SHA384_KDF=y
600NEED_HMAC_SHA512_KDF=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700601NEED_SHA384=y
602NEED_SHA512=y
Hai Shalomc3565922019-10-28 11:58:20 -0700603NEED_ECC=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700604NEED_JSON=y
605NEED_GAS=y
606NEED_BASE64=y
Hai Shalomfdcde762020-04-02 11:19:20 -0700607NEED_ASN1=y
Hai Shalom021b0b52019-04-10 11:17:58 -0700608ifdef CONFIG_DPP2
609CFLAGS += -DCONFIG_DPP2
610endif
Hai Shaloma20dcd72022-02-04 13:43:00 -0800611ifdef CONFIG_DPP3
612CFLAGS += -DCONFIG_DPP3
613endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700614endif
615
Sunil Ravib0ac25f2024-07-12 01:42:03 +0000616ifdef CONFIG_NAN_USD
617OBJS += ../src/common/nan_de.o
618OBJS += ../src/ap/nan_usd_ap.o
619CFLAGS += -DCONFIG_NAN_USD
620endif
621
Hai Shalom60840252021-02-19 19:02:11 -0800622ifdef CONFIG_PASN
623CFLAGS += -DCONFIG_PASN
624CFLAGS += -DCONFIG_PTKSA_CACHE
625NEED_HMAC_SHA256_KDF=y
626NEED_HMAC_SHA384_KDF=y
627NEED_SHA256=y
628NEED_SHA384=y
Hai Shalom60840252021-02-19 19:02:11 -0800629endif
630
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700631ifdef CONFIG_EAP_IKEV2
632CFLAGS += -DEAP_SERVER_IKEV2
633OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o
634OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
635NEED_DH_GROUPS=y
636NEED_DH_GROUPS_ALL=y
637NEED_MODEXP=y
638NEED_CIPHER=y
639endif
640
641ifdef CONFIG_EAP_TNC
642CFLAGS += -DEAP_SERVER_TNC
643OBJS += ../src/eap_server/eap_server_tnc.o
644OBJS += ../src/eap_server/tncs.o
645NEED_BASE64=y
646ifndef CONFIG_DRIVER_BSD
647LIBS += -ldl
648endif
649endif
650
Hai Shalom81f62d82019-07-22 12:10:00 -0700651ifdef CONFIG_MACSEC
652CFLAGS += -DCONFIG_MACSEC
653OBJS += ../src/ap/wpa_auth_kay.o
654OBJS += ../src/pae/ieee802_1x_cp.o
655OBJS += ../src/pae/ieee802_1x_kay.o
656OBJS += ../src/pae/ieee802_1x_key.o
657OBJS += ../src/pae/ieee802_1x_secy_ops.o
658endif
659
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700660# Basic EAP functionality is needed for EAPOL
661OBJS += eap_register.o
662OBJS += ../src/eap_server/eap_server.o
663OBJS += ../src/eap_common/eap_common.o
664OBJS += ../src/eap_server/eap_server_methods.o
665OBJS += ../src/eap_server/eap_server_identity.o
666CFLAGS += -DEAP_SERVER_IDENTITY
667
668ifdef CONFIG_EAP
669CFLAGS += -DEAP_SERVER
670endif
671
672ifdef CONFIG_PKCS12
673CFLAGS += -DPKCS12_FUNCS
674endif
675
Hai Shalom81f62d82019-07-22 12:10:00 -0700676ifdef NEED_DRAGONFLY
677OBJS += ../src/common/dragonfly.o
678endif
679
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700680ifdef MS_FUNCS
681OBJS += ../src/crypto/ms_funcs.o
682NEED_DES=y
683NEED_MD4=y
684endif
685
686ifdef CHAP
687OBJS += ../src/eap_common/chap.o
688endif
689
Sunil Ravi99c035e2024-07-12 01:42:03 +0000690ifdef CONFIG_RADIUS_TLS
691TLS_FUNCS=y
692CFLAGS += -DCONFIG_RADIUS_TLS
693endif
694
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700695ifdef TLS_FUNCS
696NEED_DES=y
697# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS)
698CFLAGS += -DEAP_TLS_FUNCS
699OBJS += ../src/eap_server/eap_server_tls_common.o
700NEED_TLS_PRF=y
701endif
702
703ifndef CONFIG_TLS
704CONFIG_TLS=openssl
705endif
706
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800707ifdef CONFIG_TLSV11
708CFLAGS += -DCONFIG_TLSV11
709endif
710
711ifdef CONFIG_TLSV12
712CFLAGS += -DCONFIG_TLSV12
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800713endif
714
Roshan Pius3a1667e2018-07-03 15:17:14 -0700715ifeq ($(CONFIG_TLS), wolfssl)
716CONFIG_CRYPTO=wolfssl
717ifdef TLS_FUNCS
718OBJS += ../src/crypto/tls_wolfssl.o
719LIBS += -lwolfssl -lm
720endif
721OBJS += ../src/crypto/crypto_wolfssl.o
722HOBJS += ../src/crypto/crypto_wolfssl.o
723ifdef NEED_FIPS186_2_PRF
724OBJS += ../src/crypto/fips_prf_wolfssl.o
725endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700726NEED_TLS_PRF_SHA256=y
727LIBS += -lwolfssl -lm
728LIBS_h += -lwolfssl -lm
729ifdef CONFIG_TLS_ADD_DL
730LIBS += -ldl
731LIBS_h += -ldl
732endif
733endif
734
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700735ifeq ($(CONFIG_TLS), openssl)
Sunil Ravia04bd252022-05-02 22:54:18 -0700736CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
Roshan Pius3a1667e2018-07-03 15:17:14 -0700737CONFIG_CRYPTO=openssl
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700738ifdef TLS_FUNCS
739OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800740OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700741LIBS += -lssl
742endif
743OBJS += ../src/crypto/crypto_openssl.o
744HOBJS += ../src/crypto/crypto_openssl.o
Hai Shalom899fcc72020-10-19 14:38:18 -0700745SOBJS += ../src/crypto/crypto_openssl.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700746ifdef NEED_FIPS186_2_PRF
747OBJS += ../src/crypto/fips_prf_openssl.o
748endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800749NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700750LIBS += -lcrypto
751LIBS_h += -lcrypto
Roshan Pius3a1667e2018-07-03 15:17:14 -0700752LIBS_n += -lcrypto
Hai Shalom899fcc72020-10-19 14:38:18 -0700753LIBS_s += -lcrypto
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800754ifdef CONFIG_TLS_ADD_DL
755LIBS += -ldl
756LIBS_h += -ldl
Hai Shalom899fcc72020-10-19 14:38:18 -0700757LIBS_s += -ldl
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800758endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700759ifndef CONFIG_TLS_DEFAULT_CIPHERS
760CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
761endif
762CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700763endif
764
765ifeq ($(CONFIG_TLS), gnutls)
Roshan Pius3a1667e2018-07-03 15:17:14 -0700766ifndef CONFIG_CRYPTO
767# default to libgcrypt
768CONFIG_CRYPTO=gnutls
769endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700770ifdef TLS_FUNCS
771OBJS += ../src/crypto/tls_gnutls.o
772LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700773endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700774OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
775HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700776ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -0700777OBJS += ../src/crypto/fips_prf_internal.o
778SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700779endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700780ifeq ($(CONFIG_CRYPTO), gnutls)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700781LIBS += -lgcrypt
782LIBS_h += -lgcrypt
Roshan Pius3a1667e2018-07-03 15:17:14 -0700783LIBS_n += -lgcrypt
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700784CONFIG_INTERNAL_RC4=y
785CONFIG_INTERNAL_DH_GROUP5=y
786endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700787ifeq ($(CONFIG_CRYPTO), nettle)
788LIBS += -lnettle -lgmp
789LIBS_p += -lnettle -lgmp
790CONFIG_INTERNAL_RC4=y
791CONFIG_INTERNAL_DH_GROUP5=y
792endif
793endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700794
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700795ifeq ($(CONFIG_TLS), internal)
796ifndef CONFIG_CRYPTO
797CONFIG_CRYPTO=internal
798endif
799ifdef TLS_FUNCS
800OBJS += ../src/crypto/crypto_internal-rsa.o
801OBJS += ../src/crypto/tls_internal.o
802OBJS += ../src/tls/tlsv1_common.o
803OBJS += ../src/tls/tlsv1_record.o
804OBJS += ../src/tls/tlsv1_cred.o
805OBJS += ../src/tls/tlsv1_server.o
806OBJS += ../src/tls/tlsv1_server_write.o
807OBJS += ../src/tls/tlsv1_server_read.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700808OBJS += ../src/tls/rsa.o
809OBJS += ../src/tls/x509v3.o
810OBJS += ../src/tls/pkcs1.o
811OBJS += ../src/tls/pkcs5.o
812OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -0700813NEED_ASN1=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700814NEED_BASE64=y
815NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800816ifdef CONFIG_TLSV12
817NEED_TLS_PRF_SHA256=y
818endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700819NEED_MODEXP=y
820NEED_CIPHER=y
821CFLAGS += -DCONFIG_TLS_INTERNAL
822CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
823endif
824ifdef NEED_CIPHER
825NEED_DES=y
826OBJS += ../src/crypto/crypto_internal-cipher.o
827endif
828ifdef NEED_MODEXP
829OBJS += ../src/crypto/crypto_internal-modexp.o
830OBJS += ../src/tls/bignum.o
831endif
832ifeq ($(CONFIG_CRYPTO), libtomcrypt)
833OBJS += ../src/crypto/crypto_libtomcrypt.o
834LIBS += -ltomcrypt -ltfm
835LIBS_h += -ltomcrypt -ltfm
836CONFIG_INTERNAL_SHA256=y
837CONFIG_INTERNAL_RC4=y
838CONFIG_INTERNAL_DH_GROUP5=y
839endif
840ifeq ($(CONFIG_CRYPTO), internal)
841OBJS += ../src/crypto/crypto_internal.o
842NEED_AES_DEC=y
843CFLAGS += -DCONFIG_CRYPTO_INTERNAL
844ifdef CONFIG_INTERNAL_LIBTOMMATH
845CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
846ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
847CFLAGS += -DLTM_FAST
848endif
849else
850LIBS += -ltommath
851LIBS_h += -ltommath
852endif
853CONFIG_INTERNAL_AES=y
854CONFIG_INTERNAL_DES=y
855CONFIG_INTERNAL_SHA1=y
856CONFIG_INTERNAL_MD4=y
857CONFIG_INTERNAL_MD5=y
858CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800859CONFIG_INTERNAL_SHA384=y
860CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700861CONFIG_INTERNAL_RC4=y
862CONFIG_INTERNAL_DH_GROUP5=y
863endif
864ifeq ($(CONFIG_CRYPTO), cryptoapi)
865OBJS += ../src/crypto/crypto_cryptoapi.o
866OBJS_p += ../src/crypto/crypto_cryptoapi.o
867CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
868CONFIG_INTERNAL_SHA256=y
869CONFIG_INTERNAL_RC4=y
870endif
871endif
872
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700873ifeq ($(CONFIG_TLS), linux)
874OBJS += ../src/crypto/crypto_linux.o
875ifdef TLS_FUNCS
876OBJS += ../src/crypto/crypto_internal-rsa.o
877OBJS += ../src/crypto/tls_internal.o
878OBJS += ../src/tls/tlsv1_common.o
879OBJS += ../src/tls/tlsv1_record.o
880OBJS += ../src/tls/tlsv1_cred.o
881OBJS += ../src/tls/tlsv1_server.o
882OBJS += ../src/tls/tlsv1_server_write.o
883OBJS += ../src/tls/tlsv1_server_read.o
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700884OBJS += ../src/tls/rsa.o
885OBJS += ../src/tls/x509v3.o
886OBJS += ../src/tls/pkcs1.o
887OBJS += ../src/tls/pkcs5.o
888OBJS += ../src/tls/pkcs8.o
Hai Shalomfdcde762020-04-02 11:19:20 -0700889NEED_ASN1=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700890NEED_BASE64=y
891NEED_TLS_PRF=y
892ifdef CONFIG_TLSV12
893NEED_TLS_PRF_SHA256=y
894endif
895NEED_MODEXP=y
896NEED_CIPHER=y
897CFLAGS += -DCONFIG_TLS_INTERNAL
898CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
899endif
900ifdef NEED_MODEXP
901OBJS += ../src/crypto/crypto_internal-modexp.o
902OBJS += ../src/tls/bignum.o
903CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
904CFLAGS += -DLTM_FAST
905endif
906CONFIG_INTERNAL_DH_GROUP5=y
907ifdef NEED_FIPS186_2_PRF
908OBJS += ../src/crypto/fips_prf_internal.o
909OBJS += ../src/crypto/sha1-internal.o
910endif
911endif
912
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700913ifeq ($(CONFIG_TLS), none)
914ifdef TLS_FUNCS
915OBJS += ../src/crypto/tls_none.o
916CFLAGS += -DEAP_TLS_NONE
917CONFIG_INTERNAL_AES=y
918CONFIG_INTERNAL_SHA1=y
919CONFIG_INTERNAL_MD5=y
920endif
921OBJS += ../src/crypto/crypto_none.o
922OBJS_p += ../src/crypto/crypto_none.o
923CONFIG_INTERNAL_SHA256=y
924CONFIG_INTERNAL_RC4=y
925endif
926
927ifndef TLS_FUNCS
928OBJS += ../src/crypto/tls_none.o
929ifeq ($(CONFIG_TLS), internal)
930CONFIG_INTERNAL_AES=y
931CONFIG_INTERNAL_SHA1=y
932CONFIG_INTERNAL_MD5=y
933CONFIG_INTERNAL_RC4=y
934endif
935endif
936
937AESOBJS = # none so far
938ifdef CONFIG_INTERNAL_AES
939AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o
940endif
941
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800942ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -0700943ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700944AESOBJS += ../src/crypto/aes-wrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800945endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700946endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700947ifdef NEED_AES_EAX
948AESOBJS += ../src/crypto/aes-eax.o
949NEED_AES_CTR=y
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700950endif
951ifdef NEED_AES_SIV
952AESOBJS += ../src/crypto/aes-siv.o
953NEED_AES_CTR=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700954endif
955ifdef NEED_AES_CTR
956AESOBJS += ../src/crypto/aes-ctr.o
957endif
958ifdef NEED_AES_ENCBLOCK
959AESOBJS += ../src/crypto/aes-encblock.o
960endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700961ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700962ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -0700963ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700964AESOBJS += ../src/crypto/aes-omac1.o
965endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700966endif
Sunil Ravia04bd252022-05-02 22:54:18 -0700967endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700968ifdef NEED_AES_UNWRAP
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800969ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700970ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -0700971ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700972NEED_AES_DEC=y
973AESOBJS += ../src/crypto/aes-unwrap.o
974endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800975endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700976endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700977endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700978ifdef NEED_AES_CBC
979NEED_AES_DEC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700980ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700981ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -0700982ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700983AESOBJS += ../src/crypto/aes-cbc.o
984endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700985endif
Dmitry Shmidt9839ecd2016-11-07 11:05:47 -0800986endif
Roshan Pius3a1667e2018-07-03 15:17:14 -0700987endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700988ifdef NEED_AES_DEC
989ifdef CONFIG_INTERNAL_AES
990AESOBJS += ../src/crypto/aes-internal-dec.o
991endif
992endif
993ifdef NEED_AES
994OBJS += $(AESOBJS)
995endif
996
997ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700998ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -0700999ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001000ifneq ($(CONFIG_TLS), gnutls)
1001ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001002SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001003endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001004endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001005endif
1006endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001007SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001008ifdef CONFIG_INTERNAL_SHA1
1009SHA1OBJS += ../src/crypto/sha1-internal.o
1010ifdef NEED_FIPS186_2_PRF
1011SHA1OBJS += ../src/crypto/fips_prf_internal.o
1012endif
1013endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001014ifneq ($(CONFIG_TLS), openssl)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001015ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001016SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001017endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001018endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001019ifdef NEED_T_PRF
1020SHA1OBJS += ../src/crypto/sha1-tprf.o
1021endif
1022ifdef NEED_TLS_PRF
1023SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1024endif
1025endif
1026
1027ifdef NEED_SHA1
1028OBJS += $(SHA1OBJS)
1029endif
1030
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001031ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001032ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001033ifneq ($(CONFIG_TLS), gnutls)
1034ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001035OBJS += ../src/crypto/md5.o
1036endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001037endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001038endif
1039endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001040
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001041ifdef NEED_MD5
1042ifdef CONFIG_INTERNAL_MD5
1043OBJS += ../src/crypto/md5-internal.o
1044HOBJS += ../src/crypto/md5-internal.o
1045endif
1046endif
1047
1048ifdef NEED_MD4
1049ifdef CONFIG_INTERNAL_MD4
1050OBJS += ../src/crypto/md4-internal.o
1051endif
1052endif
1053
1054ifdef NEED_DES
Roshan Pius3a1667e2018-07-03 15:17:14 -07001055CFLAGS += -DCONFIG_DES
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001056ifdef CONFIG_INTERNAL_DES
1057OBJS += ../src/crypto/des-internal.o
1058endif
1059endif
1060
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001061ifdef CONFIG_NO_RC4
1062CFLAGS += -DCONFIG_NO_RC4
1063endif
1064
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001065ifdef NEED_RC4
1066ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001067ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001068OBJS += ../src/crypto/rc4.o
1069endif
1070endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001071endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001072
Sunil Ravi79e6c4f2025-01-04 00:47:06 +00001073ifdef CONFIG_SAE
1074ifdef NEED_SHA384
1075# Need to add HMAC-SHA384 KDF as well, if SHA384 was enabled.
1076NEED_HMAC_SHA384_KDF=y
1077endif
1078ifdef NEED_SHA512
1079# Need to add HMAC-SHA512 KDF as well, if SHA512 was enabled.
1080NEED_HMAC_SHA512_KDF=y
1081endif
1082endif
1083
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001084CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001085ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001086ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001087ifneq ($(CONFIG_TLS), gnutls)
1088ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001089OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001090endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001091endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001092endif
1093endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001094OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001095ifdef CONFIG_INTERNAL_SHA256
1096OBJS += ../src/crypto/sha256-internal.o
1097endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001098ifdef NEED_TLS_PRF_SHA256
1099OBJS += ../src/crypto/sha256-tlsprf.o
1100endif
Hai Shalomc3565922019-10-28 11:58:20 -07001101ifdef NEED_TLS_PRF_SHA384
1102OBJS += ../src/crypto/sha384-tlsprf.o
1103endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001104ifdef NEED_HMAC_SHA256_KDF
1105OBJS += ../src/crypto/sha256-kdf.o
1106endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001107ifdef NEED_HMAC_SHA384_KDF
1108OBJS += ../src/crypto/sha384-kdf.o
1109endif
1110ifdef NEED_HMAC_SHA512_KDF
1111OBJS += ../src/crypto/sha512-kdf.o
1112endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001113ifdef NEED_SHA384
1114CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001115ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001116ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001117ifneq ($(CONFIG_TLS), gnutls)
1118ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtebd93af2017-02-21 13:40:44 -08001119OBJS += ../src/crypto/sha384.o
1120endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001121endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001122endif
1123endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001124OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -08001125endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001126ifdef NEED_SHA512
1127CFLAGS += -DCONFIG_SHA512
1128ifneq ($(CONFIG_TLS), openssl)
1129ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001130ifneq ($(CONFIG_TLS), gnutls)
1131ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001132OBJS += ../src/crypto/sha512.o
1133endif
1134endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001135endif
1136endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001137OBJS += ../src/crypto/sha512-prf.o
1138endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001139
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -08001140ifdef CONFIG_INTERNAL_SHA384
1141CFLAGS += -DCONFIG_INTERNAL_SHA384
1142OBJS += ../src/crypto/sha384-internal.o
1143endif
1144
1145ifdef CONFIG_INTERNAL_SHA512
1146CFLAGS += -DCONFIG_INTERNAL_SHA512
1147OBJS += ../src/crypto/sha512-internal.o
1148endif
1149
Hai Shalomfdcde762020-04-02 11:19:20 -07001150ifdef NEED_ASN1
1151OBJS += ../src/tls/asn1.o
1152endif
1153
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001154ifdef NEED_DH_GROUPS
1155OBJS += ../src/crypto/dh_groups.o
1156endif
1157ifdef NEED_DH_GROUPS_ALL
1158CFLAGS += -DALL_DH_GROUPS
1159endif
1160ifdef CONFIG_INTERNAL_DH_GROUP5
1161ifdef NEED_DH_GROUPS
1162OBJS += ../src/crypto/dh_group5.o
1163endif
1164endif
1165
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001166ifdef NEED_ECC
1167CFLAGS += -DCONFIG_ECC
1168endif
1169
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001170ifdef CONFIG_NO_RANDOM_POOL
1171CFLAGS += -DCONFIG_NO_RANDOM_POOL
1172else
Hai Shalom74f70d42019-02-11 14:42:39 -08001173ifdef CONFIG_GETRANDOM
1174CFLAGS += -DCONFIG_GETRANDOM
1175endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001176OBJS += ../src/crypto/random.o
1177HOBJS += ../src/crypto/random.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001178HOBJS += ../src/utils/eloop.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001179HOBJS += $(SHA1OBJS)
Dmitry Shmidtdda10c22015-03-24 16:05:01 -07001180ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001181ifneq ($(CONFIG_TLS), linux)
Roshan Pius3a1667e2018-07-03 15:17:14 -07001182ifneq ($(CONFIG_TLS), wolfssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001183HOBJS += ../src/crypto/md5.o
1184endif
Dmitry Shmidtdda10c22015-03-24 16:05:01 -07001185endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001186endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001187endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001188
1189ifdef CONFIG_RADIUS_SERVER
1190CFLAGS += -DRADIUS_SERVER
1191OBJS += ../src/radius/radius_server.o
1192endif
1193
1194ifdef CONFIG_IPV6
1195CFLAGS += -DCONFIG_IPV6
1196endif
1197
1198ifdef CONFIG_DRIVER_RADIUS_ACL
1199CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL
1200endif
1201
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001202ifdef NEED_BASE64
1203OBJS += ../src/utils/base64.o
1204endif
1205
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001206ifdef NEED_JSON
1207OBJS += ../src/utils/json.o
1208CFLAGS += -DCONFIG_JSON
1209endif
1210
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001211ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001212OBJS += ../src/ap/wmm.o
1213OBJS += ../src/ap/ap_list.o
Sunil Ravi38ad1ed2023-01-17 23:58:31 +00001214OBJS += ../src/ap/comeback_token.o
1215OBJS += ../src/pasn/pasn_responder.o
Sunil Ravi99c035e2024-07-12 01:42:03 +00001216OBJS += ../src/pasn/pasn_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001217OBJS += ../src/ap/ieee802_11.o
1218OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -07001219OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001220CFLAGS += -DNEED_AP_MLME
1221endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001222OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001223
Dmitry Shmidt04949592012-07-19 12:16:46 -07001224ifdef CONFIG_IEEE80211AC
1225OBJS += ../src/ap/ieee802_11_vht.o
1226endif
1227
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001228ifdef CONFIG_P2P_MANAGER
1229CFLAGS += -DCONFIG_P2P_MANAGER
1230OBJS += ../src/ap/p2p_hostapd.o
1231endif
1232
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001233ifdef CONFIG_HS20
1234CFLAGS += -DCONFIG_HS20
1235OBJS += ../src/ap/hs20.o
1236CONFIG_INTERWORKING=y
1237endif
1238
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001239ifdef CONFIG_INTERWORKING
1240CFLAGS += -DCONFIG_INTERWORKING
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001241NEED_GAS=y
1242endif
1243
1244ifdef NEED_GAS
Dmitry Shmidt04949592012-07-19 12:16:46 -07001245OBJS += ../src/common/gas.o
1246OBJS += ../src/ap/gas_serv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001247endif
1248
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001249ifdef CONFIG_PROXYARP
1250CFLAGS += -DCONFIG_PROXYARP
1251OBJS += ../src/ap/x_snoop.o
1252OBJS += ../src/ap/dhcp_snoop.o
1253ifdef CONFIG_IPV6
1254OBJS += ../src/ap/ndisc_snoop.o
1255endif
1256endif
1257
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001258OBJS += ../src/drivers/driver_common.o
1259
1260ifdef CONFIG_WPA_CLI_EDIT
1261OBJS_c += ../src/utils/edit.o
1262else
1263OBJS_c += ../src/utils/edit_simple.o
1264endif
1265
Dmitry Shmidt391c59f2013-09-03 12:16:28 -07001266ifdef CONFIG_ACS
1267CFLAGS += -DCONFIG_ACS
1268OBJS += ../src/ap/acs.o
1269LIBS += -lm
1270endif
1271
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001272ifdef CONFIG_NO_STDOUT_DEBUG
1273CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1274endif
1275
Paul Stewart092955c2017-02-06 09:13:09 -08001276ifdef CONFIG_DEBUG_SYSLOG
1277CFLAGS += -DCONFIG_DEBUG_SYSLOG
1278endif
1279
Dmitry Shmidtcce06662013-11-04 18:44:24 -08001280ifdef CONFIG_DEBUG_LINUX_TRACING
1281CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1282endif
1283
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001284ifdef CONFIG_DEBUG_FILE
1285CFLAGS += -DCONFIG_DEBUG_FILE
1286endif
1287
Dmitry Shmidt4530cfd2012-09-09 15:20:40 -07001288ifdef CONFIG_SQLITE
1289CFLAGS += -DCONFIG_SQLITE
1290LIBS += -lsqlite3
1291LIBS_h += -lsqlite3
1292endif
1293
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001294ifdef CONFIG_FST
1295CFLAGS += -DCONFIG_FST
1296OBJS += ../src/fst/fst.o
1297OBJS += ../src/fst/fst_group.o
1298OBJS += ../src/fst/fst_iface.o
1299OBJS += ../src/fst/fst_session.o
1300OBJS += ../src/fst/fst_ctrl_aux.o
1301ifdef CONFIG_FST_TEST
1302CFLAGS += -DCONFIG_FST_TEST
1303endif
1304ifndef CONFIG_NO_CTRL_IFACE
1305OBJS += ../src/fst/fst_ctrl_iface.o
1306endif
1307endif
1308
Hai Shalomfdcde762020-04-02 11:19:20 -07001309ifdef CONFIG_WEP
1310CFLAGS += -DCONFIG_WEP
1311endif
1312
Hai Shalomb755a2a2020-04-23 21:49:02 -07001313ifdef CONFIG_NO_TKIP
1314CFLAGS += -DCONFIG_NO_TKIP
1315endif
1316
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -08001317$(DESTDIR)$(BINDIR)/%: %
1318 install -D $(<) $(@)
1319
1320install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001321
Hai Shalom899fcc72020-10-19 14:38:18 -07001322_OBJS_VAR := OBJS
1323include ../src/objs.mk
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001324
Hai Shalom899fcc72020-10-19 14:38:18 -07001325hostapd: $(OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001326 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
1327 @$(E) " LD " $@
1328
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001329ifdef CONFIG_WPA_TRACE
1330OBJS_c += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001331endif
Hai Shalom899fcc72020-10-19 14:38:18 -07001332
1333_OBJS_VAR := OBJS_c
1334include ../src/objs.mk
1335
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001336hostapd_cli: $(OBJS_c)
1337 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
1338 @$(E) " LD " $@
1339
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001340NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001341NOBJS += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001342ifdef NEED_RC4
1343ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001344ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001345NOBJS += ../src/crypto/rc4.o
1346endif
1347endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001348endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001349ifdef CONFIG_INTERNAL_MD5
1350NOBJS += ../src/crypto/md5-internal.o
1351endif
Roshan Pius3a1667e2018-07-03 15:17:14 -07001352NOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1353NOBJS += ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001354NOBJS += ../src/utils/wpa_debug.o
1355NOBJS += ../src/utils/wpabuf.o
1356ifdef CONFIG_WPA_TRACE
1357NOBJS += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001358endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001359
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001360HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o
1361HOBJS += ../src/crypto/aes-encblock.o
1362ifdef CONFIG_INTERNAL_AES
1363HOBJS += ../src/crypto/aes-internal.o
1364HOBJS += ../src/crypto/aes-internal-enc.o
1365endif
Dmitry Shmidtd2986c22017-10-23 14:22:09 -07001366ifeq ($(CONFIG_TLS), linux)
1367HOBJS += ../src/crypto/crypto_linux.o
1368endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001369
Hai Shalom899fcc72020-10-19 14:38:18 -07001370SOBJS += sae_pk_gen.o
1371SOBJS += ../src/utils/common.o
1372SOBJS += ../src/utils/os_$(CONFIG_OS).o
1373SOBJS += ../src/utils/base64.o
1374SOBJS += ../src/utils/wpa_debug.o
1375SOBJS += ../src/utils/wpabuf.o
1376ifdef CONFIG_WPA_TRACE
1377SOBJS += ../src/utils/trace.o
1378endif
1379SOBJS += ../src/common/ieee802_11_common.o
1380SOBJS += ../src/common/sae.o
1381SOBJS += ../src/common/sae_pk.o
1382SOBJS += ../src/common/dragonfly.o
1383SOBJS += $(AESOBJS)
Sunil Ravi79e6c4f2025-01-04 00:47:06 +00001384SOBJS += ../src/crypto/sha384.o
1385SOBJS += ../src/crypto/sha512.o
Hai Shalom899fcc72020-10-19 14:38:18 -07001386SOBJS += ../src/crypto/sha256-prf.o
1387SOBJS += ../src/crypto/sha384-prf.o
1388SOBJS += ../src/crypto/sha512-prf.o
1389SOBJS += ../src/crypto/dh_groups.o
1390SOBJS += ../src/crypto/sha256-kdf.o
1391SOBJS += ../src/crypto/sha384-kdf.o
1392SOBJS += ../src/crypto/sha512-kdf.o
Sunil Ravi79e6c4f2025-01-04 00:47:06 +00001393SOBJS += ../src/common/wpa_common.o
1394SOBJS += ../src/crypto/random.o
1395SOBJS += ../src/crypto/sha1-prf.o
1396SOBJS += ../src/utils/eloop.o
Hai Shalom899fcc72020-10-19 14:38:18 -07001397
1398_OBJS_VAR := NOBJS
1399include ../src/objs.mk
1400_OBJS_VAR := HOBJS
1401include ../src/objs.mk
1402_OBJS_VAR := SOBJS
1403include ../src/objs.mk
1404
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001405nt_password_hash: $(NOBJS)
1406 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n)
1407 @$(E) " LD " $@
1408
1409hlr_auc_gw: $(HOBJS)
1410 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h)
1411 @$(E) " LD " $@
1412
Hai Shalom899fcc72020-10-19 14:38:18 -07001413sae_pk_gen: $(SOBJS)
1414 $(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s)
1415 @$(E) " LD " $@
1416
1417.PHONY: lcov-html
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001418lcov-html:
Hai Shalom899fcc72020-10-19 14:38:18 -07001419 lcov -c -d $(BUILDDIR) > lcov.info
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001420 genhtml lcov.info --output-directory lcov-html
1421
Hai Shalom899fcc72020-10-19 14:38:18 -07001422clean: common-clean
1423 rm -f core *~ nt_password_hash hlr_auc_gw
1424 rm -f sae_pk_gen
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001425 rm -f lcov.info
1426 rm -rf lcov-html