1209139Srpauloifndef CC
2209139SrpauloCC=gcc
3209139Srpauloendif
4209139Srpaulo
5209139Srpauloifndef CFLAGS
6209139SrpauloCFLAGS = -MMD -O2 -Wall -g
7209139Srpauloendif
8209139Srpaulo
9209139Srpauloexport LIBDIR ?= /usr/local/lib/
10209139Srpauloexport BINDIR ?= /usr/local/sbin/
11209139Srpaulo
12209139SrpauloCFLAGS += -I../src
13209139SrpauloCFLAGS += -I../src/utils
14209139Srpaulo
15209139SrpauloALL=wpa_supplicant wpa_passphrase wpa_cli
16209139Srpaulo
17209139Srpauloall: verify_config $(ALL) dynamic_eap_methods
18209139Srpaulo
19209139Srpauloverify_config:
20209139Srpaulo	@if [ ! -r .config ]; then \
21209139Srpaulo		echo 'Building wpa_supplicant requires a configuration file'; \
22209139Srpaulo		echo '(.config). See README for more instructions. You can'; \
23209139Srpaulo		echo 'run "cp defconfig .config" to create an example'; \
24209139Srpaulo		echo 'configuration.'; \
25209139Srpaulo		exit 1; \
26209139Srpaulo	fi
27209139Srpaulo
28209139Srpaulomkconfig:
29214734Srpaulo	@if [ -f .config ]; then \
30209139Srpaulo		echo '.config exists - did not replace it'; \
31209139Srpaulo		exit 1; \
32209139Srpaulo	fi
33209139Srpaulo	echo CONFIG_DRIVER_HOSTAP=y >> .config
34209139Srpaulo	echo CONFIG_DRIVER_WEXT=y >> .config
35209139Srpaulo
36209139Srpauloinstall: all
37209139Srpaulo	mkdir -p $(DESTDIR)$(BINDIR)
38209139Srpaulo	for i in $(ALL); do cp $$i $(DESTDIR)$(BINDIR)/$$i; done
39209139Srpaulo	$(MAKE) -C ../src install
40209139Srpaulo
41209139SrpauloOBJS = config.o
42214734SrpauloOBJS += notify.o
43214734SrpauloOBJS += bss.o
44214734SrpauloOBJS += eap_register.o
45209139SrpauloOBJS += ../src/utils/common.o
46209139SrpauloOBJS += ../src/utils/wpa_debug.o
47209139SrpauloOBJS += ../src/utils/wpabuf.o
48209139SrpauloOBJS_p = wpa_passphrase.o
49209139SrpauloOBJS_p += ../src/utils/common.o
50209139SrpauloOBJS_p += ../src/utils/wpa_debug.o
51214734SrpauloOBJS_p += ../src/utils/wpabuf.o
52209139SrpauloOBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
53209139Srpaulo
54209139Srpaulo-include .config
55209139Srpaulo
56209139Srpauloifndef CONFIG_OS
57209139Srpauloifdef CONFIG_NATIVE_WINDOWS
58209139SrpauloCONFIG_OS=win32
59209139Srpauloelse
60209139SrpauloCONFIG_OS=unix
61209139Srpauloendif
62209139Srpauloendif
63209139Srpaulo
64209139Srpauloifeq ($(CONFIG_OS), internal)
65209139SrpauloCFLAGS += -DOS_NO_C_LIB_DEFINES
66209139Srpauloendif
67209139Srpaulo
68209139SrpauloOBJS += ../src/utils/os_$(CONFIG_OS).o
69209139SrpauloOBJS_p += ../src/utils/os_$(CONFIG_OS).o
70209139SrpauloOBJS_c += ../src/utils/os_$(CONFIG_OS).o
71209139Srpaulo
72214734Srpauloifdef CONFIG_WPA_TRACE
73214734SrpauloCFLAGS += -DWPA_TRACE
74214734SrpauloOBJS += ../src/utils/trace.o
75214734SrpauloOBJS_p += ../src/utils/trace.o
76214734SrpauloOBJS_c += ../src/utils/trace.o
77214734SrpauloOBJS_c += ../src/utils/wpa_debug.o
78214734SrpauloLDFLAGS += -rdynamic
79214734SrpauloCFLAGS += -funwind-tables
80214734Srpauloifdef CONFIG_WPA_TRACE_BFD
81214734SrpauloCFLAGS += -DWPA_TRACE_BFD
82214734SrpauloLIBS += -lbfd
83214734SrpauloLIBS_p += -lbfd
84214734SrpauloLIBS_c += -lbfd
85214734Srpauloendif
86214734Srpauloendif
87214734Srpaulo
88209139Srpauloifndef CONFIG_ELOOP
89209139SrpauloCONFIG_ELOOP=eloop
90209139Srpauloendif
91209139SrpauloOBJS += ../src/utils/$(CONFIG_ELOOP).o
92209139Srpaulo
93209139Srpaulo
94209139Srpauloifdef CONFIG_EAPOL_TEST
95209139SrpauloCFLAGS += -Werror -DEAPOL_TEST
96209139Srpauloendif
97209139Srpaulo
98209139Srpauloifndef CONFIG_BACKEND
99209139SrpauloCONFIG_BACKEND=file
100209139Srpauloendif
101209139Srpaulo
102209139Srpauloifeq ($(CONFIG_BACKEND), file)
103209139SrpauloOBJS += config_file.o
104209139Srpauloifndef CONFIG_NO_CONFIG_BLOBS
105209139SrpauloNEED_BASE64=y
106209139Srpauloendif
107209139SrpauloCFLAGS += -DCONFIG_BACKEND_FILE
108209139Srpauloendif
109209139Srpaulo
110209139Srpauloifeq ($(CONFIG_BACKEND), winreg)
111209139SrpauloOBJS += config_winreg.o
112209139Srpauloendif
113209139Srpaulo
114209139Srpauloifeq ($(CONFIG_BACKEND), none)
115209139SrpauloOBJS += config_none.o
116209139Srpauloendif
117209139Srpaulo
118209139Srpauloifdef CONFIG_NO_CONFIG_WRITE
119209139SrpauloCFLAGS += -DCONFIG_NO_CONFIG_WRITE
120209139Srpauloendif
121209139Srpaulo
122209139Srpauloifdef CONFIG_NO_CONFIG_BLOBS
123209139SrpauloCFLAGS += -DCONFIG_NO_CONFIG_BLOBS
124209139Srpauloendif
125209139Srpaulo
126209139Srpauloifdef CONFIG_NO_SCAN_PROCESSING
127209139SrpauloCFLAGS += -DCONFIG_NO_SCAN_PROCESSING
128209139Srpauloendif
129209139Srpaulo
130214734Srpauloifdef CONFIG_IEEE80211W
131214734SrpauloCFLAGS += -DCONFIG_IEEE80211W
132214734SrpauloNEED_SHA256=y
133214734SrpauloNEED_AES_OMAC1=y
134209139Srpauloendif
135209139Srpaulo
136214734Srpauloifdef CONFIG_IEEE80211R
137214734SrpauloCFLAGS += -DCONFIG_IEEE80211R
138214734SrpauloOBJS += ../src/rsn_supp/wpa_ft.o
139214734SrpauloNEED_80211_COMMON=y
140214734SrpauloNEED_SHA256=y
141214734SrpauloNEED_AES_OMAC1=y
142209139Srpauloendif
143209139Srpaulo
144214734Srpauloifdef CONFIG_PEERKEY
145214734SrpauloCFLAGS += -DCONFIG_PEERKEY
146209139Srpauloendif
147209139Srpaulo
148214734Srpauloifndef CONFIG_NO_WPA
149214734SrpauloOBJS += ../src/rsn_supp/wpa.o
150214734SrpauloOBJS += ../src/rsn_supp/preauth.o
151214734SrpauloOBJS += ../src/rsn_supp/pmksa_cache.o
152214734SrpauloOBJS += ../src/rsn_supp/peerkey.o
153214734SrpauloOBJS += ../src/rsn_supp/wpa_ie.o
154214734SrpauloOBJS += ../src/common/wpa_common.o
155214734SrpauloNEED_AES=y
156214734SrpauloNEED_SHA1=y
157214734SrpauloNEED_MD5=y
158214734SrpauloNEED_RC4=y
159214734Srpauloelse
160214734SrpauloCFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
161209139Srpauloendif
162209139Srpaulo
163214734Srpauloifdef CONFIG_IBSS_RSN
164214734SrpauloNEED_RSN_AUTHENTICATOR=y
165214734SrpauloCFLAGS += -DCONFIG_IBSS_RSN
166214734SrpauloOBJS += ibss_rsn.o
167209139Srpauloendif
168209139Srpaulo
169214734Srpauloifdef CONFIG_NO_WPA2
170214734SrpauloCFLAGS += -DCONFIG_NO_WPA2
171209139Srpauloendif
172209139Srpaulo
173214734Srpauloinclude ../src/drivers/drivers.mak
174214734Srpauloifdef CONFIG_AP
175214734SrpauloOBJS_d += $(DRV_BOTH_OBJS)
176214734SrpauloCFLAGS += $(DRV_BOTH_CFLAGS)
177214734SrpauloLDFLAGS += $(DRV_BOTH_LDFLAGS)
178214734SrpauloLIBS += $(DRV_BOTH_LIBS)
179214734Srpauloelse
180214734SrpauloNEED_AP_MLME=
181214734SrpauloOBJS_d += $(DRV_WPA_OBJS)
182214734SrpauloCFLAGS += $(DRV_WPA_CFLAGS)
183214734SrpauloLDFLAGS += $(DRV_WPA_LDFLAGS)
184214734SrpauloLIBS += $(DRV_WPA_LIBS)
185209139Srpauloendif
186209139Srpaulo
187209139Srpauloifndef CONFIG_L2_PACKET
188209139SrpauloCONFIG_L2_PACKET=linux
189209139Srpauloendif
190209139Srpaulo
191209139SrpauloOBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
192209139Srpaulo
193209139Srpauloifeq ($(CONFIG_L2_PACKET), pcap)
194209139Srpauloifdef CONFIG_WINPCAP
195209139SrpauloCFLAGS += -DCONFIG_WINPCAP
196209139SrpauloLIBS += -lwpcap -lpacket
197209139SrpauloLIBS_w += -lwpcap
198209139Srpauloelse
199209139SrpauloLIBS += -ldnet -lpcap
200209139Srpauloendif
201209139Srpauloendif
202209139Srpaulo
203209139Srpauloifeq ($(CONFIG_L2_PACKET), winpcap)
204209139SrpauloLIBS += -lwpcap -lpacket
205209139SrpauloLIBS_w += -lwpcap
206209139Srpauloendif
207209139Srpaulo
208209139Srpauloifeq ($(CONFIG_L2_PACKET), freebsd)
209209139SrpauloLIBS += -lpcap
210209139Srpauloendif
211209139Srpaulo
212209139Srpauloifdef CONFIG_EAP_TLS
213209139Srpaulo# EAP-TLS
214209139Srpauloifeq ($(CONFIG_EAP_TLS), dyn)
215209139SrpauloCFLAGS += -DEAP_TLS_DYNAMIC
216209139SrpauloEAPDYN += ../src/eap_peer/eap_tls.so
217209139Srpauloelse
218209139SrpauloCFLAGS += -DEAP_TLS
219209139SrpauloOBJS += ../src/eap_peer/eap_tls.o
220214734SrpauloOBJS_h += ../src/eap_server/eap_server_tls.o
221209139Srpauloendif
222209139SrpauloTLS_FUNCS=y
223209139SrpauloCONFIG_IEEE8021X_EAPOL=y
224209139Srpauloendif
225209139Srpaulo
226209139Srpauloifdef CONFIG_EAP_PEAP
227209139Srpaulo# EAP-PEAP
228209139Srpauloifeq ($(CONFIG_EAP_PEAP), dyn)
229209139SrpauloCFLAGS += -DEAP_PEAP_DYNAMIC
230209139SrpauloEAPDYN += ../src/eap_peer/eap_peap.so
231209139Srpauloelse
232209139SrpauloCFLAGS += -DEAP_PEAP
233209139SrpauloOBJS += ../src/eap_peer/eap_peap.o
234209139SrpauloOBJS += ../src/eap_common/eap_peap_common.o
235214734SrpauloOBJS_h += ../src/eap_server/eap_server_peap.o
236209139Srpauloendif
237209139SrpauloTLS_FUNCS=y
238209139SrpauloCONFIG_IEEE8021X_EAPOL=y
239209139Srpauloendif
240209139Srpaulo
241209139Srpauloifdef CONFIG_EAP_TTLS
242209139Srpaulo# EAP-TTLS
243209139Srpauloifeq ($(CONFIG_EAP_TTLS), dyn)
244209139SrpauloCFLAGS += -DEAP_TTLS_DYNAMIC
245209139SrpauloEAPDYN += ../src/eap_peer/eap_ttls.so
246209139Srpauloelse
247209139SrpauloCFLAGS += -DEAP_TTLS
248209139SrpauloOBJS += ../src/eap_peer/eap_ttls.o
249214734SrpauloOBJS_h += ../src/eap_server/eap_server_ttls.o
250209139Srpauloendif
251209139SrpauloMS_FUNCS=y
252209139SrpauloTLS_FUNCS=y
253209139SrpauloCHAP=y
254209139SrpauloCONFIG_IEEE8021X_EAPOL=y
255209139Srpauloendif
256209139Srpaulo
257209139Srpauloifdef CONFIG_EAP_MD5
258209139Srpaulo# EAP-MD5
259209139Srpauloifeq ($(CONFIG_EAP_MD5), dyn)
260209139SrpauloCFLAGS += -DEAP_MD5_DYNAMIC
261209139SrpauloEAPDYN += ../src/eap_peer/eap_md5.so
262209139Srpauloelse
263209139SrpauloCFLAGS += -DEAP_MD5
264209139SrpauloOBJS += ../src/eap_peer/eap_md5.o
265214734SrpauloOBJS_h += ../src/eap_server/eap_server_md5.o
266209139Srpauloendif
267209139SrpauloCHAP=y
268209139SrpauloCONFIG_IEEE8021X_EAPOL=y
269209139Srpauloendif
270209139Srpaulo
271209139Srpaulo# backwards compatibility for old spelling
272209139Srpauloifdef CONFIG_MSCHAPV2
273209139Srpauloifndef CONFIG_EAP_MSCHAPV2
274209139SrpauloCONFIG_EAP_MSCHAPV2=y
275209139Srpauloendif
276209139Srpauloendif
277209139Srpaulo
278209139Srpauloifdef CONFIG_EAP_MSCHAPV2
279209139Srpaulo# EAP-MSCHAPv2
280209139Srpauloifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
281209139SrpauloCFLAGS += -DEAP_MSCHAPv2_DYNAMIC
282209139SrpauloEAPDYN += ../src/eap_peer/eap_mschapv2.so
283209139SrpauloEAPDYN += ../src/eap_peer/mschapv2.so
284209139Srpauloelse
285209139SrpauloCFLAGS += -DEAP_MSCHAPv2
286209139SrpauloOBJS += ../src/eap_peer/eap_mschapv2.o
287209139SrpauloOBJS += ../src/eap_peer/mschapv2.o
288214734SrpauloOBJS_h += ../src/eap_server/eap_server_mschapv2.o
289209139Srpauloendif
290209139SrpauloMS_FUNCS=y
291209139SrpauloCONFIG_IEEE8021X_EAPOL=y
292209139Srpauloendif
293209139Srpaulo
294209139Srpauloifdef CONFIG_EAP_GTC
295209139Srpaulo# EAP-GTC
296209139Srpauloifeq ($(CONFIG_EAP_GTC), dyn)
297209139SrpauloCFLAGS += -DEAP_GTC_DYNAMIC
298209139SrpauloEAPDYN += ../src/eap_peer/eap_gtc.so
299209139Srpauloelse
300209139SrpauloCFLAGS += -DEAP_GTC
301209139SrpauloOBJS += ../src/eap_peer/eap_gtc.o
302214734SrpauloOBJS_h += ../src/eap_server/eap_server_gtc.o
303209139Srpauloendif
304209139SrpauloCONFIG_IEEE8021X_EAPOL=y
305209139Srpauloendif
306209139Srpaulo
307209139Srpauloifdef CONFIG_EAP_OTP
308209139Srpaulo# EAP-OTP
309209139Srpauloifeq ($(CONFIG_EAP_OTP), dyn)
310209139SrpauloCFLAGS += -DEAP_OTP_DYNAMIC
311209139SrpauloEAPDYN += ../src/eap_peer/eap_otp.so
312209139Srpauloelse
313209139SrpauloCFLAGS += -DEAP_OTP
314209139SrpauloOBJS += ../src/eap_peer/eap_otp.o
315209139Srpauloendif
316209139SrpauloCONFIG_IEEE8021X_EAPOL=y
317209139Srpauloendif
318209139Srpaulo
319209139Srpauloifdef CONFIG_EAP_SIM
320209139Srpaulo# EAP-SIM
321209139Srpauloifeq ($(CONFIG_EAP_SIM), dyn)
322209139SrpauloCFLAGS += -DEAP_SIM_DYNAMIC
323209139SrpauloEAPDYN += ../src/eap_peer/eap_sim.so
324209139Srpauloelse
325209139SrpauloCFLAGS += -DEAP_SIM
326209139SrpauloOBJS += ../src/eap_peer/eap_sim.o
327214734SrpauloOBJS_h += ../src/eap_server/eap_server_sim.o
328209139Srpauloendif
329209139SrpauloCONFIG_IEEE8021X_EAPOL=y
330209139SrpauloCONFIG_EAP_SIM_COMMON=y
331214734SrpauloNEED_AES_CBC=y
332209139Srpauloendif
333209139Srpaulo
334209139Srpauloifdef CONFIG_EAP_LEAP
335209139Srpaulo# EAP-LEAP
336209139Srpauloifeq ($(CONFIG_EAP_LEAP), dyn)
337209139SrpauloCFLAGS += -DEAP_LEAP_DYNAMIC
338209139SrpauloEAPDYN += ../src/eap_peer/eap_leap.so
339209139Srpauloelse
340209139SrpauloCFLAGS += -DEAP_LEAP
341209139SrpauloOBJS += ../src/eap_peer/eap_leap.o
342209139Srpauloendif
343209139SrpauloMS_FUNCS=y
344209139SrpauloCONFIG_IEEE8021X_EAPOL=y
345209139Srpauloendif
346209139Srpaulo
347209139Srpauloifdef CONFIG_EAP_PSK
348209139Srpaulo# EAP-PSK
349209139Srpauloifeq ($(CONFIG_EAP_PSK), dyn)
350209139SrpauloCFLAGS += -DEAP_PSK_DYNAMIC
351209139SrpauloEAPDYN += ../src/eap_peer/eap_psk.so
352209139Srpauloelse
353209139SrpauloCFLAGS += -DEAP_PSK
354209139SrpauloOBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
355214734SrpauloOBJS_h += ../src/eap_server/eap_server_psk.o
356209139Srpauloendif
357209139SrpauloCONFIG_IEEE8021X_EAPOL=y
358209139SrpauloNEED_AES=y
359214734SrpauloNEED_AES_OMAC1=y
360214734SrpauloNEED_AES_ENCBLOCK=y
361214734SrpauloNEED_AES_EAX=y
362209139Srpauloendif
363209139Srpaulo
364209139Srpauloifdef CONFIG_EAP_AKA
365209139Srpaulo# EAP-AKA
366209139Srpauloifeq ($(CONFIG_EAP_AKA), dyn)
367209139SrpauloCFLAGS += -DEAP_AKA_DYNAMIC
368209139SrpauloEAPDYN += ../src/eap_peer/eap_aka.so
369209139Srpauloelse
370209139SrpauloCFLAGS += -DEAP_AKA
371209139SrpauloOBJS += ../src/eap_peer/eap_aka.o
372214734SrpauloOBJS_h += ../src/eap_server/eap_server_aka.o
373209139Srpauloendif
374209139SrpauloCONFIG_IEEE8021X_EAPOL=y
375209139SrpauloCONFIG_EAP_SIM_COMMON=y
376214734SrpauloNEED_AES_CBC=y
377209139Srpauloendif
378209139Srpaulo
379209139Srpauloifdef CONFIG_EAP_AKA_PRIME
380209139Srpaulo# EAP-AKA'
381209139Srpauloifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
382209139SrpauloCFLAGS += -DEAP_AKA_PRIME_DYNAMIC
383209139Srpauloelse
384209139SrpauloCFLAGS += -DEAP_AKA_PRIME
385209139Srpauloendif
386209139SrpauloNEED_SHA256=y
387209139Srpauloendif
388209139Srpaulo
389209139Srpauloifdef CONFIG_EAP_SIM_COMMON
390209139SrpauloOBJS += ../src/eap_common/eap_sim_common.o
391209139SrpauloOBJS_h += ../src/eap_server/eap_sim_db.o
392209139SrpauloNEED_AES=y
393209139SrpauloNEED_FIPS186_2_PRF=y
394209139Srpauloendif
395209139Srpaulo
396209139Srpauloifdef CONFIG_EAP_FAST
397209139Srpaulo# EAP-FAST
398209139Srpauloifeq ($(CONFIG_EAP_FAST), dyn)
399209139SrpauloCFLAGS += -DEAP_FAST_DYNAMIC
400209139SrpauloEAPDYN += ../src/eap_peer/eap_fast.so
401209139SrpauloEAPDYN += ../src/eap_common/eap_fast_common.o
402209139Srpauloelse
403209139SrpauloCFLAGS += -DEAP_FAST
404209139SrpauloOBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
405209139SrpauloOBJS += ../src/eap_common/eap_fast_common.o
406214734SrpauloOBJS_h += ../src/eap_server/eap_server_fast.o
407209139Srpauloendif
408209139SrpauloTLS_FUNCS=y
409209139SrpauloCONFIG_IEEE8021X_EAPOL=y
410209139SrpauloNEED_T_PRF=y
411209139Srpauloendif
412209139Srpaulo
413209139Srpauloifdef CONFIG_EAP_PAX
414209139Srpaulo# EAP-PAX
415209139Srpauloifeq ($(CONFIG_EAP_PAX), dyn)
416209139SrpauloCFLAGS += -DEAP_PAX_DYNAMIC
417209139SrpauloEAPDYN += ../src/eap_peer/eap_pax.so
418209139Srpauloelse
419209139SrpauloCFLAGS += -DEAP_PAX
420209139SrpauloOBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
421214734SrpauloOBJS_h += ../src/eap_server/eap_server_pax.o
422209139Srpauloendif
423209139SrpauloCONFIG_IEEE8021X_EAPOL=y
424209139Srpauloendif
425209139Srpaulo
426209139Srpauloifdef CONFIG_EAP_SAKE
427209139Srpaulo# EAP-SAKE
428209139Srpauloifeq ($(CONFIG_EAP_SAKE), dyn)
429209139SrpauloCFLAGS += -DEAP_SAKE_DYNAMIC
430209139SrpauloEAPDYN += ../src/eap_peer/eap_sake.so
431209139Srpauloelse
432209139SrpauloCFLAGS += -DEAP_SAKE
433209139SrpauloOBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
434214734SrpauloOBJS_h += ../src/eap_server/eap_server_sake.o
435209139Srpauloendif
436209139SrpauloCONFIG_IEEE8021X_EAPOL=y
437209139Srpauloendif
438209139Srpaulo
439209139Srpauloifdef CONFIG_EAP_GPSK
440209139Srpaulo# EAP-GPSK
441209139Srpauloifeq ($(CONFIG_EAP_GPSK), dyn)
442209139SrpauloCFLAGS += -DEAP_GPSK_DYNAMIC
443209139SrpauloEAPDYN += ../src/eap_peer/eap_gpsk.so
444209139Srpauloelse
445209139SrpauloCFLAGS += -DEAP_GPSK
446209139SrpauloOBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
447214734SrpauloOBJS_h += ../src/eap_server/eap_server_gpsk.o
448209139Srpauloendif
449209139SrpauloCONFIG_IEEE8021X_EAPOL=y
450209139Srpauloifdef CONFIG_EAP_GPSK_SHA256
451209139SrpauloCFLAGS += -DEAP_GPSK_SHA256
452209139Srpauloendif
453209139SrpauloNEED_SHA256=y
454214734SrpauloNEED_AES_OMAC1=y
455209139Srpauloendif
456209139Srpaulo
457209139Srpauloifdef CONFIG_WPS
458209139Srpaulo# EAP-WSC
459209139SrpauloCFLAGS += -DCONFIG_WPS -DEAP_WSC
460209139SrpauloOBJS += wps_supplicant.o
461209139SrpauloOBJS += ../src/utils/uuid.o
462209139SrpauloOBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
463209139SrpauloOBJS += ../src/wps/wps.o
464209139SrpauloOBJS += ../src/wps/wps_common.o
465209139SrpauloOBJS += ../src/wps/wps_attr_parse.o
466209139SrpauloOBJS += ../src/wps/wps_attr_build.o
467209139SrpauloOBJS += ../src/wps/wps_attr_process.o
468209139SrpauloOBJS += ../src/wps/wps_dev_attr.o
469209139SrpauloOBJS += ../src/wps/wps_enrollee.o
470209139SrpauloOBJS += ../src/wps/wps_registrar.o
471214734SrpauloOBJS_h += ../src/eap_server/eap_server_wsc.o
472209139SrpauloCONFIG_IEEE8021X_EAPOL=y
473209139SrpauloNEED_DH_GROUPS=y
474209139SrpauloNEED_SHA256=y
475209139SrpauloNEED_BASE64=y
476209139SrpauloNEED_80211_COMMON=y
477214734SrpauloNEED_AES_CBC=y
478214734SrpauloNEED_MODEXP=y
479209139Srpaulo
480214734Srpauloifdef CONFIG_WPS_UFD
481214734SrpauloCFLAGS += -DCONFIG_WPS_UFD
482214734SrpauloOBJS += ../src/wps/wps_ufd.o
483214734SrpauloNEED_WPS_OOB=y
484214734Srpauloendif
485214734Srpaulo
486214734Srpauloifdef CONFIG_WPS_NFC
487214734SrpauloCFLAGS += -DCONFIG_WPS_NFC
488214734SrpauloOBJS += ../src/wps/ndef.o
489214734SrpauloOBJS += ../src/wps/wps_nfc.o
490214734SrpauloNEED_WPS_OOB=y
491214734Srpauloifdef CONFIG_WPS_NFC_PN531
492214734SrpauloPN531_PATH ?= /usr/local/src/nfc
493214734SrpauloCFLAGS += -DCONFIG_WPS_NFC_PN531
494214734SrpauloCFLAGS += -I${PN531_PATH}/inc
495214734SrpauloOBJS += ../src/wps/wps_nfc_pn531.o
496214734SrpauloLIBS += ${PN531_PATH}/lib/wpsnfc.dll
497214734SrpauloLIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll
498214734Srpauloendif
499214734Srpauloendif
500214734Srpaulo
501214734Srpauloifdef NEED_WPS_OOB
502214734SrpauloCFLAGS += -DCONFIG_WPS_OOB
503214734Srpauloendif
504214734Srpaulo
505214734Srpauloifdef CONFIG_WPS_ER
506214734SrpauloCONFIG_WPS_UPNP=y
507214734SrpauloCFLAGS += -DCONFIG_WPS_ER
508214734SrpauloOBJS += ../src/wps/wps_er.o
509214734SrpauloOBJS += ../src/wps/wps_er_ssdp.o
510214734Srpauloendif
511214734Srpaulo
512209139Srpauloifdef CONFIG_WPS_UPNP
513209139SrpauloCFLAGS += -DCONFIG_WPS_UPNP
514209139SrpauloOBJS += ../src/wps/wps_upnp.o
515209139SrpauloOBJS += ../src/wps/wps_upnp_ssdp.o
516209139SrpauloOBJS += ../src/wps/wps_upnp_web.o
517209139SrpauloOBJS += ../src/wps/wps_upnp_event.o
518214734SrpauloOBJS += ../src/wps/wps_upnp_ap.o
519214734SrpauloOBJS += ../src/wps/upnp_xml.o
520209139SrpauloOBJS += ../src/wps/httpread.o
521214734SrpauloOBJS += ../src/wps/http_client.o
522214734SrpauloOBJS += ../src/wps/http_server.o
523209139Srpauloendif
524209139Srpaulo
525209139Srpauloendif
526209139Srpaulo
527209139Srpauloifdef CONFIG_EAP_IKEV2
528209139Srpaulo# EAP-IKEv2
529209139Srpauloifeq ($(CONFIG_EAP_IKEV2), dyn)
530209139SrpauloCFLAGS += -DEAP_IKEV2_DYNAMIC
531209139SrpauloEAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
532209139SrpauloEAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
533209139Srpauloelse
534209139SrpauloCFLAGS += -DEAP_IKEV2
535209139SrpauloOBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
536209139SrpauloOBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
537214734SrpauloOBJS_h += ../src/eap_server/eap_server_ikev2.o
538209139SrpauloOBJS_h += ../src/eap_server/ikev2.o
539209139Srpauloendif
540209139SrpauloCONFIG_IEEE8021X_EAPOL=y
541209139SrpauloNEED_DH_GROUPS=y
542209139SrpauloNEED_DH_GROUPS_ALL=y
543214734SrpauloNEED_MODEXP=y
544214734SrpauloNEED_CIPHER=y
545209139Srpauloendif
546209139Srpaulo
547209139Srpauloifdef CONFIG_EAP_VENDOR_TEST
548209139Srpauloifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
549209139SrpauloCFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
550209139SrpauloEAPDYN += ../src/eap_peer/eap_vendor_test.so
551209139Srpauloelse
552209139SrpauloCFLAGS += -DEAP_VENDOR_TEST
553209139SrpauloOBJS += ../src/eap_peer/eap_vendor_test.o
554214734SrpauloOBJS_h += ../src/eap_server/eap_server_vendor_test.o
555209139Srpauloendif
556209139SrpauloCONFIG_IEEE8021X_EAPOL=y
557209139Srpauloendif
558209139Srpaulo
559209139Srpauloifdef CONFIG_EAP_TNC
560209139Srpaulo# EAP-TNC
561209139SrpauloCFLAGS += -DEAP_TNC
562209139SrpauloOBJS += ../src/eap_peer/eap_tnc.o
563209139SrpauloOBJS += ../src/eap_peer/tncc.o
564214734SrpauloOBJS_h += ../src/eap_server/eap_server_tnc.o
565214734SrpauloOBJS_h += ../src/eap_server/tncs.o
566209139SrpauloNEED_BASE64=y
567209139Srpauloifndef CONFIG_NATIVE_WINDOWS
568209139Srpauloifndef CONFIG_DRIVER_BSD
569209139SrpauloLIBS += -ldl
570209139Srpauloendif
571209139Srpauloendif
572209139Srpauloendif
573209139Srpaulo
574209139Srpauloifdef CONFIG_IEEE8021X_EAPOL
575209139Srpaulo# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
576209139SrpauloCFLAGS += -DIEEE8021X_EAPOL
577214734SrpauloOBJS += ../src/eapol_supp/eapol_supp_sm.o
578214734SrpauloOBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
579214734SrpauloNEED_EAP_COMMON=y
580209139Srpauloifdef CONFIG_DYNAMIC_EAP_METHODS
581209139SrpauloCFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
582209139SrpauloLIBS += -ldl -rdynamic
583209139Srpauloendif
584209139Srpauloendif
585209139Srpaulo
586214734Srpauloifdef CONFIG_AP
587214734SrpauloNEED_80211_COMMON=y
588214734SrpauloNEED_EAP_COMMON=y
589214734SrpauloNEED_RSN_AUTHENTICATOR=y
590214734SrpauloCFLAGS += -DCONFIG_AP
591214734SrpauloOBJS += ap.o
592214734SrpauloCFLAGS += -DCONFIG_NO_RADIUS
593214734SrpauloCFLAGS += -DCONFIG_NO_ACCOUNTING
594214734SrpauloCFLAGS += -DCONFIG_NO_VLAN
595214734SrpauloOBJS += ../src/ap/hostapd.o
596214734SrpauloOBJS += ../src/ap/wpa_auth_glue.o
597214734SrpauloOBJS += ../src/ap/utils.o
598214734SrpauloOBJS += ../src/ap/authsrv.o
599214734SrpauloOBJS += ../src/ap/ap_config.o
600214734SrpauloOBJS += ../src/utils/ip_addr.o
601214734SrpauloOBJS += ../src/ap/sta_info.o
602214734SrpauloOBJS += ../src/ap/tkip_countermeasures.o
603214734SrpauloOBJS += ../src/ap/ap_mlme.o
604214734SrpauloOBJS += ../src/ap/ieee802_1x.o
605214734SrpauloOBJS += ../src/eapol_auth/eapol_auth_sm.o
606214734SrpauloOBJS += ../src/ap/ieee802_11_auth.o
607214734SrpauloOBJS += ../src/ap/drv_callbacks.o
608214734SrpauloOBJS += ../src/ap/ap_drv_ops.o
609214734Srpauloifdef CONFIG_CTRL_IFACE
610214734SrpauloOBJS += ../src/ap/ctrl_iface_ap.o
611214734Srpauloendif
612214734Srpaulo
613214734SrpauloCFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
614214734SrpauloOBJS += ../src/eap_server/eap_server.o
615214734SrpauloOBJS += ../src/eap_server/eap_server_identity.o
616214734SrpauloOBJS += ../src/eap_server/eap_server_methods.o
617214734Srpaulo
618214734Srpauloifdef CONFIG_IEEE80211N
619214734SrpauloCFLAGS += -DCONFIG_IEEE80211N
620214734Srpauloendif
621214734Srpaulo
622214734Srpauloifdef NEED_AP_MLME
623214734SrpauloOBJS += ../src/ap/beacon.o
624214734SrpauloOBJS += ../src/ap/wmm.o
625214734SrpauloOBJS += ../src/ap/ap_list.o
626214734SrpauloOBJS += ../src/ap/ieee802_11.o
627214734SrpauloOBJS += ../src/ap/hw_features.o
628214734Srpauloifdef CONFIG_IEEE80211N
629214734SrpauloOBJS += ../src/ap/ieee802_11_ht.o
630214734Srpauloendif
631214734SrpauloCFLAGS += -DNEED_AP_MLME
632214734Srpauloendif
633214734Srpauloifdef CONFIG_WPS
634214734SrpauloCFLAGS += -DEAP_SERVER_WSC
635214734SrpauloOBJS += ../src/ap/wps_hostapd.o
636214734SrpauloOBJS += ../src/eap_server/eap_server_wsc.o
637214734Srpauloendif
638214734Srpauloendif
639214734Srpaulo
640214734Srpauloifdef NEED_RSN_AUTHENTICATOR
641214734SrpauloCFLAGS += -DCONFIG_NO_RADIUS
642214734SrpauloNEED_AES_WRAP=y
643214734SrpauloOBJS += ../src/ap/wpa_auth.o
644214734SrpauloOBJS += ../src/ap/wpa_auth_ie.o
645214734SrpauloOBJS += ../src/ap/pmksa_cache_auth.o
646214734Srpauloifdef CONFIG_IEEE80211R
647214734SrpauloOBJS += ../src/ap/wpa_auth_ft.o
648214734Srpauloendif
649214734Srpauloifdef CONFIG_PEERKEY
650214734SrpauloOBJS += ../src/ap/peerkey_auth.o
651214734Srpauloendif
652214734Srpauloendif
653214734Srpaulo
654209139Srpauloifdef CONFIG_EAP_SERVER
655209139SrpauloCFLAGS += -DEAP_SERVER
656214734SrpauloOBJS_h += ../src/eap_server/eap_server.o
657214734SrpauloOBJS_h += ../src/eap_server/eap_server_identity.o
658214734SrpauloOBJS_h += ../src/eap_server/eap_server_methods.o
659209139Srpauloendif
660209139Srpaulo
661209139Srpauloifdef CONFIG_RADIUS_CLIENT
662209139SrpauloOBJS_h += ../src/utils/ip_addr.o
663209139SrpauloOBJS_h += ../src/radius/radius.o
664209139SrpauloOBJS_h += ../src/radius/radius_client.o
665209139Srpauloendif
666209139Srpaulo
667209139Srpauloifdef CONFIG_AUTHENTICATOR
668214734SrpauloOBJS_h += ../src/eapol_auth/eapol_auth_sm.o
669214734SrpauloOBJS_h += ../src/ap/ieee802_1x.o
670209139Srpauloendif
671209139Srpaulo
672209139Srpauloifdef CONFIG_WPA_AUTHENTICATOR
673214734SrpauloOBJS_h += ../src/ap/wpa_auth.o
674214734SrpauloOBJS_h += ../src/ap/wpa_auth_ie.o
675214734SrpauloOBJS_h += ../src/ap/pmksa_cache_auth.o
676209139Srpauloifdef CONFIG_IEEE80211R
677214734SrpauloOBJS_h += ../src/ap/wpa_auth_ft.o
678209139Srpauloendif
679209139Srpauloifdef CONFIG_PEERKEY
680214734SrpauloOBJS_h += ../src/ap/peerkey_auth.o
681209139Srpauloendif
682209139Srpauloendif
683209139Srpaulo
684209139Srpauloifdef CONFIG_PCSC
685209139Srpaulo# PC/SC interface for smartcards (USIM, GSM SIM)
686209139SrpauloCFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
687209139SrpauloOBJS += ../src/utils/pcsc_funcs.o
688209139Srpaulo# -lpthread may not be needed depending on how pcsc-lite was configured
689209139Srpauloifdef CONFIG_NATIVE_WINDOWS
690209139Srpaulo#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
691209139Srpaulo#dynamic symbol loading that is now used in pcsc_funcs.c
692209139Srpaulo#LIBS += -lwinscard
693209139Srpauloelse
694209139SrpauloLIBS += -lpcsclite -lpthread
695209139Srpauloendif
696209139Srpauloendif
697209139Srpaulo
698209139Srpauloifdef CONFIG_SIM_SIMULATOR
699209139SrpauloCFLAGS += -DCONFIG_SIM_SIMULATOR
700209139SrpauloNEED_MILENAGE=y
701209139Srpauloendif
702209139Srpaulo
703209139Srpauloifdef CONFIG_USIM_SIMULATOR
704209139SrpauloCFLAGS += -DCONFIG_USIM_SIMULATOR
705209139SrpauloNEED_MILENAGE=y
706209139Srpauloendif
707209139Srpaulo
708209139Srpauloifdef NEED_MILENAGE
709214734SrpauloOBJS += ../src/crypto/milenage.o
710209139Srpauloendif
711209139Srpaulo
712214734Srpauloifdef CONFIG_PKCS12
713214734SrpauloCFLAGS += -DPKCS12_FUNCS
714209139Srpauloendif
715209139Srpaulo
716214734Srpauloifdef CONFIG_SMARTCARD
717214734SrpauloCFLAGS += -DCONFIG_SMARTCARD
718209139Srpauloendif
719214734Srpaulo
720214734Srpauloifdef MS_FUNCS
721214734SrpauloOBJS += ../src/crypto/ms_funcs.o
722214734SrpauloNEED_DES=y
723214734SrpauloNEED_MD4=y
724209139Srpauloendif
725214734Srpaulo
726214734Srpauloifdef CHAP
727214734SrpauloOBJS += ../src/eap_common/chap.o
728209139Srpauloendif
729209139Srpaulo
730209139Srpauloifdef TLS_FUNCS
731214734SrpauloNEED_DES=y
732209139Srpaulo# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
733209139SrpauloOBJS += ../src/eap_peer/eap_tls_common.o
734214734SrpauloOBJS_h += ../src/eap_server/eap_server_tls_common.o
735209139SrpauloNEED_TLS_PRF=y
736214734Srpauloendif
737214734Srpaulo
738214734Srpauloifndef CONFIG_TLS
739214734SrpauloCONFIG_TLS=openssl
740214734Srpauloendif
741214734Srpaulo
742209139Srpauloifeq ($(CONFIG_TLS), openssl)
743214734Srpauloifdef TLS_FUNCS
744209139SrpauloCFLAGS += -DEAP_TLS_OPENSSL
745209139SrpauloOBJS += ../src/crypto/tls_openssl.o
746214734SrpauloLIBS += -lssl
747214734Srpauloendif
748214734SrpauloOBJS += ../src/crypto/crypto_openssl.o
749214734SrpauloOBJS_p += ../src/crypto/crypto_openssl.o
750214734Srpauloifdef NEED_FIPS186_2_PRF
751214734SrpauloOBJS += ../src/crypto/fips_prf_openssl.o
752214734Srpauloendif
753214734SrpauloLIBS += -lcrypto
754209139SrpauloLIBS_p += -lcrypto
755209139Srpauloendif
756214734Srpaulo
757209139Srpauloifeq ($(CONFIG_TLS), gnutls)
758214734Srpauloifdef TLS_FUNCS
759209139SrpauloOBJS += ../src/crypto/tls_gnutls.o
760214734SrpauloLIBS += -lgnutls -lgpg-error
761209139Srpauloifdef CONFIG_GNUTLS_EXTRA
762209139SrpauloCFLAGS += -DCONFIG_GNUTLS_EXTRA
763209139SrpauloLIBS += -lgnutls-extra
764209139Srpauloendif
765209139Srpauloendif
766214734SrpauloOBJS += ../src/crypto/crypto_gnutls.o
767214734SrpauloOBJS_p += ../src/crypto/crypto_gnutls.o
768214734Srpauloifdef NEED_FIPS186_2_PRF
769214734SrpauloOBJS += ../src/crypto/fips_prf_gnutls.o
770214734Srpauloendif
771214734SrpauloLIBS += -lgcrypt
772214734SrpauloLIBS_p += -lgcrypt
773214734SrpauloCONFIG_INTERNAL_SHA256=y
774214734SrpauloCONFIG_INTERNAL_RC4=y
775214734SrpauloCONFIG_INTERNAL_DH_GROUP5=y
776214734Srpauloendif
777214734Srpaulo
778209139Srpauloifeq ($(CONFIG_TLS), schannel)
779214734Srpauloifdef TLS_FUNCS
780209139SrpauloOBJS += ../src/crypto/tls_schannel.o
781209139Srpauloendif
782214734SrpauloOBJS += ../src/crypto/crypto_cryptoapi.o
783214734SrpauloOBJS_p += ../src/crypto/crypto_cryptoapi.o
784214734Srpauloifdef NEED_FIPS186_2_PRF
785214734SrpauloOBJS += ../src/crypto/fips_prf_cryptoapi.o
786209139Srpauloendif
787209139SrpauloCONFIG_INTERNAL_SHA256=y
788214734SrpauloCONFIG_INTERNAL_RC4=y
789214734SrpauloCONFIG_INTERNAL_DH_GROUP5=y
790209139Srpauloendif
791209139Srpaulo
792214734Srpauloifeq ($(CONFIG_TLS), nss)
793214734Srpauloifdef TLS_FUNCS
794214734SrpauloOBJS += ../src/crypto/tls_nss.o
795214734SrpauloLIBS += -lssl3
796209139Srpauloendif
797214734SrpauloOBJS += ../src/crypto/crypto_nss.o
798214734SrpauloOBJS_p += ../src/crypto/crypto_nss.o
799214734Srpauloifdef NEED_FIPS186_2_PRF
800214734SrpauloOBJS += ../src/crypto/fips_prf_nss.o
801209139Srpauloendif
802214734SrpauloLIBS += -lnss3
803214734SrpauloLIBS_p += -lnss3
804214734SrpauloCONFIG_INTERNAL_MD4=y
805214734SrpauloCONFIG_INTERNAL_DH_GROUP5=y
806209139Srpauloendif
807209139Srpaulo
808209139Srpauloifeq ($(CONFIG_TLS), internal)
809214734Srpauloifndef CONFIG_CRYPTO
810214734SrpauloCONFIG_CRYPTO=internal
811209139Srpauloendif
812214734Srpauloifdef TLS_FUNCS
813214734SrpauloOBJS += ../src/crypto/crypto_internal-rsa.o
814214734SrpauloOBJS += ../src/crypto/tls_internal.o
815214734SrpauloOBJS += ../src/tls/tlsv1_common.o
816214734SrpauloOBJS += ../src/tls/tlsv1_record.o
817214734SrpauloOBJS += ../src/tls/tlsv1_cred.o
818214734SrpauloOBJS += ../src/tls/tlsv1_client.o
819214734SrpauloOBJS += ../src/tls/tlsv1_client_write.o
820214734SrpauloOBJS += ../src/tls/tlsv1_client_read.o
821214734SrpauloOBJS += ../src/tls/asn1.o
822214734SrpauloOBJS += ../src/tls/rsa.o
823214734SrpauloOBJS += ../src/tls/x509v3.o
824214734SrpauloOBJS += ../src/tls/pkcs1.o
825214734SrpauloOBJS += ../src/tls/pkcs5.o
826214734SrpauloOBJS += ../src/tls/pkcs8.o
827214734SrpauloNEED_SHA256=y
828214734SrpauloNEED_BASE64=y
829214734SrpauloNEED_TLS_PRF=y
830214734SrpauloNEED_MODEXP=y
831214734SrpauloNEED_CIPHER=y
832214734SrpauloCFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
833209139Srpauloendif
834214734Srpauloifdef NEED_CIPHER
835214734SrpauloNEED_DES=y
836214734SrpauloOBJS += ../src/crypto/crypto_internal-cipher.o
837209139Srpauloendif
838214734Srpauloifdef NEED_MODEXP
839214734SrpauloOBJS += ../src/crypto/crypto_internal-modexp.o
840214734SrpauloOBJS += ../src/tls/bignum.o
841209139Srpauloendif
842209139Srpauloifeq ($(CONFIG_CRYPTO), libtomcrypt)
843209139SrpauloOBJS += ../src/crypto/crypto_libtomcrypt.o
844209139SrpauloOBJS_p += ../src/crypto/crypto_libtomcrypt.o
845214734SrpauloLIBS += -ltomcrypt -ltfm
846214734SrpauloLIBS_p += -ltomcrypt -ltfm
847209139SrpauloCONFIG_INTERNAL_SHA256=y
848214734SrpauloCONFIG_INTERNAL_RC4=y
849214734SrpauloCONFIG_INTERNAL_DH_GROUP5=y
850209139Srpauloendif
851209139Srpauloifeq ($(CONFIG_CRYPTO), internal)
852214734SrpauloOBJS += ../src/crypto/crypto_internal.o
853214734SrpauloOBJS_p += ../src/crypto/crypto_internal.o
854214734SrpauloNEED_AES_ENC=y
855209139SrpauloCFLAGS += -DCONFIG_CRYPTO_INTERNAL
856209139Srpauloifdef CONFIG_INTERNAL_LIBTOMMATH
857209139SrpauloCFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
858209139Srpauloifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
859209139SrpauloCFLAGS += -DLTM_FAST
860209139Srpauloendif
861209139Srpauloelse
862209139SrpauloLIBS += -ltommath
863209139SrpauloLIBS_p += -ltommath
864209139Srpauloendif
865209139SrpauloCONFIG_INTERNAL_AES=y
866209139SrpauloCONFIG_INTERNAL_DES=y
867209139SrpauloCONFIG_INTERNAL_SHA1=y
868209139SrpauloCONFIG_INTERNAL_MD4=y
869209139SrpauloCONFIG_INTERNAL_MD5=y
870209139SrpauloCONFIG_INTERNAL_SHA256=y
871214734SrpauloCONFIG_INTERNAL_RC4=y
872214734SrpauloCONFIG_INTERNAL_DH_GROUP5=y
873209139Srpauloendif
874209139Srpauloifeq ($(CONFIG_CRYPTO), cryptoapi)
875209139SrpauloOBJS += ../src/crypto/crypto_cryptoapi.o
876209139SrpauloOBJS_p += ../src/crypto/crypto_cryptoapi.o
877209139SrpauloCFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
878209139SrpauloCONFIG_INTERNAL_SHA256=y
879214734SrpauloCONFIG_INTERNAL_RC4=y
880209139Srpauloendif
881209139Srpauloendif
882214734Srpaulo
883209139Srpauloifeq ($(CONFIG_TLS), none)
884214734Srpauloifdef TLS_FUNCS
885214734SrpauloOBJS += ../src/crypto/tls_none.o
886214734SrpauloCFLAGS += -DEAP_TLS_NONE
887214734SrpauloCONFIG_INTERNAL_AES=y
888214734SrpauloCONFIG_INTERNAL_SHA1=y
889214734SrpauloCONFIG_INTERNAL_MD5=y
890214734Srpauloendif
891209139SrpauloOBJS += ../src/crypto/crypto_none.o
892209139SrpauloOBJS_p += ../src/crypto/crypto_none.o
893209139SrpauloCONFIG_INTERNAL_SHA256=y
894214734SrpauloCONFIG_INTERNAL_RC4=y
895209139Srpauloendif
896214734Srpaulo
897214734Srpauloifdef TLS_FUNCS
898214734Srpauloifdef CONFIG_SMARTCARD
899214734Srpauloifndef CONFIG_NATIVE_WINDOWS
900214734Srpauloifneq ($(CONFIG_L2_PACKET), freebsd)
901214734SrpauloLIBS += -ldl
902214734Srpauloendif
903214734Srpauloendif
904214734Srpauloendif
905214734Srpauloendif
906214734Srpaulo
907214734Srpauloifndef TLS_FUNCS
908214734SrpauloOBJS += ../src/crypto/tls_none.o
909214734Srpauloifeq ($(CONFIG_TLS), internal)
910209139SrpauloCONFIG_INTERNAL_AES=y
911209139SrpauloCONFIG_INTERNAL_SHA1=y
912209139SrpauloCONFIG_INTERNAL_MD5=y
913214734SrpauloCONFIG_INTERNAL_RC4=y
914209139Srpauloendif
915214734Srpauloendif
916209139Srpaulo
917214734SrpauloAESOBJS = # none so far (see below)
918209139Srpauloifdef CONFIG_INTERNAL_AES
919214734SrpauloAESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
920209139Srpauloendif
921214734Srpaulo
922214734SrpauloAESOBJS += ../src/crypto/aes-unwrap.o
923214734Srpauloifdef NEED_AES_EAX
924214734SrpauloAESOBJS += ../src/crypto/aes-eax.o
925214734SrpauloNEED_AES_CTR=y
926214734Srpauloendif
927214734Srpauloifdef NEED_AES_CTR
928214734SrpauloAESOBJS += ../src/crypto/aes-ctr.o
929214734Srpauloendif
930214734Srpauloifdef NEED_AES_ENCBLOCK
931214734SrpauloAESOBJS += ../src/crypto/aes-encblock.o
932214734Srpauloendif
933214734Srpauloifdef NEED_AES_OMAC1
934214734SrpauloNEED_AES_ENC=y
935214734SrpauloAESOBJS += ../src/crypto/aes-omac1.o
936214734Srpauloendif
937214734Srpauloifdef NEED_AES_WRAP
938214734SrpauloNEED_AES_ENC=y
939214734SrpauloAESOBJS += ../src/crypto/aes-wrap.o
940214734Srpauloendif
941214734Srpauloifdef NEED_AES_CBC
942214734SrpauloNEED_AES_ENC=y
943214734SrpauloAESOBJS += ../src/crypto/aes-cbc.o
944214734Srpauloendif
945214734Srpauloifdef NEED_AES_ENC
946214734Srpauloifdef CONFIG_INTERNAL_AES
947214734SrpauloAESOBJS += ../src/crypto/aes-internal-enc.o
948214734Srpauloendif
949214734Srpauloendif
950214734Srpauloifdef NEED_AES
951214734SrpauloOBJS += $(AESOBJS)
952214734Srpauloendif
953214734Srpaulo
954214734Srpauloifdef NEED_SHA1
955214734SrpauloSHA1OBJS += ../src/crypto/sha1.o
956209139Srpauloifdef CONFIG_INTERNAL_SHA1
957214734SrpauloSHA1OBJS += ../src/crypto/sha1-internal.o
958214734Srpauloifdef NEED_FIPS186_2_PRF
959214734SrpauloSHA1OBJS += ../src/crypto/fips_prf_internal.o
960209139Srpauloendif
961209139Srpauloendif
962214734Srpauloifndef CONFIG_NO_WPA_PASSPHRASE
963214734SrpauloSHA1OBJS += ../src/crypto/sha1-pbkdf2.o
964214734Srpauloendif
965214734Srpauloifdef NEED_T_PRF
966214734SrpauloSHA1OBJS += ../src/crypto/sha1-tprf.o
967214734Srpauloendif
968214734Srpauloifdef NEED_TLS_PRF
969214734SrpauloSHA1OBJS += ../src/crypto/sha1-tlsprf.o
970214734Srpauloendif
971214734Srpauloendif
972214734Srpaulo
973214734SrpauloMD5OBJS = ../src/crypto/md5.o
974214734Srpauloifdef NEED_MD5
975209139Srpauloifdef CONFIG_INTERNAL_MD5
976214734SrpauloMD5OBJS += ../src/crypto/md5-internal.o
977209139Srpauloendif
978214734Srpauloifdef CONFIG_FIPS
979214734SrpauloMD5OBJS += ../src/crypto/md5-non-fips.o
980214734Srpauloendif
981214734SrpauloOBJS += $(MD5OBJS)
982214734SrpauloOBJS_p += $(MD5OBJS)
983214734Srpauloendif
984214734Srpaulo
985214734Srpauloifdef NEED_MD4
986209139Srpauloifdef CONFIG_INTERNAL_MD4
987214734SrpauloOBJS += ../src/crypto/md4-internal.o
988209139Srpauloendif
989209139Srpauloendif
990209139Srpaulo
991214734SrpauloDESOBJS = # none needed when not internal
992214734Srpauloifdef NEED_DES
993214734Srpauloifdef CONFIG_INTERNAL_DES
994214734SrpauloDESOBJS += ../src/crypto/des-internal.o
995209139Srpauloendif
996214734Srpauloendif
997209139Srpaulo
998214734Srpauloifdef NEED_RC4
999214734Srpauloifdef CONFIG_INTERNAL_RC4
1000214734SrpauloOBJS += ../src/crypto/rc4.o
1001209139Srpauloendif
1002214734Srpauloendif
1003209139Srpaulo
1004214734SrpauloSHA256OBJS = # none by default
1005209139Srpauloifdef NEED_SHA256
1006214734SrpauloCFLAGS += -DCONFIG_SHA256
1007214734SrpauloSHA256OBJS += ../src/crypto/sha256.o
1008214734Srpauloifdef CONFIG_INTERNAL_SHA256
1009214734SrpauloSHA256OBJS += ../src/crypto/sha256-internal.o
1010209139Srpauloendif
1011214734SrpauloOBJS += $(SHA256OBJS)
1012214734Srpauloendif
1013209139Srpaulo
1014214734Srpauloifdef NEED_DH_GROUPS
1015214734SrpauloOBJS += ../src/crypto/dh_groups.o
1016209139Srpauloendif
1017214734Srpauloifdef NEED_DH_GROUPS_ALL
1018214734SrpauloCFLAGS += -DALL_DH_GROUPS
1019214734Srpauloendif
1020214734Srpauloifdef CONFIG_INTERNAL_DH_GROUP5
1021214734Srpauloifdef NEED_DH_GROUPS
1022214734SrpauloOBJS += ../src/crypto/dh_group5.o
1023214734Srpauloendif
1024214734Srpauloendif
1025209139Srpaulo
1026209139Srpauloifdef CONFIG_CTRL_IFACE
1027209139Srpauloifeq ($(CONFIG_CTRL_IFACE), y)
1028209139Srpauloifdef CONFIG_NATIVE_WINDOWS
1029209139SrpauloCONFIG_CTRL_IFACE=named_pipe
1030209139Srpauloelse
1031209139SrpauloCONFIG_CTRL_IFACE=unix
1032209139Srpauloendif
1033209139Srpauloendif
1034209139SrpauloCFLAGS += -DCONFIG_CTRL_IFACE
1035209139Srpauloifeq ($(CONFIG_CTRL_IFACE), unix)
1036209139SrpauloCFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1037209139Srpauloendif
1038209139Srpauloifeq ($(CONFIG_CTRL_IFACE), udp)
1039209139SrpauloCFLAGS += -DCONFIG_CTRL_IFACE_UDP
1040209139Srpauloendif
1041209139Srpauloifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1042209139SrpauloCFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1043209139Srpauloendif
1044209139SrpauloOBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1045209139Srpauloendif
1046209139Srpaulo
1047209139Srpauloifdef CONFIG_CTRL_IFACE_DBUS
1048214734SrpauloDBUS=y
1049214734SrpauloDBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1050214734SrpauloDBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1051214734Srpauloifdef CONFIG_WPS
1052214734SrpauloDBUS_OBJS += dbus/dbus_old_handlers_wps.o
1053214734Srpauloendif
1054214734SrpauloDBUS_OBJS += dbus/dbus_dict_helpers.o
1055209139Srpauloifndef DBUS_LIBS
1056209139SrpauloDBUS_LIBS := $(shell pkg-config --libs dbus-1)
1057209139Srpauloendif
1058209139Srpauloifndef DBUS_INCLUDE
1059209139SrpauloDBUS_INCLUDE := $(shell pkg-config --cflags dbus-1)
1060209139Srpauloendif
1061209139Srpaulodbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1))
1062209139SrpauloDBUS_VERSION_MAJOR=$(word 1,$(dbus_version))
1063209139SrpauloDBUS_VERSION_MINOR=$(word 2,$(dbus_version))
1064209139Srpauloifeq ($(DBUS_VERSION_MAJOR),)
1065209139SrpauloDBUS_VERSION_MAJOR=0
1066209139Srpauloendif
1067209139Srpauloifeq ($(DBUS_VERSION_MINOR),)
1068209139SrpauloDBUS_VERSION_MINOR=0
1069209139Srpauloendif
1070209139SrpauloDBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR)
1071209139SrpauloDBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR)
1072214734SrpauloDBUS_CFLAGS += $(DBUS_INCLUDE)
1073209139Srpauloendif
1074209139Srpaulo
1075214734Srpauloifdef CONFIG_CTRL_IFACE_DBUS_NEW
1076214734SrpauloDBUS=y
1077214734SrpauloDBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1078214734SrpauloDBUS_OBJS ?= dbus/dbus_dict_helpers.o
1079214734SrpauloDBUS_OBJS += dbus/dbus_new_helpers.o
1080214734SrpauloDBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1081214734Srpauloifdef CONFIG_WPS
1082214734SrpauloDBUS_OBJS += dbus/dbus_new_handlers_wps.o
1083214734Srpauloendif
1084214734Srpauloifndef DBUS_LIBS
1085214734SrpauloDBUS_LIBS := $(shell pkg-config --libs dbus-1)
1086214734Srpauloendif
1087214734Srpauloifndef DBUS_INCLUDE
1088214734SrpauloDBUS_INCLUDE := $(shell pkg-config --cflags dbus-1)
1089214734Srpauloendif
1090214734Srpauloifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1091214734SrpauloDBUS_OBJS += dbus/dbus_new_introspect.o
1092214734SrpauloDBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1093214734Srpauloendif
1094214734SrpauloDBUS_CFLAGS += $(DBUS_INCLUDE)
1095214734Srpauloendif
1096214734Srpaulo
1097214734Srpauloifdef DBUS
1098214734SrpauloDBUS_CFLAGS += -DCONFIG_DBUS
1099214734SrpauloDBUS_OBJS += dbus/dbus_common.o
1100214734Srpauloendif
1101214734Srpaulo
1102214734SrpauloOBJS += $(DBUS_OBJS)
1103214734SrpauloCFLAGS += $(DBUS_CFLAGS)
1104214734SrpauloLIBS += $(DBUS_LIBS)
1105214734Srpaulo
1106209139Srpauloifdef CONFIG_READLINE
1107209139SrpauloCFLAGS += -DCONFIG_READLINE
1108209139SrpauloLIBS_c += -lncurses -lreadline
1109209139Srpauloendif
1110209139Srpaulo
1111209139Srpauloifdef CONFIG_NATIVE_WINDOWS
1112209139SrpauloCFLAGS += -DCONFIG_NATIVE_WINDOWS
1113209139SrpauloLIBS += -lws2_32 -lgdi32 -lcrypt32
1114209139SrpauloLIBS_c += -lws2_32
1115209139SrpauloLIBS_p += -lws2_32 -lgdi32
1116209139Srpauloifeq ($(CONFIG_CRYPTO), cryptoapi)
1117209139SrpauloLIBS_p += -lcrypt32
1118209139Srpauloendif
1119209139Srpauloendif
1120209139Srpaulo
1121209139Srpauloifdef CONFIG_NO_STDOUT_DEBUG
1122209139SrpauloCFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1123209139Srpauloifndef CONFIG_CTRL_IFACE
1124209139SrpauloCFLAGS += -DCONFIG_NO_WPA_MSG
1125209139Srpauloendif
1126209139Srpauloendif
1127209139Srpaulo
1128209139Srpauloifdef CONFIG_IPV6
1129209139Srpaulo# for eapol_test only
1130209139SrpauloCFLAGS += -DCONFIG_IPV6
1131209139Srpauloendif
1132209139Srpaulo
1133214734Srpauloifdef NEED_BASE64
1134214734SrpauloOBJS += ../src/utils/base64.o
1135209139Srpauloendif
1136209139Srpaulo
1137214734Srpauloifdef NEED_SME
1138214734SrpauloNEED_80211_COMMON=y
1139214734SrpauloOBJS += sme.o
1140214734SrpauloCFLAGS += -DCONFIG_SME
1141209139Srpauloendif
1142209139Srpaulo
1143214734Srpauloifdef CONFIG_CLIENT_MLME
1144214734SrpauloOBJS += mlme.o
1145214734SrpauloCFLAGS += -DCONFIG_CLIENT_MLME
1146214734SrpauloNEED_80211_COMMON=y
1147209139Srpauloendif
1148209139Srpaulo
1149214734Srpauloifdef NEED_80211_COMMON
1150214734SrpauloOBJS += ../src/common/ieee802_11_common.o
1151209139Srpauloendif
1152209139Srpaulo
1153214734Srpauloifdef NEED_EAP_COMMON
1154214734SrpauloOBJS += ../src/eap_common/eap_common.o
1155209139Srpauloendif
1156209139Srpaulo
1157209139Srpauloifndef CONFIG_MAIN
1158209139SrpauloCONFIG_MAIN=main
1159209139Srpauloendif
1160209139Srpaulo
1161209139Srpauloifdef CONFIG_DEBUG_SYSLOG
1162209139SrpauloCFLAGS += -DCONFIG_DEBUG_SYSLOG
1163209139Srpauloendif
1164209139Srpaulo
1165209139Srpauloifdef CONFIG_DEBUG_FILE
1166209139SrpauloCFLAGS += -DCONFIG_DEBUG_FILE
1167209139Srpauloendif
1168209139Srpaulo
1169209139Srpauloifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1170209139SrpauloCFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1171209139Srpauloendif
1172209139Srpaulo
1173214734Srpauloifdef CONFIG_FIPS
1174214734SrpauloCFLAGS += -DCONFIG_FIPS
1175214734Srpauloendif
1176209139Srpaulo
1177214734SrpauloOBJS += $(SHA1OBJS) $(DESOBJS)
1178214734Srpaulo
1179214734SrpauloOBJS_p += $(SHA1OBJS)
1180214734Srpaulo
1181214734Srpauloifdef CONFIG_BGSCAN_SIMPLE
1182214734SrpauloCFLAGS += -DCONFIG_BGSCAN_SIMPLE
1183214734SrpauloOBJS += bgscan_simple.o
1184214734SrpauloNEED_BGSCAN=y
1185214734Srpauloendif
1186214734Srpaulo
1187214734Srpauloifdef NEED_BGSCAN
1188214734SrpauloCFLAGS += -DCONFIG_BGSCAN
1189214734SrpauloOBJS += bgscan.o
1190214734Srpauloendif
1191214734Srpaulo
1192209139SrpauloOBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o
1193209139SrpauloOBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1194209139Srpauloifdef CONFIG_AUTHENTICATOR
1195209139SrpauloOBJS_wpa += tests/link_test.o
1196209139Srpauloendif
1197209139SrpauloOBJS_wpa += $(OBJS_l2)
1198209139SrpauloOBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1199214734SrpauloOBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1200214734SrpauloOBJS_t += ../src/radius/radius_client.o
1201214734SrpauloOBJS_t += ../src/radius/radius.o
1202214734Srpauloifndef CONFIG_AP
1203209139SrpauloOBJS_t += ../src/utils/ip_addr.o
1204214734Srpauloendif
1205209139SrpauloOBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
1206209139SrpauloOBJS += $(CONFIG_MAIN).o
1207209139Srpaulo
1208209139Srpauloifdef CONFIG_PRIVSEP
1209214734SrpauloOBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1210209139SrpauloOBJS_priv += $(OBJS_l2)
1211209139SrpauloOBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1212209139SrpauloOBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1213209139SrpauloOBJS_priv += ../src/utils/common.o
1214209139SrpauloOBJS_priv += ../src/utils/wpa_debug.o
1215209139SrpauloOBJS_priv += ../src/utils/wpabuf.o
1216209139SrpauloOBJS_priv += wpa_priv.o
1217209139Srpauloifdef CONFIG_DRIVER_TEST
1218214734SrpauloOBJS_priv += $(SHA1OBJS)
1219214734SrpauloOBJS_priv += $(MD5OBJS)
1220209139Srpauloifeq ($(CONFIG_TLS), openssl)
1221209139SrpauloOBJS_priv += ../src/crypto/crypto_openssl.o
1222209139Srpauloendif
1223209139Srpauloifeq ($(CONFIG_TLS), gnutls)
1224209139SrpauloOBJS_priv += ../src/crypto/crypto_gnutls.o
1225209139Srpauloendif
1226214734Srpauloifeq ($(CONFIG_TLS), nss)
1227214734SrpauloOBJS_priv += ../src/crypto/crypto_nss.o
1228214734Srpauloendif
1229209139Srpauloifeq ($(CONFIG_TLS), internal)
1230209139Srpauloifeq ($(CONFIG_CRYPTO), libtomcrypt)
1231209139SrpauloOBJS_priv += ../src/crypto/crypto_libtomcrypt.o
1232209139Srpauloelse
1233209139SrpauloOBJS_priv += ../src/crypto/crypto_internal.o
1234209139Srpauloendif
1235209139Srpauloendif
1236209139Srpauloendif # CONFIG_DRIVER_TEST
1237209139SrpauloOBJS += ../src/l2_packet/l2_packet_privsep.o
1238209139SrpauloOBJS += ../src/drivers/driver_privsep.o
1239209139SrpauloEXTRA_progs += wpa_priv
1240209139Srpauloelse
1241209139SrpauloOBJS += $(OBJS_d) ../src/drivers/drivers.o
1242209139SrpauloOBJS += $(OBJS_l2)
1243209139Srpauloendif
1244209139Srpaulo
1245209139Srpauloifdef CONFIG_NDIS_EVENTS_INTEGRATED
1246209139SrpauloCFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1247209139SrpauloOBJS += ../src/drivers/ndis_events.o
1248209139SrpauloEXTRALIBS += -loleaut32 -lole32 -luuid
1249209139Srpauloifdef PLATFORMSDKLIB
1250209139SrpauloEXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1251209139Srpauloelse
1252209139SrpauloEXTRALIBS += WbemUuid.Lib
1253209139Srpauloendif
1254209139Srpauloendif
1255209139Srpaulo
1256209139Srpauloifndef LDO
1257209139SrpauloLDO=$(CC)
1258209139Srpauloendif
1259209139Srpaulo
1260209139Srpaulodynamic_eap_methods: $(EAPDYN)
1261209139Srpaulo
1262214734Srpaulo../src/drivers/build.wpa_supplicant:
1263214734Srpaulo	@if [ -f ../src/drivers/build.hostapd ]; then \
1264214734Srpaulo		$(MAKE) -C ../src/drivers clean; \
1265214734Srpaulo	fi
1266214734Srpaulo	@touch ../src/drivers/build.wpa_supplicant
1267214734Srpaulo
1268214734SrpauloBCHECK=../src/drivers/build.wpa_supplicant
1269214734Srpaulo
1270214734Srpaulowpa_priv: $(BCHECK) $(OBJS_priv)
1271209139Srpaulo	$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1272209139Srpaulo
1273214734Srpaulowpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs)
1274209139Srpaulo	$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1275209139Srpaulo
1276209139Srpauloeapol_test: .config $(OBJS_t)
1277209139Srpaulo	$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1278209139Srpaulo
1279209139Srpaulopreauth_test: .config $(OBJS_t2) 
1280209139Srpaulo	$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1281209139Srpaulo
1282209139Srpaulowpa_passphrase: $(OBJS_p)
1283209139Srpaulo	$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1284209139Srpaulo
1285209139Srpaulowpa_cli: $(OBJS_c)
1286209139Srpaulo	$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1287209139Srpaulo
1288209139Srpaulolink_test: $(OBJS) $(OBJS_h) tests/link_test.o
1289209139Srpaulo	$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1290209139Srpaulo
1291209139Srpaulotest_wpa: $(OBJS_wpa) $(OBJS_h)
1292209139Srpaulo	$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1293209139Srpaulo
1294209139Srpaulowin_if_list: win_if_list.c
1295209139Srpaulo	$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1296209139Srpaulo
1297209139Srpauloeap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1298214734Srpaulo	$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1299209139Srpaulo		-Deap_peer_psk_register=eap_peer_method_dynamic_init
1300209139Srpaulo
1301209139Srpauloeap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1302214734Srpaulo	$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1303209139Srpaulo		-Deap_peer_pax_register=eap_peer_method_dynamic_init
1304209139Srpaulo
1305209139Srpauloeap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1306214734Srpaulo	$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1307209139Srpaulo		-Deap_peer_sake_register=eap_peer_method_dynamic_init
1308209139Srpaulo
1309209139Srpauloeap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1310214734Srpaulo	$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1311209139Srpaulo		-Deap_peer_wsc_register=eap_peer_method_dynamic_init
1312209139Srpaulo
1313209139Srpauloeap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c
1314214734Srpaulo	$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1315209139Srpaulo		-Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1316209139Srpaulo
1317209139Srpaulo%.so: %.c
1318214734Srpaulo	$(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1319209139Srpaulo		-D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1320209139Srpaulo
1321209139SrpauloQ=@
1322209139SrpauloE=echo
1323209139Srpauloifeq ($(V), 1)
1324209139SrpauloQ=
1325209139SrpauloE=true
1326209139Srpauloendif
1327209139Srpaulo
1328209139Srpaulo%.o: %.c
1329209139Srpaulo	$(Q)$(CC) -c -o $@ $(CFLAGS) $<
1330209139Srpaulo	@$(E) "  CC " $<
1331209139Srpaulo
1332209139Srpaulowpa_supplicant.exe: wpa_supplicant
1333209139Srpaulo	mv -f $< $@
1334209139Srpaulowpa_cli.exe: wpa_cli
1335209139Srpaulo	mv -f $< $@
1336209139Srpaulowpa_passphrase.exe: wpa_passphrase
1337209139Srpaulo	mv -f $< $@
1338209139Srpaulowin_if_list.exe: win_if_list
1339209139Srpaulo	mv -f $< $@
1340209139Srpauloeapol_test.exe: eapol_test
1341209139Srpaulo	mv -f $< $@
1342209139Srpaulo
1343209139SrpauloWINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1344209139Srpaulo
1345209139Srpaulowindows-bin: $(WINALL)
1346209139Srpaulo	$(STRIP) $(WINALL)
1347209139Srpaulo
1348209139Srpaulowpa_gui/Makefile:
1349209139Srpaulo	qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro 
1350209139Srpaulo
1351209139Srpaulowpa_gui: wpa_gui/Makefile
1352209139Srpaulo	$(MAKE) -C wpa_gui
1353209139Srpaulo
1354209139Srpaulowpa_gui-qt4/Makefile:
1355209139Srpaulo	qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro 
1356209139Srpaulo
1357214734Srpaulowpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1358214734Srpaulo	lrelease wpa_gui-qt4/wpa_gui.pro
1359214734Srpaulo
1360214734Srpaulowpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1361209139Srpaulo	$(MAKE) -C wpa_gui-qt4
1362209139Srpaulo
1363214734SrpauloTEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \
1364214734Srpaulo	../src/utils/common.o ../src/utils/os_unix.o \
1365214734Srpaulo	../src/utils/wpa_debug.o $(AESOBJS) \
1366209139Srpaulo	tests/test_eap_sim_common.o
1367209139Srpaulotest-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
1368214734Srpaulo	$(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS)
1369209139Srpaulo	./test-eap_sim_common
1370209139Srpaulo	rm test-eap_sim_common
1371209139Srpaulo
1372214734Srpaulotests: test-eap_sim_common
1373209139Srpaulo
1374209139Srpauloclean:
1375209139Srpaulo	$(MAKE) -C ../src clean
1376214734Srpaulo	$(MAKE) -C dbus clean
1377209139Srpaulo	rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
1378209139Srpaulo	rm -f wpa_priv
1379209139Srpaulo
1380209139Srpaulo-include $(OBJS:%.o=%.d)
1381