blob: 260c0ae44a43cdaf0559ed3b4309a52f3351d6f2 [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
13CFLAGS += -I../src
14CFLAGS += -I../src/utils
15
Jouni Malinen75ecf522011-06-27 15:19:46 -070016-include .config
17
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080018BINALL=wpa_supplicant wpa_cli
Jouni Malinen75ecf522011-06-27 15:19:46 -070019
20ifndef CONFIG_NO_WPA_PASSPHRASE
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080021BINALL += wpa_passphrase
Jouni Malinen75ecf522011-06-27 15:19:46 -070022endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070023
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080024ALL = $(BINALL)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080025ALL += systemd/wpa_supplicant.service
26ALL += systemd/wpa_supplicant@.service
27ALL += systemd/wpa_supplicant-nl80211@.service
28ALL += systemd/wpa_supplicant-wired@.service
29ALL += dbus/fi.epitest.hostap.WPASupplicant.service
30ALL += dbus/fi.w1.wpa_supplicant1.service
31
32
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070033all: verify_config $(ALL) dynamic_eap_methods
34
35verify_config:
36 @if [ ! -r .config ]; then \
37 echo 'Building wpa_supplicant requires a configuration file'; \
38 echo '(.config). See README for more instructions. You can'; \
39 echo 'run "cp defconfig .config" to create an example'; \
40 echo 'configuration.'; \
41 exit 1; \
42 fi
43
44mkconfig:
45 @if [ -f .config ]; then \
46 echo '.config exists - did not replace it'; \
47 exit 1; \
48 fi
49 echo CONFIG_DRIVER_HOSTAP=y >> .config
50 echo CONFIG_DRIVER_WEXT=y >> .config
51
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -080052$(DESTDIR)$(BINDIR)/%: %
53 install -D $(<) $(@)
54
55install: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070056 $(MAKE) -C ../src install
57
Dmitry Shmidt61d9df32012-08-29 16:22:06 -070058ifdef CONFIG_FIPS
59CONFIG_NO_RANDOM_POOL=
60CONFIG_OPENSSL_CMAC=y
61endif
62
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070063OBJS = config.o
64OBJS += notify.o
65OBJS += bss.o
66OBJS += eap_register.o
67OBJS += ../src/utils/common.o
68OBJS += ../src/utils/wpa_debug.o
69OBJS += ../src/utils/wpabuf.o
70OBJS_p = wpa_passphrase.o
71OBJS_p += ../src/utils/common.o
72OBJS_p += ../src/utils/wpa_debug.o
73OBJS_p += ../src/utils/wpabuf.o
74OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o
75OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080076OBJS_c += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070077
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070078ifndef CONFIG_OS
79ifdef CONFIG_NATIVE_WINDOWS
80CONFIG_OS=win32
81else
82CONFIG_OS=unix
83endif
84endif
85
86ifeq ($(CONFIG_OS), internal)
87CFLAGS += -DOS_NO_C_LIB_DEFINES
88endif
89
90OBJS += ../src/utils/os_$(CONFIG_OS).o
91OBJS_p += ../src/utils/os_$(CONFIG_OS).o
92OBJS_c += ../src/utils/os_$(CONFIG_OS).o
93
94ifdef CONFIG_WPA_TRACE
95CFLAGS += -DWPA_TRACE
96OBJS += ../src/utils/trace.o
97OBJS_p += ../src/utils/trace.o
98OBJS_c += ../src/utils/trace.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080099OBJS_priv += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700100LDFLAGS += -rdynamic
101CFLAGS += -funwind-tables
102ifdef CONFIG_WPA_TRACE_BFD
103CFLAGS += -DWPA_TRACE_BFD
104LIBS += -lbfd
105LIBS_p += -lbfd
106LIBS_c += -lbfd
107endif
108endif
109
110ifndef CONFIG_ELOOP
111CONFIG_ELOOP=eloop
112endif
113OBJS += ../src/utils/$(CONFIG_ELOOP).o
114OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
115
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800116ifeq ($(CONFIG_ELOOP), eloop)
117# Using glibc < 2.17 requires -lrt for clock_gettime()
118LIBS += -lrt
119LIBS_c += -lrt
120LIBS_p += -lrt
121endif
122
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800123ifdef CONFIG_ELOOP_POLL
124CFLAGS += -DCONFIG_ELOOP_POLL
125endif
126
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700127
128ifdef CONFIG_EAPOL_TEST
129CFLAGS += -Werror -DEAPOL_TEST
130endif
131
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800132ifdef CONFIG_CODE_COVERAGE
133CFLAGS += -O0 -fprofile-arcs -ftest-coverage
134LIBS += -lgcov
135LIBS_c += -lgcov
136LIBS_p += -lgcov
137endif
138
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -0800139ifdef CONFIG_HT_OVERRIDES
140CFLAGS += -DCONFIG_HT_OVERRIDES
141endif
142
Dmitry Shmidt2f023192013-03-12 12:44:17 -0700143ifdef CONFIG_VHT_OVERRIDES
144CFLAGS += -DCONFIG_VHT_OVERRIDES
145endif
146
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700147ifndef CONFIG_BACKEND
148CONFIG_BACKEND=file
149endif
150
151ifeq ($(CONFIG_BACKEND), file)
152OBJS += config_file.o
153ifndef CONFIG_NO_CONFIG_BLOBS
154NEED_BASE64=y
155endif
156CFLAGS += -DCONFIG_BACKEND_FILE
157endif
158
159ifeq ($(CONFIG_BACKEND), winreg)
160OBJS += config_winreg.o
161endif
162
163ifeq ($(CONFIG_BACKEND), none)
164OBJS += config_none.o
165endif
166
167ifdef CONFIG_NO_CONFIG_WRITE
168CFLAGS += -DCONFIG_NO_CONFIG_WRITE
169endif
170
171ifdef CONFIG_NO_CONFIG_BLOBS
172CFLAGS += -DCONFIG_NO_CONFIG_BLOBS
173endif
174
175ifdef CONFIG_NO_SCAN_PROCESSING
176CFLAGS += -DCONFIG_NO_SCAN_PROCESSING
177endif
178
179ifdef CONFIG_IEEE80211W
180CFLAGS += -DCONFIG_IEEE80211W
181NEED_SHA256=y
182NEED_AES_OMAC1=y
183endif
184
185ifdef CONFIG_IEEE80211R
186CFLAGS += -DCONFIG_IEEE80211R
187OBJS += ../src/rsn_supp/wpa_ft.o
188NEED_80211_COMMON=y
189NEED_SHA256=y
190NEED_AES_OMAC1=y
191endif
192
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800193ifdef CONFIG_SAE
194CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800195OBJS += ../src/common/sae.o
196NEED_ECC=y
197NEED_DH_GROUPS=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800198endif
199
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800200ifdef CONFIG_WNM
201CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700202OBJS += wnm_sta.o
203endif
204
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700205ifdef CONFIG_TDLS
206CFLAGS += -DCONFIG_TDLS
207OBJS += ../src/rsn_supp/tdls.o
208NEED_SHA256=y
209NEED_AES_OMAC1=y
210endif
211
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800212ifdef CONFIG_TDLS_TESTING
213CFLAGS += -DCONFIG_TDLS_TESTING
214endif
215
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700216ifdef CONFIG_PEERKEY
217CFLAGS += -DCONFIG_PEERKEY
218endif
219
220ifndef CONFIG_NO_WPA
221OBJS += ../src/rsn_supp/wpa.o
222OBJS += ../src/rsn_supp/preauth.o
223OBJS += ../src/rsn_supp/pmksa_cache.o
224OBJS += ../src/rsn_supp/peerkey.o
225OBJS += ../src/rsn_supp/wpa_ie.o
226OBJS += ../src/common/wpa_common.o
227NEED_AES=y
228NEED_SHA1=y
229NEED_MD5=y
230NEED_RC4=y
231else
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700232CFLAGS += -DCONFIG_NO_WPA
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700233endif
234
235ifdef CONFIG_IBSS_RSN
236NEED_RSN_AUTHENTICATOR=y
237CFLAGS += -DCONFIG_IBSS_RSN
238OBJS += ibss_rsn.o
239endif
240
241ifdef CONFIG_P2P
242OBJS += p2p_supplicant.o
243OBJS += ../src/p2p/p2p.o
244OBJS += ../src/p2p/p2p_utils.o
245OBJS += ../src/p2p/p2p_parse.o
246OBJS += ../src/p2p/p2p_build.o
247OBJS += ../src/p2p/p2p_go_neg.o
248OBJS += ../src/p2p/p2p_sd.o
249OBJS += ../src/p2p/p2p_pd.o
250OBJS += ../src/p2p/p2p_invitation.o
251OBJS += ../src/p2p/p2p_dev_disc.o
252OBJS += ../src/p2p/p2p_group.o
253OBJS += ../src/ap/p2p_hostapd.o
254CFLAGS += -DCONFIG_P2P
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800255NEED_GAS=y
256NEED_OFFCHANNEL=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700257NEED_80211_COMMON=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800258CONFIG_WPS=y
259CONFIG_AP=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700260ifdef CONFIG_P2P_STRICT
261CFLAGS += -DCONFIG_P2P_STRICT
262endif
263endif
264
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700265ifdef CONFIG_WIFI_DISPLAY
266CFLAGS += -DCONFIG_WIFI_DISPLAY
267OBJS += wifi_display.o
268endif
269
Dmitry Shmidt04949592012-07-19 12:16:46 -0700270ifdef CONFIG_HS20
271OBJS += hs20_supplicant.o
272CFLAGS += -DCONFIG_HS20
273CONFIG_INTERWORKING=y
274endif
275
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800276ifdef CONFIG_INTERWORKING
277OBJS += interworking.o
278CFLAGS += -DCONFIG_INTERWORKING
279NEED_GAS=y
280endif
281
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700282include ../src/drivers/drivers.mak
283ifdef CONFIG_AP
284OBJS_d += $(DRV_BOTH_OBJS)
285CFLAGS += $(DRV_BOTH_CFLAGS)
286LDFLAGS += $(DRV_BOTH_LDFLAGS)
287LIBS += $(DRV_BOTH_LIBS)
288else
289NEED_AP_MLME=
290OBJS_d += $(DRV_WPA_OBJS)
291CFLAGS += $(DRV_WPA_CFLAGS)
292LDFLAGS += $(DRV_WPA_LDFLAGS)
293LIBS += $(DRV_WPA_LIBS)
294endif
295
296ifndef CONFIG_L2_PACKET
297CONFIG_L2_PACKET=linux
298endif
299
300OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o
301
302ifeq ($(CONFIG_L2_PACKET), pcap)
303ifdef CONFIG_WINPCAP
304CFLAGS += -DCONFIG_WINPCAP
305LIBS += -lwpcap -lpacket
306LIBS_w += -lwpcap
307else
308LIBS += -ldnet -lpcap
309endif
310endif
311
312ifeq ($(CONFIG_L2_PACKET), winpcap)
313LIBS += -lwpcap -lpacket
314LIBS_w += -lwpcap
315endif
316
317ifeq ($(CONFIG_L2_PACKET), freebsd)
318LIBS += -lpcap
319endif
320
321ifdef CONFIG_EAP_TLS
322# EAP-TLS
323ifeq ($(CONFIG_EAP_TLS), dyn)
324CFLAGS += -DEAP_TLS_DYNAMIC
325EAPDYN += ../src/eap_peer/eap_tls.so
326else
327CFLAGS += -DEAP_TLS
328OBJS += ../src/eap_peer/eap_tls.o
329OBJS_h += ../src/eap_server/eap_server_tls.o
330endif
331TLS_FUNCS=y
332CONFIG_IEEE8021X_EAPOL=y
333endif
334
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700335ifdef CONFIG_EAP_UNAUTH_TLS
336# EAP-UNAUTH-TLS
337CFLAGS += -DEAP_UNAUTH_TLS
338ifndef CONFIG_EAP_UNAUTH_TLS
339OBJS += ../src/eap_peer/eap_tls.o
340OBJS_h += ../src/eap_server/eap_server_tls.o
341TLS_FUNCS=y
342endif
343CONFIG_IEEE8021X_EAPOL=y
344endif
345
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700346ifdef CONFIG_EAP_PEAP
347# EAP-PEAP
348ifeq ($(CONFIG_EAP_PEAP), dyn)
349CFLAGS += -DEAP_PEAP_DYNAMIC
350EAPDYN += ../src/eap_peer/eap_peap.so
351else
352CFLAGS += -DEAP_PEAP
353OBJS += ../src/eap_peer/eap_peap.o
354OBJS += ../src/eap_common/eap_peap_common.o
355OBJS_h += ../src/eap_server/eap_server_peap.o
356endif
357TLS_FUNCS=y
358CONFIG_IEEE8021X_EAPOL=y
359endif
360
361ifdef CONFIG_EAP_TTLS
362# EAP-TTLS
363ifeq ($(CONFIG_EAP_TTLS), dyn)
364CFLAGS += -DEAP_TTLS_DYNAMIC
365EAPDYN += ../src/eap_peer/eap_ttls.so
366else
367CFLAGS += -DEAP_TTLS
368OBJS += ../src/eap_peer/eap_ttls.o
369OBJS_h += ../src/eap_server/eap_server_ttls.o
370endif
371MS_FUNCS=y
372TLS_FUNCS=y
373CHAP=y
374CONFIG_IEEE8021X_EAPOL=y
375endif
376
377ifdef CONFIG_EAP_MD5
378# EAP-MD5
379ifeq ($(CONFIG_EAP_MD5), dyn)
380CFLAGS += -DEAP_MD5_DYNAMIC
381EAPDYN += ../src/eap_peer/eap_md5.so
382else
383CFLAGS += -DEAP_MD5
384OBJS += ../src/eap_peer/eap_md5.o
385OBJS_h += ../src/eap_server/eap_server_md5.o
386endif
387CHAP=y
388CONFIG_IEEE8021X_EAPOL=y
389endif
390
391# backwards compatibility for old spelling
392ifdef CONFIG_MSCHAPV2
393ifndef CONFIG_EAP_MSCHAPV2
394CONFIG_EAP_MSCHAPV2=y
395endif
396endif
397
398ifdef CONFIG_EAP_MSCHAPV2
399# EAP-MSCHAPv2
400ifeq ($(CONFIG_EAP_MSCHAPV2), dyn)
401CFLAGS += -DEAP_MSCHAPv2_DYNAMIC
402EAPDYN += ../src/eap_peer/eap_mschapv2.so
403EAPDYN += ../src/eap_peer/mschapv2.so
404else
405CFLAGS += -DEAP_MSCHAPv2
406OBJS += ../src/eap_peer/eap_mschapv2.o
407OBJS += ../src/eap_peer/mschapv2.o
408OBJS_h += ../src/eap_server/eap_server_mschapv2.o
409endif
410MS_FUNCS=y
411CONFIG_IEEE8021X_EAPOL=y
412endif
413
414ifdef CONFIG_EAP_GTC
415# EAP-GTC
416ifeq ($(CONFIG_EAP_GTC), dyn)
417CFLAGS += -DEAP_GTC_DYNAMIC
418EAPDYN += ../src/eap_peer/eap_gtc.so
419else
420CFLAGS += -DEAP_GTC
421OBJS += ../src/eap_peer/eap_gtc.o
422OBJS_h += ../src/eap_server/eap_server_gtc.o
423endif
424CONFIG_IEEE8021X_EAPOL=y
425endif
426
427ifdef CONFIG_EAP_OTP
428# EAP-OTP
429ifeq ($(CONFIG_EAP_OTP), dyn)
430CFLAGS += -DEAP_OTP_DYNAMIC
431EAPDYN += ../src/eap_peer/eap_otp.so
432else
433CFLAGS += -DEAP_OTP
434OBJS += ../src/eap_peer/eap_otp.o
435endif
436CONFIG_IEEE8021X_EAPOL=y
437endif
438
439ifdef CONFIG_EAP_SIM
440# EAP-SIM
441ifeq ($(CONFIG_EAP_SIM), dyn)
442CFLAGS += -DEAP_SIM_DYNAMIC
443EAPDYN += ../src/eap_peer/eap_sim.so
444else
445CFLAGS += -DEAP_SIM
446OBJS += ../src/eap_peer/eap_sim.o
447OBJS_h += ../src/eap_server/eap_server_sim.o
448endif
449CONFIG_IEEE8021X_EAPOL=y
450CONFIG_EAP_SIM_COMMON=y
451NEED_AES_CBC=y
452endif
453
454ifdef CONFIG_EAP_LEAP
455# EAP-LEAP
456ifeq ($(CONFIG_EAP_LEAP), dyn)
457CFLAGS += -DEAP_LEAP_DYNAMIC
458EAPDYN += ../src/eap_peer/eap_leap.so
459else
460CFLAGS += -DEAP_LEAP
461OBJS += ../src/eap_peer/eap_leap.o
462endif
463MS_FUNCS=y
464CONFIG_IEEE8021X_EAPOL=y
465endif
466
467ifdef CONFIG_EAP_PSK
468# EAP-PSK
469ifeq ($(CONFIG_EAP_PSK), dyn)
470CFLAGS += -DEAP_PSK_DYNAMIC
471EAPDYN += ../src/eap_peer/eap_psk.so
472else
473CFLAGS += -DEAP_PSK
474OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o
475OBJS_h += ../src/eap_server/eap_server_psk.o
476endif
477CONFIG_IEEE8021X_EAPOL=y
478NEED_AES=y
479NEED_AES_OMAC1=y
480NEED_AES_ENCBLOCK=y
481NEED_AES_EAX=y
482endif
483
484ifdef CONFIG_EAP_AKA
485# EAP-AKA
486ifeq ($(CONFIG_EAP_AKA), dyn)
487CFLAGS += -DEAP_AKA_DYNAMIC
488EAPDYN += ../src/eap_peer/eap_aka.so
489else
490CFLAGS += -DEAP_AKA
491OBJS += ../src/eap_peer/eap_aka.o
492OBJS_h += ../src/eap_server/eap_server_aka.o
493endif
494CONFIG_IEEE8021X_EAPOL=y
495CONFIG_EAP_SIM_COMMON=y
496NEED_AES_CBC=y
497endif
498
Dmitry Shmidtf8623282013-02-20 14:34:59 -0800499ifdef CONFIG_EAP_PROXY
500CFLAGS += -DCONFIG_EAP_PROXY
501OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o
502include eap_proxy_$(CONFIG_EAP_PROXY).mk
503CONFIG_IEEE8021X_EAPOL=y
504endif
505
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700506ifdef CONFIG_EAP_AKA_PRIME
507# EAP-AKA'
508ifeq ($(CONFIG_EAP_AKA_PRIME), dyn)
509CFLAGS += -DEAP_AKA_PRIME_DYNAMIC
510else
511CFLAGS += -DEAP_AKA_PRIME
512endif
513NEED_SHA256=y
514endif
515
516ifdef CONFIG_EAP_SIM_COMMON
517OBJS += ../src/eap_common/eap_sim_common.o
518OBJS_h += ../src/eap_server/eap_sim_db.o
519NEED_AES=y
520NEED_FIPS186_2_PRF=y
521endif
522
523ifdef CONFIG_EAP_FAST
524# EAP-FAST
525ifeq ($(CONFIG_EAP_FAST), dyn)
526CFLAGS += -DEAP_FAST_DYNAMIC
527EAPDYN += ../src/eap_peer/eap_fast.so
528EAPDYN += ../src/eap_common/eap_fast_common.o
529else
530CFLAGS += -DEAP_FAST
531OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o
532OBJS += ../src/eap_common/eap_fast_common.o
533OBJS_h += ../src/eap_server/eap_server_fast.o
534endif
535TLS_FUNCS=y
536CONFIG_IEEE8021X_EAPOL=y
537NEED_T_PRF=y
538endif
539
540ifdef CONFIG_EAP_PAX
541# EAP-PAX
542ifeq ($(CONFIG_EAP_PAX), dyn)
543CFLAGS += -DEAP_PAX_DYNAMIC
544EAPDYN += ../src/eap_peer/eap_pax.so
545else
546CFLAGS += -DEAP_PAX
547OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o
548OBJS_h += ../src/eap_server/eap_server_pax.o
549endif
550CONFIG_IEEE8021X_EAPOL=y
551endif
552
553ifdef CONFIG_EAP_SAKE
554# EAP-SAKE
555ifeq ($(CONFIG_EAP_SAKE), dyn)
556CFLAGS += -DEAP_SAKE_DYNAMIC
557EAPDYN += ../src/eap_peer/eap_sake.so
558else
559CFLAGS += -DEAP_SAKE
560OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o
561OBJS_h += ../src/eap_server/eap_server_sake.o
562endif
563CONFIG_IEEE8021X_EAPOL=y
564endif
565
566ifdef CONFIG_EAP_GPSK
567# EAP-GPSK
568ifeq ($(CONFIG_EAP_GPSK), dyn)
569CFLAGS += -DEAP_GPSK_DYNAMIC
570EAPDYN += ../src/eap_peer/eap_gpsk.so
571else
572CFLAGS += -DEAP_GPSK
573OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o
574OBJS_h += ../src/eap_server/eap_server_gpsk.o
575endif
576CONFIG_IEEE8021X_EAPOL=y
577ifdef CONFIG_EAP_GPSK_SHA256
578CFLAGS += -DEAP_GPSK_SHA256
579endif
580NEED_SHA256=y
581NEED_AES_OMAC1=y
582endif
583
584ifdef CONFIG_EAP_PWD
585CFLAGS += -DEAP_PWD
586OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800587OBJS_h += ../src/eap_server/eap_server_pwd.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700588CONFIG_IEEE8021X_EAPOL=y
589NEED_SHA256=y
590endif
591
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700592ifdef CONFIG_EAP_EKE
593# EAP-EKE
594ifeq ($(CONFIG_EAP_EKE), dyn)
595CFLAGS += -DEAP_EKE_DYNAMIC
596EAPDYN += ../src/eap_peer/eap_eke.so
597else
598CFLAGS += -DEAP_EKE
599OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o
600OBJS_h += ../src/eap_server/eap_server_eke.o
601endif
602CONFIG_IEEE8021X_EAPOL=y
603NEED_DH_GROUPS=y
604NEED_DH_GROUPS_ALL=y
605NEED_SHA256=y
606endif
607
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700608ifdef CONFIG_WPS
609ifdef CONFIG_WPS2
610CFLAGS += -DCONFIG_WPS2
611endif
612
613# EAP-WSC
614CFLAGS += -DCONFIG_WPS -DEAP_WSC
615OBJS += wps_supplicant.o
616OBJS += ../src/utils/uuid.o
617OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o
618OBJS += ../src/wps/wps.o
619OBJS += ../src/wps/wps_common.o
620OBJS += ../src/wps/wps_attr_parse.o
621OBJS += ../src/wps/wps_attr_build.o
622OBJS += ../src/wps/wps_attr_process.o
623OBJS += ../src/wps/wps_dev_attr.o
624OBJS += ../src/wps/wps_enrollee.o
625OBJS += ../src/wps/wps_registrar.o
626OBJS_h += ../src/eap_server/eap_server_wsc.o
627CONFIG_IEEE8021X_EAPOL=y
628NEED_DH_GROUPS=y
629NEED_SHA256=y
630NEED_BASE64=y
631NEED_80211_COMMON=y
632NEED_AES_CBC=y
633NEED_MODEXP=y
634
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700635ifdef CONFIG_WPS_NFC
636CFLAGS += -DCONFIG_WPS_NFC
637OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700638NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700639endif
640
641ifdef NEED_WPS_OOB
642CFLAGS += -DCONFIG_WPS_OOB
643endif
644
645ifdef CONFIG_WPS_ER
646CONFIG_WPS_UPNP=y
647CFLAGS += -DCONFIG_WPS_ER
648OBJS += ../src/wps/wps_er.o
649OBJS += ../src/wps/wps_er_ssdp.o
650endif
651
652ifdef CONFIG_WPS_UPNP
653CFLAGS += -DCONFIG_WPS_UPNP
654OBJS += ../src/wps/wps_upnp.o
655OBJS += ../src/wps/wps_upnp_ssdp.o
656OBJS += ../src/wps/wps_upnp_web.o
657OBJS += ../src/wps/wps_upnp_event.o
658OBJS += ../src/wps/wps_upnp_ap.o
659OBJS += ../src/wps/upnp_xml.o
660OBJS += ../src/wps/httpread.o
661OBJS += ../src/wps/http_client.o
662OBJS += ../src/wps/http_server.o
663endif
664
665ifdef CONFIG_WPS_STRICT
666CFLAGS += -DCONFIG_WPS_STRICT
667OBJS += ../src/wps/wps_validate.o
668endif
669
670ifdef CONFIG_WPS_TESTING
671CFLAGS += -DCONFIG_WPS_TESTING
672endif
673
674ifdef CONFIG_WPS_REG_DISABLE_OPEN
675CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN
676endif
677
678endif
679
680ifdef CONFIG_EAP_IKEV2
681# EAP-IKEv2
682ifeq ($(CONFIG_EAP_IKEV2), dyn)
683CFLAGS += -DEAP_IKEV2_DYNAMIC
684EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o
685EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
686else
687CFLAGS += -DEAP_IKEV2
688OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o
689OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
690OBJS_h += ../src/eap_server/eap_server_ikev2.o
691OBJS_h += ../src/eap_server/ikev2.o
692endif
693CONFIG_IEEE8021X_EAPOL=y
694NEED_DH_GROUPS=y
695NEED_DH_GROUPS_ALL=y
696NEED_MODEXP=y
697NEED_CIPHER=y
698endif
699
700ifdef CONFIG_EAP_VENDOR_TEST
701ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn)
702CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC
703EAPDYN += ../src/eap_peer/eap_vendor_test.so
704else
705CFLAGS += -DEAP_VENDOR_TEST
706OBJS += ../src/eap_peer/eap_vendor_test.o
707OBJS_h += ../src/eap_server/eap_server_vendor_test.o
708endif
709CONFIG_IEEE8021X_EAPOL=y
710endif
711
712ifdef CONFIG_EAP_TNC
713# EAP-TNC
714CFLAGS += -DEAP_TNC
715OBJS += ../src/eap_peer/eap_tnc.o
716OBJS += ../src/eap_peer/tncc.o
717OBJS_h += ../src/eap_server/eap_server_tnc.o
718OBJS_h += ../src/eap_server/tncs.o
719NEED_BASE64=y
720ifndef CONFIG_NATIVE_WINDOWS
721ifndef CONFIG_DRIVER_BSD
722LIBS += -ldl
723endif
724endif
725endif
726
727ifdef CONFIG_IEEE8021X_EAPOL
728# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication)
729CFLAGS += -DIEEE8021X_EAPOL
730OBJS += ../src/eapol_supp/eapol_supp_sm.o
731OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o
732NEED_EAP_COMMON=y
733ifdef CONFIG_DYNAMIC_EAP_METHODS
734CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
735LIBS += -ldl -rdynamic
736endif
737endif
738
739ifdef CONFIG_AP
740NEED_80211_COMMON=y
741NEED_EAP_COMMON=y
742NEED_RSN_AUTHENTICATOR=y
743CFLAGS += -DCONFIG_AP
744OBJS += ap.o
745CFLAGS += -DCONFIG_NO_RADIUS
746CFLAGS += -DCONFIG_NO_ACCOUNTING
747CFLAGS += -DCONFIG_NO_VLAN
748OBJS += ../src/ap/hostapd.o
749OBJS += ../src/ap/wpa_auth_glue.o
750OBJS += ../src/ap/utils.o
751OBJS += ../src/ap/authsrv.o
752OBJS += ../src/ap/ap_config.o
753OBJS += ../src/utils/ip_addr.o
754OBJS += ../src/ap/sta_info.o
755OBJS += ../src/ap/tkip_countermeasures.o
756OBJS += ../src/ap/ap_mlme.o
757OBJS += ../src/ap/ieee802_1x.o
758OBJS += ../src/eapol_auth/eapol_auth_sm.o
759OBJS += ../src/ap/ieee802_11_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800760OBJS += ../src/ap/ieee802_11_shared.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700761OBJS += ../src/ap/drv_callbacks.o
762OBJS += ../src/ap/ap_drv_ops.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800763OBJS += ../src/ap/beacon.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800764OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700765ifdef CONFIG_IEEE80211N
766OBJS += ../src/ap/ieee802_11_ht.o
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700767ifdef CONFIG_IEEE80211AC
768OBJS += ../src/ap/ieee802_11_vht.o
769endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700770endif
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800771ifdef CONFIG_WNM
772OBJS += ../src/ap/wnm_ap.o
773endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700774ifdef CONFIG_CTRL_IFACE
775OBJS += ../src/ap/ctrl_iface_ap.o
776endif
777
778CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
779OBJS += ../src/eap_server/eap_server.o
780OBJS += ../src/eap_server/eap_server_identity.o
781OBJS += ../src/eap_server/eap_server_methods.o
782
783ifdef CONFIG_IEEE80211N
784CFLAGS += -DCONFIG_IEEE80211N
Dmitry Shmidt68d0e3e2013-10-28 17:59:21 -0700785ifdef CONFIG_IEEE80211AC
786CFLAGS += -DCONFIG_IEEE80211AC
787endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700788endif
789
790ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700791OBJS += ../src/ap/wmm.o
792OBJS += ../src/ap/ap_list.o
793OBJS += ../src/ap/ieee802_11.o
794OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700795OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700796CFLAGS += -DNEED_AP_MLME
797endif
798ifdef CONFIG_WPS
799CFLAGS += -DEAP_SERVER_WSC
800OBJS += ../src/ap/wps_hostapd.o
801OBJS += ../src/eap_server/eap_server_wsc.o
802endif
Dmitry Shmidt04949592012-07-19 12:16:46 -0700803ifdef CONFIG_INTERWORKING
804OBJS += ../src/ap/gas_serv.o
805endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700806ifdef CONFIG_HS20
807OBJS += ../src/ap/hs20.o
808endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700809endif
810
811ifdef NEED_RSN_AUTHENTICATOR
812CFLAGS += -DCONFIG_NO_RADIUS
813NEED_AES_WRAP=y
814OBJS += ../src/ap/wpa_auth.o
815OBJS += ../src/ap/wpa_auth_ie.o
816OBJS += ../src/ap/pmksa_cache_auth.o
817ifdef CONFIG_IEEE80211R
818OBJS += ../src/ap/wpa_auth_ft.o
819endif
820ifdef CONFIG_PEERKEY
821OBJS += ../src/ap/peerkey_auth.o
822endif
823endif
824
825ifdef CONFIG_EAP_SERVER
826CFLAGS += -DEAP_SERVER
827OBJS_h += ../src/eap_server/eap_server.o
828OBJS_h += ../src/eap_server/eap_server_identity.o
829OBJS_h += ../src/eap_server/eap_server_methods.o
830endif
831
832ifdef CONFIG_RADIUS_CLIENT
833OBJS_h += ../src/utils/ip_addr.o
834OBJS_h += ../src/radius/radius.o
835OBJS_h += ../src/radius/radius_client.o
836endif
837
838ifdef CONFIG_AUTHENTICATOR
839OBJS_h += ../src/eapol_auth/eapol_auth_sm.o
840OBJS_h += ../src/ap/ieee802_1x.o
841endif
842
843ifdef CONFIG_WPA_AUTHENTICATOR
844OBJS_h += ../src/ap/wpa_auth.o
845OBJS_h += ../src/ap/wpa_auth_ie.o
846OBJS_h += ../src/ap/pmksa_cache_auth.o
847ifdef CONFIG_IEEE80211R
848OBJS_h += ../src/ap/wpa_auth_ft.o
849endif
850ifdef CONFIG_PEERKEY
851OBJS_h += ../src/ap/peerkey_auth.o
852endif
853endif
854
855ifdef CONFIG_PCSC
856# PC/SC interface for smartcards (USIM, GSM SIM)
857CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
858OBJS += ../src/utils/pcsc_funcs.o
859# -lpthread may not be needed depending on how pcsc-lite was configured
860ifdef CONFIG_NATIVE_WINDOWS
861#Once MinGW gets support for WinScard, -lwinscard could be used instead of the
862#dynamic symbol loading that is now used in pcsc_funcs.c
863#LIBS += -lwinscard
864else
865LIBS += -lpcsclite -lpthread
866endif
867endif
868
869ifdef CONFIG_SIM_SIMULATOR
870CFLAGS += -DCONFIG_SIM_SIMULATOR
871NEED_MILENAGE=y
872endif
873
874ifdef CONFIG_USIM_SIMULATOR
875CFLAGS += -DCONFIG_USIM_SIMULATOR
876NEED_MILENAGE=y
877endif
878
879ifdef NEED_MILENAGE
880OBJS += ../src/crypto/milenage.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800881NEED_AES_ENCBLOCK=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700882endif
883
884ifdef CONFIG_PKCS12
885CFLAGS += -DPKCS12_FUNCS
886endif
887
888ifdef CONFIG_SMARTCARD
889CFLAGS += -DCONFIG_SMARTCARD
890endif
891
892ifdef MS_FUNCS
893OBJS += ../src/crypto/ms_funcs.o
894NEED_DES=y
895NEED_MD4=y
896endif
897
898ifdef CHAP
899OBJS += ../src/eap_common/chap.o
900endif
901
902ifdef TLS_FUNCS
903NEED_DES=y
904# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST)
905OBJS += ../src/eap_peer/eap_tls_common.o
906OBJS_h += ../src/eap_server/eap_server_tls_common.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700907ifndef CONFIG_FIPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700908NEED_TLS_PRF=y
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800909NEED_SHA1=y
910NEED_MD5=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700911endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700912endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700913
914ifndef CONFIG_TLS
915CONFIG_TLS=openssl
916endif
917
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800918ifdef CONFIG_TLSV11
919CFLAGS += -DCONFIG_TLSV11
920endif
921
922ifdef CONFIG_TLSV12
923CFLAGS += -DCONFIG_TLSV12
924NEED_SHA256=y
925endif
926
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700927ifeq ($(CONFIG_TLS), openssl)
928ifdef TLS_FUNCS
929CFLAGS += -DEAP_TLS_OPENSSL
930OBJS += ../src/crypto/tls_openssl.o
931LIBS += -lssl
932endif
933OBJS += ../src/crypto/crypto_openssl.o
934OBJS_p += ../src/crypto/crypto_openssl.o
935ifdef NEED_FIPS186_2_PRF
936OBJS += ../src/crypto/fips_prf_openssl.o
937endif
938LIBS += -lcrypto
939LIBS_p += -lcrypto
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700940ifdef CONFIG_TLS_ADD_DL
941LIBS += -ldl
942LIBS_p += -ldl
943endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700944endif
945
946ifeq ($(CONFIG_TLS), gnutls)
947ifdef TLS_FUNCS
948OBJS += ../src/crypto/tls_gnutls.o
949LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700950endif
951OBJS += ../src/crypto/crypto_gnutls.o
952OBJS_p += ../src/crypto/crypto_gnutls.o
953ifdef NEED_FIPS186_2_PRF
954OBJS += ../src/crypto/fips_prf_gnutls.o
955endif
956LIBS += -lgcrypt
957LIBS_p += -lgcrypt
958CONFIG_INTERNAL_SHA256=y
959CONFIG_INTERNAL_RC4=y
960CONFIG_INTERNAL_DH_GROUP5=y
961endif
962
963ifeq ($(CONFIG_TLS), schannel)
964ifdef TLS_FUNCS
965OBJS += ../src/crypto/tls_schannel.o
966endif
967OBJS += ../src/crypto/crypto_cryptoapi.o
968OBJS_p += ../src/crypto/crypto_cryptoapi.o
969ifdef NEED_FIPS186_2_PRF
970OBJS += ../src/crypto/fips_prf_cryptoapi.o
971endif
972CONFIG_INTERNAL_SHA256=y
973CONFIG_INTERNAL_RC4=y
974CONFIG_INTERNAL_DH_GROUP5=y
975endif
976
977ifeq ($(CONFIG_TLS), nss)
978ifdef TLS_FUNCS
979OBJS += ../src/crypto/tls_nss.o
980LIBS += -lssl3
981endif
982OBJS += ../src/crypto/crypto_nss.o
983OBJS_p += ../src/crypto/crypto_nss.o
984ifdef NEED_FIPS186_2_PRF
985OBJS += ../src/crypto/fips_prf_nss.o
986endif
987LIBS += -lnss3
988LIBS_p += -lnss3
989CONFIG_INTERNAL_MD4=y
990CONFIG_INTERNAL_DH_GROUP5=y
991endif
992
993ifeq ($(CONFIG_TLS), internal)
994ifndef CONFIG_CRYPTO
995CONFIG_CRYPTO=internal
996endif
997ifdef TLS_FUNCS
998OBJS += ../src/crypto/crypto_internal-rsa.o
999OBJS += ../src/crypto/tls_internal.o
1000OBJS += ../src/tls/tlsv1_common.o
1001OBJS += ../src/tls/tlsv1_record.o
1002OBJS += ../src/tls/tlsv1_cred.o
1003OBJS += ../src/tls/tlsv1_client.o
1004OBJS += ../src/tls/tlsv1_client_write.o
1005OBJS += ../src/tls/tlsv1_client_read.o
1006OBJS += ../src/tls/asn1.o
1007OBJS += ../src/tls/rsa.o
1008OBJS += ../src/tls/x509v3.o
1009OBJS += ../src/tls/pkcs1.o
1010OBJS += ../src/tls/pkcs5.o
1011OBJS += ../src/tls/pkcs8.o
1012NEED_SHA256=y
1013NEED_BASE64=y
1014NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001015ifdef CONFIG_TLSV12
1016NEED_TLS_PRF_SHA256=y
1017endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001018NEED_MODEXP=y
1019NEED_CIPHER=y
1020CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
1021endif
1022ifdef NEED_CIPHER
1023NEED_DES=y
1024OBJS += ../src/crypto/crypto_internal-cipher.o
1025endif
1026ifdef NEED_MODEXP
1027OBJS += ../src/crypto/crypto_internal-modexp.o
1028OBJS += ../src/tls/bignum.o
1029endif
1030ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1031OBJS += ../src/crypto/crypto_libtomcrypt.o
1032OBJS_p += ../src/crypto/crypto_libtomcrypt.o
1033LIBS += -ltomcrypt -ltfm
1034LIBS_p += -ltomcrypt -ltfm
1035CONFIG_INTERNAL_SHA256=y
1036CONFIG_INTERNAL_RC4=y
1037CONFIG_INTERNAL_DH_GROUP5=y
1038endif
1039ifeq ($(CONFIG_CRYPTO), internal)
1040OBJS += ../src/crypto/crypto_internal.o
1041OBJS_p += ../src/crypto/crypto_internal.o
1042NEED_AES_ENC=y
1043CFLAGS += -DCONFIG_CRYPTO_INTERNAL
1044ifdef CONFIG_INTERNAL_LIBTOMMATH
1045CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
1046ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
1047CFLAGS += -DLTM_FAST
1048endif
1049else
1050LIBS += -ltommath
1051LIBS_p += -ltommath
1052endif
1053CONFIG_INTERNAL_AES=y
1054CONFIG_INTERNAL_DES=y
1055CONFIG_INTERNAL_SHA1=y
1056CONFIG_INTERNAL_MD4=y
1057CONFIG_INTERNAL_MD5=y
1058CONFIG_INTERNAL_SHA256=y
1059CONFIG_INTERNAL_RC4=y
1060CONFIG_INTERNAL_DH_GROUP5=y
1061endif
1062ifeq ($(CONFIG_CRYPTO), cryptoapi)
1063OBJS += ../src/crypto/crypto_cryptoapi.o
1064OBJS_p += ../src/crypto/crypto_cryptoapi.o
1065CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
1066CONFIG_INTERNAL_SHA256=y
1067CONFIG_INTERNAL_RC4=y
1068endif
1069endif
1070
1071ifeq ($(CONFIG_TLS), none)
1072ifdef TLS_FUNCS
1073OBJS += ../src/crypto/tls_none.o
1074CFLAGS += -DEAP_TLS_NONE
1075CONFIG_INTERNAL_AES=y
1076CONFIG_INTERNAL_SHA1=y
1077CONFIG_INTERNAL_MD5=y
1078endif
1079OBJS += ../src/crypto/crypto_none.o
1080OBJS_p += ../src/crypto/crypto_none.o
1081CONFIG_INTERNAL_SHA256=y
1082CONFIG_INTERNAL_RC4=y
1083endif
1084
1085ifdef TLS_FUNCS
1086ifdef CONFIG_SMARTCARD
1087ifndef CONFIG_NATIVE_WINDOWS
1088ifneq ($(CONFIG_L2_PACKET), freebsd)
1089LIBS += -ldl
1090endif
1091endif
1092endif
1093endif
1094
1095ifndef TLS_FUNCS
1096OBJS += ../src/crypto/tls_none.o
1097ifeq ($(CONFIG_TLS), internal)
1098CONFIG_INTERNAL_AES=y
1099CONFIG_INTERNAL_SHA1=y
1100CONFIG_INTERNAL_MD5=y
1101CONFIG_INTERNAL_RC4=y
1102endif
1103endif
1104
1105AESOBJS = # none so far (see below)
1106ifdef CONFIG_INTERNAL_AES
1107AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o
1108endif
1109
1110AESOBJS += ../src/crypto/aes-unwrap.o
1111ifdef NEED_AES_EAX
1112AESOBJS += ../src/crypto/aes-eax.o
1113NEED_AES_CTR=y
1114endif
1115ifdef NEED_AES_CTR
1116AESOBJS += ../src/crypto/aes-ctr.o
1117endif
1118ifdef NEED_AES_ENCBLOCK
1119AESOBJS += ../src/crypto/aes-encblock.o
1120endif
1121ifdef NEED_AES_OMAC1
1122NEED_AES_ENC=y
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001123ifdef CONFIG_OPENSSL_CMAC
1124CFLAGS += -DCONFIG_OPENSSL_CMAC
1125else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001126AESOBJS += ../src/crypto/aes-omac1.o
1127endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001128endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001129ifdef NEED_AES_WRAP
1130NEED_AES_ENC=y
1131AESOBJS += ../src/crypto/aes-wrap.o
1132endif
1133ifdef NEED_AES_CBC
1134NEED_AES_ENC=y
1135AESOBJS += ../src/crypto/aes-cbc.o
1136endif
1137ifdef NEED_AES_ENC
1138ifdef CONFIG_INTERNAL_AES
1139AESOBJS += ../src/crypto/aes-internal-enc.o
1140endif
1141endif
1142ifdef NEED_AES
1143OBJS += $(AESOBJS)
1144endif
1145
1146ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001147ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001148SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001149endif
1150SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001151ifdef CONFIG_INTERNAL_SHA1
1152SHA1OBJS += ../src/crypto/sha1-internal.o
1153ifdef NEED_FIPS186_2_PRF
1154SHA1OBJS += ../src/crypto/fips_prf_internal.o
1155endif
1156endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001157ifdef CONFIG_NO_WPA_PASSPHRASE
1158CFLAGS += -DCONFIG_NO_PBKDF2
1159else
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001160ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001161SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
1162endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001163endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001164ifdef NEED_T_PRF
1165SHA1OBJS += ../src/crypto/sha1-tprf.o
1166endif
1167ifdef NEED_TLS_PRF
1168SHA1OBJS += ../src/crypto/sha1-tlsprf.o
1169endif
1170endif
1171
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001172ifndef CONFIG_FIPS
1173MD5OBJS += ../src/crypto/md5.o
1174endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001175ifdef NEED_MD5
1176ifdef CONFIG_INTERNAL_MD5
1177MD5OBJS += ../src/crypto/md5-internal.o
1178endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001179OBJS += $(MD5OBJS)
1180OBJS_p += $(MD5OBJS)
1181endif
1182
1183ifdef NEED_MD4
1184ifdef CONFIG_INTERNAL_MD4
1185OBJS += ../src/crypto/md4-internal.o
1186endif
1187endif
1188
1189DESOBJS = # none needed when not internal
1190ifdef NEED_DES
1191ifdef CONFIG_INTERNAL_DES
1192DESOBJS += ../src/crypto/des-internal.o
1193endif
1194endif
1195
1196ifdef NEED_RC4
1197ifdef CONFIG_INTERNAL_RC4
1198OBJS += ../src/crypto/rc4.o
1199endif
1200endif
1201
1202SHA256OBJS = # none by default
1203ifdef NEED_SHA256
1204CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001205ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001206SHA256OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001207endif
1208SHA256OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001209ifdef CONFIG_INTERNAL_SHA256
1210SHA256OBJS += ../src/crypto/sha256-internal.o
1211endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001212ifdef NEED_TLS_PRF_SHA256
1213SHA256OBJS += ../src/crypto/sha256-tlsprf.o
1214endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001215OBJS += $(SHA256OBJS)
1216endif
1217
1218ifdef NEED_DH_GROUPS
1219OBJS += ../src/crypto/dh_groups.o
1220endif
1221ifdef NEED_DH_GROUPS_ALL
1222CFLAGS += -DALL_DH_GROUPS
1223endif
1224ifdef CONFIG_INTERNAL_DH_GROUP5
1225ifdef NEED_DH_GROUPS
1226OBJS += ../src/crypto/dh_group5.o
1227endif
1228endif
1229
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001230ifdef NEED_ECC
1231CFLAGS += -DCONFIG_ECC
1232endif
1233
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001234ifdef CONFIG_NO_RANDOM_POOL
1235CFLAGS += -DCONFIG_NO_RANDOM_POOL
1236else
1237OBJS += ../src/crypto/random.o
1238endif
1239
1240ifdef CONFIG_CTRL_IFACE
1241ifeq ($(CONFIG_CTRL_IFACE), y)
1242ifdef CONFIG_NATIVE_WINDOWS
1243CONFIG_CTRL_IFACE=named_pipe
1244else
1245CONFIG_CTRL_IFACE=unix
1246endif
1247endif
1248CFLAGS += -DCONFIG_CTRL_IFACE
1249ifeq ($(CONFIG_CTRL_IFACE), unix)
1250CFLAGS += -DCONFIG_CTRL_IFACE_UNIX
1251endif
1252ifeq ($(CONFIG_CTRL_IFACE), udp)
1253CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1254endif
1255ifeq ($(CONFIG_CTRL_IFACE), named_pipe)
1256CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE
1257endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001258ifeq ($(CONFIG_CTRL_IFACE), udp-remote)
1259CONFIG_CTRL_IFACE=udp
1260CFLAGS += -DCONFIG_CTRL_IFACE_UDP
1261CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE
1262endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001263OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o
1264endif
1265
1266ifdef CONFIG_CTRL_IFACE_DBUS
1267DBUS=y
1268DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE
1269DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o
1270ifdef CONFIG_WPS
1271DBUS_OBJS += dbus/dbus_old_handlers_wps.o
1272endif
1273DBUS_OBJS += dbus/dbus_dict_helpers.o
1274ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001275DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001276endif
1277ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001278DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001279endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001280DBUS_CFLAGS += $(DBUS_INCLUDE)
1281endif
1282
1283ifdef CONFIG_CTRL_IFACE_DBUS_NEW
1284DBUS=y
1285DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW
1286DBUS_OBJS ?= dbus/dbus_dict_helpers.o
1287DBUS_OBJS += dbus/dbus_new_helpers.o
1288DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o
1289ifdef CONFIG_WPS
1290DBUS_OBJS += dbus/dbus_new_handlers_wps.o
1291endif
Jouni Malinen75ecf522011-06-27 15:19:46 -07001292ifdef CONFIG_P2P
1293DBUS_OBJS += dbus/dbus_new_handlers_p2p.o
1294endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001295ifndef DBUS_LIBS
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001296DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001297endif
1298ifndef DBUS_INCLUDE
Dmitry Shmidtc55524a2011-07-07 11:18:38 -07001299DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001300endif
1301ifdef CONFIG_CTRL_IFACE_DBUS_INTRO
1302DBUS_OBJS += dbus/dbus_new_introspect.o
1303DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO
1304endif
1305DBUS_CFLAGS += $(DBUS_INCLUDE)
1306endif
1307
1308ifdef DBUS
1309DBUS_CFLAGS += -DCONFIG_DBUS
1310DBUS_OBJS += dbus/dbus_common.o
1311endif
1312
1313OBJS += $(DBUS_OBJS)
1314CFLAGS += $(DBUS_CFLAGS)
1315LIBS += $(DBUS_LIBS)
1316
1317ifdef CONFIG_READLINE
1318OBJS_c += ../src/utils/edit_readline.o
1319LIBS_c += -lncurses -lreadline
1320else
1321ifdef CONFIG_WPA_CLI_EDIT
1322OBJS_c += ../src/utils/edit.o
1323else
1324OBJS_c += ../src/utils/edit_simple.o
1325endif
1326endif
1327
1328ifdef CONFIG_NATIVE_WINDOWS
1329CFLAGS += -DCONFIG_NATIVE_WINDOWS
1330LIBS += -lws2_32 -lgdi32 -lcrypt32
1331LIBS_c += -lws2_32
1332LIBS_p += -lws2_32 -lgdi32
1333ifeq ($(CONFIG_CRYPTO), cryptoapi)
1334LIBS_p += -lcrypt32
1335endif
1336endif
1337
1338ifdef CONFIG_NO_STDOUT_DEBUG
1339CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
1340ifndef CONFIG_CTRL_IFACE
1341CFLAGS += -DCONFIG_NO_WPA_MSG
1342endif
1343endif
1344
1345ifdef CONFIG_IPV6
1346# for eapol_test only
1347CFLAGS += -DCONFIG_IPV6
1348endif
1349
1350ifdef NEED_BASE64
1351OBJS += ../src/utils/base64.o
1352endif
1353
1354ifdef NEED_SME
1355NEED_80211_COMMON=y
1356OBJS += sme.o
1357CFLAGS += -DCONFIG_SME
1358endif
1359
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001360ifdef NEED_80211_COMMON
1361OBJS += ../src/common/ieee802_11_common.o
1362endif
1363
1364ifdef NEED_EAP_COMMON
1365OBJS += ../src/eap_common/eap_common.o
1366endif
1367
1368ifndef CONFIG_MAIN
1369CONFIG_MAIN=main
1370endif
1371
1372ifdef CONFIG_DEBUG_SYSLOG
1373CFLAGS += -DCONFIG_DEBUG_SYSLOG
1374ifdef CONFIG_DEBUG_SYSLOG_FACILITY
1375CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)"
1376endif
1377endif
1378
Dmitry Shmidt04949592012-07-19 12:16:46 -07001379ifdef CONFIG_DEBUG_LINUX_TRACING
1380CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
1381endif
1382
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001383ifdef CONFIG_DEBUG_FILE
1384CFLAGS += -DCONFIG_DEBUG_FILE
1385endif
1386
1387ifdef CONFIG_DELAYED_MIC_ERROR_REPORT
1388CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT
1389endif
1390
1391ifdef CONFIG_FIPS
1392CFLAGS += -DCONFIG_FIPS
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001393ifneq ($(CONFIG_TLS), openssl)
1394$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl)
1395endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001396endif
1397
1398OBJS += $(SHA1OBJS) $(DESOBJS)
1399
1400OBJS_p += $(SHA1OBJS)
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001401OBJS_p += $(SHA256OBJS)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001402
1403ifdef CONFIG_BGSCAN_SIMPLE
1404CFLAGS += -DCONFIG_BGSCAN_SIMPLE
1405OBJS += bgscan_simple.o
1406NEED_BGSCAN=y
1407endif
1408
1409ifdef CONFIG_BGSCAN_LEARN
1410CFLAGS += -DCONFIG_BGSCAN_LEARN
1411OBJS += bgscan_learn.o
1412NEED_BGSCAN=y
1413endif
1414
1415ifdef NEED_BGSCAN
1416CFLAGS += -DCONFIG_BGSCAN
1417OBJS += bgscan.o
1418endif
1419
Dmitry Shmidt04949592012-07-19 12:16:46 -07001420ifdef CONFIG_AUTOSCAN_EXPONENTIAL
1421CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL
1422OBJS += autoscan_exponential.o
1423NEED_AUTOSCAN=y
1424endif
1425
1426ifdef CONFIG_AUTOSCAN_PERIODIC
1427CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC
1428OBJS += autoscan_periodic.o
1429NEED_AUTOSCAN=y
1430endif
1431
1432ifdef NEED_AUTOSCAN
1433CFLAGS += -DCONFIG_AUTOSCAN
1434OBJS += autoscan.o
1435endif
1436
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001437ifdef CONFIG_EXT_PASSWORD_TEST
1438OBJS += ../src/utils/ext_password_test.o
1439CFLAGS += -DCONFIG_EXT_PASSWORD_TEST
1440NEED_EXT_PASSWORD=y
1441endif
1442
1443ifdef NEED_EXT_PASSWORD
1444OBJS += ../src/utils/ext_password.o
1445CFLAGS += -DCONFIG_EXT_PASSWORD
1446endif
1447
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001448ifdef NEED_GAS
1449OBJS += ../src/common/gas.o
1450OBJS += gas_query.o
1451CFLAGS += -DCONFIG_GAS
1452NEED_OFFCHANNEL=y
1453endif
1454
1455ifdef NEED_OFFCHANNEL
1456OBJS += offchannel.o
1457CFLAGS += -DCONFIG_OFFCHANNEL
1458endif
1459
1460OBJS += ../src/drivers/driver_common.o
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -08001461OBJS_priv += ../src/drivers/driver_common.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001462
1463OBJS_wpa_rm := ctrl_iface.o ctrl_iface_unix.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001464OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o
1465ifdef CONFIG_AUTHENTICATOR
1466OBJS_wpa += tests/link_test.o
1467endif
1468OBJS_wpa += $(OBJS_l2)
1469OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o
1470OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o
1471OBJS_t += ../src/radius/radius_client.o
1472OBJS_t += ../src/radius/radius.o
1473ifndef CONFIG_AP
1474OBJS_t += ../src/utils/ip_addr.o
1475endif
1476OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o
Dmitry Shmidt04949592012-07-19 12:16:46 -07001477
1478OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o
1479OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o
1480
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001481OBJS += $(CONFIG_MAIN).o
1482
1483ifdef CONFIG_PRIVSEP
1484OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o
1485OBJS_priv += $(OBJS_l2)
1486OBJS_priv += ../src/utils/os_$(CONFIG_OS).o
1487OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o
1488OBJS_priv += ../src/utils/common.o
1489OBJS_priv += ../src/utils/wpa_debug.o
1490OBJS_priv += ../src/utils/wpabuf.o
1491OBJS_priv += wpa_priv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001492ifdef CONFIG_DRIVER_NL80211
1493OBJS_priv += ../src/common/ieee802_11_common.o
1494endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001495ifdef CONFIG_DRIVER_TEST
1496OBJS_priv += $(SHA1OBJS)
1497OBJS_priv += $(MD5OBJS)
1498ifeq ($(CONFIG_TLS), openssl)
1499OBJS_priv += ../src/crypto/crypto_openssl.o
1500endif
1501ifeq ($(CONFIG_TLS), gnutls)
1502OBJS_priv += ../src/crypto/crypto_gnutls.o
1503endif
1504ifeq ($(CONFIG_TLS), nss)
1505OBJS_priv += ../src/crypto/crypto_nss.o
1506endif
1507ifeq ($(CONFIG_TLS), internal)
1508ifeq ($(CONFIG_CRYPTO), libtomcrypt)
1509OBJS_priv += ../src/crypto/crypto_libtomcrypt.o
1510else
1511OBJS_priv += ../src/crypto/crypto_internal.o
1512endif
1513endif
1514endif # CONFIG_DRIVER_TEST
1515OBJS += ../src/l2_packet/l2_packet_privsep.o
1516OBJS += ../src/drivers/driver_privsep.o
1517EXTRA_progs += wpa_priv
1518else
1519OBJS += $(OBJS_d) ../src/drivers/drivers.o
1520OBJS += $(OBJS_l2)
1521endif
1522
1523ifdef CONFIG_NDIS_EVENTS_INTEGRATED
1524CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED
1525OBJS += ../src/drivers/ndis_events.o
1526EXTRALIBS += -loleaut32 -lole32 -luuid
1527ifdef PLATFORMSDKLIB
1528EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib
1529else
1530EXTRALIBS += WbemUuid.Lib
1531endif
1532endif
1533
1534ifndef LDO
1535LDO=$(CC)
1536endif
1537
1538Q=@
1539E=echo
1540ifeq ($(V), 1)
1541Q=
1542E=true
1543endif
1544
1545dynamic_eap_methods: $(EAPDYN)
1546
1547../src/drivers/build.wpa_supplicant:
1548 @if [ -f ../src/drivers/build.hostapd ]; then \
1549 $(MAKE) -C ../src/drivers clean; \
1550 fi
1551 @touch ../src/drivers/build.wpa_supplicant
1552
1553BCHECK=../src/drivers/build.wpa_supplicant
1554
1555wpa_priv: $(BCHECK) $(OBJS_priv)
1556 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS)
1557 @$(E) " LD " $@
1558
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001559$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config
1560
1561wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001562 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
1563 @$(E) " LD " $@
1564
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001565eapol_test: $(OBJS_t)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001566 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS)
1567 @$(E) " LD " $@
1568
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001569preauth_test: $(OBJS_t2)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001570 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS)
1571 @$(E) " LD " $@
1572
1573wpa_passphrase: $(OBJS_p)
1574 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p)
1575 @$(E) " LD " $@
1576
1577wpa_cli: $(OBJS_c)
1578 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
1579 @$(E) " LD " $@
1580
1581link_test: $(OBJS) $(OBJS_h) tests/link_test.o
1582 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS)
1583 @$(E) " LD " $@
1584
1585test_wpa: $(OBJS_wpa) $(OBJS_h)
1586 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS)
1587 @$(E) " LD " $@
1588
Dmitry Shmidt04949592012-07-19 12:16:46 -07001589nfc_pw_token: $(OBJS_nfc)
1590 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS)
1591 @$(E) " LD " $@
1592
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001593win_if_list: win_if_list.c
1594 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w)
1595 @$(E) " LD " $@
1596
1597eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c
1598 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1599 -Deap_peer_psk_register=eap_peer_method_dynamic_init
1600
1601eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c
1602 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1603 -Deap_peer_pax_register=eap_peer_method_dynamic_init
1604
1605eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c
1606 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1607 -Deap_peer_sake_register=eap_peer_method_dynamic_init
1608
1609eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c
1610 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1611 -Deap_peer_wsc_register=eap_peer_method_dynamic_init
1612
1613eap_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
1614 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1615 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init
1616
Dmitry Shmidt34af3062013-07-11 10:46:32 -07001617eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c
1618 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \
1619 -Deap_peer_eke_register=eap_peer_method_dynamic_init
1620
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001621%.so: %.c
1622 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \
1623 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init
1624
1625%.o: %.c
1626 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
1627 @$(E) " CC " $<
1628
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001629%.service: %.service.in
1630 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1631
Dmitry Shmidtc5ec7f52012-03-06 16:33:24 -08001632%@.service: %.service.arg.in
1633 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
1634
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001635wpa_supplicant.exe: wpa_supplicant
1636 mv -f $< $@
1637wpa_cli.exe: wpa_cli
1638 mv -f $< $@
1639wpa_passphrase.exe: wpa_passphrase
1640 mv -f $< $@
1641win_if_list.exe: win_if_list
1642 mv -f $< $@
1643eapol_test.exe: eapol_test
1644 mv -f $< $@
1645
1646WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe
1647
1648windows-bin: $(WINALL)
1649 $(STRIP) $(WINALL)
1650
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -08001651wpa_gui:
1652 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement"
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001653
1654wpa_gui-qt4/Makefile:
1655 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro
1656
1657wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts
1658 lrelease wpa_gui-qt4/wpa_gui.pro
1659
1660wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm
1661 $(MAKE) -C wpa_gui-qt4
1662
1663TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \
1664 ../src/utils/common.o ../src/utils/os_unix.o \
1665 ../src/utils/wpa_debug.o $(AESOBJS) \
1666 tests/test_eap_sim_common.o
1667test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS)
1668 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS)
1669 ./test-eap_sim_common
1670 rm test-eap_sim_common
1671
1672tests: test-eap_sim_common
1673
Dmitry Shmidt61d9df32012-08-29 16:22:06 -07001674FIPSDIR=/usr/local/ssl/fips-2.0
1675FIPSLD=$(FIPSDIR)/bin/fipsld
1676fips:
1677 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)"
1678
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001679clean:
1680 $(MAKE) -C ../src clean
1681 $(MAKE) -C dbus clean
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001682 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov
1683 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001684 rm -f wpa_priv
Dmitry Shmidt04949592012-07-19 12:16:46 -07001685 rm -f nfc_pw_token
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001686
1687-include $(OBJS:%.o=%.d)