blob: fa5435d973173bfb028a37e15920645594f97673 [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
Dmitry Shmidt216983b2015-02-06 10:50:36 -08009CFLAGS += $(EXTRA_CFLAGS)
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080010CFLAGS += -I$(abspath ../src)
11CFLAGS += -I$(abspath ../src/utils)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070012
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -080013export BINDIR ?= /usr/local/bin/
14
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070015# Uncomment following line and set the path to your kernel tree include
16# directory if your C library does not include all header files.
17# CFLAGS += -DUSE_KERNEL_HEADERS -I/usr/src/linux/include
18
19-include .config
20
Dmitry Shmidtd80a4012015-11-05 16:35:40 -080021ifndef CONFIG_NO_GITVER
22# Add VERSION_STR postfix for builds from a git repository
23ifeq ($(wildcard ../.git),../.git)
24GITVER := $(shell git describe --dirty=+)
25ifneq ($(GITVER),)
26CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\"
27endif
28endif
29endif
30
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -080031ifdef CONFIG_TESTING_OPTIONS
32CFLAGS += -DCONFIG_TESTING_OPTIONS
33CONFIG_WPS_TESTING=y
34endif
35
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070036ifndef CONFIG_OS
37ifdef CONFIG_NATIVE_WINDOWS
38CONFIG_OS=win32
39else
40CONFIG_OS=unix
41endif
42endif
43
44ifeq ($(CONFIG_OS), internal)
45CFLAGS += -DOS_NO_C_LIB_DEFINES
46endif
47
48ifdef CONFIG_NATIVE_WINDOWS
49CFLAGS += -DCONFIG_NATIVE_WINDOWS
50LIBS += -lws2_32
51endif
52
53OBJS += main.o
54OBJS += config_file.o
55
56OBJS += ../src/ap/hostapd.o
57OBJS += ../src/ap/wpa_auth_glue.o
58OBJS += ../src/ap/drv_callbacks.o
59OBJS += ../src/ap/ap_drv_ops.o
60OBJS += ../src/ap/utils.o
61OBJS += ../src/ap/authsrv.o
62OBJS += ../src/ap/ieee802_1x.o
63OBJS += ../src/ap/ap_config.o
Dmitry Shmidtd5e49232012-12-03 15:08:10 -080064OBJS += ../src/ap/eap_user_db.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070065OBJS += ../src/ap/ieee802_11_auth.o
66OBJS += ../src/ap/sta_info.o
67OBJS += ../src/ap/wpa_auth.o
68OBJS += ../src/ap/tkip_countermeasures.o
69OBJS += ../src/ap/ap_mlme.o
70OBJS += ../src/ap/wpa_auth_ie.o
71OBJS += ../src/ap/preauth_auth.o
72OBJS += ../src/ap/pmksa_cache_auth.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080073OBJS += ../src/ap/ieee802_11_shared.o
74OBJS += ../src/ap/beacon.o
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -080075OBJS += ../src/ap/bss_load.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -080076
77OBJS_c = hostapd_cli.o ../src/common/wpa_ctrl.o ../src/utils/os_$(CONFIG_OS).o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070078
79NEED_RC4=y
80NEED_AES=y
81NEED_MD5=y
82NEED_SHA1=y
83
84OBJS += ../src/drivers/drivers.o
85CFLAGS += -DHOSTAPD
86
Dmitry Shmidt7f93d6f2014-02-21 11:22:49 -080087ifdef CONFIG_MODULE_TESTS
88CFLAGS += -DCONFIG_MODULE_TESTS
89OBJS += hapd_module_tests.o
90endif
91
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -070092ifdef CONFIG_WPA_TRACE
93CFLAGS += -DWPA_TRACE
94OBJS += ../src/utils/trace.o
95HOBJS += ../src/utils/trace.o
96LDFLAGS += -rdynamic
97CFLAGS += -funwind-tables
98ifdef CONFIG_WPA_TRACE_BFD
Dmitry Shmidtec58b162014-02-19 12:44:18 -080099CFLAGS += -DPACKAGE="hostapd" -DWPA_TRACE_BFD
Dmitry Shmidt13ca8d82014-02-20 10:18:40 -0800100LIBS += -lbfd -ldl -liberty -lz
101LIBS_c += -lbfd -ldl -liberty -lz
102LIBS_h += -lbfd -ldl -liberty -lz
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700103endif
104endif
105
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800106ifndef CONFIG_ELOOP
107CONFIG_ELOOP=eloop
108endif
109OBJS += ../src/utils/$(CONFIG_ELOOP).o
110OBJS_c += ../src/utils/$(CONFIG_ELOOP).o
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800111
112ifeq ($(CONFIG_ELOOP), eloop)
113# Using glibc < 2.17 requires -lrt for clock_gettime()
114LIBS += -lrt
115LIBS_c += -lrt
116LIBS_h += -lrt
Dmitry Shmidtbd14a572014-02-18 10:33:49 -0800117LIBS_n += -lrt
Dmitry Shmidtfa3fc4a2013-11-21 13:34:38 -0800118endif
119
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800120ifdef CONFIG_ELOOP_POLL
121CFLAGS += -DCONFIG_ELOOP_POLL
122endif
123
124ifdef CONFIG_ELOOP_EPOLL
125CFLAGS += -DCONFIG_ELOOP_EPOLL
126endif
127
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700128OBJS += ../src/utils/common.o
Dmitry Shmidta3dc3092015-06-23 11:21:28 -0700129OBJS_c += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700130OBJS += ../src/utils/wpa_debug.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800131OBJS_c += ../src/utils/wpa_debug.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700132OBJS += ../src/utils/wpabuf.o
133OBJS += ../src/utils/os_$(CONFIG_OS).o
134OBJS += ../src/utils/ip_addr.o
135
136OBJS += ../src/common/ieee802_11_common.o
137OBJS += ../src/common/wpa_common.o
Dmitry Shmidtff787d52015-01-12 13:01:47 -0800138OBJS += ../src/common/hw_features_common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700139
140OBJS += ../src/eapol_auth/eapol_auth_sm.o
141
142
Dmitry Shmidt01904cf2013-12-05 11:08:35 -0800143ifdef CONFIG_CODE_COVERAGE
144CFLAGS += -O0 -fprofile-arcs -ftest-coverage
145LIBS += -lgcov
146LIBS_c += -lgcov
147LIBS_h += -lgcov
148LIBS_n += -lgcov
149endif
150
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700151ifndef CONFIG_NO_DUMP_STATE
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800152# define HOSTAPD_DUMP_STATE to include support for dumping internal state
153# through control interface commands (undefine it, if you want to save in
154# binary size)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700155CFLAGS += -DHOSTAPD_DUMP_STATE
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700156OBJS += ../src/eapol_auth/eapol_auth_dump.o
157endif
158
159ifdef CONFIG_NO_RADIUS
160CFLAGS += -DCONFIG_NO_RADIUS
161CONFIG_NO_ACCOUNTING=y
162else
163OBJS += ../src/radius/radius.o
164OBJS += ../src/radius/radius_client.o
Dmitry Shmidt04949592012-07-19 12:16:46 -0700165OBJS += ../src/radius/radius_das.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700166endif
167
168ifdef CONFIG_NO_ACCOUNTING
169CFLAGS += -DCONFIG_NO_ACCOUNTING
170else
171OBJS += ../src/ap/accounting.o
172endif
173
174ifdef CONFIG_NO_VLAN
175CFLAGS += -DCONFIG_NO_VLAN
176else
177OBJS += ../src/ap/vlan_init.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700178ifdef CONFIG_VLAN_NETLINK
179ifdef CONFIG_FULL_DYNAMIC_VLAN
180OBJS += ../src/ap/vlan_util.o
181endif
182CFLAGS += -DCONFIG_VLAN_NETLINK
183endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700184endif
185
186ifdef CONFIG_NO_CTRL_IFACE
187CFLAGS += -DCONFIG_NO_CTRL_IFACE
188else
189OBJS += ctrl_iface.o
190OBJS += ../src/ap/ctrl_iface_ap.o
191endif
192
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700193CFLAGS += -DCONFIG_CTRL_IFACE -DCONFIG_CTRL_IFACE_UNIX
194
195ifdef CONFIG_IAPP
196CFLAGS += -DCONFIG_IAPP
197OBJS += ../src/ap/iapp.o
198endif
199
200ifdef CONFIG_RSN_PREAUTH
201CFLAGS += -DCONFIG_RSN_PREAUTH
202CONFIG_L2_PACKET=y
203endif
204
205ifdef CONFIG_PEERKEY
206CFLAGS += -DCONFIG_PEERKEY
207OBJS += ../src/ap/peerkey_auth.o
208endif
209
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800210ifdef CONFIG_HS20
211NEED_AES_OMAC1=y
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800212CONFIG_PROXYARP=y
213endif
214
215ifdef CONFIG_PROXYARP
216CONFIG_L2_PACKET=y
217endif
218
219ifdef CONFIG_SUITEB
220CFLAGS += -DCONFIG_SUITEB
221NEED_SHA256=y
222NEED_AES_OMAC1=y
Dmitry Shmidtf21452a2014-02-26 10:55:25 -0800223endif
224
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800225ifdef CONFIG_SUITEB192
226CFLAGS += -DCONFIG_SUITEB192
227NEED_SHA384=y
228endif
229
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700230ifdef CONFIG_IEEE80211W
231CFLAGS += -DCONFIG_IEEE80211W
232NEED_SHA256=y
233NEED_AES_OMAC1=y
234endif
235
236ifdef CONFIG_IEEE80211R
237CFLAGS += -DCONFIG_IEEE80211R
238OBJS += ../src/ap/wpa_auth_ft.o
239NEED_SHA256=y
240NEED_AES_OMAC1=y
241NEED_AES_UNWRAP=y
242endif
243
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800244ifdef CONFIG_SAE
245CFLAGS += -DCONFIG_SAE
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800246OBJS += ../src/common/sae.o
247NEED_ECC=y
248NEED_DH_GROUPS=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700249NEED_AP_MLME=y
Dmitry Shmidtd5e49232012-12-03 15:08:10 -0800250endif
251
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800252ifdef CONFIG_WNM
253CFLAGS += -DCONFIG_WNM
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700254OBJS += ../src/ap/wnm_ap.o
255endif
256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700257ifdef CONFIG_IEEE80211N
258CFLAGS += -DCONFIG_IEEE80211N
259endif
260
Dmitry Shmidt04949592012-07-19 12:16:46 -0700261ifdef CONFIG_IEEE80211AC
262CFLAGS += -DCONFIG_IEEE80211AC
263endif
264
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700265include ../src/drivers/drivers.mak
266OBJS += $(DRV_AP_OBJS)
267CFLAGS += $(DRV_AP_CFLAGS)
268LDFLAGS += $(DRV_AP_LDFLAGS)
269LIBS += $(DRV_AP_LIBS)
270
271ifdef CONFIG_L2_PACKET
272ifdef CONFIG_DNET_PCAP
273ifdef CONFIG_L2_FREEBSD
274LIBS += -lpcap
275OBJS += ../src/l2_packet/l2_packet_freebsd.o
276else
277LIBS += -ldnet -lpcap
278OBJS += ../src/l2_packet/l2_packet_pcap.o
279endif
280else
281OBJS += ../src/l2_packet/l2_packet_linux.o
282endif
283else
284OBJS += ../src/l2_packet/l2_packet_none.o
285endif
286
287
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800288ifdef CONFIG_ERP
289CFLAGS += -DCONFIG_ERP
290NEED_SHA256=y
291NEED_HMAC_SHA256_KDF=y
292endif
293
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700294ifdef CONFIG_EAP_MD5
295CFLAGS += -DEAP_SERVER_MD5
296OBJS += ../src/eap_server/eap_server_md5.o
297CHAP=y
298endif
299
300ifdef CONFIG_EAP_TLS
301CFLAGS += -DEAP_SERVER_TLS
302OBJS += ../src/eap_server/eap_server_tls.o
303TLS_FUNCS=y
304endif
305
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700306ifdef CONFIG_EAP_UNAUTH_TLS
307CFLAGS += -DEAP_SERVER_UNAUTH_TLS
308ifndef CONFIG_EAP_TLS
309OBJS += ../src/eap_server/eap_server_tls.o
310TLS_FUNCS=y
311endif
312endif
313
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700314ifdef CONFIG_EAP_PEAP
315CFLAGS += -DEAP_SERVER_PEAP
316OBJS += ../src/eap_server/eap_server_peap.o
317OBJS += ../src/eap_common/eap_peap_common.o
318TLS_FUNCS=y
319CONFIG_EAP_MSCHAPV2=y
320endif
321
322ifdef CONFIG_EAP_TTLS
323CFLAGS += -DEAP_SERVER_TTLS
324OBJS += ../src/eap_server/eap_server_ttls.o
325TLS_FUNCS=y
326CHAP=y
327endif
328
329ifdef CONFIG_EAP_MSCHAPV2
330CFLAGS += -DEAP_SERVER_MSCHAPV2
331OBJS += ../src/eap_server/eap_server_mschapv2.o
332MS_FUNCS=y
333endif
334
335ifdef CONFIG_EAP_GTC
336CFLAGS += -DEAP_SERVER_GTC
337OBJS += ../src/eap_server/eap_server_gtc.o
338endif
339
340ifdef CONFIG_EAP_SIM
341CFLAGS += -DEAP_SERVER_SIM
342OBJS += ../src/eap_server/eap_server_sim.o
343CONFIG_EAP_SIM_COMMON=y
344NEED_AES_CBC=y
345endif
346
347ifdef CONFIG_EAP_AKA
348CFLAGS += -DEAP_SERVER_AKA
349OBJS += ../src/eap_server/eap_server_aka.o
350CONFIG_EAP_SIM_COMMON=y
351NEED_SHA256=y
352NEED_AES_CBC=y
353endif
354
355ifdef CONFIG_EAP_AKA_PRIME
356CFLAGS += -DEAP_SERVER_AKA_PRIME
357endif
358
359ifdef CONFIG_EAP_SIM_COMMON
360OBJS += ../src/eap_common/eap_sim_common.o
361# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be
362# replaced with another file implementating the interface specified in
363# eap_sim_db.h.
364OBJS += ../src/eap_server/eap_sim_db.o
365NEED_FIPS186_2_PRF=y
366endif
367
368ifdef CONFIG_EAP_PAX
369CFLAGS += -DEAP_SERVER_PAX
370OBJS += ../src/eap_server/eap_server_pax.o ../src/eap_common/eap_pax_common.o
371endif
372
373ifdef CONFIG_EAP_PSK
374CFLAGS += -DEAP_SERVER_PSK
375OBJS += ../src/eap_server/eap_server_psk.o ../src/eap_common/eap_psk_common.o
376NEED_AES_OMAC1=y
377NEED_AES_ENCBLOCK=y
378NEED_AES_EAX=y
379endif
380
381ifdef CONFIG_EAP_SAKE
382CFLAGS += -DEAP_SERVER_SAKE
383OBJS += ../src/eap_server/eap_server_sake.o ../src/eap_common/eap_sake_common.o
384endif
385
386ifdef CONFIG_EAP_GPSK
387CFLAGS += -DEAP_SERVER_GPSK
388OBJS += ../src/eap_server/eap_server_gpsk.o ../src/eap_common/eap_gpsk_common.o
389ifdef CONFIG_EAP_GPSK_SHA256
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800390CFLAGS += -DEAP_GPSK_SHA256
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700391endif
392NEED_SHA256=y
393NEED_AES_OMAC1=y
394endif
395
396ifdef CONFIG_EAP_PWD
397CFLAGS += -DEAP_SERVER_PWD
398OBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o
399NEED_SHA256=y
400endif
401
Dmitry Shmidt34af3062013-07-11 10:46:32 -0700402ifdef CONFIG_EAP_EKE
403CFLAGS += -DEAP_SERVER_EKE
404OBJS += ../src/eap_server/eap_server_eke.o ../src/eap_common/eap_eke_common.o
405NEED_DH_GROUPS=y
406NEED_DH_GROUPS_ALL=y
407endif
408
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700409ifdef CONFIG_EAP_VENDOR_TEST
410CFLAGS += -DEAP_SERVER_VENDOR_TEST
411OBJS += ../src/eap_server/eap_server_vendor_test.o
412endif
413
414ifdef CONFIG_EAP_FAST
415CFLAGS += -DEAP_SERVER_FAST
416OBJS += ../src/eap_server/eap_server_fast.o
417OBJS += ../src/eap_common/eap_fast_common.o
418TLS_FUNCS=y
419NEED_T_PRF=y
420NEED_AES_UNWRAP=y
421endif
422
423ifdef CONFIG_WPS
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700424CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC
425OBJS += ../src/utils/uuid.o
426OBJS += ../src/ap/wps_hostapd.o
427OBJS += ../src/eap_server/eap_server_wsc.o ../src/eap_common/eap_wsc_common.o
428OBJS += ../src/wps/wps.o
429OBJS += ../src/wps/wps_common.o
430OBJS += ../src/wps/wps_attr_parse.o
431OBJS += ../src/wps/wps_attr_build.o
432OBJS += ../src/wps/wps_attr_process.o
433OBJS += ../src/wps/wps_dev_attr.o
434OBJS += ../src/wps/wps_enrollee.o
435OBJS += ../src/wps/wps_registrar.o
436NEED_DH_GROUPS=y
437NEED_SHA256=y
438NEED_BASE64=y
439NEED_AES_CBC=y
440NEED_MODEXP=y
441CONFIG_EAP=y
442
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700443ifdef CONFIG_WPS_NFC
444CFLAGS += -DCONFIG_WPS_NFC
445OBJS += ../src/wps/ndef.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700446NEED_WPS_OOB=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700447endif
448
449ifdef NEED_WPS_OOB
450CFLAGS += -DCONFIG_WPS_OOB
451endif
452
453ifdef CONFIG_WPS_UPNP
454CFLAGS += -DCONFIG_WPS_UPNP
455OBJS += ../src/wps/wps_upnp.o
456OBJS += ../src/wps/wps_upnp_ssdp.o
457OBJS += ../src/wps/wps_upnp_web.o
458OBJS += ../src/wps/wps_upnp_event.o
459OBJS += ../src/wps/wps_upnp_ap.o
460OBJS += ../src/wps/upnp_xml.o
461OBJS += ../src/wps/httpread.o
462OBJS += ../src/wps/http_client.o
463OBJS += ../src/wps/http_server.o
464endif
465
466ifdef CONFIG_WPS_STRICT
467CFLAGS += -DCONFIG_WPS_STRICT
468OBJS += ../src/wps/wps_validate.o
469endif
470
471ifdef CONFIG_WPS_TESTING
472CFLAGS += -DCONFIG_WPS_TESTING
473endif
474
475endif
476
477ifdef CONFIG_EAP_IKEV2
478CFLAGS += -DEAP_SERVER_IKEV2
479OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o
480OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o
481NEED_DH_GROUPS=y
482NEED_DH_GROUPS_ALL=y
483NEED_MODEXP=y
484NEED_CIPHER=y
485endif
486
487ifdef CONFIG_EAP_TNC
488CFLAGS += -DEAP_SERVER_TNC
489OBJS += ../src/eap_server/eap_server_tnc.o
490OBJS += ../src/eap_server/tncs.o
491NEED_BASE64=y
492ifndef CONFIG_DRIVER_BSD
493LIBS += -ldl
494endif
495endif
496
497# Basic EAP functionality is needed for EAPOL
498OBJS += eap_register.o
499OBJS += ../src/eap_server/eap_server.o
500OBJS += ../src/eap_common/eap_common.o
501OBJS += ../src/eap_server/eap_server_methods.o
502OBJS += ../src/eap_server/eap_server_identity.o
503CFLAGS += -DEAP_SERVER_IDENTITY
504
505ifdef CONFIG_EAP
506CFLAGS += -DEAP_SERVER
507endif
508
509ifdef CONFIG_PKCS12
510CFLAGS += -DPKCS12_FUNCS
511endif
512
513ifdef MS_FUNCS
514OBJS += ../src/crypto/ms_funcs.o
515NEED_DES=y
516NEED_MD4=y
517endif
518
519ifdef CHAP
520OBJS += ../src/eap_common/chap.o
521endif
522
523ifdef TLS_FUNCS
524NEED_DES=y
525# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS)
526CFLAGS += -DEAP_TLS_FUNCS
527OBJS += ../src/eap_server/eap_server_tls_common.o
528NEED_TLS_PRF=y
529endif
530
531ifndef CONFIG_TLS
532CONFIG_TLS=openssl
533endif
534
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800535ifdef CONFIG_TLSV11
536CFLAGS += -DCONFIG_TLSV11
537endif
538
539ifdef CONFIG_TLSV12
540CFLAGS += -DCONFIG_TLSV12
541NEED_SHA256=y
542endif
543
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700544ifeq ($(CONFIG_TLS), openssl)
545ifdef TLS_FUNCS
546OBJS += ../src/crypto/tls_openssl.o
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800547OBJS += ../src/crypto/tls_openssl_ocsp.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700548LIBS += -lssl
549endif
550OBJS += ../src/crypto/crypto_openssl.o
551HOBJS += ../src/crypto/crypto_openssl.o
552ifdef NEED_FIPS186_2_PRF
553OBJS += ../src/crypto/fips_prf_openssl.o
554endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800555NEED_SHA256=y
556NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700557LIBS += -lcrypto
558LIBS_h += -lcrypto
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800559ifdef CONFIG_TLS_ADD_DL
560LIBS += -ldl
561LIBS_h += -ldl
562endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700563endif
564
565ifeq ($(CONFIG_TLS), gnutls)
566ifdef TLS_FUNCS
567OBJS += ../src/crypto/tls_gnutls.o
568LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700569endif
570OBJS += ../src/crypto/crypto_gnutls.o
571HOBJS += ../src/crypto/crypto_gnutls.o
572ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -0700573OBJS += ../src/crypto/fips_prf_internal.o
574SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700575endif
576LIBS += -lgcrypt
577LIBS_h += -lgcrypt
578CONFIG_INTERNAL_SHA256=y
579CONFIG_INTERNAL_RC4=y
580CONFIG_INTERNAL_DH_GROUP5=y
581endif
582
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700583ifeq ($(CONFIG_TLS), internal)
584ifndef CONFIG_CRYPTO
585CONFIG_CRYPTO=internal
586endif
587ifdef TLS_FUNCS
588OBJS += ../src/crypto/crypto_internal-rsa.o
589OBJS += ../src/crypto/tls_internal.o
590OBJS += ../src/tls/tlsv1_common.o
591OBJS += ../src/tls/tlsv1_record.o
592OBJS += ../src/tls/tlsv1_cred.o
593OBJS += ../src/tls/tlsv1_server.o
594OBJS += ../src/tls/tlsv1_server_write.o
595OBJS += ../src/tls/tlsv1_server_read.o
596OBJS += ../src/tls/asn1.o
597OBJS += ../src/tls/rsa.o
598OBJS += ../src/tls/x509v3.o
599OBJS += ../src/tls/pkcs1.o
600OBJS += ../src/tls/pkcs5.o
601OBJS += ../src/tls/pkcs8.o
602NEED_SHA256=y
603NEED_BASE64=y
604NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800605ifdef CONFIG_TLSV12
606NEED_TLS_PRF_SHA256=y
607endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700608NEED_MODEXP=y
609NEED_CIPHER=y
610CFLAGS += -DCONFIG_TLS_INTERNAL
611CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
612endif
613ifdef NEED_CIPHER
614NEED_DES=y
615OBJS += ../src/crypto/crypto_internal-cipher.o
616endif
617ifdef NEED_MODEXP
618OBJS += ../src/crypto/crypto_internal-modexp.o
619OBJS += ../src/tls/bignum.o
620endif
621ifeq ($(CONFIG_CRYPTO), libtomcrypt)
622OBJS += ../src/crypto/crypto_libtomcrypt.o
623LIBS += -ltomcrypt -ltfm
624LIBS_h += -ltomcrypt -ltfm
625CONFIG_INTERNAL_SHA256=y
626CONFIG_INTERNAL_RC4=y
627CONFIG_INTERNAL_DH_GROUP5=y
628endif
629ifeq ($(CONFIG_CRYPTO), internal)
630OBJS += ../src/crypto/crypto_internal.o
631NEED_AES_DEC=y
632CFLAGS += -DCONFIG_CRYPTO_INTERNAL
633ifdef CONFIG_INTERNAL_LIBTOMMATH
634CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
635ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
636CFLAGS += -DLTM_FAST
637endif
638else
639LIBS += -ltommath
640LIBS_h += -ltommath
641endif
642CONFIG_INTERNAL_AES=y
643CONFIG_INTERNAL_DES=y
644CONFIG_INTERNAL_SHA1=y
645CONFIG_INTERNAL_MD4=y
646CONFIG_INTERNAL_MD5=y
647CONFIG_INTERNAL_SHA256=y
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800648CONFIG_INTERNAL_SHA384=y
649CONFIG_INTERNAL_SHA512=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700650CONFIG_INTERNAL_RC4=y
651CONFIG_INTERNAL_DH_GROUP5=y
652endif
653ifeq ($(CONFIG_CRYPTO), cryptoapi)
654OBJS += ../src/crypto/crypto_cryptoapi.o
655OBJS_p += ../src/crypto/crypto_cryptoapi.o
656CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
657CONFIG_INTERNAL_SHA256=y
658CONFIG_INTERNAL_RC4=y
659endif
660endif
661
662ifeq ($(CONFIG_TLS), none)
663ifdef TLS_FUNCS
664OBJS += ../src/crypto/tls_none.o
665CFLAGS += -DEAP_TLS_NONE
666CONFIG_INTERNAL_AES=y
667CONFIG_INTERNAL_SHA1=y
668CONFIG_INTERNAL_MD5=y
669endif
670OBJS += ../src/crypto/crypto_none.o
671OBJS_p += ../src/crypto/crypto_none.o
672CONFIG_INTERNAL_SHA256=y
673CONFIG_INTERNAL_RC4=y
674endif
675
676ifndef TLS_FUNCS
677OBJS += ../src/crypto/tls_none.o
678ifeq ($(CONFIG_TLS), internal)
679CONFIG_INTERNAL_AES=y
680CONFIG_INTERNAL_SHA1=y
681CONFIG_INTERNAL_MD5=y
682CONFIG_INTERNAL_RC4=y
683endif
684endif
685
686AESOBJS = # none so far
687ifdef CONFIG_INTERNAL_AES
688AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o
689endif
690
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800691ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700692AESOBJS += ../src/crypto/aes-wrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800693endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700694ifdef NEED_AES_EAX
695AESOBJS += ../src/crypto/aes-eax.o
696NEED_AES_CTR=y
697endif
698ifdef NEED_AES_CTR
699AESOBJS += ../src/crypto/aes-ctr.o
700endif
701ifdef NEED_AES_ENCBLOCK
702AESOBJS += ../src/crypto/aes-encblock.o
703endif
704ifdef NEED_AES_OMAC1
705AESOBJS += ../src/crypto/aes-omac1.o
706endif
707ifdef NEED_AES_UNWRAP
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800708ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700709NEED_AES_DEC=y
710AESOBJS += ../src/crypto/aes-unwrap.o
711endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800712endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700713ifdef NEED_AES_CBC
714NEED_AES_DEC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700715ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700716AESOBJS += ../src/crypto/aes-cbc.o
717endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700718endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700719ifdef NEED_AES_DEC
720ifdef CONFIG_INTERNAL_AES
721AESOBJS += ../src/crypto/aes-internal-dec.o
722endif
723endif
724ifdef NEED_AES
725OBJS += $(AESOBJS)
726endif
727
728ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700729ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700730SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700731endif
732SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700733ifdef CONFIG_INTERNAL_SHA1
734SHA1OBJS += ../src/crypto/sha1-internal.o
735ifdef NEED_FIPS186_2_PRF
736SHA1OBJS += ../src/crypto/fips_prf_internal.o
737endif
738endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700739ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700740SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700741endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700742ifdef NEED_T_PRF
743SHA1OBJS += ../src/crypto/sha1-tprf.o
744endif
745ifdef NEED_TLS_PRF
746SHA1OBJS += ../src/crypto/sha1-tlsprf.o
747endif
748endif
749
750ifdef NEED_SHA1
751OBJS += $(SHA1OBJS)
752endif
753
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800754ifneq ($(CONFIG_TLS), openssl)
755OBJS += ../src/crypto/md5.o
756endif
757
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700758ifdef NEED_MD5
759ifdef CONFIG_INTERNAL_MD5
760OBJS += ../src/crypto/md5-internal.o
761HOBJS += ../src/crypto/md5-internal.o
762endif
763endif
764
765ifdef NEED_MD4
766ifdef CONFIG_INTERNAL_MD4
767OBJS += ../src/crypto/md4-internal.o
768endif
769endif
770
771ifdef NEED_DES
772ifdef CONFIG_INTERNAL_DES
773OBJS += ../src/crypto/des-internal.o
774endif
775endif
776
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800777ifdef CONFIG_NO_RC4
778CFLAGS += -DCONFIG_NO_RC4
779endif
780
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700781ifdef NEED_RC4
782ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800783ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700784OBJS += ../src/crypto/rc4.o
785endif
786endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800787endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700788
789ifdef NEED_SHA256
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800790CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700791ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700792OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700793endif
794OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700795ifdef CONFIG_INTERNAL_SHA256
796OBJS += ../src/crypto/sha256-internal.o
797endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800798ifdef NEED_TLS_PRF_SHA256
799OBJS += ../src/crypto/sha256-tlsprf.o
800endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800801ifdef NEED_HMAC_SHA256_KDF
802OBJS += ../src/crypto/sha256-kdf.o
803endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700804endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800805ifdef NEED_SHA384
806CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800807OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800808endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700809
Dmitry Shmidtd7ff03d2015-12-04 14:49:35 -0800810ifdef CONFIG_INTERNAL_SHA384
811CFLAGS += -DCONFIG_INTERNAL_SHA384
812OBJS += ../src/crypto/sha384-internal.o
813endif
814
815ifdef CONFIG_INTERNAL_SHA512
816CFLAGS += -DCONFIG_INTERNAL_SHA512
817OBJS += ../src/crypto/sha512-internal.o
818endif
819
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700820ifdef NEED_DH_GROUPS
821OBJS += ../src/crypto/dh_groups.o
822endif
823ifdef NEED_DH_GROUPS_ALL
824CFLAGS += -DALL_DH_GROUPS
825endif
826ifdef CONFIG_INTERNAL_DH_GROUP5
827ifdef NEED_DH_GROUPS
828OBJS += ../src/crypto/dh_group5.o
829endif
830endif
831
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800832ifdef NEED_ECC
833CFLAGS += -DCONFIG_ECC
834endif
835
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700836ifdef CONFIG_NO_RANDOM_POOL
837CFLAGS += -DCONFIG_NO_RANDOM_POOL
838else
839OBJS += ../src/crypto/random.o
840HOBJS += ../src/crypto/random.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800841HOBJS += ../src/utils/eloop.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700842HOBJS += $(SHA1OBJS)
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700843ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700844HOBJS += ../src/crypto/md5.o
845endif
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700846endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700847
848ifdef CONFIG_RADIUS_SERVER
849CFLAGS += -DRADIUS_SERVER
850OBJS += ../src/radius/radius_server.o
851endif
852
853ifdef CONFIG_IPV6
854CFLAGS += -DCONFIG_IPV6
855endif
856
857ifdef CONFIG_DRIVER_RADIUS_ACL
858CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL
859endif
860
861ifdef CONFIG_FULL_DYNAMIC_VLAN
862# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
863# and vlan interfaces for the vlan feature.
864CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
865endif
866
867ifdef NEED_BASE64
868OBJS += ../src/utils/base64.o
869endif
870
871ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700872OBJS += ../src/ap/wmm.o
873OBJS += ../src/ap/ap_list.o
874OBJS += ../src/ap/ieee802_11.o
875OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700876OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700877CFLAGS += -DNEED_AP_MLME
878endif
879ifdef CONFIG_IEEE80211N
880OBJS += ../src/ap/ieee802_11_ht.o
881endif
882
Dmitry Shmidt04949592012-07-19 12:16:46 -0700883ifdef CONFIG_IEEE80211AC
884OBJS += ../src/ap/ieee802_11_vht.o
885endif
886
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700887ifdef CONFIG_P2P_MANAGER
888CFLAGS += -DCONFIG_P2P_MANAGER
889OBJS += ../src/ap/p2p_hostapd.o
890endif
891
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700892ifdef CONFIG_HS20
893CFLAGS += -DCONFIG_HS20
894OBJS += ../src/ap/hs20.o
895CONFIG_INTERWORKING=y
896endif
897
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800898ifdef CONFIG_INTERWORKING
899CFLAGS += -DCONFIG_INTERWORKING
Dmitry Shmidt04949592012-07-19 12:16:46 -0700900OBJS += ../src/common/gas.o
901OBJS += ../src/ap/gas_serv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800902endif
903
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800904ifdef CONFIG_PROXYARP
905CFLAGS += -DCONFIG_PROXYARP
906OBJS += ../src/ap/x_snoop.o
907OBJS += ../src/ap/dhcp_snoop.o
908ifdef CONFIG_IPV6
909OBJS += ../src/ap/ndisc_snoop.o
910endif
911endif
912
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800913OBJS += ../src/drivers/driver_common.o
914
915ifdef CONFIG_WPA_CLI_EDIT
916OBJS_c += ../src/utils/edit.o
917else
918OBJS_c += ../src/utils/edit_simple.o
919endif
920
Dmitry Shmidt391c59f2013-09-03 12:16:28 -0700921ifdef CONFIG_ACS
922CFLAGS += -DCONFIG_ACS
923OBJS += ../src/ap/acs.o
924LIBS += -lm
925endif
926
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700927ifdef CONFIG_NO_STDOUT_DEBUG
928CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
929endif
930
Dmitry Shmidtcce06662013-11-04 18:44:24 -0800931ifdef CONFIG_DEBUG_LINUX_TRACING
932CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
933endif
934
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700935ifdef CONFIG_DEBUG_FILE
936CFLAGS += -DCONFIG_DEBUG_FILE
937endif
938
Dmitry Shmidt4530cfd2012-09-09 15:20:40 -0700939ifdef CONFIG_SQLITE
940CFLAGS += -DCONFIG_SQLITE
941LIBS += -lsqlite3
942LIBS_h += -lsqlite3
943endif
944
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800945ifdef CONFIG_FST
946CFLAGS += -DCONFIG_FST
947OBJS += ../src/fst/fst.o
948OBJS += ../src/fst/fst_group.o
949OBJS += ../src/fst/fst_iface.o
950OBJS += ../src/fst/fst_session.o
951OBJS += ../src/fst/fst_ctrl_aux.o
952ifdef CONFIG_FST_TEST
953CFLAGS += -DCONFIG_FST_TEST
954endif
955ifndef CONFIG_NO_CTRL_IFACE
956OBJS += ../src/fst/fst_ctrl_iface.o
957endif
958endif
959
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700960ALL=hostapd hostapd_cli
961
962all: verify_config $(ALL)
963
964Q=@
965E=echo
966ifeq ($(V), 1)
967Q=
968E=true
969endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800970ifeq ($(QUIET), 1)
971Q=@
972E=true
973endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700974
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800975ifdef CONFIG_CODE_COVERAGE
976%.o: %.c
977 @$(E) " CC " $<
978 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
979else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700980%.o: %.c
981 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
982 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800983endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700984
985verify_config:
986 @if [ ! -r .config ]; then \
987 echo 'Building hostapd requires a configuration file'; \
988 echo '(.config). See README for more instructions. You can'; \
989 echo 'run "cp defconfig .config" to create an example'; \
990 echo 'configuration.'; \
991 exit 1; \
992 fi
993
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800994$(DESTDIR)$(BINDIR)/%: %
995 install -D $(<) $(@)
996
997install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700998
999../src/drivers/build.hostapd:
1000 @if [ -f ../src/drivers/build.wpa_supplicant ]; then \
1001 $(MAKE) -C ../src/drivers clean; \
1002 fi
1003 @touch ../src/drivers/build.hostapd
1004
1005BCHECK=../src/drivers/build.hostapd
1006
1007hostapd: $(BCHECK) $(OBJS)
1008 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
1009 @$(E) " LD " $@
1010
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001011ifdef CONFIG_WPA_TRACE
1012OBJS_c += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001013endif
1014hostapd_cli: $(OBJS_c)
1015 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
1016 @$(E) " LD " $@
1017
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001018NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001019NOBJS += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001020ifdef NEED_RC4
1021ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001022ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001023NOBJS += ../src/crypto/rc4.o
1024endif
1025endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001026endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001027ifdef CONFIG_INTERNAL_MD5
1028NOBJS += ../src/crypto/md5-internal.o
1029endif
1030NOBJS += ../src/crypto/crypto_openssl.o ../src/utils/os_$(CONFIG_OS).o
1031NOBJS += ../src/utils/wpa_debug.o
1032NOBJS += ../src/utils/wpabuf.o
1033ifdef CONFIG_WPA_TRACE
1034NOBJS += ../src/utils/trace.o
1035LIBS_n += -lbfd
1036endif
1037ifdef TLS_FUNCS
1038LIBS_n += -lcrypto
1039endif
1040
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001041HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o
1042HOBJS += ../src/crypto/aes-encblock.o
1043ifdef CONFIG_INTERNAL_AES
1044HOBJS += ../src/crypto/aes-internal.o
1045HOBJS += ../src/crypto/aes-internal-enc.o
1046endif
1047
1048nt_password_hash: $(NOBJS)
1049 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n)
1050 @$(E) " LD " $@
1051
1052hlr_auc_gw: $(HOBJS)
1053 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h)
1054 @$(E) " LD " $@
1055
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001056lcov-html:
1057 lcov -c -d .. > lcov.info
1058 genhtml lcov.info --output-directory lcov-html
1059
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001060clean:
1061 $(MAKE) -C ../src clean
1062 rm -f core *~ *.o hostapd hostapd_cli nt_password_hash hlr_auc_gw
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001063 rm -f *.d *.gcno *.gcda *.gcov
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001064 rm -f lcov.info
1065 rm -rf lcov-html
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001066
1067-include $(OBJS:%.o=%.d)