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