xref: /freebsd/contrib/wpa/hostapd/Makefile (revision 32a95656b51ebefcdf3e0b02c110825f59abd26f)
1c1d255d3SCy SchubertALL=hostapd hostapd_cli
2c1d255d3SCy SchubertCONFIG_FILE = .config
3c1d255d3SCy Schubert
4c1d255d3SCy Schubertinclude ../src/build.rules
5c1d255d3SCy Schubert
6c1d255d3SCy Schubertifdef LIBS
7c1d255d3SCy Schubert# If LIBS is set with some global build system defaults, clone those for
8c1d255d3SCy Schubert# LIBS_c, LIBS_h, and LIBS_n to cover hostapd_cli, hlr_auc_gw, and
9c1d255d3SCy Schubert# nt_password_hash as well.
10c1d255d3SCy Schubertifndef LIBS_c
11c1d255d3SCy SchubertLIBS_c := $(LIBS)
12c1d255d3SCy Schubertendif
13c1d255d3SCy Schubertifndef LIBS_h
14c1d255d3SCy SchubertLIBS_h := $(LIBS)
15c1d255d3SCy Schubertendif
16c1d255d3SCy Schubertifndef LIBS_n
17c1d255d3SCy SchubertLIBS_n := $(LIBS)
18c1d255d3SCy Schubertendif
19c1d255d3SCy Schubertifndef LIBS_s
20c1d255d3SCy SchubertLIBS_s := $(LIBS)
21c1d255d3SCy Schubertendif
22c1d255d3SCy Schubertendif
23c1d255d3SCy Schubert
24c1d255d3SCy SchubertCFLAGS += $(EXTRA_CFLAGS)
25c1d255d3SCy SchubertCFLAGS += -I$(abspath ../src)
26c1d255d3SCy SchubertCFLAGS += -I$(abspath ../src/utils)
27c1d255d3SCy Schubert
28c1d255d3SCy Schubertexport BINDIR ?= /usr/local/bin/
29c1d255d3SCy Schubert
30c1d255d3SCy Schubertifndef CONFIG_NO_GITVER
31c1d255d3SCy Schubert# Add VERSION_STR postfix for builds from a git repository
32c1d255d3SCy Schubertifeq ($(wildcard ../.git),../.git)
33c1d255d3SCy SchubertGITVER := $(shell git describe --dirty=+)
34c1d255d3SCy Schubertifneq ($(GITVER),)
35c1d255d3SCy SchubertCFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
36c1d255d3SCy Schubertendif
37c1d255d3SCy Schubertendif
38c1d255d3SCy Schubertendif
39c1d255d3SCy Schubert
40c1d255d3SCy Schubertifdef CONFIG_TESTING_OPTIONS
41c1d255d3SCy SchubertCFLAGS += -DCONFIG_TESTING_OPTIONS
42c1d255d3SCy SchubertCONFIG_WPS_TESTING=y
43c1d255d3SCy Schubertendif
44c1d255d3SCy Schubert
45c1d255d3SCy Schubertifndef CONFIG_OS
46c1d255d3SCy Schubertifdef CONFIG_NATIVE_WINDOWS
47c1d255d3SCy SchubertCONFIG_OS=win32
48c1d255d3SCy Schubertelse
49c1d255d3SCy SchubertCONFIG_OS=unix
50c1d255d3SCy Schubertendif
51c1d255d3SCy Schubertendif
52c1d255d3SCy Schubert
53c1d255d3SCy Schubertifeq ($(CONFIG_OS), internal)
54c1d255d3SCy SchubertCFLAGS += -DOS_NO_C_LIB_DEFINES
55c1d255d3SCy Schubertendif
56c1d255d3SCy Schubert
57c1d255d3SCy Schubertifdef CONFIG_NATIVE_WINDOWS
58c1d255d3SCy SchubertCFLAGS += -DCONFIG_NATIVE_WINDOWS
59c1d255d3SCy SchubertLIBS += -lws2_32
60c1d255d3SCy Schubertendif
61c1d255d3SCy Schubert
62c1d255d3SCy SchubertOBJS += main.o
63c1d255d3SCy SchubertOBJS += config_file.o
64c1d255d3SCy Schubert
65c1d255d3SCy SchubertOBJS += ../src/ap/hostapd.o
66c1d255d3SCy SchubertOBJS += ../src/ap/wpa_auth_glue.o
67c1d255d3SCy SchubertOBJS += ../src/ap/drv_callbacks.o
68c1d255d3SCy SchubertOBJS += ../src/ap/ap_drv_ops.o
69c1d255d3SCy SchubertOBJS += ../src/ap/utils.o
70c1d255d3SCy SchubertOBJS += ../src/ap/authsrv.o
71c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_1x.o
72c1d255d3SCy SchubertOBJS += ../src/ap/ap_config.o
73c1d255d3SCy SchubertOBJS += ../src/ap/eap_user_db.o
74c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_11_auth.o
75c1d255d3SCy SchubertOBJS += ../src/ap/sta_info.o
76c1d255d3SCy SchubertOBJS += ../src/ap/wpa_auth.o
77c1d255d3SCy SchubertOBJS += ../src/ap/tkip_countermeasures.o
78c1d255d3SCy SchubertOBJS += ../src/ap/ap_mlme.o
79c1d255d3SCy SchubertOBJS += ../src/ap/wpa_auth_ie.o
80c1d255d3SCy SchubertOBJS += ../src/ap/preauth_auth.o
81c1d255d3SCy SchubertOBJS += ../src/ap/pmksa_cache_auth.o
82c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_11_shared.o
83c1d255d3SCy SchubertOBJS += ../src/ap/beacon.o
84c1d255d3SCy SchubertOBJS += ../src/ap/bss_load.o
85c1d255d3SCy SchubertOBJS += ../src/ap/neighbor_db.o
86c1d255d3SCy SchubertOBJS += ../src/ap/rrm.o
87c1d255d3SCy Schubert
88c1d255d3SCy SchubertOBJS_c = hostapd_cli.o
89c1d255d3SCy SchubertOBJS_c += ../src/common/wpa_ctrl.o
90c1d255d3SCy SchubertOBJS_c += ../src/utils/os_$(CONFIG_OS).o
91c1d255d3SCy SchubertOBJS_c += ../src/common/cli.o
92c1d255d3SCy Schubert
93c1d255d3SCy SchubertNEED_RC4=y
94c1d255d3SCy SchubertNEED_AES=y
95c1d255d3SCy SchubertNEED_MD5=y
96c1d255d3SCy SchubertNEED_SHA1=y
97c1d255d3SCy Schubert
98c1d255d3SCy SchubertOBJS += ../src/drivers/drivers.o
99c1d255d3SCy SchubertCFLAGS += -DHOSTAPD
100c1d255d3SCy Schubert
101c1d255d3SCy Schubertifdef CONFIG_TAXONOMY
102c1d255d3SCy SchubertCFLAGS += -DCONFIG_TAXONOMY
103c1d255d3SCy SchubertOBJS += ../src/ap/taxonomy.o
104c1d255d3SCy Schubertendif
105c1d255d3SCy Schubert
106c1d255d3SCy Schubertifdef CONFIG_MODULE_TESTS
107c1d255d3SCy SchubertCFLAGS += -DCONFIG_MODULE_TESTS
108c1d255d3SCy SchubertOBJS += hapd_module_tests.o
109c1d255d3SCy Schubertendif
110c1d255d3SCy Schubert
111c1d255d3SCy Schubertifdef CONFIG_WPA_TRACE
112c1d255d3SCy SchubertCFLAGS += -DWPA_TRACE
113c1d255d3SCy SchubertOBJS += ../src/utils/trace.o
114c1d255d3SCy SchubertHOBJS += ../src/utils/trace.o
115c1d255d3SCy SchubertLDFLAGS += -rdynamic
116c1d255d3SCy SchubertCFLAGS += -funwind-tables
117c1d255d3SCy Schubertifdef CONFIG_WPA_TRACE_BFD
118c1d255d3SCy SchubertCFLAGS += -DPACKAGE="hostapd" -DWPA_TRACE_BFD
119c1d255d3SCy SchubertLIBS += -lbfd -ldl -liberty -lz
120c1d255d3SCy SchubertLIBS_c += -lbfd -ldl -liberty -lz
121c1d255d3SCy SchubertLIBS_h += -lbfd -ldl -liberty -lz
122c1d255d3SCy SchubertLIBS_n += -lbfd -ldl -liberty -lz
123c1d255d3SCy SchubertLIBS_s += -lbfd -ldl -liberty -lz
124c1d255d3SCy Schubertendif
125c1d255d3SCy Schubertendif
126c1d255d3SCy Schubert
127c1d255d3SCy Schubertifndef CONFIG_ELOOP
128c1d255d3SCy SchubertCONFIG_ELOOP=eloop
129c1d255d3SCy Schubertendif
130c1d255d3SCy SchubertOBJS += ../src/utils/$(CONFIG_ELOOP).o
131c1d255d3SCy SchubertOBJS_c += ../src/utils/$(CONFIG_ELOOP).o
132c1d255d3SCy Schubert
133c1d255d3SCy Schubertifeq ($(CONFIG_ELOOP), eloop)
134c1d255d3SCy Schubert# Using glibc < 2.17 requires -lrt for clock_gettime()
135c1d255d3SCy SchubertLIBS += -lrt
136c1d255d3SCy SchubertLIBS_c += -lrt
137c1d255d3SCy SchubertLIBS_h += -lrt
138c1d255d3SCy SchubertLIBS_n += -lrt
139c1d255d3SCy Schubertendif
140c1d255d3SCy Schubert
141c1d255d3SCy Schubertifdef CONFIG_ELOOP_POLL
142c1d255d3SCy SchubertCFLAGS += -DCONFIG_ELOOP_POLL
143c1d255d3SCy Schubertendif
144c1d255d3SCy Schubert
145c1d255d3SCy Schubertifdef CONFIG_ELOOP_EPOLL
146c1d255d3SCy SchubertCFLAGS += -DCONFIG_ELOOP_EPOLL
147c1d255d3SCy Schubertendif
148c1d255d3SCy Schubert
149c1d255d3SCy Schubertifdef CONFIG_ELOOP_KQUEUE
150c1d255d3SCy SchubertCFLAGS += -DCONFIG_ELOOP_KQUEUE
151c1d255d3SCy Schubertendif
152c1d255d3SCy Schubert
153c1d255d3SCy SchubertOBJS += ../src/utils/common.o
154c1d255d3SCy SchubertOBJS_c += ../src/utils/common.o
155c1d255d3SCy SchubertOBJS += ../src/utils/wpa_debug.o
156c1d255d3SCy SchubertOBJS_c += ../src/utils/wpa_debug.o
157c1d255d3SCy SchubertOBJS += ../src/utils/wpabuf.o
158c1d255d3SCy SchubertOBJS += ../src/utils/os_$(CONFIG_OS).o
159c1d255d3SCy SchubertOBJS += ../src/utils/ip_addr.o
160c1d255d3SCy SchubertOBJS += ../src/utils/crc32.o
161c1d255d3SCy Schubert
162c1d255d3SCy SchubertOBJS += ../src/common/ieee802_11_common.o
163c1d255d3SCy SchubertOBJS += ../src/common/wpa_common.o
164c1d255d3SCy SchubertOBJS += ../src/common/hw_features_common.o
165c1d255d3SCy Schubert
166c1d255d3SCy SchubertOBJS += ../src/eapol_auth/eapol_auth_sm.o
167c1d255d3SCy Schubert
168c1d255d3SCy Schubert
169c1d255d3SCy Schubertifdef CONFIG_CODE_COVERAGE
170c1d255d3SCy SchubertCFLAGS += -O0 -fprofile-arcs -ftest-coverage
171c1d255d3SCy SchubertLIBS += -lgcov
172c1d255d3SCy SchubertLIBS_c += -lgcov
173c1d255d3SCy SchubertLIBS_h += -lgcov
174c1d255d3SCy SchubertLIBS_n += -lgcov
175c1d255d3SCy Schubertendif
176c1d255d3SCy Schubert
177c1d255d3SCy Schubertifndef CONFIG_NO_DUMP_STATE
178c1d255d3SCy Schubert# define HOSTAPD_DUMP_STATE to include support for dumping internal state
179c1d255d3SCy Schubert# through control interface commands (undefine it, if you want to save in
180c1d255d3SCy Schubert# binary size)
181c1d255d3SCy SchubertCFLAGS += -DHOSTAPD_DUMP_STATE
182c1d255d3SCy SchubertOBJS += ../src/eapol_auth/eapol_auth_dump.o
183c1d255d3SCy Schubertendif
184c1d255d3SCy Schubert
185c1d255d3SCy Schubertifdef CONFIG_NO_RADIUS
186c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_RADIUS
187c1d255d3SCy SchubertCONFIG_NO_ACCOUNTING=y
188c1d255d3SCy Schubertelse
189c1d255d3SCy SchubertOBJS += ../src/radius/radius.o
190c1d255d3SCy SchubertOBJS += ../src/radius/radius_client.o
191c1d255d3SCy SchubertOBJS += ../src/radius/radius_das.o
192c1d255d3SCy Schubertendif
193c1d255d3SCy Schubert
194c1d255d3SCy Schubertifdef CONFIG_NO_ACCOUNTING
195c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_ACCOUNTING
196c1d255d3SCy Schubertelse
197c1d255d3SCy SchubertOBJS += ../src/ap/accounting.o
198c1d255d3SCy Schubertendif
199c1d255d3SCy Schubert
200c1d255d3SCy Schubertifdef CONFIG_NO_VLAN
201c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_VLAN
202c1d255d3SCy Schubertelse
203c1d255d3SCy SchubertOBJS += ../src/ap/vlan_init.o
204c1d255d3SCy SchubertOBJS += ../src/ap/vlan_ifconfig.o
205c1d255d3SCy SchubertOBJS += ../src/ap/vlan.o
206c1d255d3SCy Schubertifdef CONFIG_FULL_DYNAMIC_VLAN
207c1d255d3SCy Schubert# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
208c1d255d3SCy Schubert# and VLAN interfaces for the VLAN feature.
209c1d255d3SCy SchubertCFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
210c1d255d3SCy SchubertOBJS += ../src/ap/vlan_full.o
211c1d255d3SCy Schubertifdef CONFIG_VLAN_NETLINK
212c1d255d3SCy SchubertOBJS += ../src/ap/vlan_util.o
213c1d255d3SCy Schubertelse
214c1d255d3SCy SchubertOBJS += ../src/ap/vlan_ioctl.o
215c1d255d3SCy Schubertendif
216c1d255d3SCy Schubertendif
217c1d255d3SCy Schubertendif
218c1d255d3SCy Schubert
219c1d255d3SCy Schubertifdef CONFIG_NO_CTRL_IFACE
220c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_CTRL_IFACE
221c1d255d3SCy Schubertelse
222c1d255d3SCy Schubertifeq ($(CONFIG_CTRL_IFACE), udp)
223c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP
224c1d255d3SCy Schubertelse
225c1d255d3SCy Schubertifeq ($(CONFIG_CTRL_IFACE), udp6)
226c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP
227c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
228c1d255d3SCy Schubertelse
229c1d255d3SCy Schubertifeq ($(CONFIG_CTRL_IFACE), udp-remote)
230c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP
231c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
232c1d255d3SCy Schubertelse
233c1d255d3SCy Schubertifeq ($(CONFIG_CTRL_IFACE), udp6-remote)
234c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP
235c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
236c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6
237c1d255d3SCy Schubertelse
238c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE_UNIX
239c1d255d3SCy Schubertendif
240c1d255d3SCy Schubertendif
241c1d255d3SCy Schubertendif
242c1d255d3SCy Schubertendif
243c1d255d3SCy SchubertOBJS += ../src/common/ctrl_iface_common.o
244c1d255d3SCy SchubertOBJS += ctrl_iface.o
245c1d255d3SCy SchubertOBJS += ../src/ap/ctrl_iface_ap.o
246c1d255d3SCy Schubertendif
247c1d255d3SCy Schubert
248c1d255d3SCy Schubertifndef CONFIG_NO_CTRL_IFACE
249c1d255d3SCy SchubertCFLAGS += -DCONFIG_CTRL_IFACE
250c1d255d3SCy Schubertendif
251c1d255d3SCy Schubert
252c1d255d3SCy Schubertifdef CONFIG_RSN_PREAUTH
253c1d255d3SCy SchubertCFLAGS += -DCONFIG_RSN_PREAUTH
254c1d255d3SCy SchubertCONFIG_L2_PACKET=y
255c1d255d3SCy Schubertendif
256c1d255d3SCy Schubert
257c1d255d3SCy Schubertifdef CONFIG_HS20
258c1d255d3SCy SchubertCONFIG_PROXYARP=y
259c1d255d3SCy Schubertendif
260c1d255d3SCy Schubert
261c1d255d3SCy Schubertifdef CONFIG_PROXYARP
262c1d255d3SCy SchubertCONFIG_L2_PACKET=y
263c1d255d3SCy Schubertendif
264c1d255d3SCy Schubert
265c1d255d3SCy Schubertifdef CONFIG_SUITEB
266c1d255d3SCy SchubertCFLAGS += -DCONFIG_SUITEB
267c1d255d3SCy Schubertendif
268c1d255d3SCy Schubert
269c1d255d3SCy Schubertifdef CONFIG_SUITEB192
270c1d255d3SCy SchubertCFLAGS += -DCONFIG_SUITEB192
271c1d255d3SCy SchubertNEED_SHA384=y
272c1d255d3SCy Schubertendif
273c1d255d3SCy Schubert
274c1d255d3SCy Schubertifdef CONFIG_OCV
275c1d255d3SCy SchubertCFLAGS += -DCONFIG_OCV
276c1d255d3SCy SchubertOBJS += ../src/common/ocv.o
277c1d255d3SCy Schubertendif
278c1d255d3SCy Schubert
279c1d255d3SCy Schubertifdef CONFIG_IEEE80211R
280c1d255d3SCy SchubertCFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP
281c1d255d3SCy SchubertOBJS += ../src/ap/wpa_auth_ft.o
282c1d255d3SCy SchubertNEED_AES_UNWRAP=y
283c1d255d3SCy SchubertNEED_AES_SIV=y
284c1d255d3SCy SchubertNEED_ETH_P_OUI=y
285c1d255d3SCy SchubertNEED_HMAC_SHA256_KDF=y
286c1d255d3SCy Schubertendif
287c1d255d3SCy Schubert
288c1d255d3SCy Schubertifdef NEED_ETH_P_OUI
289c1d255d3SCy SchubertCFLAGS += -DCONFIG_ETH_P_OUI
290c1d255d3SCy SchubertOBJS += ../src/ap/eth_p_oui.o
291c1d255d3SCy Schubertendif
292c1d255d3SCy Schubert
293c1d255d3SCy Schubertifdef CONFIG_SAE
294c1d255d3SCy SchubertCFLAGS += -DCONFIG_SAE
295c1d255d3SCy SchubertOBJS += ../src/common/sae.o
296c1d255d3SCy Schubertifdef CONFIG_SAE_PK
297c1d255d3SCy SchubertCFLAGS += -DCONFIG_SAE_PK
298c1d255d3SCy SchubertOBJS += ../src/common/sae_pk.o
299c1d255d3SCy Schubertendif
300c1d255d3SCy SchubertNEED_ECC=y
301c1d255d3SCy SchubertNEED_DH_GROUPS=y
302c1d255d3SCy SchubertNEED_HMAC_SHA256_KDF=y
303c1d255d3SCy SchubertNEED_AP_MLME=y
304c1d255d3SCy SchubertNEED_DRAGONFLY=y
305c1d255d3SCy Schubertendif
306c1d255d3SCy Schubert
307c1d255d3SCy Schubertifdef CONFIG_OWE
308c1d255d3SCy SchubertCFLAGS += -DCONFIG_OWE
309c1d255d3SCy SchubertNEED_ECC=y
310c1d255d3SCy SchubertNEED_HMAC_SHA256_KDF=y
311c1d255d3SCy SchubertNEED_HMAC_SHA384_KDF=y
312c1d255d3SCy SchubertNEED_HMAC_SHA512_KDF=y
313c1d255d3SCy SchubertNEED_SHA384=y
314c1d255d3SCy SchubertNEED_SHA512=y
315c1d255d3SCy Schubertendif
316c1d255d3SCy Schubert
317c1d255d3SCy Schubertifdef CONFIG_AIRTIME_POLICY
318c1d255d3SCy SchubertCFLAGS += -DCONFIG_AIRTIME_POLICY
319c1d255d3SCy SchubertOBJS += ../src/ap/airtime_policy.o
320c1d255d3SCy Schubertendif
321c1d255d3SCy Schubert
322c1d255d3SCy Schubertifdef CONFIG_FILS
323c1d255d3SCy SchubertCFLAGS += -DCONFIG_FILS
324c1d255d3SCy SchubertOBJS += ../src/ap/fils_hlp.o
325c1d255d3SCy SchubertNEED_SHA384=y
326c1d255d3SCy SchubertNEED_AES_SIV=y
327c1d255d3SCy Schubertifdef CONFIG_FILS_SK_PFS
328c1d255d3SCy SchubertCFLAGS += -DCONFIG_FILS_SK_PFS
329c1d255d3SCy SchubertNEED_ECC=y
330c1d255d3SCy Schubertendif
331c1d255d3SCy Schubertendif
332c1d255d3SCy Schubert
333c1d255d3SCy Schubertifdef CONFIG_WNM
334c1d255d3SCy SchubertCFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP
335c1d255d3SCy SchubertOBJS += ../src/ap/wnm_ap.o
336c1d255d3SCy Schubertendif
337c1d255d3SCy Schubert
338c1d255d3SCy Schubertifdef CONFIG_IEEE80211AC
339c1d255d3SCy SchubertCFLAGS += -DCONFIG_IEEE80211AC
340c1d255d3SCy Schubertendif
341c1d255d3SCy Schubert
342c1d255d3SCy Schubertifdef CONFIG_IEEE80211AX
343c1d255d3SCy SchubertCFLAGS += -DCONFIG_IEEE80211AX
344c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_11_he.o
345c1d255d3SCy Schubertendif
346c1d255d3SCy Schubert
347c1d255d3SCy Schubertifdef CONFIG_MBO
348c1d255d3SCy SchubertCFLAGS += -DCONFIG_MBO
349c1d255d3SCy SchubertOBJS += ../src/ap/mbo_ap.o
350c1d255d3SCy Schubertendif
351c1d255d3SCy Schubert
352c1d255d3SCy Schubertinclude ../src/drivers/drivers.mak
353c1d255d3SCy SchubertOBJS += $(DRV_AP_OBJS)
354c1d255d3SCy SchubertCFLAGS += $(DRV_AP_CFLAGS)
355c1d255d3SCy SchubertLDFLAGS += $(DRV_AP_LDFLAGS)
356c1d255d3SCy SchubertLIBS += $(DRV_AP_LIBS)
357c1d255d3SCy Schubert
358c1d255d3SCy Schubertifdef CONFIG_L2_PACKET
359c1d255d3SCy Schubertifdef CONFIG_DNET_PCAP
360c1d255d3SCy Schubertifdef CONFIG_L2_FREEBSD
361c1d255d3SCy SchubertLIBS += -lpcap
362c1d255d3SCy SchubertOBJS += ../src/l2_packet/l2_packet_freebsd.o
363c1d255d3SCy Schubertelse
364c1d255d3SCy SchubertLIBS += -ldnet -lpcap
365c1d255d3SCy SchubertOBJS += ../src/l2_packet/l2_packet_pcap.o
366c1d255d3SCy Schubertendif
367c1d255d3SCy Schubertelse
368c1d255d3SCy SchubertOBJS += ../src/l2_packet/l2_packet_linux.o
369c1d255d3SCy Schubertendif
370c1d255d3SCy Schubertelse
371c1d255d3SCy SchubertOBJS += ../src/l2_packet/l2_packet_none.o
372c1d255d3SCy Schubertendif
373c1d255d3SCy Schubert
374c1d255d3SCy Schubert
375c1d255d3SCy Schubertifdef CONFIG_ERP
376c1d255d3SCy SchubertCFLAGS += -DCONFIG_ERP
377c1d255d3SCy SchubertNEED_HMAC_SHA256_KDF=y
378c1d255d3SCy Schubertendif
379c1d255d3SCy Schubert
380c1d255d3SCy Schubertifdef CONFIG_EAP_MD5
381c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_MD5
382c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_md5.o
383c1d255d3SCy SchubertCHAP=y
384c1d255d3SCy Schubertendif
385c1d255d3SCy Schubert
386c1d255d3SCy Schubertifdef CONFIG_EAP_TLS
387c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_TLS
388c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_tls.o
389c1d255d3SCy SchubertTLS_FUNCS=y
390c1d255d3SCy Schubertendif
391c1d255d3SCy Schubert
392c1d255d3SCy Schubertifdef CONFIG_EAP_UNAUTH_TLS
393c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_UNAUTH_TLS
394c1d255d3SCy Schubertifndef CONFIG_EAP_TLS
395c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_tls.o
396c1d255d3SCy SchubertTLS_FUNCS=y
397c1d255d3SCy Schubertendif
398c1d255d3SCy Schubertendif
399c1d255d3SCy Schubert
400c1d255d3SCy Schubertifdef CONFIG_EAP_PEAP
401c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_PEAP
402c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_peap.o
403c1d255d3SCy SchubertOBJS += ../src/eap_common/eap_peap_common.o
404c1d255d3SCy SchubertTLS_FUNCS=y
405c1d255d3SCy SchubertCONFIG_EAP_MSCHAPV2=y
406c1d255d3SCy Schubertendif
407c1d255d3SCy Schubert
408c1d255d3SCy Schubertifdef CONFIG_EAP_TTLS
409c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_TTLS
410c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_ttls.o
411c1d255d3SCy SchubertTLS_FUNCS=y
412c1d255d3SCy SchubertCHAP=y
413c1d255d3SCy Schubertendif
414c1d255d3SCy Schubert
415c1d255d3SCy Schubertifdef CONFIG_EAP_MSCHAPV2
416c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_MSCHAPV2
417c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_mschapv2.o
418c1d255d3SCy SchubertMS_FUNCS=y
419c1d255d3SCy Schubertendif
420c1d255d3SCy Schubert
421c1d255d3SCy Schubertifdef CONFIG_EAP_GTC
422c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_GTC
423c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_gtc.o
424c1d255d3SCy Schubertendif
425c1d255d3SCy Schubert
426c1d255d3SCy Schubertifdef CONFIG_EAP_SIM
427c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_SIM
428c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_sim.o
429c1d255d3SCy SchubertCONFIG_EAP_SIM_COMMON=y
430c1d255d3SCy SchubertNEED_AES_CBC=y
431c1d255d3SCy Schubertendif
432c1d255d3SCy Schubert
433c1d255d3SCy Schubertifdef CONFIG_EAP_AKA
434c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_AKA
435c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_aka.o
436c1d255d3SCy SchubertCONFIG_EAP_SIM_COMMON=y
437c1d255d3SCy SchubertNEED_AES_CBC=y
438c1d255d3SCy Schubertendif
439c1d255d3SCy Schubert
440c1d255d3SCy Schubertifdef CONFIG_EAP_AKA_PRIME
441c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_AKA_PRIME
442c1d255d3SCy Schubertendif
443c1d255d3SCy Schubert
444c1d255d3SCy Schubertifdef CONFIG_EAP_SIM_COMMON
445c1d255d3SCy SchubertOBJS += ../src/eap_common/eap_sim_common.o
446c1d255d3SCy Schubert# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be
447c1d255d3SCy Schubert# replaced with another file implementing the interface specified in
448c1d255d3SCy Schubert# eap_sim_db.h.
449c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_sim_db.o
450c1d255d3SCy SchubertNEED_FIPS186_2_PRF=y
451c1d255d3SCy Schubertendif
452c1d255d3SCy Schubert
453c1d255d3SCy Schubertifdef CONFIG_EAP_PAX
454c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_PAX
455c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_pax.o ../src/eap_common/eap_pax_common.o
456c1d255d3SCy Schubertendif
457c1d255d3SCy Schubert
458c1d255d3SCy Schubertifdef CONFIG_EAP_PSK
459c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_PSK
460c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_psk.o ../src/eap_common/eap_psk_common.o
461c1d255d3SCy SchubertNEED_AES_ENCBLOCK=y
462c1d255d3SCy SchubertNEED_AES_EAX=y
463c1d255d3SCy Schubertendif
464c1d255d3SCy Schubert
465c1d255d3SCy Schubertifdef CONFIG_EAP_SAKE
466c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_SAKE
467c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_sake.o ../src/eap_common/eap_sake_common.o
468c1d255d3SCy Schubertendif
469c1d255d3SCy Schubert
470c1d255d3SCy Schubertifdef CONFIG_EAP_GPSK
471c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_GPSK
472c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_gpsk.o ../src/eap_common/eap_gpsk_common.o
473c1d255d3SCy Schubertifdef CONFIG_EAP_GPSK_SHA256
474c1d255d3SCy SchubertCFLAGS += -DEAP_GPSK_SHA256
475c1d255d3SCy Schubertendif
476c1d255d3SCy Schubertendif
477c1d255d3SCy Schubert
478c1d255d3SCy Schubertifdef CONFIG_EAP_PWD
479c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_PWD
480c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o
481c1d255d3SCy SchubertNEED_ECC=y
482c1d255d3SCy SchubertNEED_DRAGONFLY=y
483c1d255d3SCy Schubertendif
484c1d255d3SCy Schubert
485c1d255d3SCy Schubertifdef CONFIG_EAP_EKE
486c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_EKE
487c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_eke.o ../src/eap_common/eap_eke_common.o
488c1d255d3SCy SchubertNEED_DH_GROUPS=y
489c1d255d3SCy SchubertNEED_DH_GROUPS_ALL=y
490c1d255d3SCy Schubertendif
491c1d255d3SCy Schubert
492c1d255d3SCy Schubertifdef CONFIG_EAP_VENDOR_TEST
493c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_VENDOR_TEST
494c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_vendor_test.o
495c1d255d3SCy Schubertendif
496c1d255d3SCy Schubert
497c1d255d3SCy Schubertifdef CONFIG_EAP_FAST
498c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_FAST
499c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_fast.o
500c1d255d3SCy SchubertOBJS += ../src/eap_common/eap_fast_common.o
501c1d255d3SCy SchubertTLS_FUNCS=y
502c1d255d3SCy SchubertNEED_T_PRF=y
503c1d255d3SCy SchubertNEED_AES_UNWRAP=y
504c1d255d3SCy Schubertendif
505c1d255d3SCy Schubert
506c1d255d3SCy Schubertifdef CONFIG_EAP_TEAP
507c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_TEAP
508c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_teap.o
509c1d255d3SCy SchubertOBJS += ../src/eap_common/eap_teap_common.o
510c1d255d3SCy SchubertTLS_FUNCS=y
511c1d255d3SCy SchubertNEED_T_PRF=y
512c1d255d3SCy SchubertNEED_SHA384=y
513c1d255d3SCy SchubertNEED_TLS_PRF_SHA256=y
514c1d255d3SCy SchubertNEED_TLS_PRF_SHA384=y
515c1d255d3SCy SchubertNEED_AES_UNWRAP=y
516c1d255d3SCy Schubertendif
517c1d255d3SCy Schubert
518c1d255d3SCy Schubertifdef CONFIG_WPS
519c1d255d3SCy SchubertCFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC
520c1d255d3SCy SchubertOBJS += ../src/utils/uuid.o
521c1d255d3SCy SchubertOBJS += ../src/ap/wps_hostapd.o
522c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_wsc.o ../src/eap_common/eap_wsc_common.o
523c1d255d3SCy SchubertOBJS += ../src/wps/wps.o
524c1d255d3SCy SchubertOBJS += ../src/wps/wps_common.o
525c1d255d3SCy SchubertOBJS += ../src/wps/wps_attr_parse.o
526c1d255d3SCy SchubertOBJS += ../src/wps/wps_attr_build.o
527c1d255d3SCy SchubertOBJS += ../src/wps/wps_attr_process.o
528c1d255d3SCy SchubertOBJS += ../src/wps/wps_dev_attr.o
529c1d255d3SCy SchubertOBJS += ../src/wps/wps_enrollee.o
530c1d255d3SCy SchubertOBJS += ../src/wps/wps_registrar.o
531c1d255d3SCy SchubertNEED_DH_GROUPS=y
532c1d255d3SCy SchubertNEED_BASE64=y
533c1d255d3SCy SchubertNEED_AES_CBC=y
534c1d255d3SCy SchubertNEED_MODEXP=y
535c1d255d3SCy SchubertCONFIG_EAP=y
536c1d255d3SCy Schubert
537c1d255d3SCy Schubertifdef CONFIG_WPS_NFC
538c1d255d3SCy SchubertCFLAGS += -DCONFIG_WPS_NFC
539c1d255d3SCy SchubertOBJS += ../src/wps/ndef.o
540c1d255d3SCy SchubertNEED_WPS_OOB=y
541c1d255d3SCy Schubertendif
542c1d255d3SCy Schubert
543c1d255d3SCy Schubertifdef NEED_WPS_OOB
544c1d255d3SCy SchubertCFLAGS += -DCONFIG_WPS_OOB
545c1d255d3SCy Schubertendif
546c1d255d3SCy Schubert
547c1d255d3SCy Schubertifdef CONFIG_WPS_UPNP
548c1d255d3SCy SchubertCFLAGS += -DCONFIG_WPS_UPNP
549c1d255d3SCy SchubertOBJS += ../src/wps/wps_upnp.o
550c1d255d3SCy SchubertOBJS += ../src/wps/wps_upnp_ssdp.o
551c1d255d3SCy SchubertOBJS += ../src/wps/wps_upnp_web.o
552c1d255d3SCy SchubertOBJS += ../src/wps/wps_upnp_event.o
553c1d255d3SCy SchubertOBJS += ../src/wps/wps_upnp_ap.o
554c1d255d3SCy SchubertOBJS += ../src/wps/upnp_xml.o
555c1d255d3SCy SchubertOBJS += ../src/wps/httpread.o
556c1d255d3SCy SchubertOBJS += ../src/wps/http_client.o
557c1d255d3SCy SchubertOBJS += ../src/wps/http_server.o
558c1d255d3SCy Schubertendif
559c1d255d3SCy Schubert
560c1d255d3SCy Schubertifdef CONFIG_WPS_STRICT
561c1d255d3SCy SchubertCFLAGS += -DCONFIG_WPS_STRICT
562c1d255d3SCy SchubertOBJS += ../src/wps/wps_validate.o
563c1d255d3SCy Schubertendif
564c1d255d3SCy Schubert
565c1d255d3SCy Schubertifdef CONFIG_WPS_TESTING
566c1d255d3SCy SchubertCFLAGS += -DCONFIG_WPS_TESTING
567c1d255d3SCy Schubertendif
568c1d255d3SCy Schubert
569c1d255d3SCy Schubertendif
570c1d255d3SCy Schubert
571c1d255d3SCy Schubertifdef CONFIG_DPP
572c1d255d3SCy SchubertCFLAGS += -DCONFIG_DPP
573c1d255d3SCy SchubertOBJS += ../src/common/dpp.o
574c1d255d3SCy SchubertOBJS += ../src/common/dpp_auth.o
575c1d255d3SCy SchubertOBJS += ../src/common/dpp_backup.o
576c1d255d3SCy SchubertOBJS += ../src/common/dpp_crypto.o
577c1d255d3SCy SchubertOBJS += ../src/common/dpp_pkex.o
578c1d255d3SCy SchubertOBJS += ../src/common/dpp_reconfig.o
579c1d255d3SCy SchubertOBJS += ../src/common/dpp_tcp.o
580c1d255d3SCy SchubertOBJS += ../src/ap/dpp_hostapd.o
581c1d255d3SCy SchubertOBJS += ../src/ap/gas_query_ap.o
582c1d255d3SCy SchubertNEED_AES_SIV=y
583c1d255d3SCy SchubertNEED_HMAC_SHA256_KDF=y
584c1d255d3SCy SchubertNEED_HMAC_SHA384_KDF=y
585c1d255d3SCy SchubertNEED_HMAC_SHA512_KDF=y
586c1d255d3SCy SchubertNEED_SHA384=y
587c1d255d3SCy SchubertNEED_SHA512=y
588c1d255d3SCy SchubertNEED_ECC=y
589c1d255d3SCy SchubertNEED_JSON=y
590c1d255d3SCy SchubertNEED_GAS=y
591c1d255d3SCy SchubertNEED_BASE64=y
592c1d255d3SCy SchubertNEED_ASN1=y
593c1d255d3SCy Schubertifdef CONFIG_DPP2
594c1d255d3SCy SchubertCFLAGS += -DCONFIG_DPP2
595c1d255d3SCy Schubertendif
596*32a95656SCy Schubertifdef CONFIG_DPP3
597*32a95656SCy SchubertCFLAGS += -DCONFIG_DPP3
598*32a95656SCy Schubertendif
599c1d255d3SCy Schubertendif
600c1d255d3SCy Schubert
601c1d255d3SCy Schubertifdef CONFIG_PASN
602c1d255d3SCy SchubertCFLAGS += -DCONFIG_PASN
603c1d255d3SCy SchubertCFLAGS += -DCONFIG_PTKSA_CACHE
604c1d255d3SCy SchubertNEED_HMAC_SHA256_KDF=y
605c1d255d3SCy SchubertNEED_HMAC_SHA384_KDF=y
606c1d255d3SCy SchubertNEED_SHA256=y
607c1d255d3SCy SchubertNEED_SHA384=y
608c1d255d3SCy SchubertOBJS += ../src/common/ptksa_cache.o
609c1d255d3SCy Schubertendif
610c1d255d3SCy Schubert
611c1d255d3SCy Schubertifdef CONFIG_EAP_IKEV2
612c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_IKEV2
613c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o
614c1d255d3SCy SchubertOBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
615c1d255d3SCy SchubertNEED_DH_GROUPS=y
616c1d255d3SCy SchubertNEED_DH_GROUPS_ALL=y
617c1d255d3SCy SchubertNEED_MODEXP=y
618c1d255d3SCy SchubertNEED_CIPHER=y
619c1d255d3SCy Schubertendif
620c1d255d3SCy Schubert
621c1d255d3SCy Schubertifdef CONFIG_EAP_TNC
622c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_TNC
623c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_tnc.o
624c1d255d3SCy SchubertOBJS += ../src/eap_server/tncs.o
625c1d255d3SCy SchubertNEED_BASE64=y
626c1d255d3SCy Schubertifndef CONFIG_DRIVER_BSD
627c1d255d3SCy SchubertLIBS += -ldl
628c1d255d3SCy Schubertendif
629c1d255d3SCy Schubertendif
630c1d255d3SCy Schubert
631c1d255d3SCy Schubertifdef CONFIG_MACSEC
632c1d255d3SCy SchubertCFLAGS += -DCONFIG_MACSEC
633c1d255d3SCy SchubertOBJS += ../src/ap/wpa_auth_kay.o
634c1d255d3SCy SchubertOBJS += ../src/pae/ieee802_1x_cp.o
635c1d255d3SCy SchubertOBJS += ../src/pae/ieee802_1x_kay.o
636c1d255d3SCy SchubertOBJS += ../src/pae/ieee802_1x_key.o
637c1d255d3SCy SchubertOBJS += ../src/pae/ieee802_1x_secy_ops.o
638c1d255d3SCy Schubertendif
639c1d255d3SCy Schubert
640c1d255d3SCy Schubert# Basic EAP functionality is needed for EAPOL
641c1d255d3SCy SchubertOBJS += eap_register.o
642c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server.o
643c1d255d3SCy SchubertOBJS += ../src/eap_common/eap_common.o
644c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_methods.o
645c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_identity.o
646c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER_IDENTITY
647c1d255d3SCy Schubert
648c1d255d3SCy Schubertifdef CONFIG_EAP
649c1d255d3SCy SchubertCFLAGS += -DEAP_SERVER
650c1d255d3SCy Schubertendif
651c1d255d3SCy Schubert
652c1d255d3SCy Schubertifdef CONFIG_PKCS12
653c1d255d3SCy SchubertCFLAGS += -DPKCS12_FUNCS
654c1d255d3SCy Schubertendif
655c1d255d3SCy Schubert
656c1d255d3SCy Schubertifdef NEED_DRAGONFLY
657c1d255d3SCy SchubertOBJS += ../src/common/dragonfly.o
658c1d255d3SCy Schubertendif
659c1d255d3SCy Schubert
660c1d255d3SCy Schubertifdef MS_FUNCS
661c1d255d3SCy SchubertOBJS += ../src/crypto/ms_funcs.o
662c1d255d3SCy SchubertNEED_DES=y
663c1d255d3SCy SchubertNEED_MD4=y
664c1d255d3SCy Schubertendif
665c1d255d3SCy Schubert
666c1d255d3SCy Schubertifdef CHAP
667c1d255d3SCy SchubertOBJS += ../src/eap_common/chap.o
668c1d255d3SCy Schubertendif
669c1d255d3SCy Schubert
670c1d255d3SCy Schubertifdef TLS_FUNCS
671c1d255d3SCy SchubertNEED_DES=y
672c1d255d3SCy Schubert# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS)
673c1d255d3SCy SchubertCFLAGS += -DEAP_TLS_FUNCS
674c1d255d3SCy SchubertOBJS += ../src/eap_server/eap_server_tls_common.o
675c1d255d3SCy SchubertNEED_TLS_PRF=y
676c1d255d3SCy Schubertendif
677c1d255d3SCy Schubert
678c1d255d3SCy Schubertifndef CONFIG_TLS
679c1d255d3SCy SchubertCONFIG_TLS=openssl
680c1d255d3SCy Schubertendif
681c1d255d3SCy Schubert
682c1d255d3SCy Schubertifdef CONFIG_TLSV11
683c1d255d3SCy SchubertCFLAGS += -DCONFIG_TLSV11
684c1d255d3SCy Schubertendif
685c1d255d3SCy Schubert
686c1d255d3SCy Schubertifdef CONFIG_TLSV12
687c1d255d3SCy SchubertCFLAGS += -DCONFIG_TLSV12
688c1d255d3SCy Schubertendif
689c1d255d3SCy Schubert
690c1d255d3SCy Schubertifeq ($(CONFIG_TLS), wolfssl)
691c1d255d3SCy SchubertCONFIG_CRYPTO=wolfssl
692c1d255d3SCy Schubertifdef TLS_FUNCS
693c1d255d3SCy SchubertOBJS += ../src/crypto/tls_wolfssl.o
694c1d255d3SCy SchubertLIBS += -lwolfssl -lm
695c1d255d3SCy Schubertendif
696c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_wolfssl.o
697c1d255d3SCy SchubertHOBJS += ../src/crypto/crypto_wolfssl.o
698c1d255d3SCy Schubertifdef NEED_FIPS186_2_PRF
699c1d255d3SCy SchubertOBJS += ../src/crypto/fips_prf_wolfssl.o
700c1d255d3SCy Schubertendif
701c1d255d3SCy SchubertNEED_TLS_PRF_SHA256=y
702c1d255d3SCy SchubertLIBS += -lwolfssl -lm
703c1d255d3SCy SchubertLIBS_h += -lwolfssl -lm
704c1d255d3SCy Schubertifdef CONFIG_TLS_ADD_DL
705c1d255d3SCy SchubertLIBS += -ldl
706c1d255d3SCy SchubertLIBS_h += -ldl
707c1d255d3SCy Schubertendif
708c1d255d3SCy Schubertendif
709c1d255d3SCy Schubert
710c1d255d3SCy Schubertifeq ($(CONFIG_TLS), openssl)
711c1d255d3SCy SchubertCONFIG_CRYPTO=openssl
712c1d255d3SCy Schubertifdef TLS_FUNCS
713c1d255d3SCy SchubertOBJS += ../src/crypto/tls_openssl.o
714c1d255d3SCy SchubertOBJS += ../src/crypto/tls_openssl_ocsp.o
715c1d255d3SCy SchubertLIBS += -lssl
716c1d255d3SCy Schubertendif
717c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_openssl.o
718c1d255d3SCy SchubertHOBJS += ../src/crypto/crypto_openssl.o
719c1d255d3SCy SchubertSOBJS += ../src/crypto/crypto_openssl.o
720c1d255d3SCy Schubertifdef NEED_FIPS186_2_PRF
721c1d255d3SCy SchubertOBJS += ../src/crypto/fips_prf_openssl.o
722c1d255d3SCy Schubertendif
723c1d255d3SCy SchubertNEED_TLS_PRF_SHA256=y
724c1d255d3SCy SchubertLIBS += -lcrypto
725c1d255d3SCy SchubertLIBS_h += -lcrypto
726c1d255d3SCy SchubertLIBS_n += -lcrypto
727c1d255d3SCy SchubertLIBS_s += -lcrypto
728c1d255d3SCy Schubertifdef CONFIG_TLS_ADD_DL
729c1d255d3SCy SchubertLIBS += -ldl
730c1d255d3SCy SchubertLIBS_h += -ldl
731c1d255d3SCy SchubertLIBS_s += -ldl
732c1d255d3SCy Schubertendif
733c1d255d3SCy Schubertifndef CONFIG_TLS_DEFAULT_CIPHERS
734c1d255d3SCy SchubertCONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW"
735c1d255d3SCy Schubertendif
736c1d255d3SCy SchubertCFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
737c1d255d3SCy Schubertendif
738c1d255d3SCy Schubert
739c1d255d3SCy Schubertifeq ($(CONFIG_TLS), gnutls)
740c1d255d3SCy Schubertifndef CONFIG_CRYPTO
741c1d255d3SCy Schubert# default to libgcrypt
742c1d255d3SCy SchubertCONFIG_CRYPTO=gnutls
743c1d255d3SCy Schubertendif
744c1d255d3SCy Schubertifdef TLS_FUNCS
745c1d255d3SCy SchubertOBJS += ../src/crypto/tls_gnutls.o
746c1d255d3SCy SchubertLIBS += -lgnutls -lgpg-error
747c1d255d3SCy Schubertendif
748c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
749c1d255d3SCy SchubertHOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
750c1d255d3SCy Schubertifdef NEED_FIPS186_2_PRF
751c1d255d3SCy SchubertOBJS += ../src/crypto/fips_prf_internal.o
752c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1-internal.o
753c1d255d3SCy Schubertendif
754c1d255d3SCy Schubertifeq ($(CONFIG_CRYPTO), gnutls)
755c1d255d3SCy SchubertLIBS += -lgcrypt
756c1d255d3SCy SchubertLIBS_h += -lgcrypt
757c1d255d3SCy SchubertLIBS_n += -lgcrypt
758c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
759c1d255d3SCy SchubertCONFIG_INTERNAL_DH_GROUP5=y
760c1d255d3SCy Schubertendif
761c1d255d3SCy Schubertifeq ($(CONFIG_CRYPTO), nettle)
762c1d255d3SCy SchubertLIBS += -lnettle -lgmp
763c1d255d3SCy SchubertLIBS_p += -lnettle -lgmp
764c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
765c1d255d3SCy SchubertCONFIG_INTERNAL_DH_GROUP5=y
766c1d255d3SCy Schubertendif
767c1d255d3SCy Schubertendif
768c1d255d3SCy Schubert
769c1d255d3SCy Schubertifeq ($(CONFIG_TLS), internal)
770c1d255d3SCy Schubertifndef CONFIG_CRYPTO
771c1d255d3SCy SchubertCONFIG_CRYPTO=internal
772c1d255d3SCy Schubertendif
773c1d255d3SCy Schubertifdef TLS_FUNCS
774c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_internal-rsa.o
775c1d255d3SCy SchubertOBJS += ../src/crypto/tls_internal.o
776c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_common.o
777c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_record.o
778c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_cred.o
779c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_server.o
780c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_server_write.o
781c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_server_read.o
782c1d255d3SCy SchubertOBJS += ../src/tls/rsa.o
783c1d255d3SCy SchubertOBJS += ../src/tls/x509v3.o
784c1d255d3SCy SchubertOBJS += ../src/tls/pkcs1.o
785c1d255d3SCy SchubertOBJS += ../src/tls/pkcs5.o
786c1d255d3SCy SchubertOBJS += ../src/tls/pkcs8.o
787c1d255d3SCy SchubertNEED_ASN1=y
788c1d255d3SCy SchubertNEED_BASE64=y
789c1d255d3SCy SchubertNEED_TLS_PRF=y
790c1d255d3SCy Schubertifdef CONFIG_TLSV12
791c1d255d3SCy SchubertNEED_TLS_PRF_SHA256=y
792c1d255d3SCy Schubertendif
793c1d255d3SCy SchubertNEED_MODEXP=y
794c1d255d3SCy SchubertNEED_CIPHER=y
795c1d255d3SCy SchubertCFLAGS += -DCONFIG_TLS_INTERNAL
796c1d255d3SCy SchubertCFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
797c1d255d3SCy Schubertendif
798c1d255d3SCy Schubertifdef NEED_CIPHER
799c1d255d3SCy SchubertNEED_DES=y
800c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_internal-cipher.o
801c1d255d3SCy Schubertendif
802c1d255d3SCy Schubertifdef NEED_MODEXP
803c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_internal-modexp.o
804c1d255d3SCy SchubertOBJS += ../src/tls/bignum.o
805c1d255d3SCy Schubertendif
806c1d255d3SCy Schubertifeq ($(CONFIG_CRYPTO), libtomcrypt)
807c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_libtomcrypt.o
808c1d255d3SCy SchubertLIBS += -ltomcrypt -ltfm
809c1d255d3SCy SchubertLIBS_h += -ltomcrypt -ltfm
810c1d255d3SCy SchubertCONFIG_INTERNAL_SHA256=y
811c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
812c1d255d3SCy SchubertCONFIG_INTERNAL_DH_GROUP5=y
813c1d255d3SCy Schubertendif
814c1d255d3SCy Schubertifeq ($(CONFIG_CRYPTO), internal)
815c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_internal.o
816c1d255d3SCy SchubertNEED_AES_DEC=y
817c1d255d3SCy SchubertCFLAGS += -DCONFIG_CRYPTO_INTERNAL
818c1d255d3SCy Schubertifdef CONFIG_INTERNAL_LIBTOMMATH
819c1d255d3SCy SchubertCFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
820c1d255d3SCy Schubertifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
821c1d255d3SCy SchubertCFLAGS += -DLTM_FAST
822c1d255d3SCy Schubertendif
823c1d255d3SCy Schubertelse
824c1d255d3SCy SchubertLIBS += -ltommath
825c1d255d3SCy SchubertLIBS_h += -ltommath
826c1d255d3SCy Schubertendif
827c1d255d3SCy SchubertCONFIG_INTERNAL_AES=y
828c1d255d3SCy SchubertCONFIG_INTERNAL_DES=y
829c1d255d3SCy SchubertCONFIG_INTERNAL_SHA1=y
830c1d255d3SCy SchubertCONFIG_INTERNAL_MD4=y
831c1d255d3SCy SchubertCONFIG_INTERNAL_MD5=y
832c1d255d3SCy SchubertCONFIG_INTERNAL_SHA256=y
833c1d255d3SCy SchubertCONFIG_INTERNAL_SHA384=y
834c1d255d3SCy SchubertCONFIG_INTERNAL_SHA512=y
835c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
836c1d255d3SCy SchubertCONFIG_INTERNAL_DH_GROUP5=y
837c1d255d3SCy Schubertendif
838c1d255d3SCy Schubertifeq ($(CONFIG_CRYPTO), cryptoapi)
839c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_cryptoapi.o
840c1d255d3SCy SchubertOBJS_p += ../src/crypto/crypto_cryptoapi.o
841c1d255d3SCy SchubertCFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
842c1d255d3SCy SchubertCONFIG_INTERNAL_SHA256=y
843c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
844c1d255d3SCy Schubertendif
845c1d255d3SCy Schubertendif
846c1d255d3SCy Schubert
847c1d255d3SCy Schubertifeq ($(CONFIG_TLS), linux)
848c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_linux.o
849c1d255d3SCy Schubertifdef TLS_FUNCS
850c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_internal-rsa.o
851c1d255d3SCy SchubertOBJS += ../src/crypto/tls_internal.o
852c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_common.o
853c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_record.o
854c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_cred.o
855c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_server.o
856c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_server_write.o
857c1d255d3SCy SchubertOBJS += ../src/tls/tlsv1_server_read.o
858c1d255d3SCy SchubertOBJS += ../src/tls/rsa.o
859c1d255d3SCy SchubertOBJS += ../src/tls/x509v3.o
860c1d255d3SCy SchubertOBJS += ../src/tls/pkcs1.o
861c1d255d3SCy SchubertOBJS += ../src/tls/pkcs5.o
862c1d255d3SCy SchubertOBJS += ../src/tls/pkcs8.o
863c1d255d3SCy SchubertNEED_ASN1=y
864c1d255d3SCy SchubertNEED_BASE64=y
865c1d255d3SCy SchubertNEED_TLS_PRF=y
866c1d255d3SCy Schubertifdef CONFIG_TLSV12
867c1d255d3SCy SchubertNEED_TLS_PRF_SHA256=y
868c1d255d3SCy Schubertendif
869c1d255d3SCy SchubertNEED_MODEXP=y
870c1d255d3SCy SchubertNEED_CIPHER=y
871c1d255d3SCy SchubertCFLAGS += -DCONFIG_TLS_INTERNAL
872c1d255d3SCy SchubertCFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
873c1d255d3SCy Schubertendif
874c1d255d3SCy Schubertifdef NEED_MODEXP
875c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_internal-modexp.o
876c1d255d3SCy SchubertOBJS += ../src/tls/bignum.o
877c1d255d3SCy SchubertCFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
878c1d255d3SCy SchubertCFLAGS += -DLTM_FAST
879c1d255d3SCy Schubertendif
880c1d255d3SCy SchubertCONFIG_INTERNAL_DH_GROUP5=y
881c1d255d3SCy Schubertifdef NEED_FIPS186_2_PRF
882c1d255d3SCy SchubertOBJS += ../src/crypto/fips_prf_internal.o
883c1d255d3SCy SchubertOBJS += ../src/crypto/sha1-internal.o
884c1d255d3SCy Schubertendif
885c1d255d3SCy Schubertendif
886c1d255d3SCy Schubert
887c1d255d3SCy Schubertifeq ($(CONFIG_TLS), none)
888c1d255d3SCy Schubertifdef TLS_FUNCS
889c1d255d3SCy SchubertOBJS += ../src/crypto/tls_none.o
890c1d255d3SCy SchubertCFLAGS += -DEAP_TLS_NONE
891c1d255d3SCy SchubertCONFIG_INTERNAL_AES=y
892c1d255d3SCy SchubertCONFIG_INTERNAL_SHA1=y
893c1d255d3SCy SchubertCONFIG_INTERNAL_MD5=y
894c1d255d3SCy Schubertendif
895c1d255d3SCy SchubertOBJS += ../src/crypto/crypto_none.o
896c1d255d3SCy SchubertOBJS_p += ../src/crypto/crypto_none.o
897c1d255d3SCy SchubertCONFIG_INTERNAL_SHA256=y
898c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
899c1d255d3SCy Schubertendif
900c1d255d3SCy Schubert
901c1d255d3SCy Schubertifndef TLS_FUNCS
902c1d255d3SCy SchubertOBJS += ../src/crypto/tls_none.o
903c1d255d3SCy Schubertifeq ($(CONFIG_TLS), internal)
904c1d255d3SCy SchubertCONFIG_INTERNAL_AES=y
905c1d255d3SCy SchubertCONFIG_INTERNAL_SHA1=y
906c1d255d3SCy SchubertCONFIG_INTERNAL_MD5=y
907c1d255d3SCy SchubertCONFIG_INTERNAL_RC4=y
908c1d255d3SCy Schubertendif
909c1d255d3SCy Schubertendif
910c1d255d3SCy Schubert
911c1d255d3SCy SchubertAESOBJS = # none so far
912c1d255d3SCy Schubertifdef CONFIG_INTERNAL_AES
913c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o
914c1d255d3SCy Schubertendif
915c1d255d3SCy Schubert
916c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
917c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
918c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-wrap.o
919c1d255d3SCy Schubertendif
920c1d255d3SCy Schubertendif
921c1d255d3SCy Schubertifdef NEED_AES_EAX
922c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-eax.o
923c1d255d3SCy SchubertNEED_AES_CTR=y
924c1d255d3SCy Schubertendif
925c1d255d3SCy Schubertifdef NEED_AES_SIV
926c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-siv.o
927c1d255d3SCy SchubertNEED_AES_CTR=y
928c1d255d3SCy Schubertendif
929c1d255d3SCy Schubertifdef NEED_AES_CTR
930c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-ctr.o
931c1d255d3SCy Schubertendif
932c1d255d3SCy Schubertifdef NEED_AES_ENCBLOCK
933c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-encblock.o
934c1d255d3SCy Schubertendif
935c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
936c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
937c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-omac1.o
938c1d255d3SCy Schubertendif
939c1d255d3SCy Schubertendif
940c1d255d3SCy Schubertifdef NEED_AES_UNWRAP
941c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
942c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
943c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
944c1d255d3SCy SchubertNEED_AES_DEC=y
945c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-unwrap.o
946c1d255d3SCy Schubertendif
947c1d255d3SCy Schubertendif
948c1d255d3SCy Schubertendif
949c1d255d3SCy Schubertendif
950c1d255d3SCy Schubertifdef NEED_AES_CBC
951c1d255d3SCy SchubertNEED_AES_DEC=y
952c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
953c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
954c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
955c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-cbc.o
956c1d255d3SCy Schubertendif
957c1d255d3SCy Schubertendif
958c1d255d3SCy Schubertendif
959c1d255d3SCy Schubertendif
960c1d255d3SCy Schubertifdef NEED_AES_DEC
961c1d255d3SCy Schubertifdef CONFIG_INTERNAL_AES
962c1d255d3SCy SchubertAESOBJS += ../src/crypto/aes-internal-dec.o
963c1d255d3SCy Schubertendif
964c1d255d3SCy Schubertendif
965c1d255d3SCy Schubertifdef NEED_AES
966c1d255d3SCy SchubertOBJS += $(AESOBJS)
967c1d255d3SCy Schubertendif
968c1d255d3SCy Schubert
969c1d255d3SCy Schubertifdef NEED_SHA1
970c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
971c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
972c1d255d3SCy Schubertifneq ($(CONFIG_TLS), gnutls)
973c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
974c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1.o
975c1d255d3SCy Schubertendif
976c1d255d3SCy Schubertendif
977c1d255d3SCy Schubertendif
978c1d255d3SCy Schubertendif
979c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1-prf.o
980c1d255d3SCy Schubertifdef CONFIG_INTERNAL_SHA1
981c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1-internal.o
982c1d255d3SCy Schubertifdef NEED_FIPS186_2_PRF
983c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/fips_prf_internal.o
984c1d255d3SCy Schubertendif
985c1d255d3SCy Schubertendif
986c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
987c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
988c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1-pbkdf2.o
989c1d255d3SCy Schubertendif
990c1d255d3SCy Schubertendif
991c1d255d3SCy Schubertifdef NEED_T_PRF
992c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1-tprf.o
993c1d255d3SCy Schubertendif
994c1d255d3SCy Schubertifdef NEED_TLS_PRF
995c1d255d3SCy SchubertSHA1OBJS += ../src/crypto/sha1-tlsprf.o
996c1d255d3SCy Schubertendif
997c1d255d3SCy Schubertendif
998c1d255d3SCy Schubert
999c1d255d3SCy Schubertifdef NEED_SHA1
1000c1d255d3SCy SchubertOBJS += $(SHA1OBJS)
1001c1d255d3SCy Schubertendif
1002c1d255d3SCy Schubert
1003c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
1004c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
1005c1d255d3SCy Schubertifneq ($(CONFIG_TLS), gnutls)
1006c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
1007c1d255d3SCy SchubertOBJS += ../src/crypto/md5.o
1008c1d255d3SCy Schubertendif
1009c1d255d3SCy Schubertendif
1010c1d255d3SCy Schubertendif
1011c1d255d3SCy Schubertendif
1012c1d255d3SCy Schubert
1013c1d255d3SCy Schubertifdef NEED_MD5
1014c1d255d3SCy Schubertifdef CONFIG_INTERNAL_MD5
1015c1d255d3SCy SchubertOBJS += ../src/crypto/md5-internal.o
1016c1d255d3SCy SchubertHOBJS += ../src/crypto/md5-internal.o
1017c1d255d3SCy Schubertendif
1018c1d255d3SCy Schubertendif
1019c1d255d3SCy Schubert
1020c1d255d3SCy Schubertifdef NEED_MD4
1021c1d255d3SCy Schubertifdef CONFIG_INTERNAL_MD4
1022c1d255d3SCy SchubertOBJS += ../src/crypto/md4-internal.o
1023c1d255d3SCy Schubertendif
1024c1d255d3SCy Schubertendif
1025c1d255d3SCy Schubert
1026c1d255d3SCy Schubertifdef NEED_DES
1027c1d255d3SCy SchubertCFLAGS += -DCONFIG_DES
1028c1d255d3SCy Schubertifdef CONFIG_INTERNAL_DES
1029c1d255d3SCy SchubertOBJS += ../src/crypto/des-internal.o
1030c1d255d3SCy Schubertendif
1031c1d255d3SCy Schubertendif
1032c1d255d3SCy Schubert
1033c1d255d3SCy Schubertifdef CONFIG_NO_RC4
1034c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_RC4
1035c1d255d3SCy Schubertendif
1036c1d255d3SCy Schubert
1037c1d255d3SCy Schubertifdef NEED_RC4
1038c1d255d3SCy Schubertifdef CONFIG_INTERNAL_RC4
1039c1d255d3SCy Schubertifndef CONFIG_NO_RC4
1040c1d255d3SCy SchubertOBJS += ../src/crypto/rc4.o
1041c1d255d3SCy Schubertendif
1042c1d255d3SCy Schubertendif
1043c1d255d3SCy Schubertendif
1044c1d255d3SCy Schubert
1045c1d255d3SCy SchubertCFLAGS += -DCONFIG_SHA256
1046c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
1047c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
1048c1d255d3SCy Schubertifneq ($(CONFIG_TLS), gnutls)
1049c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
1050c1d255d3SCy SchubertOBJS += ../src/crypto/sha256.o
1051c1d255d3SCy Schubertendif
1052c1d255d3SCy Schubertendif
1053c1d255d3SCy Schubertendif
1054c1d255d3SCy Schubertendif
1055c1d255d3SCy SchubertOBJS += ../src/crypto/sha256-prf.o
1056c1d255d3SCy Schubertifdef CONFIG_INTERNAL_SHA256
1057c1d255d3SCy SchubertOBJS += ../src/crypto/sha256-internal.o
1058c1d255d3SCy Schubertendif
1059c1d255d3SCy Schubertifdef NEED_TLS_PRF_SHA256
1060c1d255d3SCy SchubertOBJS += ../src/crypto/sha256-tlsprf.o
1061c1d255d3SCy Schubertendif
1062c1d255d3SCy Schubertifdef NEED_TLS_PRF_SHA384
1063c1d255d3SCy SchubertOBJS += ../src/crypto/sha384-tlsprf.o
1064c1d255d3SCy Schubertendif
1065c1d255d3SCy Schubertifdef NEED_HMAC_SHA256_KDF
1066c1d255d3SCy SchubertOBJS += ../src/crypto/sha256-kdf.o
1067c1d255d3SCy Schubertendif
1068c1d255d3SCy Schubertifdef NEED_HMAC_SHA384_KDF
1069c1d255d3SCy SchubertOBJS += ../src/crypto/sha384-kdf.o
1070c1d255d3SCy Schubertendif
1071c1d255d3SCy Schubertifdef NEED_HMAC_SHA512_KDF
1072c1d255d3SCy SchubertOBJS += ../src/crypto/sha512-kdf.o
1073c1d255d3SCy Schubertendif
1074c1d255d3SCy Schubertifdef NEED_SHA384
1075c1d255d3SCy SchubertCFLAGS += -DCONFIG_SHA384
1076c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
1077c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
1078c1d255d3SCy Schubertifneq ($(CONFIG_TLS), gnutls)
1079c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
1080c1d255d3SCy SchubertOBJS += ../src/crypto/sha384.o
1081c1d255d3SCy Schubertendif
1082c1d255d3SCy Schubertendif
1083c1d255d3SCy Schubertendif
1084c1d255d3SCy Schubertendif
1085c1d255d3SCy SchubertOBJS += ../src/crypto/sha384-prf.o
1086c1d255d3SCy Schubertendif
1087c1d255d3SCy Schubertifdef NEED_SHA512
1088c1d255d3SCy SchubertCFLAGS += -DCONFIG_SHA512
1089c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
1090c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
1091c1d255d3SCy Schubertifneq ($(CONFIG_TLS), gnutls)
1092c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
1093c1d255d3SCy SchubertOBJS += ../src/crypto/sha512.o
1094c1d255d3SCy Schubertendif
1095c1d255d3SCy Schubertendif
1096c1d255d3SCy Schubertendif
1097c1d255d3SCy Schubertendif
1098c1d255d3SCy SchubertOBJS += ../src/crypto/sha512-prf.o
1099c1d255d3SCy Schubertendif
1100c1d255d3SCy Schubert
1101c1d255d3SCy Schubertifdef CONFIG_INTERNAL_SHA384
1102c1d255d3SCy SchubertCFLAGS += -DCONFIG_INTERNAL_SHA384
1103c1d255d3SCy SchubertOBJS += ../src/crypto/sha384-internal.o
1104c1d255d3SCy Schubertendif
1105c1d255d3SCy Schubert
1106c1d255d3SCy Schubertifdef CONFIG_INTERNAL_SHA512
1107c1d255d3SCy SchubertCFLAGS += -DCONFIG_INTERNAL_SHA512
1108c1d255d3SCy SchubertOBJS += ../src/crypto/sha512-internal.o
1109c1d255d3SCy Schubertendif
1110c1d255d3SCy Schubert
1111c1d255d3SCy Schubertifdef NEED_ASN1
1112c1d255d3SCy SchubertOBJS += ../src/tls/asn1.o
1113c1d255d3SCy Schubertendif
1114c1d255d3SCy Schubert
1115c1d255d3SCy Schubertifdef NEED_DH_GROUPS
1116c1d255d3SCy SchubertOBJS += ../src/crypto/dh_groups.o
1117c1d255d3SCy Schubertendif
1118c1d255d3SCy Schubertifdef NEED_DH_GROUPS_ALL
1119c1d255d3SCy SchubertCFLAGS += -DALL_DH_GROUPS
1120c1d255d3SCy Schubertendif
1121c1d255d3SCy Schubertifdef CONFIG_INTERNAL_DH_GROUP5
1122c1d255d3SCy Schubertifdef NEED_DH_GROUPS
1123c1d255d3SCy SchubertOBJS += ../src/crypto/dh_group5.o
1124c1d255d3SCy Schubertendif
1125c1d255d3SCy Schubertendif
1126c1d255d3SCy Schubert
1127c1d255d3SCy Schubertifdef NEED_ECC
1128c1d255d3SCy SchubertCFLAGS += -DCONFIG_ECC
1129c1d255d3SCy Schubertendif
1130c1d255d3SCy Schubert
1131c1d255d3SCy Schubertifdef CONFIG_NO_RANDOM_POOL
1132c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_RANDOM_POOL
1133c1d255d3SCy Schubertelse
1134c1d255d3SCy Schubertifdef CONFIG_GETRANDOM
1135c1d255d3SCy SchubertCFLAGS += -DCONFIG_GETRANDOM
1136c1d255d3SCy Schubertendif
1137c1d255d3SCy SchubertOBJS += ../src/crypto/random.o
1138c1d255d3SCy SchubertHOBJS += ../src/crypto/random.o
1139c1d255d3SCy SchubertHOBJS += ../src/utils/eloop.o
1140c1d255d3SCy SchubertHOBJS += $(SHA1OBJS)
1141c1d255d3SCy Schubertifneq ($(CONFIG_TLS), openssl)
1142c1d255d3SCy Schubertifneq ($(CONFIG_TLS), linux)
1143c1d255d3SCy Schubertifneq ($(CONFIG_TLS), wolfssl)
1144c1d255d3SCy SchubertHOBJS += ../src/crypto/md5.o
1145c1d255d3SCy Schubertendif
1146c1d255d3SCy Schubertendif
1147c1d255d3SCy Schubertendif
1148c1d255d3SCy Schubertendif
1149c1d255d3SCy Schubert
1150c1d255d3SCy Schubertifdef CONFIG_RADIUS_SERVER
1151c1d255d3SCy SchubertCFLAGS += -DRADIUS_SERVER
1152c1d255d3SCy SchubertOBJS += ../src/radius/radius_server.o
1153c1d255d3SCy Schubertendif
1154c1d255d3SCy Schubert
1155c1d255d3SCy Schubertifdef CONFIG_IPV6
1156c1d255d3SCy SchubertCFLAGS += -DCONFIG_IPV6
1157c1d255d3SCy Schubertendif
1158c1d255d3SCy Schubert
1159c1d255d3SCy Schubertifdef CONFIG_DRIVER_RADIUS_ACL
1160c1d255d3SCy SchubertCFLAGS += -DCONFIG_DRIVER_RADIUS_ACL
1161c1d255d3SCy Schubertendif
1162c1d255d3SCy Schubert
1163c1d255d3SCy Schubertifdef NEED_BASE64
1164c1d255d3SCy SchubertOBJS += ../src/utils/base64.o
1165c1d255d3SCy Schubertendif
1166c1d255d3SCy Schubert
1167c1d255d3SCy Schubertifdef NEED_JSON
1168c1d255d3SCy SchubertOBJS += ../src/utils/json.o
1169c1d255d3SCy SchubertCFLAGS += -DCONFIG_JSON
1170c1d255d3SCy Schubertendif
1171c1d255d3SCy Schubert
1172c1d255d3SCy Schubertifdef NEED_AP_MLME
1173c1d255d3SCy SchubertOBJS += ../src/ap/wmm.o
1174c1d255d3SCy SchubertOBJS += ../src/ap/ap_list.o
1175c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_11.o
1176c1d255d3SCy SchubertOBJS += ../src/ap/hw_features.o
1177c1d255d3SCy SchubertOBJS += ../src/ap/dfs.o
1178c1d255d3SCy SchubertCFLAGS += -DNEED_AP_MLME
1179c1d255d3SCy Schubertendif
1180c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_11_ht.o
1181c1d255d3SCy Schubert
1182c1d255d3SCy Schubertifdef CONFIG_IEEE80211AC
1183c1d255d3SCy SchubertOBJS += ../src/ap/ieee802_11_vht.o
1184c1d255d3SCy Schubertendif
1185c1d255d3SCy Schubert
1186c1d255d3SCy Schubertifdef CONFIG_P2P_MANAGER
1187c1d255d3SCy SchubertCFLAGS += -DCONFIG_P2P_MANAGER
1188c1d255d3SCy SchubertOBJS += ../src/ap/p2p_hostapd.o
1189c1d255d3SCy Schubertendif
1190c1d255d3SCy Schubert
1191c1d255d3SCy Schubertifdef CONFIG_HS20
1192c1d255d3SCy SchubertCFLAGS += -DCONFIG_HS20
1193c1d255d3SCy SchubertOBJS += ../src/ap/hs20.o
1194c1d255d3SCy SchubertCONFIG_INTERWORKING=y
1195c1d255d3SCy Schubertendif
1196c1d255d3SCy Schubert
1197c1d255d3SCy Schubertifdef CONFIG_INTERWORKING
1198c1d255d3SCy SchubertCFLAGS += -DCONFIG_INTERWORKING
1199c1d255d3SCy SchubertNEED_GAS=y
1200c1d255d3SCy Schubertendif
1201c1d255d3SCy Schubert
1202c1d255d3SCy Schubertifdef NEED_GAS
1203c1d255d3SCy SchubertOBJS += ../src/common/gas.o
1204c1d255d3SCy SchubertOBJS += ../src/ap/gas_serv.o
1205c1d255d3SCy Schubertendif
1206c1d255d3SCy Schubert
1207c1d255d3SCy Schubertifdef CONFIG_PROXYARP
1208c1d255d3SCy SchubertCFLAGS += -DCONFIG_PROXYARP
1209c1d255d3SCy SchubertOBJS += ../src/ap/x_snoop.o
1210c1d255d3SCy SchubertOBJS += ../src/ap/dhcp_snoop.o
1211c1d255d3SCy Schubertifdef CONFIG_IPV6
1212c1d255d3SCy SchubertOBJS += ../src/ap/ndisc_snoop.o
1213c1d255d3SCy Schubertendif
1214c1d255d3SCy Schubertendif
1215c1d255d3SCy Schubert
1216c1d255d3SCy SchubertOBJS += ../src/drivers/driver_common.o
1217c1d255d3SCy Schubert
1218c1d255d3SCy Schubertifdef CONFIG_WPA_CLI_EDIT
1219c1d255d3SCy SchubertOBJS_c += ../src/utils/edit.o
1220c1d255d3SCy Schubertelse
1221c1d255d3SCy SchubertOBJS_c += ../src/utils/edit_simple.o
1222c1d255d3SCy Schubertendif
1223c1d255d3SCy Schubert
1224c1d255d3SCy Schubertifdef CONFIG_ACS
1225c1d255d3SCy SchubertCFLAGS += -DCONFIG_ACS
1226c1d255d3SCy SchubertOBJS += ../src/ap/acs.o
1227c1d255d3SCy SchubertLIBS += -lm
1228c1d255d3SCy Schubertendif
1229c1d255d3SCy Schubert
1230c1d255d3SCy Schubertifdef CONFIG_NO_STDOUT_DEBUG
1231c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1232c1d255d3SCy Schubertendif
1233c1d255d3SCy Schubert
1234c1d255d3SCy Schubertifdef CONFIG_DEBUG_SYSLOG
1235c1d255d3SCy SchubertCFLAGS += -DCONFIG_DEBUG_SYSLOG
1236c1d255d3SCy Schubertendif
1237c1d255d3SCy Schubert
1238c1d255d3SCy Schubertifdef CONFIG_DEBUG_LINUX_TRACING
1239c1d255d3SCy SchubertCFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1240c1d255d3SCy Schubertendif
1241c1d255d3SCy Schubert
1242c1d255d3SCy Schubertifdef CONFIG_DEBUG_FILE
1243c1d255d3SCy SchubertCFLAGS += -DCONFIG_DEBUG_FILE
1244c1d255d3SCy Schubertendif
1245c1d255d3SCy Schubert
1246c1d255d3SCy Schubertifdef CONFIG_SQLITE
1247c1d255d3SCy SchubertCFLAGS += -DCONFIG_SQLITE
1248c1d255d3SCy SchubertLIBS += -lsqlite3
1249c1d255d3SCy SchubertLIBS_h += -lsqlite3
1250c1d255d3SCy Schubertendif
1251c1d255d3SCy Schubert
1252c1d255d3SCy Schubertifdef CONFIG_FST
1253c1d255d3SCy SchubertCFLAGS += -DCONFIG_FST
1254c1d255d3SCy SchubertOBJS += ../src/fst/fst.o
1255c1d255d3SCy SchubertOBJS += ../src/fst/fst_group.o
1256c1d255d3SCy SchubertOBJS += ../src/fst/fst_iface.o
1257c1d255d3SCy SchubertOBJS += ../src/fst/fst_session.o
1258c1d255d3SCy SchubertOBJS += ../src/fst/fst_ctrl_aux.o
1259c1d255d3SCy Schubertifdef CONFIG_FST_TEST
1260c1d255d3SCy SchubertCFLAGS += -DCONFIG_FST_TEST
1261c1d255d3SCy Schubertendif
1262c1d255d3SCy Schubertifndef CONFIG_NO_CTRL_IFACE
1263c1d255d3SCy SchubertOBJS += ../src/fst/fst_ctrl_iface.o
1264c1d255d3SCy Schubertendif
1265c1d255d3SCy Schubertendif
1266c1d255d3SCy Schubert
1267c1d255d3SCy Schubertifdef CONFIG_WEP
1268c1d255d3SCy SchubertCFLAGS += -DCONFIG_WEP
1269c1d255d3SCy Schubertendif
1270c1d255d3SCy Schubert
1271c1d255d3SCy Schubertifdef CONFIG_NO_TKIP
1272c1d255d3SCy SchubertCFLAGS += -DCONFIG_NO_TKIP
1273c1d255d3SCy Schubertendif
1274c1d255d3SCy Schubert
1275c1d255d3SCy Schubert$(DESTDIR)$(BINDIR)/%: %
1276c1d255d3SCy Schubert	install -D $(<) $(@)
1277c1d255d3SCy Schubert
1278c1d255d3SCy Schubertinstall: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL))
1279c1d255d3SCy Schubert
1280c1d255d3SCy Schubert_OBJS_VAR := OBJS
1281c1d255d3SCy Schubertinclude ../src/objs.mk
1282c1d255d3SCy Schubert
1283c1d255d3SCy Schuberthostapd: $(OBJS)
1284c1d255d3SCy Schubert	$(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
1285c1d255d3SCy Schubert	@$(E) "  LD " $@
1286c1d255d3SCy Schubert
1287c1d255d3SCy Schubertifdef CONFIG_WPA_TRACE
1288c1d255d3SCy SchubertOBJS_c += ../src/utils/trace.o
1289c1d255d3SCy Schubertendif
1290c1d255d3SCy Schubert
1291c1d255d3SCy Schubert_OBJS_VAR := OBJS_c
1292c1d255d3SCy Schubertinclude ../src/objs.mk
1293c1d255d3SCy Schubert
1294c1d255d3SCy Schuberthostapd_cli: $(OBJS_c)
1295c1d255d3SCy Schubert	$(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
1296c1d255d3SCy Schubert	@$(E) "  LD " $@
1297c1d255d3SCy Schubert
1298c1d255d3SCy SchubertNOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
1299c1d255d3SCy SchubertNOBJS += ../src/utils/common.o
1300c1d255d3SCy Schubertifdef NEED_RC4
1301c1d255d3SCy Schubertifdef CONFIG_INTERNAL_RC4
1302c1d255d3SCy Schubertifndef CONFIG_NO_RC4
1303c1d255d3SCy SchubertNOBJS += ../src/crypto/rc4.o
1304c1d255d3SCy Schubertendif
1305c1d255d3SCy Schubertendif
1306c1d255d3SCy Schubertendif
1307c1d255d3SCy Schubertifdef CONFIG_INTERNAL_MD5
1308c1d255d3SCy SchubertNOBJS += ../src/crypto/md5-internal.o
1309c1d255d3SCy Schubertendif
1310c1d255d3SCy SchubertNOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
1311c1d255d3SCy SchubertNOBJS += ../src/utils/os_$(CONFIG_OS).o
1312c1d255d3SCy SchubertNOBJS += ../src/utils/wpa_debug.o
1313c1d255d3SCy SchubertNOBJS += ../src/utils/wpabuf.o
1314c1d255d3SCy Schubertifdef CONFIG_WPA_TRACE
1315c1d255d3SCy SchubertNOBJS += ../src/utils/trace.o
1316c1d255d3SCy Schubertendif
1317c1d255d3SCy Schubert
1318c1d255d3SCy SchubertHOBJS += 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
1319c1d255d3SCy SchubertHOBJS += ../src/crypto/aes-encblock.o
1320c1d255d3SCy Schubertifdef CONFIG_INTERNAL_AES
1321c1d255d3SCy SchubertHOBJS += ../src/crypto/aes-internal.o
1322c1d255d3SCy SchubertHOBJS += ../src/crypto/aes-internal-enc.o
1323c1d255d3SCy Schubertendif
1324c1d255d3SCy Schubertifeq ($(CONFIG_TLS), linux)
1325c1d255d3SCy SchubertHOBJS += ../src/crypto/crypto_linux.o
1326c1d255d3SCy Schubertendif
1327c1d255d3SCy Schubert
1328c1d255d3SCy SchubertSOBJS += sae_pk_gen.o
1329c1d255d3SCy SchubertSOBJS +=  ../src/utils/common.o
1330c1d255d3SCy SchubertSOBJS += ../src/utils/os_$(CONFIG_OS).o
1331c1d255d3SCy SchubertSOBJS += ../src/utils/base64.o
1332c1d255d3SCy SchubertSOBJS += ../src/utils/wpa_debug.o
1333c1d255d3SCy SchubertSOBJS += ../src/utils/wpabuf.o
1334c1d255d3SCy Schubertifdef CONFIG_WPA_TRACE
1335c1d255d3SCy SchubertSOBJS += ../src/utils/trace.o
1336c1d255d3SCy Schubertendif
1337c1d255d3SCy SchubertSOBJS += ../src/common/ieee802_11_common.o
1338c1d255d3SCy SchubertSOBJS += ../src/common/sae.o
1339c1d255d3SCy SchubertSOBJS += ../src/common/sae_pk.o
1340c1d255d3SCy SchubertSOBJS += ../src/common/dragonfly.o
1341c1d255d3SCy SchubertSOBJS += $(AESOBJS)
1342c1d255d3SCy SchubertSOBJS += ../src/crypto/sha256-prf.o
1343c1d255d3SCy SchubertSOBJS += ../src/crypto/sha384-prf.o
1344c1d255d3SCy SchubertSOBJS += ../src/crypto/sha512-prf.o
1345c1d255d3SCy SchubertSOBJS += ../src/crypto/dh_groups.o
1346c1d255d3SCy SchubertSOBJS += ../src/crypto/sha256-kdf.o
1347c1d255d3SCy SchubertSOBJS += ../src/crypto/sha384-kdf.o
1348c1d255d3SCy SchubertSOBJS += ../src/crypto/sha512-kdf.o
1349c1d255d3SCy Schubert
1350c1d255d3SCy Schubert_OBJS_VAR := NOBJS
1351c1d255d3SCy Schubertinclude ../src/objs.mk
1352c1d255d3SCy Schubert_OBJS_VAR := HOBJS
1353c1d255d3SCy Schubertinclude ../src/objs.mk
1354c1d255d3SCy Schubert_OBJS_VAR := SOBJS
1355c1d255d3SCy Schubertinclude ../src/objs.mk
1356c1d255d3SCy Schubert
1357c1d255d3SCy Schubertnt_password_hash: $(NOBJS)
1358c1d255d3SCy Schubert	$(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n)
1359c1d255d3SCy Schubert	@$(E) "  LD " $@
1360c1d255d3SCy Schubert
1361c1d255d3SCy Schuberthlr_auc_gw: $(HOBJS)
1362c1d255d3SCy Schubert	$(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h)
1363c1d255d3SCy Schubert	@$(E) "  LD " $@
1364c1d255d3SCy Schubert
1365c1d255d3SCy Schubertsae_pk_gen: $(SOBJS)
1366c1d255d3SCy Schubert	$(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s)
1367c1d255d3SCy Schubert	@$(E) "  LD " $@
1368c1d255d3SCy Schubert
1369c1d255d3SCy Schubert.PHONY: lcov-html
1370c1d255d3SCy Schubertlcov-html:
1371c1d255d3SCy Schubert	lcov -c -d $(BUILDDIR) > lcov.info
1372c1d255d3SCy Schubert	genhtml lcov.info --output-directory lcov-html
1373c1d255d3SCy Schubert
1374c1d255d3SCy Schubertclean: common-clean
1375c1d255d3SCy Schubert	rm -f core *~ nt_password_hash hlr_auc_gw
1376c1d255d3SCy Schubert	rm -f sae_pk_gen
1377c1d255d3SCy Schubert	rm -f lcov.info
1378c1d255d3SCy Schubert	rm -rf lcov-html
1379