]> git.ipfire.org Git - thirdparty/hostap.git/blame - wpa_supplicant/Makefile
P2P: Fix PSK configuration for GO network
[thirdparty/hostap.git] / wpa_supplicant / Makefile
CommitLineData
6fc6879b
JM
1ifndef CC
2CC=gcc
3endif
4
5ifndef CFLAGS
6CFLAGS = -MMD -O2 -Wall -g
7endif
8
d94d4baf
DM
9export LIBDIR ?= /usr/local/lib/
10export BINDIR ?= /usr/local/sbin/
572a171f 11PKG_CONFIG ?= pkg-config
d94d4baf 12
6fc6879b 13CFLAGS += -I../src
6fc6879b 14CFLAGS += -I../src/utils
6fc6879b 15
62b98282
JM
16-include .config
17
ea5cb06e 18BINALL=wpa_supplicant wpa_cli
62b98282
JM
19
20ifndef CONFIG_NO_WPA_PASSPHRASE
ea5cb06e 21BINALL += wpa_passphrase
62b98282 22endif
6fc6879b 23
ea5cb06e 24ALL = $(BINALL)
f0573c79
HG
25ALL += systemd/wpa_supplicant.service
26ALL += systemd/wpa_supplicant@.service
27ALL += systemd/wpa_supplicant-nl80211@.service
28ALL += systemd/wpa_supplicant-wired@.service
29ALL += dbus/fi.epitest.hostap.WPASupplicant.service
30ALL += dbus/fi.w1.wpa_supplicant1.service
31
32
6fc6879b
JM
33all: verify_config $(ALL) dynamic_eap_methods
34
35verify_config:
36 @if [ ! -r .config ]; then \
37 echo 'Building wpa_supplicant requires a configuration file'; \
38 echo '(.config). See README for more instructions. You can'; \
39 echo 'run "cp defconfig .config" to create an example'; \
40 echo 'configuration.'; \
41 exit 1; \
42 fi
43
44mkconfig:
5008cb5e 45 @if [ -f .config ]; then \
6fc6879b
JM
46 echo '.config exists - did not replace it'; \
47 exit 1; \
48 fi
49 echo CONFIG_DRIVER_HOSTAP=y >> .config
50 echo CONFIG_DRIVER_WEXT=y >> .config
6fc6879b 51
b1117643
GE
52$(DESTDIR)$(BINDIR)/%: %
53 install -D $(<) $(@)
54
ea5cb06e 55install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
d94d4baf 56 $(MAKE) -C ../src install
6fc6879b 57
982bafed
JM
58ifdef CONFIG_FIPS
59CONFIG_NO_RANDOM_POOL=
0b5e9855 60CONFIG_OPENSSL_CMAC=y
982bafed
JM
61endif
62
6fc6879b 63OBJS = config.o
8bac466b 64OBJS += notify.o
34359a3f 65OBJS += bss.o
12760815 66OBJS += eap_register.o
6fc6879b
JM
67OBJS += ../src/utils/common.o
68OBJS += ../src/utils/wpa_debug.o
69OBJS += ../src/utils/wpabuf.o
6fc6879b
JM
70OBJS_p = wpa_passphrase.o
71OBJS_p += ../src/utils/common.o
72OBJS_p += ../src/utils/wpa_debug.o
f042122a 73OBJS_p += ../src/utils/wpabuf.o
6fc6879b 74OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
aee680e8 75OBJS_c += ../src/utils/wpa_debug.o
a624f20b 76OBJS_c += ../src/utils/common.o
6fc6879b 77
6fc6879b
JM
78ifndef CONFIG_OS
79ifdef CONFIG_NATIVE_WINDOWS
80CONFIG_OS=win32
81else
82CONFIG_OS=unix
83endif
84endif
85
86ifeq ($(CONFIG_OS), internal)
87CFLAGS += -DOS_NO_C_LIB_DEFINES
88endif
89
90OBJS += ../src/utils/os_$(CONFIG_OS).o
91OBJS_p += ../src/utils/os_$(CONFIG_OS).o
92OBJS_c += ../src/utils/os_$(CONFIG_OS).o
93
930f704a
JM
94ifdef CONFIG_WPA_TRACE
95CFLAGS += -DWPA_TRACE
96OBJS += ../src/utils/trace.o
fb4baa68
JM
97OBJS_p += ../src/utils/trace.o
98OBJS_c += ../src/utils/trace.o
d5695081 99OBJS_priv += ../src/utils/trace.o
f2f7d965
JM
100LDFLAGS += -rdynamic
101CFLAGS += -funwind-tables
102ifdef CONFIG_WPA_TRACE_BFD
103CFLAGS += -DWPA_TRACE_BFD
104LIBS += -lbfd
105LIBS_p += -lbfd
106LIBS_c += -lbfd
107endif
930f704a
JM
108endif
109
6fc6879b
JM
110ifndef CONFIG_ELOOP
111CONFIG_ELOOP=eloop
112endif
113OBJS += ../src/utils/$(CONFIG_ELOOP).o
cd101567 114OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
6fc6879b 115
2df4c4ef
BG
116ifdef CONFIG_ELOOP_POLL
117CFLAGS += -DCONFIG_ELOOP_POLL
118endif
119
6fc6879b
JM
120
121ifdef CONFIG_EAPOL_TEST
122CFLAGS += -Werror -DEAPOL_TEST
123endif
124
80e8a5ee
BG
125ifdef CONFIG_HT_OVERRIDES
126CFLAGS += -DCONFIG_HT_OVERRIDES
127endif
128
6fc6879b
JM
129ifndef CONFIG_BACKEND
130CONFIG_BACKEND=file
131endif
132
133ifeq ($(CONFIG_BACKEND), file)
134OBJS += config_file.o
135ifndef CONFIG_NO_CONFIG_BLOBS
136NEED_BASE64=y
137endif
138CFLAGS += -DCONFIG_BACKEND_FILE
139endif
140
141ifeq ($(CONFIG_BACKEND), winreg)
142OBJS += config_winreg.o
143endif
144
145ifeq ($(CONFIG_BACKEND), none)
146OBJS += config_none.o
147endif
148
149ifdef CONFIG_NO_CONFIG_WRITE
150CFLAGS += -DCONFIG_NO_CONFIG_WRITE
151endif
152
153ifdef CONFIG_NO_CONFIG_BLOBS
154CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
155endif
156
157ifdef CONFIG_NO_SCAN_PROCESSING
158CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
159endif
160
38b46286
JM
161ifdef CONFIG_IEEE80211W
162CFLAGS += -DCONFIG_IEEE80211W
163NEED_SHA256=y
279d859b 164NEED_AES_OMAC1=y
38b46286
JM
165endif
166
167ifdef CONFIG_IEEE80211R
168CFLAGS += -DCONFIG_IEEE80211R
169OBJS += ../src/rsn_supp/wpa_ft.o
170NEED_80211_COMMON=y
171NEED_SHA256=y
279d859b 172NEED_AES_OMAC1=y
38b46286
JM
173endif
174
75cad1a0
XC
175ifdef CONFIG_IEEE80211V
176CFLAGS += -DCONFIG_IEEE80211V
177OBJS += wnm_sta.o
178endif
179
281ff0aa
GP
180ifdef CONFIG_TDLS
181CFLAGS += -DCONFIG_TDLS
182OBJS += ../src/rsn_supp/tdls.o
183NEED_SHA256=y
184NEED_AES_OMAC1=y
185endif
186
ba3936d9
AN
187ifdef CONFIG_TDLS_TESTING
188CFLAGS += -DCONFIG_TDLS_TESTING
189endif
190
38b46286
JM
191ifdef CONFIG_PEERKEY
192CFLAGS += -DCONFIG_PEERKEY
193endif
194
195ifndef CONFIG_NO_WPA
196OBJS += ../src/rsn_supp/wpa.o
197OBJS += ../src/rsn_supp/preauth.o
198OBJS += ../src/rsn_supp/pmksa_cache.o
199OBJS += ../src/rsn_supp/peerkey.o
200OBJS += ../src/rsn_supp/wpa_ie.o
201OBJS += ../src/common/wpa_common.o
202NEED_AES=y
203NEED_SHA1=y
204NEED_MD5=y
205NEED_RC4=y
206else
207CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
208endif
209
210ifdef CONFIG_IBSS_RSN
3680a5db 211NEED_RSN_AUTHENTICATOR=y
38b46286
JM
212CFLAGS += -DCONFIG_IBSS_RSN
213OBJS += ibss_rsn.o
38b46286
JM
214endif
215
b22128ef
JM
216ifdef CONFIG_P2P
217OBJS += p2p_supplicant.o
218OBJS += ../src/p2p/p2p.o
219OBJS += ../src/p2p/p2p_utils.o
220OBJS += ../src/p2p/p2p_parse.o
221OBJS += ../src/p2p/p2p_build.o
222OBJS += ../src/p2p/p2p_go_neg.o
223OBJS += ../src/p2p/p2p_sd.o
224OBJS += ../src/p2p/p2p_pd.o
225OBJS += ../src/p2p/p2p_invitation.o
226OBJS += ../src/p2p/p2p_dev_disc.o
227OBJS += ../src/p2p/p2p_group.o
228OBJS += ../src/ap/p2p_hostapd.o
229CFLAGS += -DCONFIG_P2P
0c840c33 230NEED_GAS=y
24f6497c 231NEED_OFFCHANNEL=y
b22128ef 232NEED_80211_COMMON=y
8271f14a
JM
233CONFIG_WPS=y
234CONFIG_AP=y
b22128ef
JM
235ifdef CONFIG_P2P_STRICT
236CFLAGS += -DCONFIG_P2P_STRICT
237endif
238endif
239
9675ce35
JM
240ifdef CONFIG_WIFI_DISPLAY
241CFLAGS += -DCONFIG_WIFI_DISPLAY
242OBJS += wifi_display.o
243endif
244
25471fe3
JK
245ifdef CONFIG_HS20
246OBJS += hs20_supplicant.o
247CFLAGS += -DCONFIG_HS20
248CONFIG_INTERWORKING=y
249endif
250
46ee0427 251ifdef CONFIG_INTERWORKING
afc064fe 252OBJS += interworking.o
46ee0427
JM
253CFLAGS += -DCONFIG_INTERWORKING
254NEED_GAS=y
255endif
256
38b46286
JM
257ifdef CONFIG_NO_WPA2
258CFLAGS += -DCONFIG_NO_WPA2
259endif
260
e7cd16ca
JB
261include ../src/drivers/drivers.mak
262ifdef CONFIG_AP
263OBJS_d += $(DRV_BOTH_OBJS)
264CFLAGS += $(DRV_BOTH_CFLAGS)
265LDFLAGS += $(DRV_BOTH_LDFLAGS)
266LIBS += $(DRV_BOTH_LIBS)
267else
268NEED_AP_MLME=
269OBJS_d += $(DRV_WPA_OBJS)
270CFLAGS += $(DRV_WPA_CFLAGS)
271LDFLAGS += $(DRV_WPA_LDFLAGS)
272LIBS += $(DRV_WPA_LIBS)
e519314e
JW
273endif
274
6fc6879b
JM
275ifndef CONFIG_L2_PACKET
276CONFIG_L2_PACKET=linux
277endif
278
279OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
280
281ifeq ($(CONFIG_L2_PACKET), pcap)
282ifdef CONFIG_WINPCAP
283CFLAGS += -DCONFIG_WINPCAP
284LIBS += -lwpcap -lpacket
285LIBS_w += -lwpcap
286else
287LIBS += -ldnet -lpcap
288endif
289endif
290
291ifeq ($(CONFIG_L2_PACKET), winpcap)
292LIBS += -lwpcap -lpacket
293LIBS_w += -lwpcap
294endif
295
296ifeq ($(CONFIG_L2_PACKET), freebsd)
297LIBS += -lpcap
298endif
299
300ifdef CONFIG_EAP_TLS
301# EAP-TLS
302ifeq ($(CONFIG_EAP_TLS), dyn)
303CFLAGS += -DEAP_TLS_DYNAMIC
304EAPDYN += ../src/eap_peer/eap_tls.so
305else
306CFLAGS += -DEAP_TLS
307OBJS += ../src/eap_peer/eap_tls.o
94d9bfd5 308OBJS_h += ../src/eap_server/eap_server_tls.o
6fc6879b
JM
309endif
310TLS_FUNCS=y
311CONFIG_IEEE8021X_EAPOL=y
065d2895
JM
312endif
313
314ifdef CONFIG_EAP_UNAUTH_TLS
315# EAP-UNAUTH-TLS
316CFLAGS += -DEAP_UNAUTH_TLS
317ifndef CONFIG_EAP_UNAUTH_TLS
318OBJS += ../src/eap_peer/eap_tls.o
319OBJS_h += ../src/eap_server/eap_server_tls.o
320TLS_FUNCS=y
321endif
322CONFIG_IEEE8021X_EAPOL=y
6fc6879b
JM
323endif
324
325ifdef CONFIG_EAP_PEAP
326# EAP-PEAP
327ifeq ($(CONFIG_EAP_PEAP), dyn)
328CFLAGS += -DEAP_PEAP_DYNAMIC
329EAPDYN += ../src/eap_peer/eap_peap.so
330else
331CFLAGS += -DEAP_PEAP
332OBJS += ../src/eap_peer/eap_peap.o
2eeaa5c9 333OBJS += ../src/eap_common/eap_peap_common.o
94d9bfd5 334OBJS_h += ../src/eap_server/eap_server_peap.o
6fc6879b
JM
335endif
336TLS_FUNCS=y
337CONFIG_IEEE8021X_EAPOL=y
6fc6879b
JM
338endif
339
340ifdef CONFIG_EAP_TTLS
341# EAP-TTLS
342ifeq ($(CONFIG_EAP_TTLS), dyn)
343CFLAGS += -DEAP_TTLS_DYNAMIC
344EAPDYN += ../src/eap_peer/eap_ttls.so
345else
346CFLAGS += -DEAP_TTLS
347OBJS += ../src/eap_peer/eap_ttls.o
94d9bfd5 348OBJS_h += ../src/eap_server/eap_server_ttls.o
6fc6879b
JM
349endif
350MS_FUNCS=y
351TLS_FUNCS=y
352CHAP=y
353CONFIG_IEEE8021X_EAPOL=y
354endif
355
356ifdef CONFIG_EAP_MD5
357# EAP-MD5
358ifeq ($(CONFIG_EAP_MD5), dyn)
359CFLAGS += -DEAP_MD5_DYNAMIC
360EAPDYN += ../src/eap_peer/eap_md5.so
361else
362CFLAGS += -DEAP_MD5
363OBJS += ../src/eap_peer/eap_md5.o
94d9bfd5 364OBJS_h += ../src/eap_server/eap_server_md5.o
6fc6879b
JM
365endif
366CHAP=y
367CONFIG_IEEE8021X_EAPOL=y
368endif
369
370# backwards compatibility for old spelling
371ifdef CONFIG_MSCHAPV2
372ifndef CONFIG_EAP_MSCHAPV2
373CONFIG_EAP_MSCHAPV2=y
374endif
375endif
376
377ifdef CONFIG_EAP_MSCHAPV2
378# EAP-MSCHAPv2
379ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
380CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
381EAPDYN += ../src/eap_peer/eap_mschapv2.so
382EAPDYN += ../src/eap_peer/mschapv2.so
383else
384CFLAGS += -DEAP_MSCHAPv2
385OBJS += ../src/eap_peer/eap_mschapv2.o
386OBJS += ../src/eap_peer/mschapv2.o
94d9bfd5 387OBJS_h += ../src/eap_server/eap_server_mschapv2.o
6fc6879b
JM
388endif
389MS_FUNCS=y
390CONFIG_IEEE8021X_EAPOL=y
391endif
392
393ifdef CONFIG_EAP_GTC
394# EAP-GTC
395ifeq ($(CONFIG_EAP_GTC), dyn)
396CFLAGS += -DEAP_GTC_DYNAMIC
397EAPDYN += ../src/eap_peer/eap_gtc.so
398else
399CFLAGS += -DEAP_GTC
400OBJS += ../src/eap_peer/eap_gtc.o
94d9bfd5 401OBJS_h += ../src/eap_server/eap_server_gtc.o
6fc6879b
JM
402endif
403CONFIG_IEEE8021X_EAPOL=y
404endif
405
406ifdef CONFIG_EAP_OTP
407# EAP-OTP
408ifeq ($(CONFIG_EAP_OTP), dyn)
409CFLAGS += -DEAP_OTP_DYNAMIC
410EAPDYN += ../src/eap_peer/eap_otp.so
411else
412CFLAGS += -DEAP_OTP
413OBJS += ../src/eap_peer/eap_otp.o
414endif
415CONFIG_IEEE8021X_EAPOL=y
416endif
417
418ifdef CONFIG_EAP_SIM
419# EAP-SIM
420ifeq ($(CONFIG_EAP_SIM), dyn)
421CFLAGS += -DEAP_SIM_DYNAMIC
422EAPDYN += ../src/eap_peer/eap_sim.so
423else
424CFLAGS += -DEAP_SIM
425OBJS += ../src/eap_peer/eap_sim.o
94d9bfd5 426OBJS_h += ../src/eap_server/eap_server_sim.o
6fc6879b
JM
427endif
428CONFIG_IEEE8021X_EAPOL=y
429CONFIG_EAP_SIM_COMMON=y
bd4e9d03 430NEED_AES_CBC=y
6fc6879b
JM
431endif
432
433ifdef CONFIG_EAP_LEAP
434# EAP-LEAP
435ifeq ($(CONFIG_EAP_LEAP), dyn)
436CFLAGS += -DEAP_LEAP_DYNAMIC
437EAPDYN += ../src/eap_peer/eap_leap.so
438else
439CFLAGS += -DEAP_LEAP
440OBJS += ../src/eap_peer/eap_leap.o
441endif
442MS_FUNCS=y
443CONFIG_IEEE8021X_EAPOL=y
444endif
445
446ifdef CONFIG_EAP_PSK
447# EAP-PSK
448ifeq ($(CONFIG_EAP_PSK), dyn)
449CFLAGS += -DEAP_PSK_DYNAMIC
450EAPDYN += ../src/eap_peer/eap_psk.so
451else
452CFLAGS += -DEAP_PSK
453OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
94d9bfd5 454OBJS_h += ../src/eap_server/eap_server_psk.o
6fc6879b
JM
455endif
456CONFIG_IEEE8021X_EAPOL=y
457NEED_AES=y
bd4e9d03
JM
458NEED_AES_OMAC1=y
459NEED_AES_ENCBLOCK=y
460NEED_AES_EAX=y
6fc6879b
JM
461endif
462
463ifdef CONFIG_EAP_AKA
464# EAP-AKA
465ifeq ($(CONFIG_EAP_AKA), dyn)
466CFLAGS += -DEAP_AKA_DYNAMIC
467EAPDYN += ../src/eap_peer/eap_aka.so
468else
469CFLAGS += -DEAP_AKA
470OBJS += ../src/eap_peer/eap_aka.o
94d9bfd5 471OBJS_h += ../src/eap_server/eap_server_aka.o
6fc6879b
JM
472endif
473CONFIG_IEEE8021X_EAPOL=y
474CONFIG_EAP_SIM_COMMON=y
bd4e9d03 475NEED_AES_CBC=y
6fc6879b
JM
476endif
477
8c37556c
JM
478ifdef CONFIG_EAP_AKA_PRIME
479# EAP-AKA'
480ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
481CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
8c37556c
JM
482else
483CFLAGS += -DEAP_AKA_PRIME
8c37556c 484endif
1edb9533 485NEED_SHA256=y
8c37556c
JM
486endif
487
6fc6879b
JM
488ifdef CONFIG_EAP_SIM_COMMON
489OBJS += ../src/eap_common/eap_sim_common.o
490OBJS_h += ../src/eap_server/eap_sim_db.o
491NEED_AES=y
492NEED_FIPS186_2_PRF=y
493endif
494
6fc6879b
JM
495ifdef CONFIG_EAP_FAST
496# EAP-FAST
497ifeq ($(CONFIG_EAP_FAST), dyn)
498CFLAGS += -DEAP_FAST_DYNAMIC
499EAPDYN += ../src/eap_peer/eap_fast.so
a4819630 500EAPDYN += ../src/eap_common/eap_fast_common.o
6fc6879b
JM
501else
502CFLAGS += -DEAP_FAST
503OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
a4819630 504OBJS += ../src/eap_common/eap_fast_common.o
94d9bfd5 505OBJS_h += ../src/eap_server/eap_server_fast.o
6fc6879b
JM
506endif
507TLS_FUNCS=y
58d1f6d1 508CONFIG_IEEE8021X_EAPOL=y
6fc6879b
JM
509NEED_T_PRF=y
510endif
511
512ifdef CONFIG_EAP_PAX
513# EAP-PAX
514ifeq ($(CONFIG_EAP_PAX), dyn)
515CFLAGS += -DEAP_PAX_DYNAMIC
516EAPDYN += ../src/eap_peer/eap_pax.so
517else
518CFLAGS += -DEAP_PAX
519OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
94d9bfd5 520OBJS_h += ../src/eap_server/eap_server_pax.o
6fc6879b
JM
521endif
522CONFIG_IEEE8021X_EAPOL=y
523endif
524
525ifdef CONFIG_EAP_SAKE
526# EAP-SAKE
527ifeq ($(CONFIG_EAP_SAKE), dyn)
528CFLAGS += -DEAP_SAKE_DYNAMIC
529EAPDYN += ../src/eap_peer/eap_sake.so
530else
531CFLAGS += -DEAP_SAKE
532OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
94d9bfd5 533OBJS_h += ../src/eap_server/eap_server_sake.o
6fc6879b
JM
534endif
535CONFIG_IEEE8021X_EAPOL=y
536endif
537
538ifdef CONFIG_EAP_GPSK
539# EAP-GPSK
540ifeq ($(CONFIG_EAP_GPSK), dyn)
541CFLAGS += -DEAP_GPSK_DYNAMIC
542EAPDYN += ../src/eap_peer/eap_gpsk.so
543else
544CFLAGS += -DEAP_GPSK
545OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
94d9bfd5 546OBJS_h += ../src/eap_server/eap_server_gpsk.o
6fc6879b
JM
547endif
548CONFIG_IEEE8021X_EAPOL=y
549ifdef CONFIG_EAP_GPSK_SHA256
550CFLAGS += -DEAP_GPSK_SHA256
551endif
552NEED_SHA256=y
bd4e9d03 553NEED_AES_OMAC1=y
6fc6879b
JM
554endif
555
df684d82
DH
556ifdef CONFIG_EAP_PWD
557CFLAGS += -DEAP_PWD
558OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
559OBJS_h += ../src/eap_server/eap_pwd.o
560CONFIG_IEEE8021X_EAPOL=y
561NEED_SHA256=y
562endif
563
ad08c363 564ifdef CONFIG_WPS
53587ec1
JM
565ifdef CONFIG_WPS2
566CFLAGS += -DCONFIG_WPS2
567endif
568
ad08c363 569# EAP-WSC
ad08c363 570CFLAGS += -DCONFIG_WPS -DEAP_WSC
fa201b69 571OBJS += wps_supplicant.o
ad08c363
JM
572OBJS += ../src/utils/uuid.o
573OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
574OBJS += ../src/wps/wps.o
575OBJS += ../src/wps/wps_common.o
7d7b8e96
JM
576OBJS += ../src/wps/wps_attr_parse.o
577OBJS += ../src/wps/wps_attr_build.o
578OBJS += ../src/wps/wps_attr_process.o
ad08c363
JM
579OBJS += ../src/wps/wps_dev_attr.o
580OBJS += ../src/wps/wps_enrollee.o
581OBJS += ../src/wps/wps_registrar.o
94d9bfd5 582OBJS_h += ../src/eap_server/eap_server_wsc.o
ad08c363
JM
583CONFIG_IEEE8021X_EAPOL=y
584NEED_DH_GROUPS=y
1edb9533 585NEED_SHA256=y
d9f56262 586NEED_BASE64=y
f1b0de09 587NEED_80211_COMMON=y
0dba0175 588NEED_AES_CBC=y
38b46286 589NEED_MODEXP=y
e1c7954d 590
390cd310
JM
591ifdef CONFIG_WPS_UFD
592CFLAGS += -DCONFIG_WPS_UFD
593OBJS += ../src/wps/wps_ufd.o
116f7bb0
JM
594NEED_WPS_OOB=y
595endif
596
e1ee6b60
MH
597ifdef CONFIG_WPS_NFC
598CFLAGS += -DCONFIG_WPS_NFC
599OBJS += ../src/wps/ndef.o
600OBJS += ../src/wps/wps_nfc.o
601NEED_WPS_OOB=y
602ifdef CONFIG_WPS_NFC_PN531
9cf548c0 603PN531_PATH ?= /usr/local/src/nfc
e1ee6b60
MH
604CFLAGS += -DCONFIG_WPS_NFC_PN531
605CFLAGS += -I${PN531_PATH}/inc
606OBJS += ../src/wps/wps_nfc_pn531.o
607LIBS += ${PN531_PATH}/lib/wpsnfc.dll
608LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll
609endif
610endif
611
116f7bb0
JM
612ifdef NEED_WPS_OOB
613CFLAGS += -DCONFIG_WPS_OOB
390cd310
JM
614endif
615
e9bcfebf
JM
616ifdef CONFIG_WPS_ER
617CONFIG_WPS_UPNP=y
618CFLAGS += -DCONFIG_WPS_ER
619OBJS += ../src/wps/wps_er.o
ec72bd0c 620OBJS += ../src/wps/wps_er_ssdp.o
e9bcfebf
JM
621endif
622
e1c7954d
JM
623ifdef CONFIG_WPS_UPNP
624CFLAGS += -DCONFIG_WPS_UPNP
625OBJS += ../src/wps/wps_upnp.o
626OBJS += ../src/wps/wps_upnp_ssdp.o
627OBJS += ../src/wps/wps_upnp_web.o
628OBJS += ../src/wps/wps_upnp_event.o
7e683cee 629OBJS += ../src/wps/wps_upnp_ap.o
0b40d033 630OBJS += ../src/wps/upnp_xml.o
e1c7954d 631OBJS += ../src/wps/httpread.o
092794f4 632OBJS += ../src/wps/http_client.o
b905c4a3 633OBJS += ../src/wps/http_server.o
e1c7954d
JM
634endif
635
cae67937
JM
636ifdef CONFIG_WPS_STRICT
637CFLAGS += -DCONFIG_WPS_STRICT
638OBJS += ../src/wps/wps_validate.o
639endif
640
b4e34f2f
JM
641ifdef CONFIG_WPS_TESTING
642CFLAGS += -DCONFIG_WPS_TESTING
643endif
644
f981eabc
JM
645ifdef CONFIG_WPS_REG_DISABLE_OPEN
646CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
647endif
648
ad08c363
JM
649endif
650
6fc6879b
JM
651ifdef CONFIG_EAP_IKEV2
652# EAP-IKEv2
653ifeq ($(CONFIG_EAP_IKEV2), dyn)
654CFLAGS += -DEAP_IKEV2_DYNAMIC
655EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
656EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
657else
658CFLAGS += -DEAP_IKEV2
659OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
660OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
94d9bfd5 661OBJS_h += ../src/eap_server/eap_server_ikev2.o
6fc6879b
JM
662OBJS_h += ../src/eap_server/ikev2.o
663endif
664CONFIG_IEEE8021X_EAPOL=y
665NEED_DH_GROUPS=y
dd01b1ff 666NEED_DH_GROUPS_ALL=y
38b46286 667NEED_MODEXP=y
be473f3f 668NEED_CIPHER=y
6fc6879b
JM
669endif
670
671ifdef CONFIG_EAP_VENDOR_TEST
672ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
673CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
674EAPDYN += ../src/eap_peer/eap_vendor_test.so
675else
676CFLAGS += -DEAP_VENDOR_TEST
677OBJS += ../src/eap_peer/eap_vendor_test.o
94d9bfd5 678OBJS_h += ../src/eap_server/eap_server_vendor_test.o
6fc6879b
JM
679endif
680CONFIG_IEEE8021X_EAPOL=y
681endif
682
683ifdef CONFIG_EAP_TNC
684# EAP-TNC
685CFLAGS += -DEAP_TNC
686OBJS += ../src/eap_peer/eap_tnc.o
687OBJS += ../src/eap_peer/tncc.o
94d9bfd5 688OBJS_h += ../src/eap_server/eap_server_tnc.o
93ea8ed0 689OBJS_h += ../src/eap_server/tncs.o
6fc6879b 690NEED_BASE64=y
53c256a4 691ifndef CONFIG_NATIVE_WINDOWS
7d737d6b 692ifndef CONFIG_DRIVER_BSD
b77eab28 693LIBS += -ldl
6fc6879b 694endif
53c256a4 695endif
7d737d6b 696endif
6fc6879b
JM
697
698ifdef CONFIG_IEEE8021X_EAPOL
699# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
700CFLAGS += -DIEEE8021X_EAPOL
25c226ea
JM
701OBJS += ../src/eapol_supp/eapol_supp_sm.o
702OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
703NEED_EAP_COMMON=y
6fc6879b
JM
704ifdef CONFIG_DYNAMIC_EAP_METHODS
705CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
706LIBS += -ldl -rdynamic
707endif
708endif
709
1581b38b 710ifdef CONFIG_AP
37a86b7b 711NEED_80211_COMMON=y
25c226ea 712NEED_EAP_COMMON=y
3680a5db 713NEED_RSN_AUTHENTICATOR=y
1581b38b 714CFLAGS += -DCONFIG_AP
f1a48710
JM
715OBJS += ap.o
716CFLAGS += -DCONFIG_NO_RADIUS
717CFLAGS += -DCONFIG_NO_ACCOUNTING
718CFLAGS += -DCONFIG_NO_VLAN
70db2ab3
JM
719OBJS += ../src/ap/hostapd.o
720OBJS += ../src/ap/wpa_auth_glue.o
32da61d9 721OBJS += ../src/ap/utils.o
2586bc64 722OBJS += ../src/ap/authsrv.o
6226e38d 723OBJS += ../src/ap/ap_config.o
2d5b792d 724OBJS += ../src/utils/ip_addr.o
1057d78e
JM
725OBJS += ../src/ap/sta_info.o
726OBJS += ../src/ap/tkip_countermeasures.o
6226e38d 727OBJS += ../src/ap/ap_mlme.o
1057d78e 728OBJS += ../src/ap/ieee802_1x.o
281c950b 729OBJS += ../src/eapol_auth/eapol_auth_sm.o
1057d78e 730OBJS += ../src/ap/ieee802_11_auth.o
d4370eac 731OBJS += ../src/ap/ieee802_11_shared.o
70db2ab3
JM
732OBJS += ../src/ap/drv_callbacks.o
733OBJS += ../src/ap/ap_drv_ops.o
062390ef 734OBJS += ../src/ap/beacon.o
34dbfc0c
JM
735ifdef CONFIG_IEEE80211N
736OBJS += ../src/ap/ieee802_11_ht.o
737endif
e653b622 738ifdef CONFIG_CTRL_IFACE
0e2d35c6 739OBJS += ../src/ap/ctrl_iface_ap.o
e653b622 740endif
f1a48710 741
12760815 742CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
94d9bfd5
JM
743OBJS += ../src/eap_server/eap_server.o
744OBJS += ../src/eap_server/eap_server_identity.o
745OBJS += ../src/eap_server/eap_server_methods.o
f1a48710 746
803a811b
JM
747ifdef CONFIG_IEEE80211N
748CFLAGS += -DCONFIG_IEEE80211N
749endif
750
b6668734
JM
751ifdef CONFIG_WNM
752CFLAGS += -DCONFIG_WNM
753endif
754
f1a48710 755ifdef NEED_AP_MLME
1057d78e
JM
756OBJS += ../src/ap/wmm.o
757OBJS += ../src/ap/ap_list.o
758OBJS += ../src/ap/ieee802_11.o
70db2ab3 759OBJS += ../src/ap/hw_features.o
fe6bdb77 760CFLAGS += -DNEED_AP_MLME
f1a48710
JM
761endif
762ifdef CONFIG_WPS
763CFLAGS += -DEAP_SERVER_WSC
32da61d9 764OBJS += ../src/ap/wps_hostapd.o
94d9bfd5 765OBJS += ../src/eap_server/eap_server_wsc.o
f1a48710 766endif
1d4839ee
JM
767ifdef CONFIG_INTERWORKING
768OBJS += ../src/ap/gas_serv.o
769endif
19a8ad99
JK
770ifdef CONFIG_HS20
771OBJS += ../src/ap/hs20.o
772endif
1581b38b
JM
773endif
774
3680a5db
JM
775ifdef NEED_RSN_AUTHENTICATOR
776CFLAGS += -DCONFIG_NO_RADIUS
777NEED_AES_WRAP=y
6226e38d 778OBJS += ../src/ap/wpa_auth.o
1057d78e 779OBJS += ../src/ap/wpa_auth_ie.o
6226e38d 780OBJS += ../src/ap/pmksa_cache_auth.o
3680a5db 781ifdef CONFIG_IEEE80211R
6226e38d 782OBJS += ../src/ap/wpa_auth_ft.o
3680a5db
JM
783endif
784ifdef CONFIG_PEERKEY
6226e38d 785OBJS += ../src/ap/peerkey_auth.o
3680a5db
JM
786endif
787endif
788
6fc6879b
JM
789ifdef CONFIG_EAP_SERVER
790CFLAGS += -DEAP_SERVER
94d9bfd5
JM
791OBJS_h += ../src/eap_server/eap_server.o
792OBJS_h += ../src/eap_server/eap_server_identity.o
793OBJS_h += ../src/eap_server/eap_server_methods.o
6fc6879b
JM
794endif
795
796ifdef CONFIG_RADIUS_CLIENT
797OBJS_h += ../src/utils/ip_addr.o
798OBJS_h += ../src/radius/radius.o
799OBJS_h += ../src/radius/radius_client.o
800endif
801
802ifdef CONFIG_AUTHENTICATOR
bed4d574 803OBJS_h += ../src/eapol_auth/eapol_auth_sm.o
1057d78e 804OBJS_h += ../src/ap/ieee802_1x.o
6fc6879b
JM
805endif
806
807ifdef CONFIG_WPA_AUTHENTICATOR
6226e38d 808OBJS_h += ../src/ap/wpa_auth.o
1057d78e 809OBJS_h += ../src/ap/wpa_auth_ie.o
6226e38d 810OBJS_h += ../src/ap/pmksa_cache_auth.o
6fc6879b 811ifdef CONFIG_IEEE80211R
6226e38d 812OBJS_h += ../src/ap/wpa_auth_ft.o
6fc6879b
JM
813endif
814ifdef CONFIG_PEERKEY
6226e38d 815OBJS_h += ../src/ap/peerkey_auth.o
6fc6879b
JM
816endif
817endif
818
819ifdef CONFIG_PCSC
820# PC/SC interface for smartcards (USIM, GSM SIM)
821CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
822OBJS += ../src/utils/pcsc_funcs.o
823# -lpthread may not be needed depending on how pcsc-lite was configured
824ifdef CONFIG_NATIVE_WINDOWS
825#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
826#dynamic symbol loading that is now used in pcsc_funcs.c
827#LIBS += -lwinscard
828else
829LIBS += -lpcsclite -lpthread
830endif
831endif
832
81eec387
JM
833ifdef CONFIG_SIM_SIMULATOR
834CFLAGS += -DCONFIG_SIM_SIMULATOR
835NEED_MILENAGE=y
836endif
837
2a24bb31
JM
838ifdef CONFIG_USIM_SIMULATOR
839CFLAGS += -DCONFIG_USIM_SIMULATOR
81eec387
JM
840NEED_MILENAGE=y
841endif
842
843ifdef NEED_MILENAGE
43df4cc2 844OBJS += ../src/crypto/milenage.o
5e67037b 845NEED_AES_ENCBLOCK=y
2a24bb31
JM
846endif
847
71374569
JM
848ifdef CONFIG_PKCS12
849CFLAGS += -DPKCS12_FUNCS
850endif
851
852ifdef CONFIG_SMARTCARD
853CFLAGS += -DCONFIG_SMARTCARD
854endif
855
856ifdef MS_FUNCS
857OBJS += ../src/crypto/ms_funcs.o
38b46286
JM
858NEED_DES=y
859NEED_MD4=y
71374569
JM
860endif
861
862ifdef CHAP
863OBJS += ../src/eap_common/chap.o
864endif
865
6fc6879b 866ifdef TLS_FUNCS
38b46286 867NEED_DES=y
6fc6879b 868# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
6fc6879b 869OBJS += ../src/eap_peer/eap_tls_common.o
94d9bfd5 870OBJS_h += ../src/eap_server/eap_server_tls_common.o
c9e08af2 871ifndef CONFIG_FIPS
6fc6879b 872NEED_TLS_PRF=y
000bbd77 873endif
c9e08af2 874endif
000bbd77 875
38b46286
JM
876ifndef CONFIG_TLS
877CONFIG_TLS=openssl
878endif
879
5c47af9a
JM
880ifdef CONFIG_TLSV11
881CFLAGS += -DCONFIG_TLSV11
882endif
883
ca84eed7
JM
884ifdef CONFIG_TLSV12
885CFLAGS += -DCONFIG_TLSV12
886NEED_SHA256=y
887endif
888
6fc6879b 889ifeq ($(CONFIG_TLS), openssl)
38b46286 890ifdef TLS_FUNCS
6fc6879b
JM
891CFLAGS += -DEAP_TLS_OPENSSL
892OBJS += ../src/crypto/tls_openssl.o
38b46286
JM
893LIBS += -lssl
894endif
895OBJS += ../src/crypto/crypto_openssl.o
896OBJS_p += ../src/crypto/crypto_openssl.o
897ifdef NEED_FIPS186_2_PRF
898OBJS += ../src/crypto/fips_prf_openssl.o
899endif
900LIBS += -lcrypto
6fc6879b 901LIBS_p += -lcrypto
411f5670
JM
902ifdef CONFIG_TLS_ADD_DL
903LIBS += -ldl
904LIBS_p += -ldl
905endif
6fc6879b 906endif
38b46286 907
6fc6879b 908ifeq ($(CONFIG_TLS), gnutls)
38b46286 909ifdef TLS_FUNCS
6fc6879b 910OBJS += ../src/crypto/tls_gnutls.o
38b46286 911LIBS += -lgnutls -lgpg-error
6fc6879b 912endif
6fc6879b
JM
913OBJS += ../src/crypto/crypto_gnutls.o
914OBJS_p += ../src/crypto/crypto_gnutls.o
05edfe29
JB
915ifdef NEED_FIPS186_2_PRF
916OBJS += ../src/crypto/fips_prf_gnutls.o
05edfe29 917endif
38b46286
JM
918LIBS += -lgcrypt
919LIBS_p += -lgcrypt
6fc6879b 920CONFIG_INTERNAL_SHA256=y
ac73690c 921CONFIG_INTERNAL_RC4=y
f042122a 922CONFIG_INTERNAL_DH_GROUP5=y
6fc6879b 923endif
38b46286 924
6fc6879b 925ifeq ($(CONFIG_TLS), schannel)
38b46286
JM
926ifdef TLS_FUNCS
927OBJS += ../src/crypto/tls_schannel.o
928endif
6fc6879b
JM
929OBJS += ../src/crypto/crypto_cryptoapi.o
930OBJS_p += ../src/crypto/crypto_cryptoapi.o
94c3e91f
JM
931ifdef NEED_FIPS186_2_PRF
932OBJS += ../src/crypto/fips_prf_cryptoapi.o
933endif
6fc6879b 934CONFIG_INTERNAL_SHA256=y
ac73690c 935CONFIG_INTERNAL_RC4=y
f042122a 936CONFIG_INTERNAL_DH_GROUP5=y
6fc6879b 937endif
38b46286 938
289ffc2b 939ifeq ($(CONFIG_TLS), nss)
38b46286
JM
940ifdef TLS_FUNCS
941OBJS += ../src/crypto/tls_nss.o
942LIBS += -lssl3
943endif
289ffc2b
JM
944OBJS += ../src/crypto/crypto_nss.o
945OBJS_p += ../src/crypto/crypto_nss.o
289ffc2b
JM
946ifdef NEED_FIPS186_2_PRF
947OBJS += ../src/crypto/fips_prf_nss.o
948endif
38b46286
JM
949LIBS += -lnss3
950LIBS_p += -lnss3
951CONFIG_INTERNAL_MD4=y
f042122a 952CONFIG_INTERNAL_DH_GROUP5=y
289ffc2b 953endif
38b46286 954
6fc6879b 955ifeq ($(CONFIG_TLS), internal)
38b46286
JM
956ifndef CONFIG_CRYPTO
957CONFIG_CRYPTO=internal
958endif
959ifdef TLS_FUNCS
be473f3f 960OBJS += ../src/crypto/crypto_internal-rsa.o
38b46286
JM
961OBJS += ../src/crypto/tls_internal.o
962OBJS += ../src/tls/tlsv1_common.o
963OBJS += ../src/tls/tlsv1_record.o
964OBJS += ../src/tls/tlsv1_cred.o
965OBJS += ../src/tls/tlsv1_client.o
966OBJS += ../src/tls/tlsv1_client_write.o
967OBJS += ../src/tls/tlsv1_client_read.o
968OBJS += ../src/tls/asn1.o
969OBJS += ../src/tls/rsa.o
970OBJS += ../src/tls/x509v3.o
f1739bac
JM
971OBJS += ../src/tls/pkcs1.o
972OBJS += ../src/tls/pkcs5.o
973OBJS += ../src/tls/pkcs8.o
1a707778 974NEED_SHA256=y
38b46286
JM
975NEED_BASE64=y
976NEED_TLS_PRF=y
ca84eed7
JM
977ifdef CONFIG_TLSV12
978NEED_TLS_PRF_SHA256=y
979endif
38b46286 980NEED_MODEXP=y
be473f3f 981NEED_CIPHER=y
38b46286
JM
982CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
983endif
be473f3f
JM
984ifdef NEED_CIPHER
985NEED_DES=y
986OBJS += ../src/crypto/crypto_internal-cipher.o
987endif
38b46286 988ifdef NEED_MODEXP
be473f3f 989OBJS += ../src/crypto/crypto_internal-modexp.o
38b46286 990OBJS += ../src/tls/bignum.o
38b46286 991endif
6fc6879b
JM
992ifeq ($(CONFIG_CRYPTO), libtomcrypt)
993OBJS += ../src/crypto/crypto_libtomcrypt.o
994OBJS_p += ../src/crypto/crypto_libtomcrypt.o
38b46286
JM
995LIBS += -ltomcrypt -ltfm
996LIBS_p += -ltomcrypt -ltfm
6fc6879b 997CONFIG_INTERNAL_SHA256=y
ac73690c 998CONFIG_INTERNAL_RC4=y
f042122a 999CONFIG_INTERNAL_DH_GROUP5=y
6fc6879b
JM
1000endif
1001ifeq ($(CONFIG_CRYPTO), internal)
38b46286
JM
1002OBJS += ../src/crypto/crypto_internal.o
1003OBJS_p += ../src/crypto/crypto_internal.o
73d0ad78 1004NEED_AES_ENC=y
6fc6879b 1005CFLAGS += -DCONFIG_CRYPTO_INTERNAL
049a292f
JM
1006ifdef CONFIG_INTERNAL_LIBTOMMATH
1007CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1008ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1009CFLAGS += -DLTM_FAST
1010endif
1011else
1012LIBS += -ltommath
1013LIBS_p += -ltommath
1014endif
6fc6879b
JM
1015CONFIG_INTERNAL_AES=y
1016CONFIG_INTERNAL_DES=y
1017CONFIG_INTERNAL_SHA1=y
1018CONFIG_INTERNAL_MD4=y
1019CONFIG_INTERNAL_MD5=y
1020CONFIG_INTERNAL_SHA256=y
ac73690c 1021CONFIG_INTERNAL_RC4=y
f042122a 1022CONFIG_INTERNAL_DH_GROUP5=y
6fc6879b
JM
1023endif
1024ifeq ($(CONFIG_CRYPTO), cryptoapi)
1025OBJS += ../src/crypto/crypto_cryptoapi.o
1026OBJS_p += ../src/crypto/crypto_cryptoapi.o
1027CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1028CONFIG_INTERNAL_SHA256=y
ac73690c 1029CONFIG_INTERNAL_RC4=y
6fc6879b
JM
1030endif
1031endif
38b46286 1032
6fc6879b 1033ifeq ($(CONFIG_TLS), none)
38b46286
JM
1034ifdef TLS_FUNCS
1035OBJS += ../src/crypto/tls_none.o
1036CFLAGS += -DEAP_TLS_NONE
1037CONFIG_INTERNAL_AES=y
1038CONFIG_INTERNAL_SHA1=y
1039CONFIG_INTERNAL_MD5=y
1040endif
6fc6879b
JM
1041OBJS += ../src/crypto/crypto_none.o
1042OBJS_p += ../src/crypto/crypto_none.o
1043CONFIG_INTERNAL_SHA256=y
ac73690c 1044CONFIG_INTERNAL_RC4=y
6fc6879b 1045endif
38b46286
JM
1046
1047ifdef TLS_FUNCS
1048ifdef CONFIG_SMARTCARD
1049ifndef CONFIG_NATIVE_WINDOWS
1050ifneq ($(CONFIG_L2_PACKET), freebsd)
1051LIBS += -ldl
1052endif
1053endif
1054endif
1055endif
1056
1057ifndef TLS_FUNCS
1058OBJS += ../src/crypto/tls_none.o
1059ifeq ($(CONFIG_TLS), internal)
6fc6879b
JM
1060CONFIG_INTERNAL_AES=y
1061CONFIG_INTERNAL_SHA1=y
1062CONFIG_INTERNAL_MD5=y
9d388d50 1063CONFIG_INTERNAL_RC4=y
6fc6879b 1064endif
38b46286 1065endif
6fc6879b 1066
38b46286 1067AESOBJS = # none so far (see below)
6fc6879b 1068ifdef CONFIG_INTERNAL_AES
381fcbc9 1069AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
6fc6879b 1070endif
38b46286
JM
1071
1072AESOBJS += ../src/crypto/aes-unwrap.o
bd4e9d03 1073ifdef NEED_AES_EAX
38b46286 1074AESOBJS += ../src/crypto/aes-eax.o
bd4e9d03
JM
1075NEED_AES_CTR=y
1076endif
1077ifdef NEED_AES_CTR
1078AESOBJS += ../src/crypto/aes-ctr.o
1079endif
1080ifdef NEED_AES_ENCBLOCK
38b46286 1081AESOBJS += ../src/crypto/aes-encblock.o
bd4e9d03
JM
1082endif
1083ifdef NEED_AES_OMAC1
279d859b 1084NEED_AES_ENC=y
0b5e9855
JM
1085ifdef CONFIG_OPENSSL_CMAC
1086CFLAGS += -DCONFIG_OPENSSL_CMAC
1087else
38b46286 1088AESOBJS += ../src/crypto/aes-omac1.o
bd4e9d03 1089endif
0b5e9855 1090endif
bd4e9d03 1091ifdef NEED_AES_WRAP
3afe7b61 1092NEED_AES_ENC=y
38b46286
JM
1093AESOBJS += ../src/crypto/aes-wrap.o
1094endif
1095ifdef NEED_AES_CBC
279d859b
MH
1096NEED_AES_ENC=y
1097AESOBJS += ../src/crypto/aes-cbc.o
1098endif
1099ifdef NEED_AES_ENC
38b46286
JM
1100ifdef CONFIG_INTERNAL_AES
1101AESOBJS += ../src/crypto/aes-internal-enc.o
1102endif
38b46286
JM
1103endif
1104ifdef NEED_AES
1105OBJS += $(AESOBJS)
38b46286
JM
1106endif
1107
1108ifdef NEED_SHA1
030d062f 1109ifneq ($(CONFIG_TLS), openssl)
38b46286 1110SHA1OBJS += ../src/crypto/sha1.o
030d062f 1111endif
d6150094 1112SHA1OBJS += ../src/crypto/sha1-prf.o
6fc6879b 1113ifdef CONFIG_INTERNAL_SHA1
928a50a3 1114SHA1OBJS += ../src/crypto/sha1-internal.o
05edfe29
JB
1115ifdef NEED_FIPS186_2_PRF
1116SHA1OBJS += ../src/crypto/fips_prf_internal.o
1117endif
6fc6879b 1118endif
62b98282
JM
1119ifdef CONFIG_NO_WPA_PASSPHRASE
1120CFLAGS += -DCONFIG_NO_PBKDF2
1121else
e40c86ad 1122ifneq ($(CONFIG_TLS), openssl)
38b46286
JM
1123SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1124endif
e40c86ad 1125endif
38b46286
JM
1126ifdef NEED_T_PRF
1127SHA1OBJS += ../src/crypto/sha1-tprf.o
1128endif
1129ifdef NEED_TLS_PRF
1130SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1131endif
1132endif
1133
6e6909a9
JM
1134ifndef CONFIG_FIPS
1135MD5OBJS += ../src/crypto/md5.o
1136endif
38b46286 1137ifdef NEED_MD5
6fc6879b 1138ifdef CONFIG_INTERNAL_MD5
ad01a531 1139MD5OBJS += ../src/crypto/md5-internal.o
6fc6879b 1140endif
38b46286 1141OBJS += $(MD5OBJS)
3e91d242 1142OBJS_p += $(MD5OBJS)
38b46286
JM
1143endif
1144
1145ifdef NEED_MD4
1146ifdef CONFIG_INTERNAL_MD4
1147OBJS += ../src/crypto/md4-internal.o
1148endif
1149endif
bd4e2895 1150
38b46286
JM
1151DESOBJS = # none needed when not internal
1152ifdef NEED_DES
6fc6879b 1153ifdef CONFIG_INTERNAL_DES
657f0381 1154DESOBJS += ../src/crypto/des-internal.o
6fc6879b 1155endif
38b46286 1156endif
6fc6879b 1157
38b46286 1158ifdef NEED_RC4
ac73690c
JM
1159ifdef CONFIG_INTERNAL_RC4
1160OBJS += ../src/crypto/rc4.o
1161endif
1d8ce433
JM
1162endif
1163
38b46286 1164SHA256OBJS = # none by default
6fc6879b 1165ifdef NEED_SHA256
00468b46 1166CFLAGS += -DCONFIG_SHA256
26a37922 1167ifneq ($(CONFIG_TLS), openssl)
598a792d 1168SHA256OBJS += ../src/crypto/sha256.o
26a37922 1169endif
ab637dcb 1170SHA256OBJS += ../src/crypto/sha256-prf.o
598a792d
JB
1171ifdef CONFIG_INTERNAL_SHA256
1172SHA256OBJS += ../src/crypto/sha256-internal.o
1173endif
83074898
JM
1174ifdef NEED_TLS_PRF_SHA256
1175SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1176endif
598a792d 1177OBJS += $(SHA256OBJS)
38b46286
JM
1178endif
1179
38b46286
JM
1180ifdef NEED_DH_GROUPS
1181OBJS += ../src/crypto/dh_groups.o
38b46286 1182endif
38b46286 1183ifdef NEED_DH_GROUPS_ALL
38b46286
JM
1184CFLAGS += -DALL_DH_GROUPS
1185endif
50ceddcf
JM
1186ifdef CONFIG_INTERNAL_DH_GROUP5
1187ifdef NEED_DH_GROUPS
1188OBJS += ../src/crypto/dh_group5.o
1189endif
38b46286 1190endif
6fc6879b 1191
bbb921da
JM
1192ifdef CONFIG_NO_RANDOM_POOL
1193CFLAGS += -DCONFIG_NO_RANDOM_POOL
1194else
1195OBJS += ../src/crypto/random.o
1196endif
1197
6fc6879b
JM
1198ifdef CONFIG_CTRL_IFACE
1199ifeq ($(CONFIG_CTRL_IFACE), y)
1200ifdef CONFIG_NATIVE_WINDOWS
1201CONFIG_CTRL_IFACE=named_pipe
1202else
1203CONFIG_CTRL_IFACE=unix
1204endif
1205endif
1206CFLAGS += -DCONFIG_CTRL_IFACE
1207ifeq ($(CONFIG_CTRL_IFACE), unix)
1208CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1209endif
1210ifeq ($(CONFIG_CTRL_IFACE), udp)
1211CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1212endif
1213ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1214CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1215endif
afadf423
JD
1216ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1217CONFIG_CTRL_IFACE=udp
1218CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1219CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1220endif
6fc6879b
JM
1221OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1222endif
1223
1224ifdef CONFIG_CTRL_IFACE_DBUS
8ddef94b 1225DBUS=y
8fc2fb56 1226DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
bacfd05f 1227DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
36da1358 1228ifdef CONFIG_WPS
bacfd05f 1229DBUS_OBJS += dbus/dbus_old_handlers_wps.o
36da1358 1230endif
19b3211d 1231DBUS_OBJS += dbus/dbus_dict_helpers.o
6fc6879b 1232ifndef DBUS_LIBS
572a171f 1233DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
6fc6879b 1234endif
6fc6879b 1235ifndef DBUS_INCLUDE
572a171f 1236DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
6fc6879b 1237endif
8fc2fb56
WS
1238DBUS_CFLAGS += $(DBUS_INCLUDE)
1239endif
1240
1241ifdef CONFIG_CTRL_IFACE_DBUS_NEW
8ddef94b 1242DBUS=y
8fc2fb56 1243DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
19b3211d 1244DBUS_OBJS ?= dbus/dbus_dict_helpers.o
a206a29a
JM
1245DBUS_OBJS += dbus/dbus_new_helpers.o
1246DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
36da1358
JM
1247ifdef CONFIG_WPS
1248DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1249endif
9abafccc
JB
1250ifdef CONFIG_P2P
1251DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1252endif
8fc2fb56 1253ifndef DBUS_LIBS
572a171f 1254DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
8fc2fb56
WS
1255endif
1256ifndef DBUS_INCLUDE
572a171f 1257DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
8fc2fb56
WS
1258endif
1259ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
04551ee6 1260DBUS_OBJS += dbus/dbus_new_introspect.o
8fc2fb56 1261DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
6fc6879b 1262endif
8fc2fb56
WS
1263DBUS_CFLAGS += $(DBUS_INCLUDE)
1264endif
1265
8ddef94b
JM
1266ifdef DBUS
1267DBUS_CFLAGS += -DCONFIG_DBUS
1268DBUS_OBJS += dbus/dbus_common.o
1269endif
1270
8fc2fb56
WS
1271OBJS += $(DBUS_OBJS)
1272CFLAGS += $(DBUS_CFLAGS)
1273LIBS += $(DBUS_LIBS)
6fc6879b
JM
1274
1275ifdef CONFIG_READLINE
e8ecb5fb 1276OBJS_c += ../src/utils/edit_readline.o
6fc6879b 1277LIBS_c += -lncurses -lreadline
82a855bd 1278else
aee680e8 1279ifdef CONFIG_WPA_CLI_EDIT
82a855bd
JM
1280OBJS_c += ../src/utils/edit.o
1281else
1282OBJS_c += ../src/utils/edit_simple.o
1283endif
aee680e8
JM
1284endif
1285
6fc6879b
JM
1286ifdef CONFIG_NATIVE_WINDOWS
1287CFLAGS += -DCONFIG_NATIVE_WINDOWS
1288LIBS += -lws2_32 -lgdi32 -lcrypt32
1289LIBS_c += -lws2_32
1290LIBS_p += -lws2_32 -lgdi32
1291ifeq ($(CONFIG_CRYPTO), cryptoapi)
1292LIBS_p += -lcrypt32
1293endif
1294endif
1295
1296ifdef CONFIG_NO_STDOUT_DEBUG
1297CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1298ifndef CONFIG_CTRL_IFACE
1299CFLAGS += -DCONFIG_NO_WPA_MSG
1300endif
1301endif
1302
1303ifdef CONFIG_IPV6
1304# for eapol_test only
1305CFLAGS += -DCONFIG_IPV6
1306endif
1307
6fc6879b
JM
1308ifdef NEED_BASE64
1309OBJS += ../src/utils/base64.o
1310endif
1311
c2a04078 1312ifdef NEED_SME
20e26395 1313NEED_80211_COMMON=y
c2a04078
JM
1314OBJS += sme.o
1315CFLAGS += -DCONFIG_SME
1316endif
1317
26c9d7ea
JM
1318ifdef NEED_80211_COMMON
1319OBJS += ../src/common/ieee802_11_common.o
6fc6879b
JM
1320endif
1321
25c226ea
JM
1322ifdef NEED_EAP_COMMON
1323OBJS += ../src/eap_common/eap_common.o
1324endif
1325
6fc6879b
JM
1326ifndef CONFIG_MAIN
1327CONFIG_MAIN=main
1328endif
1329
cca87731
SL
1330ifdef CONFIG_DEBUG_SYSLOG
1331CFLAGS += -DCONFIG_DEBUG_SYSLOG
3e199621
SL
1332ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1333CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1334endif
cca87731
SL
1335endif
1336
4f68895e
JB
1337ifdef CONFIG_DEBUG_LINUX_TRACING
1338CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1339endif
1340
6fc6879b
JM
1341ifdef CONFIG_DEBUG_FILE
1342CFLAGS += -DCONFIG_DEBUG_FILE
1343endif
1344
46690a3b
JM
1345ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1346CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1347endif
1348
577072b1
JM
1349ifdef CONFIG_FIPS
1350CFLAGS += -DCONFIG_FIPS
982bafed
JM
1351ifneq ($(CONFIG_TLS), openssl)
1352$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1353endif
577072b1
JM
1354endif
1355
657f0381 1356OBJS += $(SHA1OBJS) $(DESOBJS)
928a50a3 1357
be473f3f 1358OBJS_p += $(SHA1OBJS)
48f24f93 1359OBJS_p += $(SHA256OBJS)
6fc6879b 1360
60b94c98
JM
1361ifdef CONFIG_BGSCAN_SIMPLE
1362CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1363OBJS += bgscan_simple.o
1364NEED_BGSCAN=y
1365endif
1366
c4d71c25
JM
1367ifdef CONFIG_BGSCAN_LEARN
1368CFLAGS += -DCONFIG_BGSCAN_LEARN
1369OBJS += bgscan_learn.o
1370NEED_BGSCAN=y
1371endif
1372
60b94c98
JM
1373ifdef NEED_BGSCAN
1374CFLAGS += -DCONFIG_BGSCAN
1375OBJS += bgscan.o
1376endif
1377
c0fba2b3
TB
1378ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1379CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1380OBJS += autoscan_exponential.o
1381NEED_AUTOSCAN=y
1382endif
1383
e3659c89
TB
1384ifdef CONFIG_AUTOSCAN_PERIODIC
1385CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1386OBJS += autoscan_periodic.o
1387NEED_AUTOSCAN=y
1388endif
1389
7c865c68
TB
1390ifdef NEED_AUTOSCAN
1391CFLAGS += -DCONFIG_AUTOSCAN
1392OBJS += autoscan.o
1393endif
1394
306ae225
JM
1395ifdef CONFIG_EXT_PASSWORD_TEST
1396OBJS += ../src/utils/ext_password_test.o
1397CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1398NEED_EXT_PASSWORD=y
1399endif
1400
1401ifdef NEED_EXT_PASSWORD
1402OBJS += ../src/utils/ext_password.o
1403CFLAGS += -DCONFIG_EXT_PASSWORD
1404endif
1405
0c840c33
JM
1406ifdef NEED_GAS
1407OBJS += ../src/common/gas.o
04ea7b79
JM
1408OBJS += gas_query.o
1409CFLAGS += -DCONFIG_GAS
24f6497c
JM
1410NEED_OFFCHANNEL=y
1411endif
1412
1413ifdef NEED_OFFCHANNEL
1414OBJS += offchannel.o
1415CFLAGS += -DCONFIG_OFFCHANNEL
0c840c33
JM
1416endif
1417
aea855d7
JM
1418OBJS += ../src/drivers/driver_common.o
1419
17fbb751 1420OBJS_wpa_rm := ctrl_iface.o ctrl_iface_unix.o
6fc6879b
JM
1421OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1422ifdef CONFIG_AUTHENTICATOR
1423OBJS_wpa += tests/link_test.o
1424endif
1425OBJS_wpa += $(OBJS_l2)
1426OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
74784010
JM
1427OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1428OBJS_t += ../src/radius/radius_client.o
a7baefda 1429OBJS_t += ../src/radius/radius.o
74784010 1430ifndef CONFIG_AP
6fc6879b 1431OBJS_t += ../src/utils/ip_addr.o
74784010 1432endif
6fc6879b 1433OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
40a5e3bf
JM
1434
1435OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1436OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1437
6fc6879b
JM
1438OBJS += $(CONFIG_MAIN).o
1439
1440ifdef CONFIG_PRIVSEP
d1f9c410 1441OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
6fc6879b
JM
1442OBJS_priv += $(OBJS_l2)
1443OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1444OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1445OBJS_priv += ../src/utils/common.o
1446OBJS_priv += ../src/utils/wpa_debug.o
716d543d 1447OBJS_priv += ../src/utils/wpabuf.o
6fc6879b 1448OBJS_priv += wpa_priv.o
8d263912
JM
1449ifdef CONFIG_DRIVER_NL80211
1450OBJS_priv += ../src/common/ieee802_11_common.o
1451endif
6fc6879b 1452ifdef CONFIG_DRIVER_TEST
928a50a3 1453OBJS_priv += $(SHA1OBJS)
ad01a531 1454OBJS_priv += $(MD5OBJS)
6fc6879b
JM
1455ifeq ($(CONFIG_TLS), openssl)
1456OBJS_priv += ../src/crypto/crypto_openssl.o
1457endif
1458ifeq ($(CONFIG_TLS), gnutls)
1459OBJS_priv += ../src/crypto/crypto_gnutls.o
1460endif
289ffc2b
JM
1461ifeq ($(CONFIG_TLS), nss)
1462OBJS_priv += ../src/crypto/crypto_nss.o
1463endif
6fc6879b
JM
1464ifeq ($(CONFIG_TLS), internal)
1465ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1466OBJS_priv += ../src/crypto/crypto_libtomcrypt.o
1467else
1468OBJS_priv += ../src/crypto/crypto_internal.o
1469endif
1470endif
1471endif # CONFIG_DRIVER_TEST
1472OBJS += ../src/l2_packet/l2_packet_privsep.o
1473OBJS += ../src/drivers/driver_privsep.o
1474EXTRA_progs += wpa_priv
1475else
1476OBJS += $(OBJS_d) ../src/drivers/drivers.o
1477OBJS += $(OBJS_l2)
1478endif
1479
1480ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1481CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1482OBJS += ../src/drivers/ndis_events.o
1483EXTRALIBS += -loleaut32 -lole32 -luuid
1484ifdef PLATFORMSDKLIB
1485EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1486else
1487EXTRALIBS += WbemUuid.Lib
1488endif
1489endif
1490
1491ifndef LDO
1492LDO=$(CC)
1493endif
1494
586bad51
JM
1495Q=@
1496E=echo
1497ifeq ($(V), 1)
1498Q=
1499E=true
1500endif
1501
6fc6879b
JM
1502dynamic_eap_methods: $(EAPDYN)
1503
ba30964b 1504../src/drivers/build.wpa_supplicant:
5008cb5e 1505 @if [ -f ../src/drivers/build.hostapd ]; then \
ba30964b
JM
1506 $(MAKE) -C ../src/drivers clean; \
1507 fi
1508 @touch ../src/drivers/build.wpa_supplicant
1509
1510BCHECK=../src/drivers/build.wpa_supplicant
1511
1512wpa_priv: $(BCHECK) $(OBJS_priv)
586bad51
JM
1513 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1514 @$(E) " LD " $@
6fc6879b 1515
8205c82a
AD
1516$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1517
1518wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
586bad51
JM
1519 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1520 @$(E) " LD " $@
6fc6879b 1521
8205c82a 1522eapol_test: $(OBJS_t)
586bad51
JM
1523 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1524 @$(E) " LD " $@
6fc6879b 1525
8205c82a 1526preauth_test: $(OBJS_t2)
586bad51
JM
1527 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1528 @$(E) " LD " $@
6fc6879b
JM
1529
1530wpa_passphrase: $(OBJS_p)
586bad51
JM
1531 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1532 @$(E) " LD " $@
6fc6879b
JM
1533
1534wpa_cli: $(OBJS_c)
586bad51
JM
1535 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1536 @$(E) " LD " $@
6fc6879b
JM
1537
1538link_test: $(OBJS) $(OBJS_h) tests/link_test.o
586bad51
JM
1539 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1540 @$(E) " LD " $@
6fc6879b
JM
1541
1542test_wpa: $(OBJS_wpa) $(OBJS_h)
586bad51
JM
1543 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1544 @$(E) " LD " $@
6fc6879b 1545
40a5e3bf
JM
1546nfc_pw_token: $(OBJS_nfc)
1547 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1548 @$(E) " LD " $@
1549
6fc6879b 1550win_if_list: win_if_list.c
586bad51
JM
1551 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1552 @$(E) " LD " $@
6fc6879b
JM
1553
1554eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
466940c5 1555 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
6fc6879b
JM
1556 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1557
1558eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
466940c5 1559 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
6fc6879b
JM
1560 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1561
1562eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
466940c5 1563 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
6fc6879b
JM
1564 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1565
ad08c363 1566eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
466940c5 1567 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
ad08c363
JM
1568 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1569
6fc6879b 1570eap_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
466940c5 1571 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
6fc6879b
JM
1572 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1573
1574%.so: %.c
466940c5 1575 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
4c2660c2 1576 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
6fc6879b 1577
b2840aaf
JB
1578%.o: %.c
1579 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1580 @$(E) " CC " $<
6fc6879b 1581
f0573c79
HG
1582%.service: %.service.in
1583 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1584
6897ce14
JM
1585%@.service: %.service.arg.in
1586 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1587
6fc6879b
JM
1588wpa_supplicant.exe: wpa_supplicant
1589 mv -f $< $@
1590wpa_cli.exe: wpa_cli
1591 mv -f $< $@
1592wpa_passphrase.exe: wpa_passphrase
1593 mv -f $< $@
1594win_if_list.exe: win_if_list
1595 mv -f $< $@
1596eapol_test.exe: eapol_test
1597 mv -f $< $@
1598
1599WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1600
1601windows-bin: $(WINALL)
1602 $(STRIP) $(WINALL)
1603
67a52064
JM
1604wpa_gui:
1605 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
6fc6879b
JM
1606
1607wpa_gui-qt4/Makefile:
1608 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1609
0b86f67a
JM
1610wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1611 lrelease wpa_gui-qt4/wpa_gui.pro
1612
1613wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
6fc6879b
JM
1614 $(MAKE) -C wpa_gui-qt4
1615
ad01a531 1616TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \
246157cb
JB
1617 ../src/utils/common.o ../src/utils/os_unix.o \
1618 ../src/utils/wpa_debug.o $(AESOBJS) \
6fc6879b
JM
1619 tests/test_eap_sim_common.o
1620test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
03da66bd 1621 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS)
6fc6879b
JM
1622 ./test-eap_sim_common
1623 rm test-eap_sim_common
1624
f8cf3ce6 1625tests: test-eap_sim_common
6fc6879b 1626
e0011918
JM
1627FIPSDIR=/usr/local/ssl/fips-2.0
1628FIPSLD=$(FIPSDIR)/bin/fipsld
1629fips:
1630 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1631
6fc6879b
JM
1632clean:
1633 $(MAKE) -C ../src clean
eb3b34ce 1634 $(MAKE) -C dbus clean
8055fb78 1635 rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
385f16c6 1636 rm -f wpa_priv
40a5e3bf 1637 rm -f nfc_pw_token
6fc6879b 1638
6fc6879b 1639-include $(OBJS:%.o=%.d)