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