]> git.ipfire.org Git - thirdparty/hostap.git/blame - wpa_supplicant/Makefile
WPS: Add support for NFC out-of-band mechanism
[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/
11
6fc6879b
JM
12CFLAGS += -I../src
13CFLAGS += -I../src/crypto
14CFLAGS += -I../src/utils
15CFLAGS += -I../src/common
16CFLAGS += -I../src/rsn_supp
17
18ALL=wpa_supplicant wpa_passphrase wpa_cli
19
20all: verify_config $(ALL) dynamic_eap_methods
21
22verify_config:
23 @if [ ! -r .config ]; then \
24 echo 'Building wpa_supplicant requires a configuration file'; \
25 echo '(.config). See README for more instructions. You can'; \
26 echo 'run "cp defconfig .config" to create an example'; \
27 echo 'configuration.'; \
28 exit 1; \
29 fi
30
31mkconfig:
32 @if [ -e .config ]; then \
33 echo '.config exists - did not replace it'; \
34 exit 1; \
35 fi
36 echo CONFIG_DRIVER_HOSTAP=y >> .config
37 echo CONFIG_DRIVER_WEXT=y >> .config
38 echo CONFIG_WIRELESS_EXTENSION=y >> .config
39
40install: all
d94d4baf
DM
41 mkdir -p $(DESTDIR)$(BINDIR)
42 for i in $(ALL); do cp $$i $(DESTDIR)$(BINDIR)/$$i; done
43 $(MAKE) -C ../src install
6fc6879b
JM
44
45OBJS = config.o
46OBJS += ../src/utils/common.o
47OBJS += ../src/utils/wpa_debug.o
48OBJS += ../src/utils/wpabuf.o
49OBJS += ../src/crypto/md5.o
50OBJS += ../src/crypto/rc4.o
51OBJS += ../src/crypto/md4.o
52OBJS += ../src/crypto/sha1.o
53OBJS += ../src/crypto/des.o
54OBJS_p = wpa_passphrase.o
55OBJS_p += ../src/utils/common.o
56OBJS_p += ../src/utils/wpa_debug.o
57OBJS_p += ../src/crypto/md5.o
58OBJS_p += ../src/crypto/md4.o
59OBJS_p += ../src/crypto/sha1.o
60OBJS_p += ../src/crypto/des.o
61OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
62
63-include .config
64
65ifndef CONFIG_OS
66ifdef CONFIG_NATIVE_WINDOWS
67CONFIG_OS=win32
68else
69CONFIG_OS=unix
70endif
71endif
72
73ifeq ($(CONFIG_OS), internal)
74CFLAGS += -DOS_NO_C_LIB_DEFINES
75endif
76
77OBJS += ../src/utils/os_$(CONFIG_OS).o
78OBJS_p += ../src/utils/os_$(CONFIG_OS).o
79OBJS_c += ../src/utils/os_$(CONFIG_OS).o
80
81ifndef CONFIG_ELOOP
82CONFIG_ELOOP=eloop
83endif
84OBJS += ../src/utils/$(CONFIG_ELOOP).o
85
86
87ifdef CONFIG_EAPOL_TEST
88CFLAGS += -Werror -DEAPOL_TEST
89endif
90
91ifndef CONFIG_BACKEND
92CONFIG_BACKEND=file
93endif
94
95ifeq ($(CONFIG_BACKEND), file)
96OBJS += config_file.o
97ifndef CONFIG_NO_CONFIG_BLOBS
98NEED_BASE64=y
99endif
100CFLAGS += -DCONFIG_BACKEND_FILE
101endif
102
103ifeq ($(CONFIG_BACKEND), winreg)
104OBJS += config_winreg.o
105endif
106
107ifeq ($(CONFIG_BACKEND), none)
108OBJS += config_none.o
109endif
110
111ifdef CONFIG_NO_CONFIG_WRITE
112CFLAGS += -DCONFIG_NO_CONFIG_WRITE
113endif
114
115ifdef CONFIG_NO_CONFIG_BLOBS
116CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
117endif
118
119ifdef CONFIG_NO_SCAN_PROCESSING
120CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
121endif
122
123ifdef CONFIG_DRIVER_HOSTAP
124CFLAGS += -DCONFIG_DRIVER_HOSTAP
125OBJS_d += ../src/drivers/driver_hostap.o
126CONFIG_WIRELESS_EXTENSION=y
127endif
128
129ifdef CONFIG_DRIVER_WEXT
130CFLAGS += -DCONFIG_DRIVER_WEXT
131CONFIG_WIRELESS_EXTENSION=y
132endif
133
3f5285e8
JM
134ifdef CONFIG_DRIVER_NL80211
135CFLAGS += -DCONFIG_DRIVER_NL80211
136OBJS_d += ../src/drivers/driver_nl80211.o
137LIBS += -lnl
1c873584 138ifdef CONFIG_CLIENT_MLME
76e25921 139OBJS_d += ../src/utils/radiotap.o
1c873584 140endif
3f5285e8
JM
141endif
142
6fc6879b
JM
143ifdef CONFIG_DRIVER_PRISM54
144CFLAGS += -DCONFIG_DRIVER_PRISM54
145OBJS_d += ../src/drivers/driver_prism54.o
146CONFIG_WIRELESS_EXTENSION=y
147endif
148
149ifdef CONFIG_DRIVER_HERMES
150CFLAGS += -DCONFIG_DRIVER_HERMES
151OBJS_d += ../src/drivers/driver_hermes.o
152CONFIG_WIRELESS_EXTENSION=y
153endif
154
155ifdef CONFIG_DRIVER_MADWIFI
156CFLAGS += -DCONFIG_DRIVER_MADWIFI
157OBJS_d += ../src/drivers/driver_madwifi.o
158CONFIG_WIRELESS_EXTENSION=y
159endif
160
161ifdef CONFIG_DRIVER_ATMEL
162CFLAGS += -DCONFIG_DRIVER_ATMEL
163OBJS_d += ../src/drivers/driver_atmel.o
164CONFIG_WIRELESS_EXTENSION=y
165endif
166
167ifdef CONFIG_DRIVER_NDISWRAPPER
168CFLAGS += -DCONFIG_DRIVER_NDISWRAPPER
169OBJS_d += ../src/drivers/driver_ndiswrapper.o
170CONFIG_WIRELESS_EXTENSION=y
171endif
172
173ifdef CONFIG_DRIVER_RALINK
174CFLAGS += -DCONFIG_DRIVER_RALINK
175OBJS_d += ../src/drivers/driver_ralink.o
176endif
177
178ifdef CONFIG_DRIVER_BROADCOM
179CFLAGS += -DCONFIG_DRIVER_BROADCOM
180OBJS_d += ../src/drivers/driver_broadcom.o
181endif
182
183ifdef CONFIG_DRIVER_IPW
184CFLAGS += -DCONFIG_DRIVER_IPW
185OBJS_d += ../src/drivers/driver_ipw.o
186CONFIG_WIRELESS_EXTENSION=y
187endif
188
189ifdef CONFIG_DRIVER_BSD
190CFLAGS += -DCONFIG_DRIVER_BSD
191OBJS_d += ../src/drivers/driver_bsd.o
192ifndef CONFIG_L2_PACKET
193CONFIG_L2_PACKET=freebsd
194endif
195endif
196
197ifdef CONFIG_DRIVER_NDIS
198CFLAGS += -DCONFIG_DRIVER_NDIS
6724f4d0
JM
199OBJS_d += ../src/drivers/driver_ndis.o
200ifdef CONFIG_NDIS_EVENTS_INTEGRATED
201OBJS_d += ../src/drivers/driver_ndis_.o
202endif
6fc6879b
JM
203ifndef CONFIG_L2_PACKET
204CONFIG_L2_PACKET=pcap
205endif
206CONFIG_WINPCAP=y
207ifdef CONFIG_USE_NDISUIO
208CFLAGS += -DCONFIG_USE_NDISUIO
209endif
210endif
211
212ifdef CONFIG_DRIVER_WIRED
213CFLAGS += -DCONFIG_DRIVER_WIRED
214OBJS_d += ../src/drivers/driver_wired.o
215endif
216
217ifdef CONFIG_DRIVER_TEST
218CFLAGS += -DCONFIG_DRIVER_TEST
219OBJS_d += ../src/drivers/driver_test.o
220endif
221
222ifdef CONFIG_DRIVER_OSX
223CFLAGS += -DCONFIG_DRIVER_OSX
224OBJS_d += ../src/drivers/driver_osx.o
225LDFLAGS += -framework CoreFoundation
226LDFLAGS += -F/System/Library/PrivateFrameworks -framework Apple80211
227endif
228
b5a357b4
MM
229ifdef CONFIG_DRIVER_PS3
230CFLAGS += -DCONFIG_DRIVER_PS3 -m64
231OBJS_d += ../src/drivers/driver_ps3.o
232LDFLAGS += -m64
233endif
234
6fc6879b
JM
235ifdef CONFIG_DRIVER_IPHONE
236CFLAGS += -DCONFIG_DRIVER_IPHONE
237OBJS_d += ../src/drivers/driver_iphone.o
238OBJS_d += ../src/drivers/MobileApple80211.o
239LIBS += -framework CoreFoundation
240endif
241
e519314e
JW
242ifdef CONFIG_DRIVER_ROBOSWITCH
243CFLAGS += -DCONFIG_DRIVER_ROBOSWITCH
244OBJS_d += ../src/drivers/driver_roboswitch.o
245endif
246
6fc6879b
JM
247ifndef CONFIG_L2_PACKET
248CONFIG_L2_PACKET=linux
249endif
250
251OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
252
253ifeq ($(CONFIG_L2_PACKET), pcap)
254ifdef CONFIG_WINPCAP
255CFLAGS += -DCONFIG_WINPCAP
256LIBS += -lwpcap -lpacket
257LIBS_w += -lwpcap
258else
259LIBS += -ldnet -lpcap
260endif
261endif
262
263ifeq ($(CONFIG_L2_PACKET), winpcap)
264LIBS += -lwpcap -lpacket
265LIBS_w += -lwpcap
266endif
267
268ifeq ($(CONFIG_L2_PACKET), freebsd)
269LIBS += -lpcap
270endif
271
272ifdef CONFIG_EAP_TLS
273# EAP-TLS
274ifeq ($(CONFIG_EAP_TLS), dyn)
275CFLAGS += -DEAP_TLS_DYNAMIC
276EAPDYN += ../src/eap_peer/eap_tls.so
277else
278CFLAGS += -DEAP_TLS
279OBJS += ../src/eap_peer/eap_tls.o
280OBJS_h += ../src/eap_server/eap_tls.o
281endif
282TLS_FUNCS=y
283CONFIG_IEEE8021X_EAPOL=y
284endif
285
286ifdef CONFIG_EAP_PEAP
287# EAP-PEAP
288ifeq ($(CONFIG_EAP_PEAP), dyn)
289CFLAGS += -DEAP_PEAP_DYNAMIC
290EAPDYN += ../src/eap_peer/eap_peap.so
291else
292CFLAGS += -DEAP_PEAP
293OBJS += ../src/eap_peer/eap_peap.o
2eeaa5c9 294OBJS += ../src/eap_common/eap_peap_common.o
6fc6879b
JM
295OBJS_h += ../src/eap_server/eap_peap.o
296endif
297TLS_FUNCS=y
298CONFIG_IEEE8021X_EAPOL=y
6fc6879b
JM
299endif
300
301ifdef CONFIG_EAP_TTLS
302# EAP-TTLS
303ifeq ($(CONFIG_EAP_TTLS), dyn)
304CFLAGS += -DEAP_TTLS_DYNAMIC
305EAPDYN += ../src/eap_peer/eap_ttls.so
306else
307CFLAGS += -DEAP_TTLS
308OBJS += ../src/eap_peer/eap_ttls.o
309OBJS_h += ../src/eap_server/eap_ttls.o
310endif
311MS_FUNCS=y
312TLS_FUNCS=y
313CHAP=y
314CONFIG_IEEE8021X_EAPOL=y
315endif
316
317ifdef CONFIG_EAP_MD5
318# EAP-MD5
319ifeq ($(CONFIG_EAP_MD5), dyn)
320CFLAGS += -DEAP_MD5_DYNAMIC
321EAPDYN += ../src/eap_peer/eap_md5.so
322else
323CFLAGS += -DEAP_MD5
324OBJS += ../src/eap_peer/eap_md5.o
325OBJS_h += ../src/eap_server/eap_md5.o
326endif
327CHAP=y
328CONFIG_IEEE8021X_EAPOL=y
329endif
330
331# backwards compatibility for old spelling
332ifdef CONFIG_MSCHAPV2
333ifndef CONFIG_EAP_MSCHAPV2
334CONFIG_EAP_MSCHAPV2=y
335endif
336endif
337
338ifdef CONFIG_EAP_MSCHAPV2
339# EAP-MSCHAPv2
340ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
341CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
342EAPDYN += ../src/eap_peer/eap_mschapv2.so
343EAPDYN += ../src/eap_peer/mschapv2.so
344else
345CFLAGS += -DEAP_MSCHAPv2
346OBJS += ../src/eap_peer/eap_mschapv2.o
347OBJS += ../src/eap_peer/mschapv2.o
348OBJS_h += ../src/eap_server/eap_mschapv2.o
349endif
350MS_FUNCS=y
351CONFIG_IEEE8021X_EAPOL=y
352endif
353
354ifdef CONFIG_EAP_GTC
355# EAP-GTC
356ifeq ($(CONFIG_EAP_GTC), dyn)
357CFLAGS += -DEAP_GTC_DYNAMIC
358EAPDYN += ../src/eap_peer/eap_gtc.so
359else
360CFLAGS += -DEAP_GTC
361OBJS += ../src/eap_peer/eap_gtc.o
362OBJS_h += ../src/eap_server/eap_gtc.o
363endif
364CONFIG_IEEE8021X_EAPOL=y
365endif
366
367ifdef CONFIG_EAP_OTP
368# EAP-OTP
369ifeq ($(CONFIG_EAP_OTP), dyn)
370CFLAGS += -DEAP_OTP_DYNAMIC
371EAPDYN += ../src/eap_peer/eap_otp.so
372else
373CFLAGS += -DEAP_OTP
374OBJS += ../src/eap_peer/eap_otp.o
375endif
376CONFIG_IEEE8021X_EAPOL=y
377endif
378
379ifdef CONFIG_EAP_SIM
380# EAP-SIM
381ifeq ($(CONFIG_EAP_SIM), dyn)
382CFLAGS += -DEAP_SIM_DYNAMIC
383EAPDYN += ../src/eap_peer/eap_sim.so
384else
385CFLAGS += -DEAP_SIM
386OBJS += ../src/eap_peer/eap_sim.o
387OBJS_h += ../src/eap_server/eap_sim.o
388endif
389CONFIG_IEEE8021X_EAPOL=y
390CONFIG_EAP_SIM_COMMON=y
391endif
392
393ifdef CONFIG_EAP_LEAP
394# EAP-LEAP
395ifeq ($(CONFIG_EAP_LEAP), dyn)
396CFLAGS += -DEAP_LEAP_DYNAMIC
397EAPDYN += ../src/eap_peer/eap_leap.so
398else
399CFLAGS += -DEAP_LEAP
400OBJS += ../src/eap_peer/eap_leap.o
401endif
402MS_FUNCS=y
403CONFIG_IEEE8021X_EAPOL=y
404endif
405
406ifdef CONFIG_EAP_PSK
407# EAP-PSK
408ifeq ($(CONFIG_EAP_PSK), dyn)
409CFLAGS += -DEAP_PSK_DYNAMIC
410EAPDYN += ../src/eap_peer/eap_psk.so
411else
412CFLAGS += -DEAP_PSK
413OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
414OBJS_h += ../src/eap_server/eap_psk.o
415endif
416CONFIG_IEEE8021X_EAPOL=y
417NEED_AES=y
418endif
419
420ifdef CONFIG_EAP_AKA
421# EAP-AKA
422ifeq ($(CONFIG_EAP_AKA), dyn)
423CFLAGS += -DEAP_AKA_DYNAMIC
424EAPDYN += ../src/eap_peer/eap_aka.so
425else
426CFLAGS += -DEAP_AKA
427OBJS += ../src/eap_peer/eap_aka.o
428OBJS_h += ../src/eap_server/eap_aka.o
429endif
430CONFIG_IEEE8021X_EAPOL=y
431CONFIG_EAP_SIM_COMMON=y
432endif
433
8c37556c
JM
434ifdef CONFIG_EAP_AKA_PRIME
435# EAP-AKA'
436ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
437CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
8c37556c
JM
438else
439CFLAGS += -DEAP_AKA_PRIME
8c37556c 440endif
1edb9533 441NEED_SHA256=y
8c37556c
JM
442endif
443
6fc6879b
JM
444ifdef CONFIG_EAP_SIM_COMMON
445OBJS += ../src/eap_common/eap_sim_common.o
446OBJS_h += ../src/eap_server/eap_sim_db.o
447NEED_AES=y
448NEED_FIPS186_2_PRF=y
449endif
450
6fc6879b
JM
451ifdef CONFIG_EAP_FAST
452# EAP-FAST
453ifeq ($(CONFIG_EAP_FAST), dyn)
454CFLAGS += -DEAP_FAST_DYNAMIC
455EAPDYN += ../src/eap_peer/eap_fast.so
a4819630 456EAPDYN += ../src/eap_common/eap_fast_common.o
6fc6879b
JM
457else
458CFLAGS += -DEAP_FAST
459OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
a4819630 460OBJS += ../src/eap_common/eap_fast_common.o
6fc6879b
JM
461OBJS_h += ../src/eap_server/eap_fast.o
462endif
463TLS_FUNCS=y
464NEED_T_PRF=y
465endif
466
467ifdef CONFIG_EAP_PAX
468# EAP-PAX
469ifeq ($(CONFIG_EAP_PAX), dyn)
470CFLAGS += -DEAP_PAX_DYNAMIC
471EAPDYN += ../src/eap_peer/eap_pax.so
472else
473CFLAGS += -DEAP_PAX
474OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
475OBJS_h += ../src/eap_server/eap_pax.o
476endif
477CONFIG_IEEE8021X_EAPOL=y
478endif
479
480ifdef CONFIG_EAP_SAKE
481# EAP-SAKE
482ifeq ($(CONFIG_EAP_SAKE), dyn)
483CFLAGS += -DEAP_SAKE_DYNAMIC
484EAPDYN += ../src/eap_peer/eap_sake.so
485else
486CFLAGS += -DEAP_SAKE
487OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
488OBJS_h += ../src/eap_server/eap_sake.o
489endif
490CONFIG_IEEE8021X_EAPOL=y
491endif
492
493ifdef CONFIG_EAP_GPSK
494# EAP-GPSK
495ifeq ($(CONFIG_EAP_GPSK), dyn)
496CFLAGS += -DEAP_GPSK_DYNAMIC
497EAPDYN += ../src/eap_peer/eap_gpsk.so
498else
499CFLAGS += -DEAP_GPSK
500OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
501OBJS_h += ../src/eap_server/eap_gpsk.o
502endif
503CONFIG_IEEE8021X_EAPOL=y
504ifdef CONFIG_EAP_GPSK_SHA256
505CFLAGS += -DEAP_GPSK_SHA256
506endif
507NEED_SHA256=y
508endif
509
ad08c363
JM
510ifdef CONFIG_WPS
511# EAP-WSC
ad08c363 512CFLAGS += -DCONFIG_WPS -DEAP_WSC
fa201b69 513OBJS += wps_supplicant.o
ad08c363
JM
514OBJS += ../src/utils/uuid.o
515OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
516OBJS += ../src/wps/wps.o
517OBJS += ../src/wps/wps_common.o
7d7b8e96
JM
518OBJS += ../src/wps/wps_attr_parse.o
519OBJS += ../src/wps/wps_attr_build.o
520OBJS += ../src/wps/wps_attr_process.o
ad08c363
JM
521OBJS += ../src/wps/wps_dev_attr.o
522OBJS += ../src/wps/wps_enrollee.o
523OBJS += ../src/wps/wps_registrar.o
524OBJS_h += ../src/eap_server/eap_wsc.o
ad08c363
JM
525CONFIG_IEEE8021X_EAPOL=y
526NEED_DH_GROUPS=y
1edb9533 527NEED_SHA256=y
d9f56262 528NEED_BASE64=y
049a292f 529NEED_CRYPTO=y
e1c7954d 530
390cd310
JM
531ifdef CONFIG_WPS_UFD
532CFLAGS += -DCONFIG_WPS_UFD
533OBJS += ../src/wps/wps_ufd.o
116f7bb0
JM
534NEED_WPS_OOB=y
535endif
536
e1ee6b60
MH
537ifdef CONFIG_WPS_NFC
538CFLAGS += -DCONFIG_WPS_NFC
539OBJS += ../src/wps/ndef.o
540OBJS += ../src/wps/wps_nfc.o
541NEED_WPS_OOB=y
542ifdef CONFIG_WPS_NFC_PN531
543PN531_PATH = /usr/local/src/nfc
544CFLAGS += -DCONFIG_WPS_NFC_PN531
545CFLAGS += -I${PN531_PATH}/inc
546OBJS += ../src/wps/wps_nfc_pn531.o
547LIBS += ${PN531_PATH}/lib/wpsnfc.dll
548LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll
549endif
550endif
551
116f7bb0
JM
552ifdef NEED_WPS_OOB
553CFLAGS += -DCONFIG_WPS_OOB
390cd310
JM
554endif
555
e1c7954d
JM
556ifdef CONFIG_WPS_UPNP
557CFLAGS += -DCONFIG_WPS_UPNP
558OBJS += ../src/wps/wps_upnp.o
559OBJS += ../src/wps/wps_upnp_ssdp.o
560OBJS += ../src/wps/wps_upnp_web.o
561OBJS += ../src/wps/wps_upnp_event.o
562OBJS += ../src/wps/httpread.o
563endif
564
ad08c363
JM
565endif
566
6fc6879b
JM
567ifdef CONFIG_EAP_IKEV2
568# EAP-IKEv2
569ifeq ($(CONFIG_EAP_IKEV2), dyn)
570CFLAGS += -DEAP_IKEV2_DYNAMIC
571EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
572EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
573else
574CFLAGS += -DEAP_IKEV2
575OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
576OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
577OBJS_h += ../src/eap_server/eap_ikev2.o
578OBJS_h += ../src/eap_server/ikev2.o
579endif
580CONFIG_IEEE8021X_EAPOL=y
581NEED_DH_GROUPS=y
582endif
583
584ifdef CONFIG_EAP_VENDOR_TEST
585ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
586CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
587EAPDYN += ../src/eap_peer/eap_vendor_test.so
588else
589CFLAGS += -DEAP_VENDOR_TEST
590OBJS += ../src/eap_peer/eap_vendor_test.o
591OBJS_h += ../src/eap_server/eap_vendor_test.o
592endif
593CONFIG_IEEE8021X_EAPOL=y
594endif
595
596ifdef CONFIG_EAP_TNC
597# EAP-TNC
598CFLAGS += -DEAP_TNC
599OBJS += ../src/eap_peer/eap_tnc.o
600OBJS += ../src/eap_peer/tncc.o
93ea8ed0
JM
601OBJS_h += ../src/eap_server/eap_tnc.o
602OBJS_h += ../src/eap_server/tncs.o
6fc6879b 603NEED_BASE64=y
53c256a4 604ifndef CONFIG_NATIVE_WINDOWS
b77eab28 605LIBS += -ldl
6fc6879b 606endif
53c256a4 607endif
6fc6879b
JM
608
609ifdef CONFIG_IEEE8021X_EAPOL
610# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
611CFLAGS += -DIEEE8021X_EAPOL
612OBJS += ../src/eapol_supp/eapol_supp_sm.o ../src/eap_peer/eap.o ../src/eap_common/eap_common.o ../src/eap_peer/eap_methods.o
613ifdef CONFIG_DYNAMIC_EAP_METHODS
614CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
615LIBS += -ldl -rdynamic
616endif
617endif
618
619ifdef CONFIG_EAP_SERVER
620CFLAGS += -DEAP_SERVER
621OBJS_h += ../src/eap_server/eap.o
622OBJS_h += ../src/eap_server/eap_identity.o
623OBJS_h += ../src/eap_server/eap_methods.o
624endif
625
626ifdef CONFIG_RADIUS_CLIENT
627OBJS_h += ../src/utils/ip_addr.o
628OBJS_h += ../src/radius/radius.o
629OBJS_h += ../src/radius/radius_client.o
630endif
631
632ifdef CONFIG_AUTHENTICATOR
633OBJS_h += ../hostapd/eapol_sm.o
634OBJS_h += ../hostapd/ieee802_1x.o
635endif
636
637ifdef CONFIG_WPA_AUTHENTICATOR
638OBJS_h += ../hostapd/wpa.o
639OBJS_h += ../hostapd/wpa_auth_ie.o
640ifdef CONFIG_IEEE80211R
641OBJS_h += ../hostapd/wpa_ft.o
642endif
643ifdef CONFIG_PEERKEY
644OBJS_h += ../hostapd/peerkey.o
645endif
646endif
647
648ifdef CONFIG_PCSC
649# PC/SC interface for smartcards (USIM, GSM SIM)
650CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
651OBJS += ../src/utils/pcsc_funcs.o
652# -lpthread may not be needed depending on how pcsc-lite was configured
653ifdef CONFIG_NATIVE_WINDOWS
654#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
655#dynamic symbol loading that is now used in pcsc_funcs.c
656#LIBS += -lwinscard
657else
658LIBS += -lpcsclite -lpthread
659endif
660endif
661
81eec387
JM
662ifdef CONFIG_SIM_SIMULATOR
663CFLAGS += -DCONFIG_SIM_SIMULATOR
664NEED_MILENAGE=y
665endif
666
2a24bb31
JM
667ifdef CONFIG_USIM_SIMULATOR
668CFLAGS += -DCONFIG_USIM_SIMULATOR
81eec387
JM
669NEED_MILENAGE=y
670endif
671
672ifdef NEED_MILENAGE
2a24bb31
JM
673OBJS += ../src/hlr_auc_gw/milenage.o
674endif
675
6fc6879b
JM
676ifndef CONFIG_TLS
677CONFIG_TLS=openssl
678endif
679
680ifeq ($(CONFIG_TLS), internal)
681ifndef CONFIG_CRYPTO
682CONFIG_CRYPTO=internal
683endif
684endif
685ifeq ($(CONFIG_CRYPTO), libtomcrypt)
686CFLAGS += -DCONFIG_INTERNAL_X509
687endif
688ifeq ($(CONFIG_CRYPTO), internal)
689CFLAGS += -DCONFIG_INTERNAL_X509
690endif
691
692
693ifdef TLS_FUNCS
694# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
695CFLAGS += -DEAP_TLS_FUNCS
696OBJS += ../src/eap_peer/eap_tls_common.o
697OBJS_h += ../src/eap_server/eap_tls_common.o
698NEED_TLS_PRF=y
699ifeq ($(CONFIG_TLS), openssl)
700CFLAGS += -DEAP_TLS_OPENSSL
701OBJS += ../src/crypto/tls_openssl.o
702LIBS += -lssl -lcrypto
703LIBS_p += -lcrypto
704endif
705ifeq ($(CONFIG_TLS), gnutls)
706OBJS += ../src/crypto/tls_gnutls.o
707LIBS += -lgnutls -lgcrypt -lgpg-error
708LIBS_p += -lgcrypt
709ifdef CONFIG_GNUTLS_EXTRA
710CFLAGS += -DCONFIG_GNUTLS_EXTRA
711LIBS += -lgnutls-extra
712endif
713endif
714ifeq ($(CONFIG_TLS), schannel)
715OBJS += ../src/crypto/tls_schannel.o
716endif
717ifeq ($(CONFIG_TLS), internal)
718OBJS += ../src/crypto/tls_internal.o
719OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o
720OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_client.o
721OBJS += ../src/tls/tlsv1_client_write.o ../src/tls/tlsv1_client_read.o
049a292f
JM
722OBJS += ../src/tls/asn1.o ../src/tls/rsa.o ../src/tls/x509v3.o
723OBJS_p += ../src/tls/asn1.o ../src/tls/rsa.o
6fc6879b
JM
724OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o
725NEED_BASE64=y
726NEED_TLS_PRF=y
727CFLAGS += -DCONFIG_TLS_INTERNAL
728CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
729ifeq ($(CONFIG_CRYPTO), internal)
6fc6879b
JM
730endif
731ifeq ($(CONFIG_CRYPTO), libtomcrypt)
732LIBS += -ltomcrypt -ltfm
733LIBS_p += -ltomcrypt -ltfm
734endif
735endif
736ifeq ($(CONFIG_TLS), none)
737OBJS += ../src/crypto/tls_none.o
738CFLAGS += -DEAP_TLS_NONE
739CONFIG_INTERNAL_AES=y
740CONFIG_INTERNAL_SHA1=y
741CONFIG_INTERNAL_MD5=y
742CONFIG_INTERNAL_SHA256=y
743endif
744ifdef CONFIG_SMARTCARD
745ifndef CONFIG_NATIVE_WINDOWS
746ifneq ($(CONFIG_L2_PACKET), freebsd)
747LIBS += -ldl
748endif
749endif
750endif
751NEED_CRYPTO=y
752else
753OBJS += ../src/crypto/tls_none.o
754endif
755
756ifdef CONFIG_PKCS12
757CFLAGS += -DPKCS12_FUNCS
758endif
759
760ifdef CONFIG_SMARTCARD
761CFLAGS += -DCONFIG_SMARTCARD
762endif
763
764ifdef MS_FUNCS
765OBJS += ../src/crypto/ms_funcs.o
766NEED_CRYPTO=y
767endif
768
769ifdef CHAP
770OBJS += ../src/eap_common/chap.o
771endif
772
773ifdef NEED_CRYPTO
774ifndef TLS_FUNCS
775ifeq ($(CONFIG_TLS), openssl)
776LIBS += -lcrypto
777LIBS_p += -lcrypto
778endif
779ifeq ($(CONFIG_TLS), gnutls)
780LIBS += -lgcrypt
781LIBS_p += -lgcrypt
782endif
783ifeq ($(CONFIG_TLS), schannel)
784endif
785ifeq ($(CONFIG_TLS), internal)
786ifeq ($(CONFIG_CRYPTO), libtomcrypt)
787LIBS += -ltomcrypt -ltfm
788LIBS_p += -ltomcrypt -ltfm
789endif
790endif
791endif
792ifeq ($(CONFIG_TLS), openssl)
793OBJS += ../src/crypto/crypto_openssl.o
794OBJS_p += ../src/crypto/crypto_openssl.o
795CONFIG_INTERNAL_SHA256=y
796endif
797ifeq ($(CONFIG_TLS), gnutls)
798OBJS += ../src/crypto/crypto_gnutls.o
799OBJS_p += ../src/crypto/crypto_gnutls.o
800CONFIG_INTERNAL_SHA256=y
801endif
802ifeq ($(CONFIG_TLS), schannel)
803OBJS += ../src/crypto/crypto_cryptoapi.o
804OBJS_p += ../src/crypto/crypto_cryptoapi.o
805CONFIG_INTERNAL_SHA256=y
806endif
807ifeq ($(CONFIG_TLS), internal)
808ifeq ($(CONFIG_CRYPTO), libtomcrypt)
809OBJS += ../src/crypto/crypto_libtomcrypt.o
810OBJS_p += ../src/crypto/crypto_libtomcrypt.o
811CONFIG_INTERNAL_SHA256=y
812endif
813ifeq ($(CONFIG_CRYPTO), internal)
049a292f
JM
814OBJS += ../src/crypto/crypto_internal.o ../src/tls/bignum.o
815OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/bignum.o
6fc6879b 816CFLAGS += -DCONFIG_CRYPTO_INTERNAL
049a292f
JM
817ifdef CONFIG_INTERNAL_LIBTOMMATH
818CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
819ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
820CFLAGS += -DLTM_FAST
821endif
822else
823LIBS += -ltommath
824LIBS_p += -ltommath
825endif
6fc6879b
JM
826CONFIG_INTERNAL_AES=y
827CONFIG_INTERNAL_DES=y
828CONFIG_INTERNAL_SHA1=y
829CONFIG_INTERNAL_MD4=y
830CONFIG_INTERNAL_MD5=y
831CONFIG_INTERNAL_SHA256=y
832endif
833ifeq ($(CONFIG_CRYPTO), cryptoapi)
834OBJS += ../src/crypto/crypto_cryptoapi.o
835OBJS_p += ../src/crypto/crypto_cryptoapi.o
836CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
837CONFIG_INTERNAL_SHA256=y
838endif
839endif
840ifeq ($(CONFIG_TLS), none)
841OBJS += ../src/crypto/crypto_none.o
842OBJS_p += ../src/crypto/crypto_none.o
843CONFIG_INTERNAL_SHA256=y
844endif
845else
846CONFIG_INTERNAL_AES=y
847CONFIG_INTERNAL_SHA1=y
848CONFIG_INTERNAL_MD5=y
849endif
850
851ifdef CONFIG_INTERNAL_AES
852CFLAGS += -DINTERNAL_AES
853endif
854ifdef CONFIG_INTERNAL_SHA1
855CFLAGS += -DINTERNAL_SHA1
856endif
857ifdef CONFIG_INTERNAL_SHA256
858CFLAGS += -DINTERNAL_SHA256
859endif
860ifdef CONFIG_INTERNAL_MD5
861CFLAGS += -DINTERNAL_MD5
862endif
863ifdef CONFIG_INTERNAL_MD4
864CFLAGS += -DINTERNAL_MD4
865endif
866ifdef CONFIG_INTERNAL_DES
867CFLAGS += -DINTERNAL_DES
868endif
869
870ifdef CONFIG_IEEE80211R
871NEED_SHA256=y
872endif
873
1d8ce433
JM
874ifdef CONFIG_IEEE80211W
875CFLAGS += -DCONFIG_IEEE80211W
876NEED_SHA256=y
877endif
878
6fc6879b
JM
879ifdef NEED_SHA256
880OBJS += ../src/crypto/sha256.o
1d8ce433 881CFLAGS += -DNEED_SHA256
6fc6879b
JM
882endif
883
884ifdef CONFIG_WIRELESS_EXTENSION
885CFLAGS += -DCONFIG_WIRELESS_EXTENSION
886OBJS_d += ../src/drivers/driver_wext.o
887endif
888
889ifdef CONFIG_CTRL_IFACE
890ifeq ($(CONFIG_CTRL_IFACE), y)
891ifdef CONFIG_NATIVE_WINDOWS
892CONFIG_CTRL_IFACE=named_pipe
893else
894CONFIG_CTRL_IFACE=unix
895endif
896endif
897CFLAGS += -DCONFIG_CTRL_IFACE
898ifeq ($(CONFIG_CTRL_IFACE), unix)
899CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
900endif
901ifeq ($(CONFIG_CTRL_IFACE), udp)
902CFLAGS += -DCONFIG_CTRL_IFACE_UDP
903endif
904ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
905CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
906endif
907OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
908endif
909
910ifdef CONFIG_CTRL_IFACE_DBUS
911CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
912OBJS += ctrl_iface_dbus.o ctrl_iface_dbus_handlers.o dbus_dict_helpers.o
913ifndef DBUS_LIBS
914DBUS_LIBS := $(shell pkg-config --libs dbus-1)
915endif
916LIBS += $(DBUS_LIBS)
917ifndef DBUS_INCLUDE
918DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1)
919endif
920dbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1))
921DBUS_VERSION_MAJOR=$(word 1,$(dbus_version))
922DBUS_VERSION_MINOR=$(word 2,$(dbus_version))
923ifeq ($(DBUS_VERSION_MAJOR),)
924DBUS_VERSION_MAJOR=0
925endif
926ifeq ($(DBUS_VERSION_MINOR),)
927DBUS_VERSION_MINOR=0
928endif
929DBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR)
930DBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR)
931CFLAGS += $(DBUS_INCLUDE)
932endif
933
934ifdef CONFIG_READLINE
935CFLAGS += -DCONFIG_READLINE
936LIBS_c += -lncurses -lreadline
937endif
938
939ifdef CONFIG_NATIVE_WINDOWS
940CFLAGS += -DCONFIG_NATIVE_WINDOWS
941LIBS += -lws2_32 -lgdi32 -lcrypt32
942LIBS_c += -lws2_32
943LIBS_p += -lws2_32 -lgdi32
944ifeq ($(CONFIG_CRYPTO), cryptoapi)
945LIBS_p += -lcrypt32
946endif
947endif
948
949ifdef CONFIG_NO_STDOUT_DEBUG
950CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
951ifndef CONFIG_CTRL_IFACE
952CFLAGS += -DCONFIG_NO_WPA_MSG
953endif
954endif
955
956ifdef CONFIG_IPV6
957# for eapol_test only
958CFLAGS += -DCONFIG_IPV6
959endif
960
961ifdef CONFIG_PEERKEY
962CFLAGS += -DCONFIG_PEERKEY
963endif
964
6fc6879b
JM
965ifdef CONFIG_IEEE80211R
966CFLAGS += -DCONFIG_IEEE80211R
967OBJS += ../src/rsn_supp/wpa_ft.o
968endif
969
970ifndef CONFIG_NO_WPA
971OBJS += ../src/rsn_supp/wpa.o
972OBJS += ../src/rsn_supp/preauth.o
973OBJS += ../src/rsn_supp/pmksa_cache.o
974OBJS += ../src/rsn_supp/peerkey.o
975OBJS += ../src/rsn_supp/wpa_ie.o
976OBJS += ../src/common/wpa_common.o
977NEED_AES=y
978else
979CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2
980endif
981
11ef8d35
JM
982ifdef CONFIG_IBSS_RSN
983CFLAGS += -DCONFIG_IBSS_RSN
984OBJS += ibss_rsn.o
985OBJS += ../hostapd/wpa.o
986OBJS += ../hostapd/wpa_auth_ie.o
987OBJS += ../hostapd/pmksa_cache.o
988OBJS += ../src/radius/radius.o
989ifdef CONFIG_IEEE80211R
990OBJS += ../hostapd/wpa_ft.o
991endif
992ifdef CONFIG_PEERKEY
993OBJS += ../hostapd/peerkey.o
994endif
995endif
996
6fc6879b
JM
997ifdef CONFIG_NO_WPA2
998CFLAGS += -DCONFIG_NO_WPA2
999endif
1000
1001ifdef CONFIG_NO_WPA_PASSPHRASE
1002CFLAGS += -DCONFIG_NO_PBKDF2
1003endif
1004
1005ifdef CONFIG_NO_AES_EXTRAS
1006CFLAGS += -DCONFIG_NO_AES_WRAP
1007CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1
1008CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC
1009CFLAGS += -DCONFIG_NO_AES_ENCRYPT
1010CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK
1011endif
1012
1013ifdef NEED_AES
1014OBJS += ../src/crypto/aes_wrap.o ../src/crypto/aes.o
1015endif
1016
1017ifdef NEED_DH_GROUPS
1018OBJS += ../src/crypto/dh_groups.o
1019endif
1020
1021ifndef NEED_FIPS186_2_PRF
1022CFLAGS += -DCONFIG_NO_FIPS186_2_PRF
1023endif
1024
1025ifndef NEED_T_PRF
1026CFLAGS += -DCONFIG_NO_T_PRF
1027endif
1028
1029ifndef NEED_TLS_PRF
1030CFLAGS += -DCONFIG_NO_TLS_PRF
1031endif
1032
1033ifdef NEED_BASE64
1034OBJS += ../src/utils/base64.o
1035endif
1036
1037ifdef CONFIG_CLIENT_MLME
1add3c33 1038OBJS += mlme.o ../src/common/ieee802_11_common.o
6fc6879b
JM
1039CFLAGS += -DCONFIG_CLIENT_MLME
1040endif
1041
1042ifndef CONFIG_MAIN
1043CONFIG_MAIN=main
1044endif
1045
1046ifdef CONFIG_DEBUG_FILE
1047CFLAGS += -DCONFIG_DEBUG_FILE
1048endif
1049
46690a3b
JM
1050ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1051CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1052endif
1053
6fc6879b
JM
1054OBJS += ../src/drivers/scan_helpers.o
1055
1056OBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o
1057OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1058ifdef CONFIG_AUTHENTICATOR
1059OBJS_wpa += tests/link_test.o
1060endif
1061OBJS_wpa += $(OBJS_l2)
1062OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
a7baefda
JM
1063OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o ../src/radius/radius_client.o
1064ifndef CONFIG_IBSS_RSN
1065OBJS_t += ../src/radius/radius.o
1066endif
6fc6879b
JM
1067OBJS_t += ../src/utils/ip_addr.o
1068OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
1069OBJS += $(CONFIG_MAIN).o
1070
1071ifdef CONFIG_PRIVSEP
1072OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o ../src/drivers/scan_helpers.o
1073OBJS_priv += $(OBJS_l2)
1074OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1075OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1076OBJS_priv += ../src/utils/common.o
1077OBJS_priv += ../src/utils/wpa_debug.o
716d543d 1078OBJS_priv += ../src/utils/wpabuf.o
6fc6879b
JM
1079OBJS_priv += wpa_priv.o
1080ifdef CONFIG_DRIVER_TEST
1081OBJS_priv += ../src/crypto/sha1.o
1082OBJS_priv += ../src/crypto/md5.o
1083ifeq ($(CONFIG_TLS), openssl)
1084OBJS_priv += ../src/crypto/crypto_openssl.o
1085endif
1086ifeq ($(CONFIG_TLS), gnutls)
1087OBJS_priv += ../src/crypto/crypto_gnutls.o
1088endif
1089ifeq ($(CONFIG_TLS), internal)
1090ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1091OBJS_priv += ../src/crypto/crypto_libtomcrypt.o
1092else
1093OBJS_priv += ../src/crypto/crypto_internal.o
1094endif
1095endif
1096endif # CONFIG_DRIVER_TEST
1097OBJS += ../src/l2_packet/l2_packet_privsep.o
1098OBJS += ../src/drivers/driver_privsep.o
1099EXTRA_progs += wpa_priv
1100else
1101OBJS += $(OBJS_d) ../src/drivers/drivers.o
1102OBJS += $(OBJS_l2)
1103endif
1104
1105ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1106CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1107OBJS += ../src/drivers/ndis_events.o
1108EXTRALIBS += -loleaut32 -lole32 -luuid
1109ifdef PLATFORMSDKLIB
1110EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1111else
1112EXTRALIBS += WbemUuid.Lib
1113endif
1114endif
1115
1116ifndef LDO
1117LDO=$(CC)
1118endif
1119
1120dynamic_eap_methods: $(EAPDYN)
1121
1122wpa_priv: $(OBJS_priv)
1123 $(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1124
1125wpa_supplicant: .config $(OBJS) $(EXTRA_progs)
1126 $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1127
1128eapol_test: .config $(OBJS_t)
1129 $(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1130
1131preauth_test: .config $(OBJS_t2)
1132 $(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1133
1134wpa_passphrase: $(OBJS_p)
1135 $(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1136
1137wpa_cli: $(OBJS_c)
1138 $(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1139
1140link_test: $(OBJS) $(OBJS_h) tests/link_test.o
1141 $(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1142
1143test_wpa: $(OBJS_wpa) $(OBJS_h)
1144 $(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1145
1146OBJSa=../src/tls/asn1_test.o ../src/tls/asn1.o ../src/tls/x509v3.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \
1147 ../src/crypto/crypto_$(CONFIG_CRYPTO).o ../src/crypto/md5.o ../src/crypto/sha1.o \
1148 ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \
1149 ../src/crypto/aes.o ../src/tls/bignum.o ../src/tls/rsa.o
1150asn1_test: $(OBJSa)
1151 $(LDO) $(LDFLAGS) -o asn1_test $(OBJSa)
1152
1153OBJSx=tests/test_x509v3.o ../src/tls/asn1.o ../src/tls/x509v3.o \
1154 ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \
1155 ../src/crypto/crypto_$(CONFIG_CRYPTO).o \
1156 ../src/crypto/md5.o ../src/crypto/sha1.o ../src/crypto/aes.o \
1157 ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \
1d8ce433 1158 ../src/crypto/sha256.o \
6fc6879b
JM
1159 ../src/tls/bignum.o ../src/tls/rsa.o
1160test_x509v3: $(OBJSx)
1161 $(LDO) $(LDFLAGS) -o test_x509v3 $(OBJSx)
1162
1163win_if_list: win_if_list.c
1164 $(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1165
1166eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1167 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1168 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1169
1170eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1171 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1172 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1173
1174eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1175 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1176 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1177
ad08c363
JM
1178eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1179 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1180 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1181
6fc6879b
JM
1182eap_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
1183 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1184 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1185
1186%.so: %.c
1187 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
4c2660c2 1188 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
6fc6879b
JM
1189
1190
1191wpa_supplicant.exe: wpa_supplicant
1192 mv -f $< $@
1193wpa_cli.exe: wpa_cli
1194 mv -f $< $@
1195wpa_passphrase.exe: wpa_passphrase
1196 mv -f $< $@
1197win_if_list.exe: win_if_list
1198 mv -f $< $@
1199eapol_test.exe: eapol_test
1200 mv -f $< $@
1201
1202WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1203
1204windows-bin: $(WINALL)
1205 $(STRIP) $(WINALL)
1206
1207wpa_gui/Makefile:
1208 qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro
1209
1210wpa_gui: wpa_gui/Makefile
1211 $(MAKE) -C wpa_gui
1212
1213wpa_gui-qt4/Makefile:
1214 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1215
1216wpa_gui-qt4: wpa_gui-qt4/Makefile
1217 $(MAKE) -C wpa_gui-qt4
1218
1219TEST_MS_FUNCS_OBJS = ../src/crypto/crypto_openssl.o ../src/crypto/sha1.o ../src/crypto/md5.o \
1220 ../src/utils/os_unix.o ../src/crypto/rc4.o tests/test_ms_funcs.o
1221test-ms_funcs: $(TEST_MS_FUNCS_OBJS)
1222 $(LDO) $(LDFLAGS) -o $@ $(TEST_MS_FUNCS_OBJS) $(LIBS) -lcrypto
1223 ./test-ms_funcs
1224 rm test-ms_funcs
1225
1226TEST_SHA1_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o tests/test_sha1.o #../src/crypto/crypto_openssl.o
1227test-sha1: $(TEST_SHA1_OBJS)
1228 $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA1_OBJS) $(LIBS)
1229 ./test-sha1
1230 rm test-sha1
1231
4225097c 1232TEST_SHA256_OBJS = ../src/crypto/sha256.o ../src/crypto/md5.o tests/test_sha256.o ../src/utils/os_unix.o ../src/crypto/crypto_openssl.o
6fc6879b
JM
1233test-sha256: $(TEST_SHA256_OBJS)
1234 $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA256_OBJS) $(LIBS)
1235 ./test-sha256
1236 rm test-sha256
1237
1238TEST_AES_OBJS = ../src/crypto/aes_wrap.o ../src/crypto/aes.o tests/test_aes.o
1239test-aes: $(TEST_AES_OBJS)
1240 $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS)
1241 ./test-aes
1242 rm test-aes
1243
1244TEST_EAP_SIM_COMMON_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o \
1245 ../src/crypto/aes_wrap.o ../src/utils/common.o ../src/utils/os_unix.o \
1246 ../src/utils/wpa_debug.o ../src/crypto/aes.o \
1247 tests/test_eap_sim_common.o
1248test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
1249 $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS)
1250 ./test-eap_sim_common
1251 rm test-eap_sim_common
1252
1253TEST_MD4_OBJS = ../src/crypto/md4.o tests/test_md4.o #../src/crypto/crypto_openssl.o
1254test-md4: $(TEST_MD4_OBJS)
1255 $(LDO) $(LDFLAGS) -o $@ $(TEST_MD4_OBJS) $(LIBS)
1256 ./test-md4
1257 rm test-md4
1258
1259TEST_MD5_OBJS = ../src/crypto/md5.o tests/test_md5.o #../src/crypto/crypto_openssl.o
1260test-md5: $(TEST_MD5_OBJS)
1261 $(LDO) $(LDFLAGS) -o $@ $(TEST_MD5_OBJS) $(LIBS)
1262 ./test-md5
1263 rm test-md5
1264
1265tests: test-ms_funcs test-sha1 test-aes test-eap_sim_common test-md4 test-md5
1266
1267clean:
1268 $(MAKE) -C ../src clean
1269 rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL)
1270
1271%.eps: %.fig
1272 fig2dev -L eps $*.fig $*.eps
1273
1274%.png: %.fig
1275 fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \
1276 > $*.png
1277
1278docs-pics: doc/wpa_supplicant.png doc/wpa_supplicant.eps
1279
1280docs: docs-pics
1281 (cd ..; doxygen wpa_supplicant/doc/doxygen.full; cd wpa_supplicant)
1282 $(MAKE) -C doc/latex
1283 cp doc/latex/refman.pdf wpa_supplicant-devel.pdf
1284
1285docs-fast: docs-pics
875f6d7b 1286 (cd ..; doxygen wpa_supplicant/doc/doxygen.fast; cd wpa_supplicant)
6fc6879b
JM
1287
1288clean-docs:
1289 rm -rf doc/latex doc/html
1290 rm -f doc/wpa_supplicant.{eps,png} wpa_supplicant-devel.pdf
1291
6fc6879b 1292-include $(OBJS:%.o=%.d)