blob: d1e11a3ee051a351cd75867769c2899d3ecb253b [file] [log] [blame]
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001ifndef CC
2CC=gcc
3endif
4
5ifndef CFLAGS
6CFLAGS = -MMD -O2 -Wall -g
7endif
8
9export LIBDIR ?= /usr/local/lib/
10export BINDIR ?= /usr/local/sbin/
Dmitry Shmidtc55524a2011-07-07 11:18:38 -070011PKG_CONFIG ?= pkg-config
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070012
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080013CFLAGS += -I$(abspath ../src)
14CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070015
Jouni Malinen75ecf522011-06-27 15:19:46 -070016-include .config
17
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080018ifdef CONFIG_TESTING_OPTIONS
19CFLAGS += -DCONFIG_TESTING_OPTIONS
20CONFIG_WPS_TESTING=y
21CONFIG_TDLS_TESTING=y
22endif
23
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080024BINALL=wpa_supplicant wpa_cli
Jouni Malinen75ecf522011-06-27 15:19:46 -070025
26ifndef CONFIG_NO_WPA_PASSPHRASE
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080027BINALL += wpa_passphrase
Jouni Malinen75ecf522011-06-27 15:19:46 -070028endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070029
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080030ALL = $(BINALL)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080031ALL += systemd/wpa_supplicant.service
32ALL += systemd/wpa_supplicant@.service
33ALL += systemd/wpa_supplicant-nl80211@.service
34ALL += systemd/wpa_supplicant-wired@.service
35ALL += dbus/fi.epitest.hostap.WPASupplicant.service
36ALL += dbus/fi.w1.wpa_supplicant1.service
37
38
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070039all: verify_config $(ALL) dynamic_eap_methods
40
41verify_config:
42 @if [ ! -r .config ]; then \
43 echo 'Building wpa_supplicant requires a configuration file'; \
44 echo '(.config). See README for more instructions. You can'; \
45 echo 'run "cp defconfig .config" to create an example'; \
46 echo 'configuration.'; \
47 exit 1; \
48 fi
49
50mkconfig:
51 @if [ -f .config ]; then \
52 echo '.config exists - did not replace it'; \
53 exit 1; \
54 fi
55 echo CONFIG_DRIVER_HOSTAP=y >> .config
56 echo CONFIG_DRIVER_WEXT=y >> .config
57
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080058$(DESTDIR)$(BINDIR)/%: %
59 install -D $(<) $(@)
60
61install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070062 $(MAKE) -C ../src install
63
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070064ifdef CONFIG_FIPS
65CONFIG_NO_RANDOM_POOL=
66CONFIG_OPENSSL_CMAC=y
67endif
68
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070069OBJS = config.o
70OBJS += notify.o
71OBJS += bss.o
72OBJS += eap_register.o
73OBJS += ../src/utils/common.o
74OBJS += ../src/utils/wpa_debug.o
75OBJS += ../src/utils/wpabuf.o
76OBJS_p = wpa_passphrase.o
77OBJS_p += ../src/utils/common.o
78OBJS_p += ../src/utils/wpa_debug.o
79OBJS_p += ../src/utils/wpabuf.o
80OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
81OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080082OBJS_c += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070083
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070084ifndef CONFIG_OS
85ifdef CONFIG_NATIVE_WINDOWS
86CONFIG_OS=win32
87else
88CONFIG_OS=unix
89endif
90endif
91
92ifeq ($(CONFIG_OS), internal)
93CFLAGS += -DOS_NO_C_LIB_DEFINES
94endif
95
96OBJS += ../src/utils/os_$(CONFIG_OS).o
97OBJS_p += ../src/utils/os_$(CONFIG_OS).o
98OBJS_c += ../src/utils/os_$(CONFIG_OS).o
99
100ifdef CONFIG_WPA_TRACE
101CFLAGS += -DWPA_TRACE
102OBJS += ../src/utils/trace.o
103OBJS_p += ../src/utils/trace.o
104OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800105OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700106LDFLAGS += -rdynamic
107CFLAGS += -funwind-tables
108ifdef CONFIG_WPA_TRACE_BFD
109CFLAGS += -DWPA_TRACE_BFD
110LIBS += -lbfd
111LIBS_p += -lbfd
112LIBS_c += -lbfd
113endif
114endif
115
116ifndef CONFIG_ELOOP
117CONFIG_ELOOP=eloop
118endif
119OBJS += ../src/utils/$(CONFIG_ELOOP).o
120OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
121
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800122ifeq ($(CONFIG_ELOOP), eloop)
123# Using glibc < 2.17 requires -lrt for clock_gettime()
124LIBS += -lrt
125LIBS_c += -lrt
126LIBS_p += -lrt
127endif
128
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800129ifdef CONFIG_ELOOP_POLL
130CFLAGS += -DCONFIG_ELOOP_POLL
131endif
132
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700133
134ifdef CONFIG_EAPOL_TEST
135CFLAGS += -Werror -DEAPOL_TEST
136endif
137
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800138ifdef CONFIG_CODE_COVERAGE
139CFLAGS += -O0 -fprofile-arcs -ftest-coverage
140LIBS += -lgcov
141LIBS_c += -lgcov
142LIBS_p += -lgcov
143endif
144
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800145ifdef CONFIG_HT_OVERRIDES
146CFLAGS += -DCONFIG_HT_OVERRIDES
147endif
148
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700149ifdef CONFIG_VHT_OVERRIDES
150CFLAGS += -DCONFIG_VHT_OVERRIDES
151endif
152
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700153ifndef CONFIG_BACKEND
154CONFIG_BACKEND=file
155endif
156
157ifeq ($(CONFIG_BACKEND), file)
158OBJS += config_file.o
159ifndef CONFIG_NO_CONFIG_BLOBS
160NEED_BASE64=y
161endif
162CFLAGS += -DCONFIG_BACKEND_FILE
163endif
164
165ifeq ($(CONFIG_BACKEND), winreg)
166OBJS += config_winreg.o
167endif
168
169ifeq ($(CONFIG_BACKEND), none)
170OBJS += config_none.o
171endif
172
173ifdef CONFIG_NO_CONFIG_WRITE
174CFLAGS += -DCONFIG_NO_CONFIG_WRITE
175endif
176
177ifdef CONFIG_NO_CONFIG_BLOBS
178CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
179endif
180
181ifdef CONFIG_NO_SCAN_PROCESSING
182CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
183endif
184
185ifdef CONFIG_IEEE80211W
186CFLAGS += -DCONFIG_IEEE80211W
187NEED_SHA256=y
188NEED_AES_OMAC1=y
189endif
190
191ifdef CONFIG_IEEE80211R
192CFLAGS += -DCONFIG_IEEE80211R
193OBJS += ../src/rsn_supp/wpa_ft.o
194NEED_80211_COMMON=y
195NEED_SHA256=y
196NEED_AES_OMAC1=y
197endif
198
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800199ifdef CONFIG_SAE
200CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800201OBJS += ../src/common/sae.o
202NEED_ECC=y
203NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800204endif
205
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800206ifdef CONFIG_WNM
207CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700208OBJS += wnm_sta.o
209endif
210
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700211ifdef CONFIG_TDLS
212CFLAGS += -DCONFIG_TDLS
213OBJS += ../src/rsn_supp/tdls.o
214NEED_SHA256=y
215NEED_AES_OMAC1=y
216endif
217
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800218ifdef CONFIG_TDLS_TESTING
219CFLAGS += -DCONFIG_TDLS_TESTING
220endif
221
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700222ifdef CONFIG_PEERKEY
223CFLAGS += -DCONFIG_PEERKEY
224endif
225
226ifndef CONFIG_NO_WPA
227OBJS += ../src/rsn_supp/wpa.o
228OBJS += ../src/rsn_supp/preauth.o
229OBJS += ../src/rsn_supp/pmksa_cache.o
230OBJS += ../src/rsn_supp/peerkey.o
231OBJS += ../src/rsn_supp/wpa_ie.o
232OBJS += ../src/common/wpa_common.o
233NEED_AES=y
234NEED_SHA1=y
235NEED_MD5=y
236NEED_RC4=y
237else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700238CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700239endif
240
241ifdef CONFIG_IBSS_RSN
242NEED_RSN_AUTHENTICATOR=y
243CFLAGS += -DCONFIG_IBSS_RSN
244OBJS += ibss_rsn.o
245endif
246
247ifdef CONFIG_P2P
248OBJS += p2p_supplicant.o
249OBJS += ../src/p2p/p2p.o
250OBJS += ../src/p2p/p2p_utils.o
251OBJS += ../src/p2p/p2p_parse.o
252OBJS += ../src/p2p/p2p_build.o
253OBJS += ../src/p2p/p2p_go_neg.o
254OBJS += ../src/p2p/p2p_sd.o
255OBJS += ../src/p2p/p2p_pd.o
256OBJS += ../src/p2p/p2p_invitation.o
257OBJS += ../src/p2p/p2p_dev_disc.o
258OBJS += ../src/p2p/p2p_group.o
259OBJS += ../src/ap/p2p_hostapd.o
Dmitry Shmidtcf32e602014-01-28 10:57:39 -0800260OBJS += ../src/utils/bitfield.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700261CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800262NEED_GAS=y
263NEED_OFFCHANNEL=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700264NEED_80211_COMMON=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800265CONFIG_WPS=y
266CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700267ifdef CONFIG_P2P_STRICT
268CFLAGS += -DCONFIG_P2P_STRICT
269endif
270endif
271
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700272ifdef CONFIG_WIFI_DISPLAY
273CFLAGS += -DCONFIG_WIFI_DISPLAY
274OBJS += wifi_display.o
275endif
276
Dmitry Shmidt04949592012-07-19 12:16:46 -0700277ifdef CONFIG_HS20
278OBJS += hs20_supplicant.o
279CFLAGS += -DCONFIG_HS20
280CONFIG_INTERWORKING=y
281endif
282
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800283ifdef CONFIG_INTERWORKING
284OBJS += interworking.o
285CFLAGS += -DCONFIG_INTERWORKING
286NEED_GAS=y
287endif
288
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700289include ../src/drivers/drivers.mak
290ifdef CONFIG_AP
291OBJS_d += $(DRV_BOTH_OBJS)
292CFLAGS += $(DRV_BOTH_CFLAGS)
293LDFLAGS += $(DRV_BOTH_LDFLAGS)
294LIBS += $(DRV_BOTH_LIBS)
295else
296NEED_AP_MLME=
297OBJS_d += $(DRV_WPA_OBJS)
298CFLAGS += $(DRV_WPA_CFLAGS)
299LDFLAGS += $(DRV_WPA_LDFLAGS)
300LIBS += $(DRV_WPA_LIBS)
301endif
302
303ifndef CONFIG_L2_PACKET
304CONFIG_L2_PACKET=linux
305endif
306
307OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
308
309ifeq ($(CONFIG_L2_PACKET), pcap)
310ifdef CONFIG_WINPCAP
311CFLAGS += -DCONFIG_WINPCAP
312LIBS += -lwpcap -lpacket
313LIBS_w += -lwpcap
314else
315LIBS += -ldnet -lpcap
316endif
317endif
318
319ifeq ($(CONFIG_L2_PACKET), winpcap)
320LIBS += -lwpcap -lpacket
321LIBS_w += -lwpcap
322endif
323
324ifeq ($(CONFIG_L2_PACKET), freebsd)
325LIBS += -lpcap
326endif
327
328ifdef CONFIG_EAP_TLS
329# EAP-TLS
330ifeq ($(CONFIG_EAP_TLS), dyn)
331CFLAGS += -DEAP_TLS_DYNAMIC
332EAPDYN += ../src/eap_peer/eap_tls.so
333else
334CFLAGS += -DEAP_TLS
335OBJS += ../src/eap_peer/eap_tls.o
336OBJS_h += ../src/eap_server/eap_server_tls.o
337endif
338TLS_FUNCS=y
339CONFIG_IEEE8021X_EAPOL=y
340endif
341
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700342ifdef CONFIG_EAP_UNAUTH_TLS
343# EAP-UNAUTH-TLS
344CFLAGS += -DEAP_UNAUTH_TLS
345ifndef CONFIG_EAP_UNAUTH_TLS
346OBJS += ../src/eap_peer/eap_tls.o
347OBJS_h += ../src/eap_server/eap_server_tls.o
348TLS_FUNCS=y
349endif
350CONFIG_IEEE8021X_EAPOL=y
351endif
352
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700353ifdef CONFIG_EAP_PEAP
354# EAP-PEAP
355ifeq ($(CONFIG_EAP_PEAP), dyn)
356CFLAGS += -DEAP_PEAP_DYNAMIC
357EAPDYN += ../src/eap_peer/eap_peap.so
358else
359CFLAGS += -DEAP_PEAP
360OBJS += ../src/eap_peer/eap_peap.o
361OBJS += ../src/eap_common/eap_peap_common.o
362OBJS_h += ../src/eap_server/eap_server_peap.o
363endif
364TLS_FUNCS=y
365CONFIG_IEEE8021X_EAPOL=y
366endif
367
368ifdef CONFIG_EAP_TTLS
369# EAP-TTLS
370ifeq ($(CONFIG_EAP_TTLS), dyn)
371CFLAGS += -DEAP_TTLS_DYNAMIC
372EAPDYN += ../src/eap_peer/eap_ttls.so
373else
374CFLAGS += -DEAP_TTLS
375OBJS += ../src/eap_peer/eap_ttls.o
376OBJS_h += ../src/eap_server/eap_server_ttls.o
377endif
378MS_FUNCS=y
379TLS_FUNCS=y
380CHAP=y
381CONFIG_IEEE8021X_EAPOL=y
382endif
383
384ifdef CONFIG_EAP_MD5
385# EAP-MD5
386ifeq ($(CONFIG_EAP_MD5), dyn)
387CFLAGS += -DEAP_MD5_DYNAMIC
388EAPDYN += ../src/eap_peer/eap_md5.so
389else
390CFLAGS += -DEAP_MD5
391OBJS += ../src/eap_peer/eap_md5.o
392OBJS_h += ../src/eap_server/eap_server_md5.o
393endif
394CHAP=y
395CONFIG_IEEE8021X_EAPOL=y
396endif
397
398# backwards compatibility for old spelling
399ifdef CONFIG_MSCHAPV2
400ifndef CONFIG_EAP_MSCHAPV2
401CONFIG_EAP_MSCHAPV2=y
402endif
403endif
404
405ifdef CONFIG_EAP_MSCHAPV2
406# EAP-MSCHAPv2
407ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
408CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
409EAPDYN += ../src/eap_peer/eap_mschapv2.so
410EAPDYN += ../src/eap_peer/mschapv2.so
411else
412CFLAGS += -DEAP_MSCHAPv2
413OBJS += ../src/eap_peer/eap_mschapv2.o
414OBJS += ../src/eap_peer/mschapv2.o
415OBJS_h += ../src/eap_server/eap_server_mschapv2.o
416endif
417MS_FUNCS=y
418CONFIG_IEEE8021X_EAPOL=y
419endif
420
421ifdef CONFIG_EAP_GTC
422# EAP-GTC
423ifeq ($(CONFIG_EAP_GTC), dyn)
424CFLAGS += -DEAP_GTC_DYNAMIC
425EAPDYN += ../src/eap_peer/eap_gtc.so
426else
427CFLAGS += -DEAP_GTC
428OBJS += ../src/eap_peer/eap_gtc.o
429OBJS_h += ../src/eap_server/eap_server_gtc.o
430endif
431CONFIG_IEEE8021X_EAPOL=y
432endif
433
434ifdef CONFIG_EAP_OTP
435# EAP-OTP
436ifeq ($(CONFIG_EAP_OTP), dyn)
437CFLAGS += -DEAP_OTP_DYNAMIC
438EAPDYN += ../src/eap_peer/eap_otp.so
439else
440CFLAGS += -DEAP_OTP
441OBJS += ../src/eap_peer/eap_otp.o
442endif
443CONFIG_IEEE8021X_EAPOL=y
444endif
445
446ifdef CONFIG_EAP_SIM
447# EAP-SIM
448ifeq ($(CONFIG_EAP_SIM), dyn)
449CFLAGS += -DEAP_SIM_DYNAMIC
450EAPDYN += ../src/eap_peer/eap_sim.so
451else
452CFLAGS += -DEAP_SIM
453OBJS += ../src/eap_peer/eap_sim.o
454OBJS_h += ../src/eap_server/eap_server_sim.o
455endif
456CONFIG_IEEE8021X_EAPOL=y
457CONFIG_EAP_SIM_COMMON=y
458NEED_AES_CBC=y
459endif
460
461ifdef CONFIG_EAP_LEAP
462# EAP-LEAP
463ifeq ($(CONFIG_EAP_LEAP), dyn)
464CFLAGS += -DEAP_LEAP_DYNAMIC
465EAPDYN += ../src/eap_peer/eap_leap.so
466else
467CFLAGS += -DEAP_LEAP
468OBJS += ../src/eap_peer/eap_leap.o
469endif
470MS_FUNCS=y
471CONFIG_IEEE8021X_EAPOL=y
472endif
473
474ifdef CONFIG_EAP_PSK
475# EAP-PSK
476ifeq ($(CONFIG_EAP_PSK), dyn)
477CFLAGS += -DEAP_PSK_DYNAMIC
478EAPDYN += ../src/eap_peer/eap_psk.so
479else
480CFLAGS += -DEAP_PSK
481OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
482OBJS_h += ../src/eap_server/eap_server_psk.o
483endif
484CONFIG_IEEE8021X_EAPOL=y
485NEED_AES=y
486NEED_AES_OMAC1=y
487NEED_AES_ENCBLOCK=y
488NEED_AES_EAX=y
489endif
490
491ifdef CONFIG_EAP_AKA
492# EAP-AKA
493ifeq ($(CONFIG_EAP_AKA), dyn)
494CFLAGS += -DEAP_AKA_DYNAMIC
495EAPDYN += ../src/eap_peer/eap_aka.so
496else
497CFLAGS += -DEAP_AKA
498OBJS += ../src/eap_peer/eap_aka.o
499OBJS_h += ../src/eap_server/eap_server_aka.o
500endif
501CONFIG_IEEE8021X_EAPOL=y
502CONFIG_EAP_SIM_COMMON=y
503NEED_AES_CBC=y
504endif
505
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800506ifdef CONFIG_EAP_PROXY
507CFLAGS += -DCONFIG_EAP_PROXY
508OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
509include eap_proxy_$(CONFIG_EAP_PROXY).mk
510CONFIG_IEEE8021X_EAPOL=y
511endif
512
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700513ifdef CONFIG_EAP_AKA_PRIME
514# EAP-AKA'
515ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
516CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
517else
518CFLAGS += -DEAP_AKA_PRIME
519endif
520NEED_SHA256=y
521endif
522
523ifdef CONFIG_EAP_SIM_COMMON
524OBJS += ../src/eap_common/eap_sim_common.o
525OBJS_h += ../src/eap_server/eap_sim_db.o
526NEED_AES=y
527NEED_FIPS186_2_PRF=y
528endif
529
530ifdef CONFIG_EAP_FAST
531# EAP-FAST
532ifeq ($(CONFIG_EAP_FAST), dyn)
533CFLAGS += -DEAP_FAST_DYNAMIC
534EAPDYN += ../src/eap_peer/eap_fast.so
535EAPDYN += ../src/eap_common/eap_fast_common.o
536else
537CFLAGS += -DEAP_FAST
538OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
539OBJS += ../src/eap_common/eap_fast_common.o
540OBJS_h += ../src/eap_server/eap_server_fast.o
541endif
542TLS_FUNCS=y
543CONFIG_IEEE8021X_EAPOL=y
544NEED_T_PRF=y
545endif
546
547ifdef CONFIG_EAP_PAX
548# EAP-PAX
549ifeq ($(CONFIG_EAP_PAX), dyn)
550CFLAGS += -DEAP_PAX_DYNAMIC
551EAPDYN += ../src/eap_peer/eap_pax.so
552else
553CFLAGS += -DEAP_PAX
554OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
555OBJS_h += ../src/eap_server/eap_server_pax.o
556endif
557CONFIG_IEEE8021X_EAPOL=y
558endif
559
560ifdef CONFIG_EAP_SAKE
561# EAP-SAKE
562ifeq ($(CONFIG_EAP_SAKE), dyn)
563CFLAGS += -DEAP_SAKE_DYNAMIC
564EAPDYN += ../src/eap_peer/eap_sake.so
565else
566CFLAGS += -DEAP_SAKE
567OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
568OBJS_h += ../src/eap_server/eap_server_sake.o
569endif
570CONFIG_IEEE8021X_EAPOL=y
571endif
572
573ifdef CONFIG_EAP_GPSK
574# EAP-GPSK
575ifeq ($(CONFIG_EAP_GPSK), dyn)
576CFLAGS += -DEAP_GPSK_DYNAMIC
577EAPDYN += ../src/eap_peer/eap_gpsk.so
578else
579CFLAGS += -DEAP_GPSK
580OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
581OBJS_h += ../src/eap_server/eap_server_gpsk.o
582endif
583CONFIG_IEEE8021X_EAPOL=y
584ifdef CONFIG_EAP_GPSK_SHA256
585CFLAGS += -DEAP_GPSK_SHA256
586endif
587NEED_SHA256=y
588NEED_AES_OMAC1=y
589endif
590
591ifdef CONFIG_EAP_PWD
592CFLAGS += -DEAP_PWD
593OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800594OBJS_h += ../src/eap_server/eap_server_pwd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700595CONFIG_IEEE8021X_EAPOL=y
596NEED_SHA256=y
597endif
598
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700599ifdef CONFIG_EAP_EKE
600# EAP-EKE
601ifeq ($(CONFIG_EAP_EKE), dyn)
602CFLAGS += -DEAP_EKE_DYNAMIC
603EAPDYN += ../src/eap_peer/eap_eke.so
604else
605CFLAGS += -DEAP_EKE
606OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
607OBJS_h += ../src/eap_server/eap_server_eke.o
608endif
609CONFIG_IEEE8021X_EAPOL=y
610NEED_DH_GROUPS=y
611NEED_DH_GROUPS_ALL=y
612NEED_SHA256=y
613endif
614
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700615ifdef CONFIG_WPS
616ifdef CONFIG_WPS2
617CFLAGS += -DCONFIG_WPS2
618endif
619
620# EAP-WSC
621CFLAGS += -DCONFIG_WPS -DEAP_WSC
622OBJS += wps_supplicant.o
623OBJS += ../src/utils/uuid.o
624OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
625OBJS += ../src/wps/wps.o
626OBJS += ../src/wps/wps_common.o
627OBJS += ../src/wps/wps_attr_parse.o
628OBJS += ../src/wps/wps_attr_build.o
629OBJS += ../src/wps/wps_attr_process.o
630OBJS += ../src/wps/wps_dev_attr.o
631OBJS += ../src/wps/wps_enrollee.o
632OBJS += ../src/wps/wps_registrar.o
633OBJS_h += ../src/eap_server/eap_server_wsc.o
634CONFIG_IEEE8021X_EAPOL=y
635NEED_DH_GROUPS=y
636NEED_SHA256=y
637NEED_BASE64=y
638NEED_80211_COMMON=y
639NEED_AES_CBC=y
640NEED_MODEXP=y
641
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700642ifdef CONFIG_WPS_NFC
643CFLAGS += -DCONFIG_WPS_NFC
644OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700645NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700646endif
647
648ifdef NEED_WPS_OOB
649CFLAGS += -DCONFIG_WPS_OOB
650endif
651
652ifdef CONFIG_WPS_ER
653CONFIG_WPS_UPNP=y
654CFLAGS += -DCONFIG_WPS_ER
655OBJS += ../src/wps/wps_er.o
656OBJS += ../src/wps/wps_er_ssdp.o
657endif
658
659ifdef CONFIG_WPS_UPNP
660CFLAGS += -DCONFIG_WPS_UPNP
661OBJS += ../src/wps/wps_upnp.o
662OBJS += ../src/wps/wps_upnp_ssdp.o
663OBJS += ../src/wps/wps_upnp_web.o
664OBJS += ../src/wps/wps_upnp_event.o
665OBJS += ../src/wps/wps_upnp_ap.o
666OBJS += ../src/wps/upnp_xml.o
667OBJS += ../src/wps/httpread.o
668OBJS += ../src/wps/http_client.o
669OBJS += ../src/wps/http_server.o
670endif
671
672ifdef CONFIG_WPS_STRICT
673CFLAGS += -DCONFIG_WPS_STRICT
674OBJS += ../src/wps/wps_validate.o
675endif
676
677ifdef CONFIG_WPS_TESTING
678CFLAGS += -DCONFIG_WPS_TESTING
679endif
680
681ifdef CONFIG_WPS_REG_DISABLE_OPEN
682CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
683endif
684
685endif
686
687ifdef CONFIG_EAP_IKEV2
688# EAP-IKEv2
689ifeq ($(CONFIG_EAP_IKEV2), dyn)
690CFLAGS += -DEAP_IKEV2_DYNAMIC
691EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
692EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
693else
694CFLAGS += -DEAP_IKEV2
695OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
696OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
697OBJS_h += ../src/eap_server/eap_server_ikev2.o
698OBJS_h += ../src/eap_server/ikev2.o
699endif
700CONFIG_IEEE8021X_EAPOL=y
701NEED_DH_GROUPS=y
702NEED_DH_GROUPS_ALL=y
703NEED_MODEXP=y
704NEED_CIPHER=y
705endif
706
707ifdef CONFIG_EAP_VENDOR_TEST
708ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
709CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
710EAPDYN += ../src/eap_peer/eap_vendor_test.so
711else
712CFLAGS += -DEAP_VENDOR_TEST
713OBJS += ../src/eap_peer/eap_vendor_test.o
714OBJS_h += ../src/eap_server/eap_server_vendor_test.o
715endif
716CONFIG_IEEE8021X_EAPOL=y
717endif
718
719ifdef CONFIG_EAP_TNC
720# EAP-TNC
721CFLAGS += -DEAP_TNC
722OBJS += ../src/eap_peer/eap_tnc.o
723OBJS += ../src/eap_peer/tncc.o
724OBJS_h += ../src/eap_server/eap_server_tnc.o
725OBJS_h += ../src/eap_server/tncs.o
726NEED_BASE64=y
727ifndef CONFIG_NATIVE_WINDOWS
728ifndef CONFIG_DRIVER_BSD
729LIBS += -ldl
730endif
731endif
732endif
733
734ifdef CONFIG_IEEE8021X_EAPOL
735# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
736CFLAGS += -DIEEE8021X_EAPOL
737OBJS += ../src/eapol_supp/eapol_supp_sm.o
738OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
739NEED_EAP_COMMON=y
740ifdef CONFIG_DYNAMIC_EAP_METHODS
741CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
742LIBS += -ldl -rdynamic
743endif
744endif
745
746ifdef CONFIG_AP
747NEED_80211_COMMON=y
748NEED_EAP_COMMON=y
749NEED_RSN_AUTHENTICATOR=y
750CFLAGS += -DCONFIG_AP
751OBJS += ap.o
752CFLAGS += -DCONFIG_NO_RADIUS
753CFLAGS += -DCONFIG_NO_ACCOUNTING
754CFLAGS += -DCONFIG_NO_VLAN
755OBJS += ../src/ap/hostapd.o
756OBJS += ../src/ap/wpa_auth_glue.o
757OBJS += ../src/ap/utils.o
758OBJS += ../src/ap/authsrv.o
759OBJS += ../src/ap/ap_config.o
760OBJS += ../src/utils/ip_addr.o
761OBJS += ../src/ap/sta_info.o
762OBJS += ../src/ap/tkip_countermeasures.o
763OBJS += ../src/ap/ap_mlme.o
764OBJS += ../src/ap/ieee802_1x.o
765OBJS += ../src/eapol_auth/eapol_auth_sm.o
766OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800767OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700768OBJS += ../src/ap/drv_callbacks.o
769OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800770OBJS += ../src/ap/beacon.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800771OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700772ifdef CONFIG_IEEE80211N
773OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700774ifdef CONFIG_IEEE80211AC
775OBJS += ../src/ap/ieee802_11_vht.o
776endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700777endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800778ifdef CONFIG_WNM
779OBJS += ../src/ap/wnm_ap.o
780endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700781ifdef CONFIG_CTRL_IFACE
782OBJS += ../src/ap/ctrl_iface_ap.o
783endif
784
785CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
786OBJS += ../src/eap_server/eap_server.o
787OBJS += ../src/eap_server/eap_server_identity.o
788OBJS += ../src/eap_server/eap_server_methods.o
789
790ifdef CONFIG_IEEE80211N
791CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700792ifdef CONFIG_IEEE80211AC
793CFLAGS += -DCONFIG_IEEE80211AC
794endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700795endif
796
797ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700798OBJS += ../src/ap/wmm.o
799OBJS += ../src/ap/ap_list.o
800OBJS += ../src/ap/ieee802_11.o
801OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700802OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700803CFLAGS += -DNEED_AP_MLME
804endif
805ifdef CONFIG_WPS
806CFLAGS += -DEAP_SERVER_WSC
807OBJS += ../src/ap/wps_hostapd.o
808OBJS += ../src/eap_server/eap_server_wsc.o
809endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700810ifdef CONFIG_INTERWORKING
811OBJS += ../src/ap/gas_serv.o
812endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700813ifdef CONFIG_HS20
814OBJS += ../src/ap/hs20.o
815endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700816endif
817
818ifdef NEED_RSN_AUTHENTICATOR
819CFLAGS += -DCONFIG_NO_RADIUS
820NEED_AES_WRAP=y
821OBJS += ../src/ap/wpa_auth.o
822OBJS += ../src/ap/wpa_auth_ie.o
823OBJS += ../src/ap/pmksa_cache_auth.o
824ifdef CONFIG_IEEE80211R
825OBJS += ../src/ap/wpa_auth_ft.o
826endif
827ifdef CONFIG_PEERKEY
828OBJS += ../src/ap/peerkey_auth.o
829endif
830endif
831
832ifdef CONFIG_EAP_SERVER
833CFLAGS += -DEAP_SERVER
834OBJS_h += ../src/eap_server/eap_server.o
835OBJS_h += ../src/eap_server/eap_server_identity.o
836OBJS_h += ../src/eap_server/eap_server_methods.o
837endif
838
839ifdef CONFIG_RADIUS_CLIENT
840OBJS_h += ../src/utils/ip_addr.o
841OBJS_h += ../src/radius/radius.o
842OBJS_h += ../src/radius/radius_client.o
843endif
844
845ifdef CONFIG_AUTHENTICATOR
846OBJS_h += ../src/eapol_auth/eapol_auth_sm.o
847OBJS_h += ../src/ap/ieee802_1x.o
848endif
849
850ifdef CONFIG_WPA_AUTHENTICATOR
851OBJS_h += ../src/ap/wpa_auth.o
852OBJS_h += ../src/ap/wpa_auth_ie.o
853OBJS_h += ../src/ap/pmksa_cache_auth.o
854ifdef CONFIG_IEEE80211R
855OBJS_h += ../src/ap/wpa_auth_ft.o
856endif
857ifdef CONFIG_PEERKEY
858OBJS_h += ../src/ap/peerkey_auth.o
859endif
860endif
861
862ifdef CONFIG_PCSC
863# PC/SC interface for smartcards (USIM, GSM SIM)
864CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
865OBJS += ../src/utils/pcsc_funcs.o
866# -lpthread may not be needed depending on how pcsc-lite was configured
867ifdef CONFIG_NATIVE_WINDOWS
868#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
869#dynamic symbol loading that is now used in pcsc_funcs.c
870#LIBS += -lwinscard
871else
872LIBS += -lpcsclite -lpthread
873endif
874endif
875
876ifdef CONFIG_SIM_SIMULATOR
877CFLAGS += -DCONFIG_SIM_SIMULATOR
878NEED_MILENAGE=y
879endif
880
881ifdef CONFIG_USIM_SIMULATOR
882CFLAGS += -DCONFIG_USIM_SIMULATOR
883NEED_MILENAGE=y
884endif
885
886ifdef NEED_MILENAGE
887OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800888NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700889endif
890
891ifdef CONFIG_PKCS12
892CFLAGS += -DPKCS12_FUNCS
893endif
894
895ifdef CONFIG_SMARTCARD
896CFLAGS += -DCONFIG_SMARTCARD
897endif
898
899ifdef MS_FUNCS
900OBJS += ../src/crypto/ms_funcs.o
901NEED_DES=y
902NEED_MD4=y
903endif
904
905ifdef CHAP
906OBJS += ../src/eap_common/chap.o
907endif
908
909ifdef TLS_FUNCS
910NEED_DES=y
911# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
912OBJS += ../src/eap_peer/eap_tls_common.o
913OBJS_h += ../src/eap_server/eap_server_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700914ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700915NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800916NEED_SHA1=y
917NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700918endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700919endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700920
921ifndef CONFIG_TLS
922CONFIG_TLS=openssl
923endif
924
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800925ifdef CONFIG_TLSV11
926CFLAGS += -DCONFIG_TLSV11
927endif
928
929ifdef CONFIG_TLSV12
930CFLAGS += -DCONFIG_TLSV12
931NEED_SHA256=y
932endif
933
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700934ifeq ($(CONFIG_TLS), openssl)
935ifdef TLS_FUNCS
936CFLAGS += -DEAP_TLS_OPENSSL
937OBJS += ../src/crypto/tls_openssl.o
938LIBS += -lssl
939endif
940OBJS += ../src/crypto/crypto_openssl.o
941OBJS_p += ../src/crypto/crypto_openssl.o
942ifdef NEED_FIPS186_2_PRF
943OBJS += ../src/crypto/fips_prf_openssl.o
944endif
945LIBS += -lcrypto
946LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700947ifdef CONFIG_TLS_ADD_DL
948LIBS += -ldl
949LIBS_p += -ldl
950endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700951endif
952
953ifeq ($(CONFIG_TLS), gnutls)
954ifdef TLS_FUNCS
955OBJS += ../src/crypto/tls_gnutls.o
956LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700957endif
958OBJS += ../src/crypto/crypto_gnutls.o
959OBJS_p += ../src/crypto/crypto_gnutls.o
960ifdef NEED_FIPS186_2_PRF
961OBJS += ../src/crypto/fips_prf_gnutls.o
962endif
963LIBS += -lgcrypt
964LIBS_p += -lgcrypt
965CONFIG_INTERNAL_SHA256=y
966CONFIG_INTERNAL_RC4=y
967CONFIG_INTERNAL_DH_GROUP5=y
968endif
969
970ifeq ($(CONFIG_TLS), schannel)
971ifdef TLS_FUNCS
972OBJS += ../src/crypto/tls_schannel.o
973endif
974OBJS += ../src/crypto/crypto_cryptoapi.o
975OBJS_p += ../src/crypto/crypto_cryptoapi.o
976ifdef NEED_FIPS186_2_PRF
977OBJS += ../src/crypto/fips_prf_cryptoapi.o
978endif
979CONFIG_INTERNAL_SHA256=y
980CONFIG_INTERNAL_RC4=y
981CONFIG_INTERNAL_DH_GROUP5=y
982endif
983
984ifeq ($(CONFIG_TLS), nss)
985ifdef TLS_FUNCS
986OBJS += ../src/crypto/tls_nss.o
987LIBS += -lssl3
988endif
989OBJS += ../src/crypto/crypto_nss.o
990OBJS_p += ../src/crypto/crypto_nss.o
991ifdef NEED_FIPS186_2_PRF
992OBJS += ../src/crypto/fips_prf_nss.o
993endif
994LIBS += -lnss3
995LIBS_p += -lnss3
996CONFIG_INTERNAL_MD4=y
997CONFIG_INTERNAL_DH_GROUP5=y
998endif
999
1000ifeq ($(CONFIG_TLS), internal)
1001ifndef CONFIG_CRYPTO
1002CONFIG_CRYPTO=internal
1003endif
1004ifdef TLS_FUNCS
1005OBJS += ../src/crypto/crypto_internal-rsa.o
1006OBJS += ../src/crypto/tls_internal.o
1007OBJS += ../src/tls/tlsv1_common.o
1008OBJS += ../src/tls/tlsv1_record.o
1009OBJS += ../src/tls/tlsv1_cred.o
1010OBJS += ../src/tls/tlsv1_client.o
1011OBJS += ../src/tls/tlsv1_client_write.o
1012OBJS += ../src/tls/tlsv1_client_read.o
1013OBJS += ../src/tls/asn1.o
1014OBJS += ../src/tls/rsa.o
1015OBJS += ../src/tls/x509v3.o
1016OBJS += ../src/tls/pkcs1.o
1017OBJS += ../src/tls/pkcs5.o
1018OBJS += ../src/tls/pkcs8.o
1019NEED_SHA256=y
1020NEED_BASE64=y
1021NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001022ifdef CONFIG_TLSV12
1023NEED_TLS_PRF_SHA256=y
1024endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001025NEED_MODEXP=y
1026NEED_CIPHER=y
1027CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1028endif
1029ifdef NEED_CIPHER
1030NEED_DES=y
1031OBJS += ../src/crypto/crypto_internal-cipher.o
1032endif
1033ifdef NEED_MODEXP
1034OBJS += ../src/crypto/crypto_internal-modexp.o
1035OBJS += ../src/tls/bignum.o
1036endif
1037ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1038OBJS += ../src/crypto/crypto_libtomcrypt.o
1039OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1040LIBS += -ltomcrypt -ltfm
1041LIBS_p += -ltomcrypt -ltfm
1042CONFIG_INTERNAL_SHA256=y
1043CONFIG_INTERNAL_RC4=y
1044CONFIG_INTERNAL_DH_GROUP5=y
1045endif
1046ifeq ($(CONFIG_CRYPTO), internal)
1047OBJS += ../src/crypto/crypto_internal.o
1048OBJS_p += ../src/crypto/crypto_internal.o
1049NEED_AES_ENC=y
1050CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1051ifdef CONFIG_INTERNAL_LIBTOMMATH
1052CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1053ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1054CFLAGS += -DLTM_FAST
1055endif
1056else
1057LIBS += -ltommath
1058LIBS_p += -ltommath
1059endif
1060CONFIG_INTERNAL_AES=y
1061CONFIG_INTERNAL_DES=y
1062CONFIG_INTERNAL_SHA1=y
1063CONFIG_INTERNAL_MD4=y
1064CONFIG_INTERNAL_MD5=y
1065CONFIG_INTERNAL_SHA256=y
1066CONFIG_INTERNAL_RC4=y
1067CONFIG_INTERNAL_DH_GROUP5=y
1068endif
1069ifeq ($(CONFIG_CRYPTO), cryptoapi)
1070OBJS += ../src/crypto/crypto_cryptoapi.o
1071OBJS_p += ../src/crypto/crypto_cryptoapi.o
1072CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1073CONFIG_INTERNAL_SHA256=y
1074CONFIG_INTERNAL_RC4=y
1075endif
1076endif
1077
1078ifeq ($(CONFIG_TLS), none)
1079ifdef TLS_FUNCS
1080OBJS += ../src/crypto/tls_none.o
1081CFLAGS += -DEAP_TLS_NONE
1082CONFIG_INTERNAL_AES=y
1083CONFIG_INTERNAL_SHA1=y
1084CONFIG_INTERNAL_MD5=y
1085endif
1086OBJS += ../src/crypto/crypto_none.o
1087OBJS_p += ../src/crypto/crypto_none.o
1088CONFIG_INTERNAL_SHA256=y
1089CONFIG_INTERNAL_RC4=y
1090endif
1091
1092ifdef TLS_FUNCS
1093ifdef CONFIG_SMARTCARD
1094ifndef CONFIG_NATIVE_WINDOWS
1095ifneq ($(CONFIG_L2_PACKET), freebsd)
1096LIBS += -ldl
1097endif
1098endif
1099endif
1100endif
1101
1102ifndef TLS_FUNCS
1103OBJS += ../src/crypto/tls_none.o
1104ifeq ($(CONFIG_TLS), internal)
1105CONFIG_INTERNAL_AES=y
1106CONFIG_INTERNAL_SHA1=y
1107CONFIG_INTERNAL_MD5=y
1108CONFIG_INTERNAL_RC4=y
1109endif
1110endif
1111
1112AESOBJS = # none so far (see below)
1113ifdef CONFIG_INTERNAL_AES
1114AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1115endif
1116
1117AESOBJS += ../src/crypto/aes-unwrap.o
1118ifdef NEED_AES_EAX
1119AESOBJS += ../src/crypto/aes-eax.o
1120NEED_AES_CTR=y
1121endif
1122ifdef NEED_AES_CTR
1123AESOBJS += ../src/crypto/aes-ctr.o
1124endif
1125ifdef NEED_AES_ENCBLOCK
1126AESOBJS += ../src/crypto/aes-encblock.o
1127endif
1128ifdef NEED_AES_OMAC1
1129NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001130ifdef CONFIG_OPENSSL_CMAC
1131CFLAGS += -DCONFIG_OPENSSL_CMAC
1132else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001133AESOBJS += ../src/crypto/aes-omac1.o
1134endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001135endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001136ifdef NEED_AES_WRAP
1137NEED_AES_ENC=y
1138AESOBJS += ../src/crypto/aes-wrap.o
1139endif
1140ifdef NEED_AES_CBC
1141NEED_AES_ENC=y
1142AESOBJS += ../src/crypto/aes-cbc.o
1143endif
1144ifdef NEED_AES_ENC
1145ifdef CONFIG_INTERNAL_AES
1146AESOBJS += ../src/crypto/aes-internal-enc.o
1147endif
1148endif
1149ifdef NEED_AES
1150OBJS += $(AESOBJS)
1151endif
1152
1153ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001154ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001155SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001156endif
1157SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001158ifdef CONFIG_INTERNAL_SHA1
1159SHA1OBJS += ../src/crypto/sha1-internal.o
1160ifdef NEED_FIPS186_2_PRF
1161SHA1OBJS += ../src/crypto/fips_prf_internal.o
1162endif
1163endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001164ifdef CONFIG_NO_WPA_PASSPHRASE
1165CFLAGS += -DCONFIG_NO_PBKDF2
1166else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001167ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001168SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1169endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001170endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001171ifdef NEED_T_PRF
1172SHA1OBJS += ../src/crypto/sha1-tprf.o
1173endif
1174ifdef NEED_TLS_PRF
1175SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1176endif
1177endif
1178
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001179ifndef CONFIG_FIPS
1180MD5OBJS += ../src/crypto/md5.o
1181endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001182ifdef NEED_MD5
1183ifdef CONFIG_INTERNAL_MD5
1184MD5OBJS += ../src/crypto/md5-internal.o
1185endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001186OBJS += $(MD5OBJS)
1187OBJS_p += $(MD5OBJS)
1188endif
1189
1190ifdef NEED_MD4
1191ifdef CONFIG_INTERNAL_MD4
1192OBJS += ../src/crypto/md4-internal.o
1193endif
1194endif
1195
1196DESOBJS = # none needed when not internal
1197ifdef NEED_DES
1198ifdef CONFIG_INTERNAL_DES
1199DESOBJS += ../src/crypto/des-internal.o
1200endif
1201endif
1202
1203ifdef NEED_RC4
1204ifdef CONFIG_INTERNAL_RC4
1205OBJS += ../src/crypto/rc4.o
1206endif
1207endif
1208
1209SHA256OBJS = # none by default
1210ifdef NEED_SHA256
1211CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001212ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001213SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001214endif
1215SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001216ifdef CONFIG_INTERNAL_SHA256
1217SHA256OBJS += ../src/crypto/sha256-internal.o
1218endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001219ifdef NEED_TLS_PRF_SHA256
1220SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1221endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001222OBJS += $(SHA256OBJS)
1223endif
1224
1225ifdef NEED_DH_GROUPS
1226OBJS += ../src/crypto/dh_groups.o
1227endif
1228ifdef NEED_DH_GROUPS_ALL
1229CFLAGS += -DALL_DH_GROUPS
1230endif
1231ifdef CONFIG_INTERNAL_DH_GROUP5
1232ifdef NEED_DH_GROUPS
1233OBJS += ../src/crypto/dh_group5.o
1234endif
1235endif
1236
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001237ifdef NEED_ECC
1238CFLAGS += -DCONFIG_ECC
1239endif
1240
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001241ifdef CONFIG_NO_RANDOM_POOL
1242CFLAGS += -DCONFIG_NO_RANDOM_POOL
1243else
1244OBJS += ../src/crypto/random.o
1245endif
1246
1247ifdef CONFIG_CTRL_IFACE
1248ifeq ($(CONFIG_CTRL_IFACE), y)
1249ifdef CONFIG_NATIVE_WINDOWS
1250CONFIG_CTRL_IFACE=named_pipe
1251else
1252CONFIG_CTRL_IFACE=unix
1253endif
1254endif
1255CFLAGS += -DCONFIG_CTRL_IFACE
1256ifeq ($(CONFIG_CTRL_IFACE), unix)
1257CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1258endif
1259ifeq ($(CONFIG_CTRL_IFACE), udp)
1260CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1261endif
1262ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1263CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1264endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001265ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1266CONFIG_CTRL_IFACE=udp
1267CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1268CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1269endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001270OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1271endif
1272
1273ifdef CONFIG_CTRL_IFACE_DBUS
1274DBUS=y
1275DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1276DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1277ifdef CONFIG_WPS
1278DBUS_OBJS += dbus/dbus_old_handlers_wps.o
1279endif
1280DBUS_OBJS += dbus/dbus_dict_helpers.o
1281ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001282DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001283endif
1284ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001285DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001286endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001287DBUS_CFLAGS += $(DBUS_INCLUDE)
1288endif
1289
1290ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1291DBUS=y
1292DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1293DBUS_OBJS ?= dbus/dbus_dict_helpers.o
1294DBUS_OBJS += dbus/dbus_new_helpers.o
1295DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1296ifdef CONFIG_WPS
1297DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1298endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001299ifdef CONFIG_P2P
1300DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1301endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001302ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001303DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001304endif
1305ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001306DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001307endif
1308ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1309DBUS_OBJS += dbus/dbus_new_introspect.o
1310DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1311endif
1312DBUS_CFLAGS += $(DBUS_INCLUDE)
1313endif
1314
1315ifdef DBUS
1316DBUS_CFLAGS += -DCONFIG_DBUS
1317DBUS_OBJS += dbus/dbus_common.o
1318endif
1319
1320OBJS += $(DBUS_OBJS)
1321CFLAGS += $(DBUS_CFLAGS)
1322LIBS += $(DBUS_LIBS)
1323
1324ifdef CONFIG_READLINE
1325OBJS_c += ../src/utils/edit_readline.o
1326LIBS_c += -lncurses -lreadline
1327else
1328ifdef CONFIG_WPA_CLI_EDIT
1329OBJS_c += ../src/utils/edit.o
1330else
1331OBJS_c += ../src/utils/edit_simple.o
1332endif
1333endif
1334
1335ifdef CONFIG_NATIVE_WINDOWS
1336CFLAGS += -DCONFIG_NATIVE_WINDOWS
1337LIBS += -lws2_32 -lgdi32 -lcrypt32
1338LIBS_c += -lws2_32
1339LIBS_p += -lws2_32 -lgdi32
1340ifeq ($(CONFIG_CRYPTO), cryptoapi)
1341LIBS_p += -lcrypt32
1342endif
1343endif
1344
1345ifdef CONFIG_NO_STDOUT_DEBUG
1346CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1347ifndef CONFIG_CTRL_IFACE
1348CFLAGS += -DCONFIG_NO_WPA_MSG
1349endif
1350endif
1351
1352ifdef CONFIG_IPV6
1353# for eapol_test only
1354CFLAGS += -DCONFIG_IPV6
1355endif
1356
1357ifdef NEED_BASE64
1358OBJS += ../src/utils/base64.o
1359endif
1360
1361ifdef NEED_SME
1362NEED_80211_COMMON=y
1363OBJS += sme.o
1364CFLAGS += -DCONFIG_SME
1365endif
1366
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001367ifdef NEED_80211_COMMON
1368OBJS += ../src/common/ieee802_11_common.o
1369endif
1370
1371ifdef NEED_EAP_COMMON
1372OBJS += ../src/eap_common/eap_common.o
1373endif
1374
1375ifndef CONFIG_MAIN
1376CONFIG_MAIN=main
1377endif
1378
1379ifdef CONFIG_DEBUG_SYSLOG
1380CFLAGS += -DCONFIG_DEBUG_SYSLOG
1381ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1382CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1383endif
1384endif
1385
Dmitry Shmidt04949592012-07-19 12:16:46 -07001386ifdef CONFIG_DEBUG_LINUX_TRACING
1387CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1388endif
1389
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001390ifdef CONFIG_DEBUG_FILE
1391CFLAGS += -DCONFIG_DEBUG_FILE
1392endif
1393
1394ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1395CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1396endif
1397
1398ifdef CONFIG_FIPS
1399CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001400ifneq ($(CONFIG_TLS), openssl)
1401$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1402endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001403endif
1404
1405OBJS += $(SHA1OBJS) $(DESOBJS)
1406
1407OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001408OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001409
1410ifdef CONFIG_BGSCAN_SIMPLE
1411CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1412OBJS += bgscan_simple.o
1413NEED_BGSCAN=y
1414endif
1415
1416ifdef CONFIG_BGSCAN_LEARN
1417CFLAGS += -DCONFIG_BGSCAN_LEARN
1418OBJS += bgscan_learn.o
1419NEED_BGSCAN=y
1420endif
1421
1422ifdef NEED_BGSCAN
1423CFLAGS += -DCONFIG_BGSCAN
1424OBJS += bgscan.o
1425endif
1426
Dmitry Shmidt04949592012-07-19 12:16:46 -07001427ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1428CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1429OBJS += autoscan_exponential.o
1430NEED_AUTOSCAN=y
1431endif
1432
1433ifdef CONFIG_AUTOSCAN_PERIODIC
1434CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1435OBJS += autoscan_periodic.o
1436NEED_AUTOSCAN=y
1437endif
1438
1439ifdef NEED_AUTOSCAN
1440CFLAGS += -DCONFIG_AUTOSCAN
1441OBJS += autoscan.o
1442endif
1443
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001444ifdef CONFIG_EXT_PASSWORD_TEST
1445OBJS += ../src/utils/ext_password_test.o
1446CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1447NEED_EXT_PASSWORD=y
1448endif
1449
1450ifdef NEED_EXT_PASSWORD
1451OBJS += ../src/utils/ext_password.o
1452CFLAGS += -DCONFIG_EXT_PASSWORD
1453endif
1454
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001455ifdef NEED_GAS
1456OBJS += ../src/common/gas.o
1457OBJS += gas_query.o
1458CFLAGS += -DCONFIG_GAS
1459NEED_OFFCHANNEL=y
1460endif
1461
1462ifdef NEED_OFFCHANNEL
1463OBJS += offchannel.o
1464CFLAGS += -DCONFIG_OFFCHANNEL
1465endif
1466
1467OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001468OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001469
1470OBJS_wpa_rm := ctrl_iface.o ctrl_iface_unix.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001471OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1472ifdef CONFIG_AUTHENTICATOR
1473OBJS_wpa += tests/link_test.o
1474endif
1475OBJS_wpa += $(OBJS_l2)
1476OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1477OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1478OBJS_t += ../src/radius/radius_client.o
1479OBJS_t += ../src/radius/radius.o
1480ifndef CONFIG_AP
1481OBJS_t += ../src/utils/ip_addr.o
1482endif
1483OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001484
1485OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1486OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1487
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001488OBJS += $(CONFIG_MAIN).o
1489
1490ifdef CONFIG_PRIVSEP
1491OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1492OBJS_priv += $(OBJS_l2)
1493OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1494OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1495OBJS_priv += ../src/utils/common.o
1496OBJS_priv += ../src/utils/wpa_debug.o
1497OBJS_priv += ../src/utils/wpabuf.o
1498OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001499ifdef CONFIG_DRIVER_NL80211
1500OBJS_priv += ../src/common/ieee802_11_common.o
1501endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001502ifdef CONFIG_DRIVER_TEST
1503OBJS_priv += $(SHA1OBJS)
1504OBJS_priv += $(MD5OBJS)
1505ifeq ($(CONFIG_TLS), openssl)
1506OBJS_priv += ../src/crypto/crypto_openssl.o
1507endif
1508ifeq ($(CONFIG_TLS), gnutls)
1509OBJS_priv += ../src/crypto/crypto_gnutls.o
1510endif
1511ifeq ($(CONFIG_TLS), nss)
1512OBJS_priv += ../src/crypto/crypto_nss.o
1513endif
1514ifeq ($(CONFIG_TLS), internal)
1515ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1516OBJS_priv += ../src/crypto/crypto_libtomcrypt.o
1517else
1518OBJS_priv += ../src/crypto/crypto_internal.o
1519endif
1520endif
1521endif # CONFIG_DRIVER_TEST
1522OBJS += ../src/l2_packet/l2_packet_privsep.o
1523OBJS += ../src/drivers/driver_privsep.o
1524EXTRA_progs += wpa_priv
1525else
1526OBJS += $(OBJS_d) ../src/drivers/drivers.o
1527OBJS += $(OBJS_l2)
1528endif
1529
1530ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1531CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1532OBJS += ../src/drivers/ndis_events.o
1533EXTRALIBS += -loleaut32 -lole32 -luuid
1534ifdef PLATFORMSDKLIB
1535EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1536else
1537EXTRALIBS += WbemUuid.Lib
1538endif
1539endif
1540
1541ifndef LDO
1542LDO=$(CC)
1543endif
1544
1545Q=@
1546E=echo
1547ifeq ($(V), 1)
1548Q=
1549E=true
1550endif
1551
1552dynamic_eap_methods: $(EAPDYN)
1553
1554../src/drivers/build.wpa_supplicant:
1555 @if [ -f ../src/drivers/build.hostapd ]; then \
1556 $(MAKE) -C ../src/drivers clean; \
1557 fi
1558 @touch ../src/drivers/build.wpa_supplicant
1559
1560BCHECK=../src/drivers/build.wpa_supplicant
1561
1562wpa_priv: $(BCHECK) $(OBJS_priv)
1563 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1564 @$(E) " LD " $@
1565
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001566$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1567
1568wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001569 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1570 @$(E) " LD " $@
1571
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001572eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001573 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1574 @$(E) " LD " $@
1575
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001576preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001577 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1578 @$(E) " LD " $@
1579
1580wpa_passphrase: $(OBJS_p)
1581 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1582 @$(E) " LD " $@
1583
1584wpa_cli: $(OBJS_c)
1585 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1586 @$(E) " LD " $@
1587
1588link_test: $(OBJS) $(OBJS_h) tests/link_test.o
1589 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1590 @$(E) " LD " $@
1591
1592test_wpa: $(OBJS_wpa) $(OBJS_h)
1593 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1594 @$(E) " LD " $@
1595
Dmitry Shmidt04949592012-07-19 12:16:46 -07001596nfc_pw_token: $(OBJS_nfc)
1597 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1598 @$(E) " LD " $@
1599
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001600win_if_list: win_if_list.c
1601 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1602 @$(E) " LD " $@
1603
1604eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1605 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1606 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1607
1608eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1609 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1610 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1611
1612eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1613 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1614 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1615
1616eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1617 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1618 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1619
1620eap_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
1621 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1622 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1623
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001624eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1625 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1626 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1627
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001628%.so: %.c
1629 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1630 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1631
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001632ifdef CONFIG_CODE_COVERAGE
1633%.o: %.c
1634 @$(E) " CC " $<
1635 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
1636else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001637%.o: %.c
1638 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1639 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001640endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001641
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001642%.service: %.service.in
1643 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1644
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001645%@.service: %.service.arg.in
1646 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1647
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001648wpa_supplicant.exe: wpa_supplicant
1649 mv -f $< $@
1650wpa_cli.exe: wpa_cli
1651 mv -f $< $@
1652wpa_passphrase.exe: wpa_passphrase
1653 mv -f $< $@
1654win_if_list.exe: win_if_list
1655 mv -f $< $@
1656eapol_test.exe: eapol_test
1657 mv -f $< $@
1658
1659WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1660
1661windows-bin: $(WINALL)
1662 $(STRIP) $(WINALL)
1663
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001664wpa_gui:
1665 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001666
1667wpa_gui-qt4/Makefile:
1668 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1669
1670wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1671 lrelease wpa_gui-qt4/wpa_gui.pro
1672
1673wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1674 $(MAKE) -C wpa_gui-qt4
1675
1676TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \
1677 ../src/utils/common.o ../src/utils/os_unix.o \
1678 ../src/utils/wpa_debug.o $(AESOBJS) \
1679 tests/test_eap_sim_common.o
1680test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
1681 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS)
1682 ./test-eap_sim_common
1683 rm test-eap_sim_common
1684
1685tests: test-eap_sim_common
1686
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001687FIPSDIR=/usr/local/ssl/fips-2.0
1688FIPSLD=$(FIPSDIR)/bin/fipsld
1689fips:
1690 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1691
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001692lcov-html: wpa_supplicant.gcda
1693 lcov -c -d .. > lcov.info
1694 genhtml lcov.info --output-directory lcov-html
1695
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001696clean:
1697 $(MAKE) -C ../src clean
1698 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001699 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
1700 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001701 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07001702 rm -f nfc_pw_token
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001703 rm -f lcov.info
1704 rm -rf lcov-html
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001705
1706-include $(OBJS:%.o=%.d)