blob: 67b025b287e072fca3fa43f63574b7774b3c4752 [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
547LIBS += -lssl
548endif
549OBJS += ../src/crypto/crypto_openssl.o
550HOBJS += ../src/crypto/crypto_openssl.o
551ifdef NEED_FIPS186_2_PRF
552OBJS += ../src/crypto/fips_prf_openssl.o
553endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800554NEED_SHA256=y
555NEED_TLS_PRF_SHA256=y
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700556LIBS += -lcrypto
557LIBS_h += -lcrypto
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800558ifdef CONFIG_TLS_ADD_DL
559LIBS += -ldl
560LIBS_h += -ldl
561endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700562endif
563
564ifeq ($(CONFIG_TLS), gnutls)
565ifdef TLS_FUNCS
566OBJS += ../src/crypto/tls_gnutls.o
567LIBS += -lgnutls -lgpg-error
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700568endif
569OBJS += ../src/crypto/crypto_gnutls.o
570HOBJS += ../src/crypto/crypto_gnutls.o
571ifdef NEED_FIPS186_2_PRF
Dmitry Shmidt98660862014-03-11 17:26:21 -0700572OBJS += ../src/crypto/fips_prf_internal.o
573SHA1OBJS += ../src/crypto/sha1-internal.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700574endif
575LIBS += -lgcrypt
576LIBS_h += -lgcrypt
577CONFIG_INTERNAL_SHA256=y
578CONFIG_INTERNAL_RC4=y
579CONFIG_INTERNAL_DH_GROUP5=y
580endif
581
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700582ifeq ($(CONFIG_TLS), internal)
583ifndef CONFIG_CRYPTO
584CONFIG_CRYPTO=internal
585endif
586ifdef TLS_FUNCS
587OBJS += ../src/crypto/crypto_internal-rsa.o
588OBJS += ../src/crypto/tls_internal.o
589OBJS += ../src/tls/tlsv1_common.o
590OBJS += ../src/tls/tlsv1_record.o
591OBJS += ../src/tls/tlsv1_cred.o
592OBJS += ../src/tls/tlsv1_server.o
593OBJS += ../src/tls/tlsv1_server_write.o
594OBJS += ../src/tls/tlsv1_server_read.o
595OBJS += ../src/tls/asn1.o
596OBJS += ../src/tls/rsa.o
597OBJS += ../src/tls/x509v3.o
598OBJS += ../src/tls/pkcs1.o
599OBJS += ../src/tls/pkcs5.o
600OBJS += ../src/tls/pkcs8.o
601NEED_SHA256=y
602NEED_BASE64=y
603NEED_TLS_PRF=y
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800604ifdef CONFIG_TLSV12
605NEED_TLS_PRF_SHA256=y
606endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700607NEED_MODEXP=y
608NEED_CIPHER=y
609CFLAGS += -DCONFIG_TLS_INTERNAL
610CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
611endif
612ifdef NEED_CIPHER
613NEED_DES=y
614OBJS += ../src/crypto/crypto_internal-cipher.o
615endif
616ifdef NEED_MODEXP
617OBJS += ../src/crypto/crypto_internal-modexp.o
618OBJS += ../src/tls/bignum.o
619endif
620ifeq ($(CONFIG_CRYPTO), libtomcrypt)
621OBJS += ../src/crypto/crypto_libtomcrypt.o
622LIBS += -ltomcrypt -ltfm
623LIBS_h += -ltomcrypt -ltfm
624CONFIG_INTERNAL_SHA256=y
625CONFIG_INTERNAL_RC4=y
626CONFIG_INTERNAL_DH_GROUP5=y
627endif
628ifeq ($(CONFIG_CRYPTO), internal)
629OBJS += ../src/crypto/crypto_internal.o
630NEED_AES_DEC=y
631CFLAGS += -DCONFIG_CRYPTO_INTERNAL
632ifdef CONFIG_INTERNAL_LIBTOMMATH
633CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
634ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST
635CFLAGS += -DLTM_FAST
636endif
637else
638LIBS += -ltommath
639LIBS_h += -ltommath
640endif
641CONFIG_INTERNAL_AES=y
642CONFIG_INTERNAL_DES=y
643CONFIG_INTERNAL_SHA1=y
644CONFIG_INTERNAL_MD4=y
645CONFIG_INTERNAL_MD5=y
646CONFIG_INTERNAL_SHA256=y
647CONFIG_INTERNAL_RC4=y
648CONFIG_INTERNAL_DH_GROUP5=y
649endif
650ifeq ($(CONFIG_CRYPTO), cryptoapi)
651OBJS += ../src/crypto/crypto_cryptoapi.o
652OBJS_p += ../src/crypto/crypto_cryptoapi.o
653CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI
654CONFIG_INTERNAL_SHA256=y
655CONFIG_INTERNAL_RC4=y
656endif
657endif
658
659ifeq ($(CONFIG_TLS), none)
660ifdef TLS_FUNCS
661OBJS += ../src/crypto/tls_none.o
662CFLAGS += -DEAP_TLS_NONE
663CONFIG_INTERNAL_AES=y
664CONFIG_INTERNAL_SHA1=y
665CONFIG_INTERNAL_MD5=y
666endif
667OBJS += ../src/crypto/crypto_none.o
668OBJS_p += ../src/crypto/crypto_none.o
669CONFIG_INTERNAL_SHA256=y
670CONFIG_INTERNAL_RC4=y
671endif
672
673ifndef TLS_FUNCS
674OBJS += ../src/crypto/tls_none.o
675ifeq ($(CONFIG_TLS), internal)
676CONFIG_INTERNAL_AES=y
677CONFIG_INTERNAL_SHA1=y
678CONFIG_INTERNAL_MD5=y
679CONFIG_INTERNAL_RC4=y
680endif
681endif
682
683AESOBJS = # none so far
684ifdef CONFIG_INTERNAL_AES
685AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o
686endif
687
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800688ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700689AESOBJS += ../src/crypto/aes-wrap.o
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800690endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700691ifdef NEED_AES_EAX
692AESOBJS += ../src/crypto/aes-eax.o
693NEED_AES_CTR=y
694endif
695ifdef NEED_AES_CTR
696AESOBJS += ../src/crypto/aes-ctr.o
697endif
698ifdef NEED_AES_ENCBLOCK
699AESOBJS += ../src/crypto/aes-encblock.o
700endif
701ifdef NEED_AES_OMAC1
702AESOBJS += ../src/crypto/aes-omac1.o
703endif
704ifdef NEED_AES_UNWRAP
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800705ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700706NEED_AES_DEC=y
707AESOBJS += ../src/crypto/aes-unwrap.o
708endif
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800709endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700710ifdef NEED_AES_CBC
711NEED_AES_DEC=y
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700712ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700713AESOBJS += ../src/crypto/aes-cbc.o
714endif
Dmitry Shmidt912c6ec2015-03-30 13:16:51 -0700715endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700716ifdef NEED_AES_DEC
717ifdef CONFIG_INTERNAL_AES
718AESOBJS += ../src/crypto/aes-internal-dec.o
719endif
720endif
721ifdef NEED_AES
722OBJS += $(AESOBJS)
723endif
724
725ifdef NEED_SHA1
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700726ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700727SHA1OBJS += ../src/crypto/sha1.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700728endif
729SHA1OBJS += ../src/crypto/sha1-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700730ifdef CONFIG_INTERNAL_SHA1
731SHA1OBJS += ../src/crypto/sha1-internal.o
732ifdef NEED_FIPS186_2_PRF
733SHA1OBJS += ../src/crypto/fips_prf_internal.o
734endif
735endif
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700736ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700737SHA1OBJS += ../src/crypto/sha1-pbkdf2.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700738endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700739ifdef NEED_T_PRF
740SHA1OBJS += ../src/crypto/sha1-tprf.o
741endif
742ifdef NEED_TLS_PRF
743SHA1OBJS += ../src/crypto/sha1-tlsprf.o
744endif
745endif
746
747ifdef NEED_SHA1
748OBJS += $(SHA1OBJS)
749endif
750
Dmitry Shmidt216983b2015-02-06 10:50:36 -0800751ifneq ($(CONFIG_TLS), openssl)
752OBJS += ../src/crypto/md5.o
753endif
754
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700755ifdef NEED_MD5
756ifdef CONFIG_INTERNAL_MD5
757OBJS += ../src/crypto/md5-internal.o
758HOBJS += ../src/crypto/md5-internal.o
759endif
760endif
761
762ifdef NEED_MD4
763ifdef CONFIG_INTERNAL_MD4
764OBJS += ../src/crypto/md4-internal.o
765endif
766endif
767
768ifdef NEED_DES
769ifdef CONFIG_INTERNAL_DES
770OBJS += ../src/crypto/des-internal.o
771endif
772endif
773
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800774ifdef CONFIG_NO_RC4
775CFLAGS += -DCONFIG_NO_RC4
776endif
777
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700778ifdef NEED_RC4
779ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800780ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700781OBJS += ../src/crypto/rc4.o
782endif
783endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800784endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700785
786ifdef NEED_SHA256
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800787CFLAGS += -DCONFIG_SHA256
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700788ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700789OBJS += ../src/crypto/sha256.o
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700790endif
791OBJS += ../src/crypto/sha256-prf.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700792ifdef CONFIG_INTERNAL_SHA256
793OBJS += ../src/crypto/sha256-internal.o
794endif
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800795ifdef NEED_TLS_PRF_SHA256
796OBJS += ../src/crypto/sha256-tlsprf.o
797endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800798ifdef NEED_HMAC_SHA256_KDF
799OBJS += ../src/crypto/sha256-kdf.o
800endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700801endif
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800802ifdef NEED_SHA384
803CFLAGS += -DCONFIG_SHA384
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800804OBJS += ../src/crypto/sha384-prf.o
Dmitry Shmidt807291d2015-01-27 13:40:23 -0800805endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700806
807ifdef NEED_DH_GROUPS
808OBJS += ../src/crypto/dh_groups.o
809endif
810ifdef NEED_DH_GROUPS_ALL
811CFLAGS += -DALL_DH_GROUPS
812endif
813ifdef CONFIG_INTERNAL_DH_GROUP5
814ifdef NEED_DH_GROUPS
815OBJS += ../src/crypto/dh_group5.o
816endif
817endif
818
Dmitry Shmidta54fa5f2013-01-15 13:53:35 -0800819ifdef NEED_ECC
820CFLAGS += -DCONFIG_ECC
821endif
822
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700823ifdef CONFIG_NO_RANDOM_POOL
824CFLAGS += -DCONFIG_NO_RANDOM_POOL
825else
826OBJS += ../src/crypto/random.o
827HOBJS += ../src/crypto/random.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800828HOBJS += ../src/utils/eloop.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700829HOBJS += $(SHA1OBJS)
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700830ifneq ($(CONFIG_TLS), openssl)
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700831HOBJS += ../src/crypto/md5.o
832endif
Dmitry Shmidtdda10c22015-03-24 16:05:01 -0700833endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700834
835ifdef CONFIG_RADIUS_SERVER
836CFLAGS += -DRADIUS_SERVER
837OBJS += ../src/radius/radius_server.o
838endif
839
840ifdef CONFIG_IPV6
841CFLAGS += -DCONFIG_IPV6
842endif
843
844ifdef CONFIG_DRIVER_RADIUS_ACL
845CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL
846endif
847
848ifdef CONFIG_FULL_DYNAMIC_VLAN
849# define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
850# and vlan interfaces for the vlan feature.
851CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN
852endif
853
854ifdef NEED_BASE64
855OBJS += ../src/utils/base64.o
856endif
857
858ifdef NEED_AP_MLME
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700859OBJS += ../src/ap/wmm.o
860OBJS += ../src/ap/ap_list.o
861OBJS += ../src/ap/ieee802_11.o
862OBJS += ../src/ap/hw_features.o
Dmitry Shmidt051af732013-10-22 13:52:46 -0700863OBJS += ../src/ap/dfs.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700864CFLAGS += -DNEED_AP_MLME
865endif
866ifdef CONFIG_IEEE80211N
867OBJS += ../src/ap/ieee802_11_ht.o
868endif
869
Dmitry Shmidt04949592012-07-19 12:16:46 -0700870ifdef CONFIG_IEEE80211AC
871OBJS += ../src/ap/ieee802_11_vht.o
872endif
873
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700874ifdef CONFIG_P2P_MANAGER
875CFLAGS += -DCONFIG_P2P_MANAGER
876OBJS += ../src/ap/p2p_hostapd.o
877endif
878
Dmitry Shmidt61d9df32012-08-29 16:22:06 -0700879ifdef CONFIG_HS20
880CFLAGS += -DCONFIG_HS20
881OBJS += ../src/ap/hs20.o
882CONFIG_INTERWORKING=y
883endif
884
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800885ifdef CONFIG_INTERWORKING
886CFLAGS += -DCONFIG_INTERWORKING
Dmitry Shmidt04949592012-07-19 12:16:46 -0700887OBJS += ../src/common/gas.o
888OBJS += ../src/ap/gas_serv.o
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800889endif
890
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800891ifdef CONFIG_PROXYARP
892CFLAGS += -DCONFIG_PROXYARP
893OBJS += ../src/ap/x_snoop.o
894OBJS += ../src/ap/dhcp_snoop.o
895ifdef CONFIG_IPV6
896OBJS += ../src/ap/ndisc_snoop.o
897endif
898endif
899
Dmitry Shmidt1f69aa52012-01-24 16:10:04 -0800900OBJS += ../src/drivers/driver_common.o
901
902ifdef CONFIG_WPA_CLI_EDIT
903OBJS_c += ../src/utils/edit.o
904else
905OBJS_c += ../src/utils/edit_simple.o
906endif
907
Dmitry Shmidt391c59f2013-09-03 12:16:28 -0700908ifdef CONFIG_ACS
909CFLAGS += -DCONFIG_ACS
910OBJS += ../src/ap/acs.o
911LIBS += -lm
912endif
913
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700914ifdef CONFIG_NO_STDOUT_DEBUG
915CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
916endif
917
Dmitry Shmidtcce06662013-11-04 18:44:24 -0800918ifdef CONFIG_DEBUG_LINUX_TRACING
919CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
920endif
921
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700922ifdef CONFIG_DEBUG_FILE
923CFLAGS += -DCONFIG_DEBUG_FILE
924endif
925
Dmitry Shmidt4530cfd2012-09-09 15:20:40 -0700926ifdef CONFIG_SQLITE
927CFLAGS += -DCONFIG_SQLITE
928LIBS += -lsqlite3
929LIBS_h += -lsqlite3
930endif
931
Dmitry Shmidtd80a4012015-11-05 16:35:40 -0800932ifdef CONFIG_FST
933CFLAGS += -DCONFIG_FST
934OBJS += ../src/fst/fst.o
935OBJS += ../src/fst/fst_group.o
936OBJS += ../src/fst/fst_iface.o
937OBJS += ../src/fst/fst_session.o
938OBJS += ../src/fst/fst_ctrl_aux.o
939ifdef CONFIG_FST_TEST
940CFLAGS += -DCONFIG_FST_TEST
941endif
942ifndef CONFIG_NO_CTRL_IFACE
943OBJS += ../src/fst/fst_ctrl_iface.o
944endif
945endif
946
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700947ALL=hostapd hostapd_cli
948
949all: verify_config $(ALL)
950
951Q=@
952E=echo
953ifeq ($(V), 1)
954Q=
955E=true
956endif
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800957ifeq ($(QUIET), 1)
958Q=@
959E=true
960endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700961
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800962ifdef CONFIG_CODE_COVERAGE
963%.o: %.c
964 @$(E) " CC " $<
965 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<)
966else
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700967%.o: %.c
968 $(Q)$(CC) -c -o $@ $(CFLAGS) $<
969 @$(E) " CC " $<
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -0800970endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700971
972verify_config:
973 @if [ ! -r .config ]; then \
974 echo 'Building hostapd requires a configuration file'; \
975 echo '(.config). See README for more instructions. You can'; \
976 echo 'run "cp defconfig .config" to create an example'; \
977 echo 'configuration.'; \
978 exit 1; \
979 fi
980
Dmitry Shmidt6c0da2b2015-01-05 13:08:17 -0800981$(DESTDIR)$(BINDIR)/%: %
982 install -D $(<) $(@)
983
984install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL))
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700985
986../src/drivers/build.hostapd:
987 @if [ -f ../src/drivers/build.wpa_supplicant ]; then \
988 $(MAKE) -C ../src/drivers clean; \
989 fi
990 @touch ../src/drivers/build.hostapd
991
992BCHECK=../src/drivers/build.hostapd
993
994hostapd: $(BCHECK) $(OBJS)
995 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
996 @$(E) " LD " $@
997
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -0700998ifdef CONFIG_WPA_TRACE
999OBJS_c += ../src/utils/trace.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001000endif
1001hostapd_cli: $(OBJS_c)
1002 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c)
1003 @$(E) " LD " $@
1004
Dmitry Shmidt216983b2015-02-06 10:50:36 -08001005NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
Dmitry Shmidtff787d52015-01-12 13:01:47 -08001006NOBJS += ../src/utils/common.o
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001007ifdef NEED_RC4
1008ifdef CONFIG_INTERNAL_RC4
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001009ifndef CONFIG_NO_RC4
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001010NOBJS += ../src/crypto/rc4.o
1011endif
1012endif
Dmitry Shmidtd80a4012015-11-05 16:35:40 -08001013endif
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001014ifdef CONFIG_INTERNAL_MD5
1015NOBJS += ../src/crypto/md5-internal.o
1016endif
1017NOBJS += ../src/crypto/crypto_openssl.o ../src/utils/os_$(CONFIG_OS).o
1018NOBJS += ../src/utils/wpa_debug.o
1019NOBJS += ../src/utils/wpabuf.o
1020ifdef CONFIG_WPA_TRACE
1021NOBJS += ../src/utils/trace.o
1022LIBS_n += -lbfd
1023endif
1024ifdef TLS_FUNCS
1025LIBS_n += -lcrypto
1026endif
1027
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001028HOBJS += 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
1029HOBJS += ../src/crypto/aes-encblock.o
1030ifdef CONFIG_INTERNAL_AES
1031HOBJS += ../src/crypto/aes-internal.o
1032HOBJS += ../src/crypto/aes-internal-enc.o
1033endif
1034
1035nt_password_hash: $(NOBJS)
1036 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n)
1037 @$(E) " LD " $@
1038
1039hlr_auc_gw: $(HOBJS)
1040 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h)
1041 @$(E) " LD " $@
1042
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001043lcov-html:
1044 lcov -c -d .. > lcov.info
1045 genhtml lcov.info --output-directory lcov-html
1046
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001047clean:
1048 $(MAKE) -C ../src clean
1049 rm -f core *~ *.o hostapd hostapd_cli nt_password_hash hlr_auc_gw
Dmitry Shmidt01904cf2013-12-05 11:08:35 -08001050 rm -f *.d *.gcno *.gcda *.gcov
Dmitry Shmidtfb79edc2014-01-10 10:45:54 -08001051 rm -f lcov.info
1052 rm -rf lcov-html
Dmitry Shmidt8d520ff2011-05-09 14:06:53 -07001053
1054-include $(OBJS:%.o=%.d)