1ALL=hostapd hostapd_cli 2CONFIG_FILE = .config 3ifeq ($(KERNEL_TYPE), linux) 4CC=arm-himix410-linux-gcc 5LD=arm-himix410-linux-ld 6else 7CC=../../../../prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin/arm-linux-ohoseabi-gcc 8endif 9 10include ../src/build.rules 11ifndef CFLAGS 12ifeq ($(LIB_TYPE),$(KERNEL_TYPE), 1,linux) 13CFLAGS = -fvisibility=hidden -MMD -O2 -g -w -fsigned-char 14else ifeq ($(LIB_TYPE), 1) 15CFLAGS = -fvisibility=hidden -flto -MMD -O2 -g -w -fsigned-char 16else 17CFLAGS = -MMD -O2 -g -w -fsigned-char 18endif 19endif 20 21ifdef LIBS 22# If LIBS is set with some global build system defaults, clone those for 23# LIBS_c, LIBS_h, and LIBS_n to cover hostapd_cli, hlr_auc_gw, and 24# nt_password_hash as well. 25ifndef LIBS_c 26LIBS_c := $(LIBS) 27endif 28ifndef LIBS_h 29LIBS_h := $(LIBS) 30endif 31ifndef LIBS_n 32LIBS_n := $(LIBS) 33endif 34ifndef LIBS_s 35LIBS_s := $(LIBS) 36endif 37endif 38 39CFLAGS += $(EXTRA_CFLAGS) 40CFLAGS += -I$(abspath ../src) 41CFLAGS += -I$(abspath ../src/utils) 42CFLAGS += -I$(abspath ../src/drivers) 43CFLAGS += -I$(abspath ./) 44CFLAGS += -I$(abspath ../wpa_supplicant) 45CFLAGS += -I$(abspath ../os_dep/include) 46CFLAGS += -I$(abspath ../../../../drivers/framework/include) 47CFLAGS += -I$(abspath ../../../../drivers/framework/include/utils) 48CFLAGS += -I$(abspath ../../../../drivers/framework/utils/include) 49CFLAGS += -I$(abspath ../../../../drivers/framework/include/osal) 50CFLAGS += -I$(abspath ../../../../third_party/bounds_checking_function/include) 51CFLAGS += -I$(abspath ../../../../drivers/framework/ability/sbuf/include) 52CFLAGS += -I$(abspath ../../../../drivers/framework/include/core) 53CFLAGS += -I$(abspath ../../../../drivers/framework/core//adapter/syscall/include) 54CFLAGS += -I$(abspath ../../../../drivers/framework/core/shared/include) 55CFLAGS += -I$(abspath ../../../../drivers/peripheral/wlan/client/include) 56CFLAGS += -I$(abspath ../build/include) 57CFLAGS += -shared -fPIC 58CFLAGS += -fstack-protector-all 59CFLAGS += -DUSERSPACE_CLIENT_SUPPORT 60LIBS += -L$(DEPDIR) -lsec_shared -lhilog_shared -lwifi_driver_client 61 62export BINDIR ?= /usr/local/bin/ 63ifeq ($(COMPILER_TYPE), clang) 64SYSROOT_PATH ?= ../../../../sysroot 65ARCH_CFLAGS ?= --target=arm-liteos-ohos -march=armv7-a -mfloat-abi=softfp 66CC := $(COMPILER_DIR)/bin/clang 67CFLAGS += --sysroot=$(SYSROOT_PATH) $(ARCH_CFLAGS) 68LDFLAGS += --sysroot=$(SYSROOT_PATH) $(ARCH_CFLAGS) 69LDFLAGS += -lc 70endif 71 72ifndef CONFIG_NO_GITVER 73# Add VERSION_STR postfix for builds from a git repository 74ifeq ($(wildcard ../.git),../.git) 75GITVER := $(shell git describe --dirty=+) 76ifneq ($(GITVER),) 77CFLAGS += -DGIT_VERSION_STR_POSTFIX=\"-$(GITVER)\" 78endif 79endif 80endif 81 82ifdef CONFIG_TESTING_OPTIONS 83CFLAGS += -DCONFIG_TESTING_OPTIONS 84CONFIG_WPS_TESTING=y 85endif 86 87ifndef CONFIG_OS 88ifdef CONFIG_NATIVE_WINDOWS 89CONFIG_OS=win32 90else 91CONFIG_OS=unix 92endif 93endif 94 95ifeq ($(CONFIG_OS), internal) 96CFLAGS += -DOS_NO_C_LIB_DEFINES 97endif 98 99ifdef CONFIG_NATIVE_WINDOWS 100CFLAGS += -DCONFIG_NATIVE_WINDOWS 101LIBS += -lws2_32 102endif 103 104OBJS += ap_main.o 105OBJS += ap_config_file.o 106 107OBJS += ../src/ap/hostapd.o 108OBJS += ../src/ap/wpa_auth_glue.o 109OBJS += ../src/ap/drv_callbacks.o 110OBJS += ../src/ap/ap_drv_ops.o 111OBJS += ../src/ap/utils.o 112OBJS += ../src/ap/authsrv.o 113OBJS += ../src/ap/ieee802_1x.o 114OBJS += ../src/ap/ap_config.o 115OBJS += ../src/ap/eap_user_db.o 116OBJS += ../src/ap/ieee802_11_auth.o 117OBJS += ../src/ap/sta_info.o 118OBJS += ../src/ap/wpa_auth.o 119OBJS += ../src/ap/tkip_countermeasures.o 120OBJS += ../src/ap/ap_mlme.o 121OBJS += ../src/ap/wpa_auth_ie.o 122OBJS += ../src/ap/preauth_auth.o 123OBJS += ../src/ap/pmksa_cache_auth.o 124OBJS += ../src/ap/ieee802_11_shared.o 125OBJS += ../src/ap/beacon.o 126OBJS += ../src/ap/bss_load.o 127OBJS += ../src/ap/neighbor_db.o 128OBJS += ../src/ap/ap_rrm.o 129OBJS += ../src/common/ptksa_cache.o 130 131OBJS_c = hostapd_cli.o 132OBJS_c += ../src/common/wpa_ctrl.o 133OBJS_c += ../src/utils/os_$(CONFIG_OS).o 134OBJS_c += ../src/common/cli.o 135 136NEED_RC4=y 137NEED_AES=y 138NEED_MD5=y 139NEED_SHA1=y 140 141OBJS += ../src/drivers/drivers.o 142CFLAGS += -DHOSTAPD 143 144ifdef CONFIG_TAXONOMY 145CFLAGS += -DCONFIG_TAXONOMY 146OBJS += ../src/ap/taxonomy.o 147endif 148 149ifdef CONFIG_MODULE_TESTS 150CFLAGS += -DCONFIG_MODULE_TESTS 151OBJS += hapd_module_tests.o 152endif 153 154ifdef CONFIG_WPA_TRACE 155CFLAGS += -DWPA_TRACE 156OBJS += ../src/utils/trace.o 157HOBJS += ../src/utils/trace.o 158LDFLAGS += -rdynamic 159CFLAGS += -funwind-tables 160ifdef CONFIG_WPA_TRACE_BFD 161CFLAGS += -DPACKAGE="hostapd" -DWPA_TRACE_BFD 162LIBS += -lbfd -ldl -liberty -lz 163LIBS_c += -lbfd -ldl -liberty -lz 164LIBS_h += -lbfd -ldl -liberty -lz 165LIBS_n += -lbfd -ldl -liberty -lz 166LIBS_s += -lbfd -ldl -liberty -lz 167endif 168endif 169 170ifndef CONFIG_ELOOP 171CONFIG_ELOOP=eloop 172endif 173OBJS += ../src/utils/$(CONFIG_ELOOP).o 174OBJS_c += ../src/utils/$(CONFIG_ELOOP).o 175 176ifeq ($(CONFIG_ELOOP), eloop) 177# Using glibc < 2.17 requires -lrt for clock_gettime() 178LIBS += -lrt 179LIBS_c += -lrt 180LIBS_h += -lrt 181LIBS_n += -lrt 182endif 183 184ifdef CONFIG_ELOOP_POLL 185CFLAGS += -DCONFIG_ELOOP_POLL 186endif 187 188ifdef CONFIG_ELOOP_EPOLL 189CFLAGS += -DCONFIG_ELOOP_EPOLL 190endif 191 192ifdef CONFIG_ELOOP_KQUEUE 193CFLAGS += -DCONFIG_ELOOP_KQUEUE 194endif 195 196OBJS += ../src/utils/common.o 197OBJS_c += ../src/utils/common.o 198OBJS += ../src/utils/wpa_debug.o 199OBJS_c += ../src/utils/wpa_debug.o 200OBJS += ../src/utils/wpabuf.o 201OBJS += ../src/utils/os_$(CONFIG_OS).o 202OBJS += ../src/utils/ip_addr.o 203OBJS += ../src/utils/crc32.o 204 205OBJS += ../src/common/ieee802_11_common.o 206OBJS += ../src/common/wpa_common.o 207OBJS += ../src/common/hw_features_common.o 208 209OBJS += ../src/eapol_auth/eapol_auth_sm.o 210 211 212ifdef CONFIG_CODE_COVERAGE 213CFLAGS += -O0 -fprofile-arcs -ftest-coverage -U_FORTIFY_SOURCE 214LIBS += -lgcov 215LIBS_c += -lgcov 216LIBS_h += -lgcov 217LIBS_n += -lgcov 218endif 219 220ifndef CONFIG_NO_DUMP_STATE 221# define HOSTAPD_DUMP_STATE to include support for dumping internal state 222# through control interface commands (undefine it, if you want to save in 223# binary size) 224CFLAGS += -DHOSTAPD_DUMP_STATE 225OBJS += ../src/eapol_auth/eapol_auth_dump.o 226endif 227 228ifdef CONFIG_NO_RADIUS 229CFLAGS += -DCONFIG_NO_RADIUS 230CONFIG_NO_ACCOUNTING=y 231else 232OBJS += ../src/radius/radius.o 233OBJS += ../src/radius/radius_client.o 234OBJS += ../src/radius/radius_das.o 235endif 236 237ifdef CONFIG_NO_ACCOUNTING 238CFLAGS += -DCONFIG_NO_ACCOUNTING 239else 240OBJS += ../src/ap/accounting.o 241endif 242 243ifdef CONFIG_NO_VLAN 244CFLAGS += -DCONFIG_NO_VLAN 245else 246OBJS += ../src/ap/vlan_init.o 247OBJS += ../src/ap/vlan_ifconfig.o 248OBJS += ../src/ap/vlan.o 249ifdef CONFIG_FULL_DYNAMIC_VLAN 250# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges 251# and VLAN interfaces for the VLAN feature. 252CFLAGS += -DCONFIG_FULL_DYNAMIC_VLAN 253OBJS += ../src/ap/vlan_full.o 254ifdef CONFIG_VLAN_NETLINK 255OBJS += ../src/ap/vlan_util.o 256else 257OBJS += ../src/ap/vlan_ioctl.o 258endif 259endif 260endif 261 262ifdef CONFIG_NO_CTRL_IFACE 263CFLAGS += -DCONFIG_NO_CTRL_IFACE 264else 265ifeq ($(CONFIG_CTRL_IFACE), udp) 266CFLAGS += -DCONFIG_CTRL_IFACE_UDP 267else 268ifeq ($(CONFIG_CTRL_IFACE), udp6) 269CFLAGS += -DCONFIG_CTRL_IFACE_UDP 270CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 271else 272ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 273CFLAGS += -DCONFIG_CTRL_IFACE_UDP 274CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 275else 276ifeq ($(CONFIG_CTRL_IFACE), udp6-remote) 277CFLAGS += -DCONFIG_CTRL_IFACE_UDP 278CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 279CFLAGS += -DCONFIG_CTRL_IFACE_UDP_IPV6 280else 281CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 282endif 283endif 284endif 285endif 286OBJS += ../src/common/ctrl_iface_common.o 287OBJS += ap_ctrl_iface.o 288OBJS += ../src/ap/ctrl_iface_ap.o 289endif 290 291ifndef CONFIG_NO_CTRL_IFACE 292CFLAGS += -DCONFIG_CTRL_IFACE 293endif 294 295ifdef CONFIG_RSN_PREAUTH 296CFLAGS += -DCONFIG_RSN_PREAUTH 297#CONFIG_L2_PACKET=y 298endif 299 300ifdef CONFIG_HS20 301CONFIG_PROXYARP=y 302endif 303 304ifdef CONFIG_PROXYARP 305#CONFIG_L2_PACKET=y 306endif 307 308ifdef CONFIG_SUITEB 309CFLAGS += -DCONFIG_SUITEB 310endif 311 312ifdef CONFIG_SUITEB192 313CFLAGS += -DCONFIG_SUITEB192 314NEED_SHA384=y 315endif 316 317ifdef CONFIG_OCV 318CFLAGS += -DCONFIG_OCV 319OBJS += ../src/common/ocv.o 320endif 321 322NEED_AES_UNWRAP=y 323 324ifdef CONFIG_IEEE80211R 325CFLAGS += -DCONFIG_IEEE80211R -DCONFIG_IEEE80211R_AP 326OBJS += ../src/ap/wpa_auth_ft.o 327NEED_AES_UNWRAP=y 328NEED_AES_SIV=y 329NEED_ETH_P_OUI=y 330NEED_HMAC_SHA256_KDF=y 331endif 332 333ifdef NEED_ETH_P_OUI 334CFLAGS += -DCONFIG_ETH_P_OUI 335OBJS += ../src/ap/eth_p_oui.o 336endif 337 338ifdef CONFIG_SAE 339CFLAGS += -DCONFIG_SAE 340OBJS += ../src/common/sae.o 341ifdef CONFIG_SAE_PK 342CFLAGS += -DCONFIG_SAE_PK 343NEED_AES_SIV=y 344OBJS += ../src/common/sae_pk.o 345endif 346NEED_ECC=y 347NEED_DH_GROUPS=y 348NEED_HMAC_SHA256_KDF=y 349NEED_AP_MLME=y 350NEED_DRAGONFLY=y 351endif 352 353ifdef CONFIG_OWE 354CFLAGS += -DCONFIG_OWE 355NEED_ECC=y 356NEED_HMAC_SHA256_KDF=y 357NEED_HMAC_SHA384_KDF=y 358NEED_HMAC_SHA512_KDF=y 359NEED_SHA384=y 360NEED_SHA512=y 361endif 362 363ifdef CONFIG_AIRTIME_POLICY 364CFLAGS += -DCONFIG_AIRTIME_POLICY 365OBJS += ../src/ap/airtime_policy.o 366endif 367 368ifdef CONFIG_FILS 369CFLAGS += -DCONFIG_FILS 370OBJS += ../src/ap/fils_hlp.o 371NEED_SHA384=y 372NEED_AES_SIV=y 373ifdef CONFIG_FILS_SK_PFS 374CFLAGS += -DCONFIG_FILS_SK_PFS 375NEED_ECC=y 376endif 377endif 378 379ifdef CONFIG_WNM 380CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP 381OBJS += ../src/ap/wnm_ap.o 382endif 383 384ifdef CONFIG_IEEE80211AC 385CFLAGS += -DCONFIG_IEEE80211AC 386endif 387 388ifdef CONFIG_IEEE80211BE 389CONFIG_IEEE80211AX=y 390CFLAGS += -DCONFIG_IEEE80211BE 391OBJS += ../src/ap/ieee802_11_eht.o 392endif 393 394ifdef CONFIG_IEEE80211AX 395CFLAGS += -DCONFIG_IEEE80211AX 396OBJS += ../src/ap/ieee802_11_he.o 397endif 398 399ifdef CONFIG_MBO 400CFLAGS += -DCONFIG_MBO 401OBJS += ../src/ap/mbo_ap.o 402endif 403 404include ../src/drivers/drivers.mak 405OBJS += $(DRV_AP_OBJS) 406CFLAGS += $(DRV_AP_CFLAGS) 407LDFLAGS += $(DRV_AP_LDFLAGS) 408LIBS += $(DRV_AP_LIBS) 409 410#ifdef CONFIG_L2_PACKET 411#ifdef CONFIG_DNET_PCAP 412#ifdef CONFIG_L2_FREEBSD 413#LIBS += -lpcap 414#OBJS += ../src/l2_packet/l2_packet_freebsd.o 415#else 416#LIBS += -ldnet -lpcap 417#OBJS += ../src/l2_packet/l2_packet_pcap.o 418#endif 419#else 420#OBJS += ../src/l2_packet/l2_packet_linux.o 421#endif 422#else 423#OBJS += ../src/l2_packet/l2_packet_none.o 424#endif 425 426ifndef CONFIG_L2_PACKET 427CONFIG_L2_PACKET=rtos 428endif 429 430OBJS += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o 431 432ifeq ($(CONFIG_L2_PACKET), pcap) 433ifdef CONFIG_WINPCAP 434CFLAGS += -DCONFIG_WINPCAP 435LIBS += -lwpcap -lpacket 436LIBS_w += -lwpcap 437else 438LIBS += -ldnet -lpcap 439endif 440endif 441 442ifeq ($(CONFIG_L2_PACKET), winpcap) 443LIBS += -lwpcap -lpacket 444LIBS_w += -lwpcap 445endif 446 447ifeq ($(CONFIG_L2_PACKET), freebsd) 448LIBS += -lpcap 449endif 450 451 452ifdef CONFIG_ERP 453CFLAGS += -DCONFIG_ERP 454NEED_HMAC_SHA256_KDF=y 455endif 456 457ifdef CONFIG_EAP_MD5 458CFLAGS += -DEAP_SERVER_MD5 459OBJS += ../src/eap_server/eap_server_md5.o 460CHAP=y 461endif 462 463ifdef CONFIG_EAP_TLS 464CFLAGS += -DEAP_SERVER_TLS 465OBJS += ../src/eap_server/eap_server_tls.o 466TLS_FUNCS=y 467endif 468 469ifdef CONFIG_EAP_UNAUTH_TLS 470CFLAGS += -DEAP_SERVER_UNAUTH_TLS 471ifndef CONFIG_EAP_TLS 472OBJS += ../src/eap_server/eap_server_tls.o 473TLS_FUNCS=y 474endif 475endif 476 477ifdef CONFIG_EAP_PEAP 478CFLAGS += -DEAP_SERVER_PEAP 479OBJS += ../src/eap_server/eap_server_peap.o 480OBJS += ../src/eap_common/eap_peap_common.o 481TLS_FUNCS=y 482CONFIG_EAP_MSCHAPV2=y 483endif 484 485ifdef CONFIG_EAP_TTLS 486CFLAGS += -DEAP_SERVER_TTLS 487OBJS += ../src/eap_server/eap_server_ttls.o 488TLS_FUNCS=y 489CHAP=y 490endif 491 492ifdef CONFIG_EAP_MSCHAPV2 493CFLAGS += -DEAP_SERVER_MSCHAPV2 494OBJS += ../src/eap_server/eap_server_mschapv2.o 495MS_FUNCS=y 496endif 497 498ifdef CONFIG_EAP_GTC 499CFLAGS += -DEAP_SERVER_GTC 500OBJS += ../src/eap_server/eap_server_gtc.o 501endif 502 503ifdef CONFIG_EAP_SIM 504CFLAGS += -DEAP_SERVER_SIM 505OBJS += ../src/eap_server/eap_server_sim.o 506CONFIG_EAP_SIM_COMMON=y 507NEED_AES_CBC=y 508endif 509 510ifdef CONFIG_EAP_AKA 511CFLAGS += -DEAP_SERVER_AKA 512OBJS += ../src/eap_server/eap_server_aka.o 513CONFIG_EAP_SIM_COMMON=y 514NEED_AES_CBC=y 515endif 516 517ifdef CONFIG_EAP_AKA_PRIME 518CFLAGS += -DEAP_SERVER_AKA_PRIME 519endif 520 521ifdef CONFIG_EAP_SIM_COMMON 522OBJS += ../src/eap_common/eap_sim_common.o 523# Example EAP-SIM/AKA interface for GSM/UMTS authentication. This can be 524# replaced with another file implementing the interface specified in 525# eap_sim_db.h. 526OBJS += ../src/eap_server/eap_sim_db.o 527NEED_FIPS186_2_PRF=y 528endif 529 530ifdef CONFIG_EAP_PAX 531CFLAGS += -DEAP_SERVER_PAX 532OBJS += ../src/eap_server/eap_server_pax.o ../src/eap_common/eap_pax_common.o 533endif 534 535ifdef CONFIG_EAP_PSK 536CFLAGS += -DEAP_SERVER_PSK 537OBJS += ../src/eap_server/eap_server_psk.o ../src/eap_common/eap_psk_common.o 538NEED_AES_ENCBLOCK=y 539NEED_AES_EAX=y 540endif 541 542ifdef CONFIG_EAP_SAKE 543CFLAGS += -DEAP_SERVER_SAKE 544OBJS += ../src/eap_server/eap_server_sake.o ../src/eap_common/eap_sake_common.o 545endif 546 547ifdef CONFIG_EAP_GPSK 548CFLAGS += -DEAP_SERVER_GPSK 549OBJS += ../src/eap_server/eap_server_gpsk.o ../src/eap_common/eap_gpsk_common.o 550ifdef CONFIG_EAP_GPSK_SHA256 551CFLAGS += -DEAP_GPSK_SHA256 552endif 553endif 554 555ifdef CONFIG_EAP_PWD 556CFLAGS += -DEAP_SERVER_PWD 557OBJS += ../src/eap_server/eap_server_pwd.o ../src/eap_common/eap_pwd_common.o 558NEED_ECC=y 559NEED_DRAGONFLY=y 560endif 561 562ifdef CONFIG_EAP_EKE 563CFLAGS += -DEAP_SERVER_EKE 564OBJS += ../src/eap_server/eap_server_eke.o ../src/eap_common/eap_eke_common.o 565NEED_DH_GROUPS=y 566NEED_DH_GROUPS_ALL=y 567endif 568 569ifdef CONFIG_EAP_VENDOR_TEST 570CFLAGS += -DEAP_SERVER_VENDOR_TEST 571OBJS += ../src/eap_server/eap_server_vendor_test.o 572endif 573 574ifdef CONFIG_EAP_FAST 575CFLAGS += -DEAP_SERVER_FAST 576OBJS += ../src/eap_server/eap_server_fast.o 577OBJS += ../src/eap_common/eap_fast_common.o 578TLS_FUNCS=y 579NEED_T_PRF=y 580NEED_AES_UNWRAP=y 581endif 582 583ifdef CONFIG_EAP_TEAP 584CFLAGS += -DEAP_SERVER_TEAP 585OBJS += ../src/eap_server/eap_server_teap.o 586OBJS += ../src/eap_common/eap_teap_common.o 587TLS_FUNCS=y 588NEED_T_PRF=y 589NEED_SHA384=y 590NEED_TLS_PRF_SHA256=y 591NEED_TLS_PRF_SHA384=y 592NEED_AES_UNWRAP=y 593endif 594 595ifdef CONFIG_WPS 596CFLAGS += -DCONFIG_WPS -DEAP_SERVER_WSC 597OBJS += ../src/utils/uuid.o 598OBJS += ../src/ap/wps_hostapd.o 599OBJS += ../src/eap_server/eap_server_wsc.o ../src/eap_common/eap_wsc_common.o 600OBJS += ../src/wps/wps.o 601OBJS += ../src/wps/wps_common.o 602OBJS += ../src/wps/wps_attr_parse.o 603OBJS += ../src/wps/wps_attr_build.o 604OBJS += ../src/wps/wps_attr_process.o 605OBJS += ../src/wps/wps_dev_attr.o 606OBJS += ../src/wps/wps_enrollee.o 607OBJS += ../src/wps/wps_registrar.o 608NEED_DH_GROUPS=y 609NEED_BASE64=y 610NEED_AES_CBC=y 611NEED_MODEXP=y 612CONFIG_EAP=y 613 614ifdef CONFIG_WPS_NFC 615CFLAGS += -DCONFIG_WPS_NFC 616OBJS += ../src/wps/ndef.o 617NEED_WPS_OOB=y 618endif 619 620ifdef NEED_WPS_OOB 621CFLAGS += -DCONFIG_WPS_OOB 622endif 623 624ifdef CONFIG_WPS_UPNP 625CFLAGS += -DCONFIG_WPS_UPNP 626OBJS += ../src/wps/wps_upnp.o 627OBJS += ../src/wps/wps_upnp_ssdp.o 628OBJS += ../src/wps/wps_upnp_web.o 629OBJS += ../src/wps/wps_upnp_event.o 630OBJS += ../src/wps/wps_upnp_ap.o 631OBJS += ../src/wps/upnp_xml.o 632OBJS += ../src/wps/httpread.o 633OBJS += ../src/wps/http_client.o 634OBJS += ../src/wps/http_server.o 635endif 636 637ifdef CONFIG_WPS_STRICT 638CFLAGS += -DCONFIG_WPS_STRICT 639OBJS += ../src/wps/wps_validate.o 640endif 641 642ifdef CONFIG_WPS_TESTING 643CFLAGS += -DCONFIG_WPS_TESTING 644endif 645 646endif 647 648ifdef CONFIG_DPP 649CFLAGS += -DCONFIG_DPP 650OBJS += ../src/common/dpp.o 651OBJS += ../src/common/dpp_auth.o 652OBJS += ../src/common/dpp_backup.o 653OBJS += ../src/common/dpp_crypto.o 654OBJS += ../src/common/dpp_pkex.o 655OBJS += ../src/common/dpp_reconfig.o 656OBJS += ../src/common/dpp_tcp.o 657OBJS += ../src/ap/dpp_hostapd.o 658OBJS += ../src/ap/gas_query_ap.o 659NEED_AES_SIV=y 660NEED_HMAC_SHA256_KDF=y 661NEED_HMAC_SHA384_KDF=y 662NEED_HMAC_SHA512_KDF=y 663NEED_SHA384=y 664NEED_SHA512=y 665NEED_ECC=y 666NEED_JSON=y 667NEED_GAS=y 668NEED_BASE64=y 669NEED_ASN1=y 670ifdef CONFIG_DPP2 671CFLAGS += -DCONFIG_DPP2 672endif 673ifdef CONFIG_DPP3 674CFLAGS += -DCONFIG_DPP3 675endif 676endif 677 678ifdef CONFIG_NAN_USD 679OBJS += ../src/common/nan_de.o 680OBJS += ../src/ap/nan_usd_ap.o 681CFLAGS += -DCONFIG_NAN_USD 682endif 683 684ifdef CONFIG_PASN 685CFLAGS += -DCONFIG_PASN 686CFLAGS += -DCONFIG_PTKSA_CACHE 687NEED_HMAC_SHA256_KDF=y 688NEED_HMAC_SHA384_KDF=y 689NEED_SHA256=y 690NEED_SHA384=y 691endif 692 693ifdef CONFIG_EAP_IKEV2 694CFLAGS += -DEAP_SERVER_IKEV2 695OBJS += ../src/eap_server/eap_server_ikev2.o ../src/eap_server/ikev2.o 696OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 697NEED_DH_GROUPS=y 698NEED_DH_GROUPS_ALL=y 699NEED_MODEXP=y 700NEED_CIPHER=y 701endif 702 703ifdef CONFIG_EAP_TNC 704CFLAGS += -DEAP_SERVER_TNC 705OBJS += ../src/eap_server/eap_server_tnc.o 706OBJS += ../src/eap_server/tncs.o 707NEED_BASE64=y 708ifndef CONFIG_DRIVER_BSD 709LIBS += -ldl 710endif 711endif 712 713ifdef CONFIG_MACSEC 714CFLAGS += -DCONFIG_MACSEC 715OBJS += ../src/ap/wpa_auth_kay.o 716OBJS += ../src/pae/ieee802_1x_cp.o 717OBJS += ../src/pae/ieee802_1x_kay.o 718OBJS += ../src/pae/ieee802_1x_key.o 719OBJS += ../src/pae/ieee802_1x_secy_ops.o 720endif 721 722# Basic EAP functionality is needed for EAPOL 723OBJS += ap_eap_register.o 724OBJS += ../src/eap_server/eap_server.o 725OBJS += ../src/eap_common/eap_common.o 726OBJS += ../src/eap_server/eap_server_methods.o 727OBJS += ../src/eap_server/eap_server_identity.o 728CFLAGS += -DEAP_SERVER_IDENTITY 729 730ifdef CONFIG_EAP 731CFLAGS += -DEAP_SERVER 732endif 733 734ifdef CONFIG_PKCS12 735CFLAGS += -DPKCS12_FUNCS 736endif 737 738ifdef NEED_DRAGONFLY 739OBJS += ../src/common/dragonfly.o 740endif 741 742ifdef MS_FUNCS 743OBJS += ../src/crypto/ms_funcs.o 744NEED_DES=y 745NEED_MD4=y 746endif 747 748ifdef CHAP 749OBJS += ../src/eap_common/chap.o 750endif 751 752ifdef CONFIG_RADIUS_TLS 753TLS_FUNCS=y 754CFLAGS += -DCONFIG_RADIUS_TLS 755endif 756 757ifdef TLS_FUNCS 758NEED_DES=y 759# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, and EAP_TTLS) 760CFLAGS += -DEAP_TLS_FUNCS 761OBJS += ../src/eap_server/eap_server_tls_common.o 762NEED_TLS_PRF=y 763endif 764 765ifndef CONFIG_TLS 766CONFIG_TLS=openssl 767endif 768 769ifdef CONFIG_TLSV11 770CFLAGS += -DCONFIG_TLSV11 771endif 772 773ifdef CONFIG_TLSV12 774CFLAGS += -DCONFIG_TLSV12 775endif 776 777ifeq ($(CONFIG_TLS), wolfssl) 778CONFIG_CRYPTO=wolfssl 779ifdef TLS_FUNCS 780OBJS += ../src/crypto/tls_wolfssl.o 781LIBS += -lwolfssl -lm 782endif 783OBJS += ../src/crypto/crypto_wolfssl.o 784HOBJS += ../src/crypto/crypto_wolfssl.o 785ifdef NEED_FIPS186_2_PRF 786OBJS += ../src/crypto/fips_prf_wolfssl.o 787endif 788NEED_TLS_PRF_SHA256=y 789LIBS += -lwolfssl -lm 790LIBS_h += -lwolfssl -lm 791ifdef CONFIG_TLS_ADD_DL 792LIBS += -ldl 793LIBS_h += -ldl 794endif 795endif 796 797ifeq ($(CONFIG_TLS), openssl) 798CFLAGS += -DCRYPTO_RSA_OAEP_SHA256 799CONFIG_CRYPTO=openssl 800ifdef TLS_FUNCS 801OBJS += ../src/crypto/tls_openssl.o 802OBJS += ../src/crypto/tls_openssl_ocsp.o 803LIBS += -lssl 804endif 805OBJS += ../src/crypto/crypto_openssl.o 806HOBJS += ../src/crypto/crypto_openssl.o 807SOBJS += ../src/crypto/crypto_openssl.o 808ifdef NEED_FIPS186_2_PRF 809OBJS += ../src/crypto/fips_prf_openssl.o 810endif 811NEED_TLS_PRF_SHA256=y 812LIBS += -lcrypto 813LIBS_h += -lcrypto 814LIBS_n += -lcrypto 815LIBS_s += -lcrypto 816ifdef CONFIG_TLS_ADD_DL 817LIBS += -ldl 818LIBS_h += -ldl 819LIBS_s += -ldl 820endif 821ifndef CONFIG_TLS_DEFAULT_CIPHERS 822CONFIG_TLS_DEFAULT_CIPHERS = "DEFAULT:!EXP:!LOW" 823endif 824CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\" 825endif 826 827ifeq ($(CONFIG_TLS), gnutls) 828ifndef CONFIG_CRYPTO 829# default to libgcrypt 830CONFIG_CRYPTO=gnutls 831endif 832ifdef TLS_FUNCS 833OBJS += ../src/crypto/tls_gnutls.o 834LIBS += -lgnutls -lgpg-error 835endif 836OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 837HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 838ifdef NEED_FIPS186_2_PRF 839OBJS += ../src/crypto/fips_prf_internal.o 840SHA1OBJS += ../src/crypto/sha1-internal.o 841endif 842ifeq ($(CONFIG_CRYPTO), gnutls) 843LIBS += -lgcrypt 844LIBS_h += -lgcrypt 845LIBS_n += -lgcrypt 846CONFIG_INTERNAL_RC4=y 847CONFIG_INTERNAL_DH_GROUP5=y 848endif 849ifeq ($(CONFIG_CRYPTO), nettle) 850LIBS += -lnettle -lgmp 851LIBS_p += -lnettle -lgmp 852CONFIG_INTERNAL_RC4=y 853CONFIG_INTERNAL_DH_GROUP5=y 854endif 855endif 856 857ifeq ($(CONFIG_TLS), internal) 858ifndef CONFIG_CRYPTO 859CONFIG_CRYPTO=internal 860endif 861ifdef TLS_FUNCS 862OBJS += ../src/crypto/crypto_internal-rsa.o 863OBJS += ../src/crypto/tls_internal.o 864OBJS += ../src/tls/tlsv1_common.o 865OBJS += ../src/tls/tlsv1_record.o 866OBJS += ../src/tls/tlsv1_cred.o 867OBJS += ../src/tls/tlsv1_server.o 868OBJS += ../src/tls/tlsv1_server_write.o 869OBJS += ../src/tls/tlsv1_server_read.o 870OBJS += ../src/tls/rsa.o 871OBJS += ../src/tls/x509v3.o 872OBJS += ../src/tls/pkcs1.o 873OBJS += ../src/tls/pkcs5.o 874OBJS += ../src/tls/pkcs8.o 875NEED_ASN1=y 876NEED_BASE64=y 877NEED_TLS_PRF=y 878ifdef CONFIG_TLSV12 879NEED_TLS_PRF_SHA256=y 880endif 881NEED_MODEXP=y 882NEED_CIPHER=y 883CFLAGS += -DCONFIG_TLS_INTERNAL 884CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 885endif 886ifdef NEED_CIPHER 887NEED_DES=y 888OBJS += ../src/crypto/crypto_internal-cipher.o 889endif 890ifdef NEED_MODEXP 891OBJS += ../src/crypto/crypto_internal-modexp.o 892OBJS += ../src/tls/bignum.o 893endif 894ifeq ($(CONFIG_CRYPTO), libtomcrypt) 895OBJS += ../src/crypto/crypto_libtomcrypt.o 896LIBS += -ltomcrypt -ltfm 897LIBS_h += -ltomcrypt -ltfm 898CONFIG_INTERNAL_SHA256=y 899CONFIG_INTERNAL_RC4=y 900CONFIG_INTERNAL_DH_GROUP5=y 901endif 902ifeq ($(CONFIG_CRYPTO), internal) 903OBJS += ../src/crypto/crypto_internal.o 904NEED_AES_DEC=y 905CFLAGS += -DCONFIG_CRYPTO_INTERNAL 906ifdef CONFIG_INTERNAL_LIBTOMMATH 907CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 908ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 909CFLAGS += -DLTM_FAST 910endif 911else 912LIBS += -ltommath 913LIBS_h += -ltommath 914endif 915CONFIG_INTERNAL_AES=y 916CONFIG_INTERNAL_DES=y 917CONFIG_INTERNAL_SHA1=y 918CONFIG_INTERNAL_MD4=y 919CONFIG_INTERNAL_MD5=y 920CONFIG_INTERNAL_SHA256=y 921CONFIG_INTERNAL_SHA384=y 922CONFIG_INTERNAL_SHA512=y 923CONFIG_INTERNAL_RC4=y 924CONFIG_INTERNAL_DH_GROUP5=y 925endif 926ifeq ($(CONFIG_CRYPTO), cryptoapi) 927OBJS += ../src/crypto/crypto_cryptoapi.o 928OBJS_p += ../src/crypto/crypto_cryptoapi.o 929CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 930CONFIG_INTERNAL_SHA256=y 931CONFIG_INTERNAL_RC4=y 932endif 933endif 934 935ifeq ($(CONFIG_TLS), linux) 936OBJS += ../src/crypto/crypto_linux.o 937ifdef TLS_FUNCS 938OBJS += ../src/crypto/crypto_internal-rsa.o 939OBJS += ../src/crypto/tls_internal.o 940OBJS += ../src/tls/tlsv1_common.o 941OBJS += ../src/tls/tlsv1_record.o 942OBJS += ../src/tls/tlsv1_cred.o 943OBJS += ../src/tls/tlsv1_server.o 944OBJS += ../src/tls/tlsv1_server_write.o 945OBJS += ../src/tls/tlsv1_server_read.o 946OBJS += ../src/tls/rsa.o 947OBJS += ../src/tls/x509v3.o 948OBJS += ../src/tls/pkcs1.o 949OBJS += ../src/tls/pkcs5.o 950OBJS += ../src/tls/pkcs8.o 951NEED_ASN1=y 952NEED_BASE64=y 953NEED_TLS_PRF=y 954ifdef CONFIG_TLSV12 955NEED_TLS_PRF_SHA256=y 956endif 957NEED_MODEXP=y 958NEED_CIPHER=y 959CFLAGS += -DCONFIG_TLS_INTERNAL 960CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER 961endif 962ifdef NEED_MODEXP 963OBJS += ../src/crypto/crypto_internal-modexp.o 964OBJS += ../src/tls/bignum.o 965CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 966CFLAGS += -DLTM_FAST 967endif 968CONFIG_INTERNAL_DH_GROUP5=y 969ifdef NEED_FIPS186_2_PRF 970OBJS += ../src/crypto/fips_prf_internal.o 971OBJS += ../src/crypto/sha1-internal.o 972endif 973endif 974 975ifeq ($(CONFIG_TLS), none) 976ifdef TLS_FUNCS 977OBJS += ../src/crypto/tls_none.o 978CFLAGS += -DEAP_TLS_NONE 979CONFIG_INTERNAL_AES=y 980CONFIG_INTERNAL_SHA1=y 981CONFIG_INTERNAL_MD5=y 982endif 983OBJS += ../src/crypto/crypto_none.o 984OBJS_p += ../src/crypto/crypto_none.o 985CONFIG_INTERNAL_SHA256=y 986CONFIG_INTERNAL_RC4=y 987endif 988 989ifndef TLS_FUNCS 990OBJS += ../src/crypto/tls_none.o 991ifeq ($(CONFIG_TLS), internal) 992CONFIG_INTERNAL_AES=y 993CONFIG_INTERNAL_SHA1=y 994CONFIG_INTERNAL_MD5=y 995CONFIG_INTERNAL_RC4=y 996endif 997endif 998 999AESOBJS = # none so far 1000ifdef CONFIG_INTERNAL_AES 1001AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-enc.o 1002endif 1003 1004ifneq ($(CONFIG_TLS), openssl) 1005ifneq ($(CONFIG_TLS), wolfssl) 1006AESOBJS += ../src/crypto/aes-wrap.o 1007endif 1008endif 1009ifdef NEED_AES_EAX 1010AESOBJS += ../src/crypto/aes-eax.o 1011NEED_AES_CTR=y 1012endif 1013ifdef NEED_AES_SIV 1014AESOBJS += ../src/crypto/aes-siv.o 1015NEED_AES_CTR=y 1016endif 1017ifdef NEED_AES_CTR 1018AESOBJS += ../src/crypto/aes-ctr.o 1019endif 1020ifdef NEED_AES_ENCBLOCK 1021AESOBJS += ../src/crypto/aes-encblock.o 1022endif 1023ifneq ($(CONFIG_TLS), openssl) 1024ifneq ($(CONFIG_TLS), linux) 1025ifneq ($(CONFIG_TLS), wolfssl) 1026AESOBJS += ../src/crypto/aes-omac1.o 1027endif 1028endif 1029endif 1030ifdef NEED_AES_UNWRAP 1031ifneq ($(CONFIG_TLS), openssl) 1032ifneq ($(CONFIG_TLS), linux) 1033ifneq ($(CONFIG_TLS), wolfssl) 1034NEED_AES_DEC=y 1035AESOBJS += ../src/crypto/aes-unwrap.o 1036endif 1037endif 1038endif 1039endif 1040ifdef NEED_AES_CBC 1041NEED_AES_DEC=y 1042ifneq ($(CONFIG_TLS), openssl) 1043ifneq ($(CONFIG_TLS), linux) 1044ifneq ($(CONFIG_TLS), wolfssl) 1045AESOBJS += ../src/crypto/aes-cbc.o 1046endif 1047endif 1048endif 1049endif 1050ifdef NEED_AES_DEC 1051ifdef CONFIG_INTERNAL_AES 1052AESOBJS += ../src/crypto/aes-internal-dec.o 1053endif 1054endif 1055ifdef NEED_AES 1056OBJS += $(AESOBJS) 1057endif 1058 1059ifdef NEED_SHA1 1060ifneq ($(CONFIG_TLS), openssl) 1061ifneq ($(CONFIG_TLS), linux) 1062ifneq ($(CONFIG_TLS), gnutls) 1063ifneq ($(CONFIG_TLS), wolfssl) 1064SHA1OBJS += ../src/crypto/sha1.o 1065endif 1066endif 1067endif 1068endif 1069SHA1OBJS += ../src/crypto/sha1-prf.o 1070ifdef CONFIG_INTERNAL_SHA1 1071SHA1OBJS += ../src/crypto/sha1-internal.o 1072ifdef NEED_FIPS186_2_PRF 1073SHA1OBJS += ../src/crypto/fips_prf_internal.o 1074endif 1075endif 1076ifneq ($(CONFIG_TLS), openssl) 1077ifneq ($(CONFIG_TLS), wolfssl) 1078SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1079endif 1080endif 1081ifdef NEED_T_PRF 1082SHA1OBJS += ../src/crypto/sha1-tprf.o 1083endif 1084ifdef NEED_TLS_PRF 1085SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1086endif 1087endif 1088 1089ifdef NEED_SHA1 1090OBJS += $(SHA1OBJS) 1091endif 1092 1093ifneq ($(CONFIG_TLS), openssl) 1094ifneq ($(CONFIG_TLS), linux) 1095ifneq ($(CONFIG_TLS), gnutls) 1096ifneq ($(CONFIG_TLS), wolfssl) 1097OBJS += ../src/crypto/md5.o 1098endif 1099endif 1100endif 1101endif 1102 1103ifdef NEED_MD5 1104ifdef CONFIG_INTERNAL_MD5 1105OBJS += ../src/crypto/md5-internal.o 1106HOBJS += ../src/crypto/md5-internal.o 1107endif 1108endif 1109 1110ifdef NEED_MD4 1111ifdef CONFIG_INTERNAL_MD4 1112OBJS += ../src/crypto/md4-internal.o 1113endif 1114endif 1115 1116ifdef NEED_DES 1117CFLAGS += -DCONFIG_DES 1118ifdef CONFIG_INTERNAL_DES 1119OBJS += ../src/crypto/des-internal.o 1120endif 1121endif 1122 1123ifdef CONFIG_NO_RC4 1124CFLAGS += -DCONFIG_NO_RC4 1125endif 1126 1127ifdef NEED_RC4 1128ifdef CONFIG_INTERNAL_RC4 1129ifndef CONFIG_NO_RC4 1130OBJS += ../src/crypto/rc4.o 1131endif 1132endif 1133endif 1134 1135CFLAGS += -DCONFIG_SHA256 1136ifneq ($(CONFIG_TLS), openssl) 1137ifneq ($(CONFIG_TLS), linux) 1138ifneq ($(CONFIG_TLS), gnutls) 1139ifneq ($(CONFIG_TLS), wolfssl) 1140OBJS += ../src/crypto/sha256.o 1141endif 1142endif 1143endif 1144endif 1145OBJS += ../src/crypto/sha256-prf.o 1146ifdef CONFIG_INTERNAL_SHA256 1147OBJS += ../src/crypto/sha256-internal.o 1148endif 1149ifdef NEED_TLS_PRF_SHA256 1150OBJS += ../src/crypto/sha256-tlsprf.o 1151endif 1152ifdef NEED_TLS_PRF_SHA384 1153OBJS += ../src/crypto/sha384-tlsprf.o 1154endif 1155ifdef NEED_HMAC_SHA256_KDF 1156OBJS += ../src/crypto/sha256-kdf.o 1157endif 1158ifdef NEED_HMAC_SHA384_KDF 1159OBJS += ../src/crypto/sha384-kdf.o 1160endif 1161ifdef NEED_HMAC_SHA512_KDF 1162OBJS += ../src/crypto/sha512-kdf.o 1163endif 1164ifdef NEED_SHA384 1165CFLAGS += -DCONFIG_SHA384 1166ifneq ($(CONFIG_TLS), openssl) 1167ifneq ($(CONFIG_TLS), linux) 1168ifneq ($(CONFIG_TLS), gnutls) 1169ifneq ($(CONFIG_TLS), wolfssl) 1170OBJS += ../src/crypto/sha384.o 1171endif 1172endif 1173endif 1174endif 1175OBJS += ../src/crypto/sha384-prf.o 1176endif 1177ifdef NEED_SHA512 1178CFLAGS += -DCONFIG_SHA512 1179ifneq ($(CONFIG_TLS), openssl) 1180ifneq ($(CONFIG_TLS), linux) 1181ifneq ($(CONFIG_TLS), gnutls) 1182ifneq ($(CONFIG_TLS), wolfssl) 1183OBJS += ../src/crypto/sha512.o 1184endif 1185endif 1186endif 1187endif 1188OBJS += ../src/crypto/sha512-prf.o 1189endif 1190 1191ifdef CONFIG_INTERNAL_SHA384 1192CFLAGS += -DCONFIG_INTERNAL_SHA384 1193OBJS += ../src/crypto/sha384-internal.o 1194endif 1195 1196ifdef CONFIG_INTERNAL_SHA512 1197CFLAGS += -DCONFIG_INTERNAL_SHA512 1198OBJS += ../src/crypto/sha512-internal.o 1199endif 1200 1201ifdef NEED_ASN1 1202OBJS += ../src/tls/asn1.o 1203endif 1204 1205ifdef NEED_DH_GROUPS 1206OBJS += ../src/crypto/dh_groups.o 1207endif 1208ifdef NEED_DH_GROUPS_ALL 1209CFLAGS += -DALL_DH_GROUPS 1210endif 1211ifdef CONFIG_INTERNAL_DH_GROUP5 1212ifdef NEED_DH_GROUPS 1213OBJS += ../src/crypto/dh_group5.o 1214endif 1215endif 1216 1217ifdef NEED_ECC 1218CFLAGS += -DCONFIG_ECC 1219endif 1220 1221ifdef CONFIG_NO_RANDOM_POOL 1222CFLAGS += -DCONFIG_NO_RANDOM_POOL 1223else 1224ifdef CONFIG_GETRANDOM 1225CFLAGS += -DCONFIG_GETRANDOM 1226endif 1227OBJS += ../src/crypto/random.o 1228HOBJS += ../src/crypto/random.o 1229HOBJS += ../src/utils/eloop.o 1230HOBJS += $(SHA1OBJS) 1231ifneq ($(CONFIG_TLS), openssl) 1232ifneq ($(CONFIG_TLS), linux) 1233ifneq ($(CONFIG_TLS), wolfssl) 1234HOBJS += ../src/crypto/md5.o 1235endif 1236endif 1237endif 1238endif 1239 1240ifdef CONFIG_RADIUS_SERVER 1241CFLAGS += -DRADIUS_SERVER 1242OBJS += ../src/radius/radius_server.o 1243endif 1244 1245ifdef CONFIG_IPV6 1246CFLAGS += -DCONFIG_IPV6 1247endif 1248 1249ifdef CONFIG_DRIVER_RADIUS_ACL 1250CFLAGS += -DCONFIG_DRIVER_RADIUS_ACL 1251endif 1252 1253ifdef NEED_BASE64 1254OBJS += ../src/utils/base64.o 1255endif 1256 1257ifdef NEED_JSON 1258OBJS += ../src/utils/json.o 1259CFLAGS += -DCONFIG_JSON 1260endif 1261 1262ifdef NEED_AP_MLME 1263OBJS += ../src/ap/wmm.o 1264OBJS += ../src/ap/ap_list.o 1265OBJS += ../src/ap/comeback_token.o 1266OBJS += ../src/pasn/pasn_responder.o 1267OBJS += ../src/pasn/pasn_common.o 1268OBJS += ../src/ap/ieee802_11.o 1269OBJS += ../src/ap/hw_features.o 1270OBJS += ../src/ap/dfs.o 1271CFLAGS += -DNEED_AP_MLME 1272endif 1273OBJS += ../src/ap/ieee802_11_ht.o 1274 1275ifdef CONFIG_IEEE80211AC 1276OBJS += ../src/ap/ieee802_11_vht.o 1277endif 1278 1279ifdef CONFIG_P2P_MANAGER 1280CFLAGS += -DCONFIG_P2P_MANAGER 1281OBJS += ../src/ap/p2p_hostapd.o 1282endif 1283 1284ifdef CONFIG_HS20 1285CFLAGS += -DCONFIG_HS20 1286OBJS += ../src/ap/hs20.o 1287CONFIG_INTERWORKING=y 1288endif 1289 1290ifdef CONFIG_INTERWORKING 1291CFLAGS += -DCONFIG_INTERWORKING 1292NEED_GAS=y 1293endif 1294 1295ifdef NEED_GAS 1296OBJS += ../src/common/gas.o 1297OBJS += ../src/ap/gas_serv.o 1298endif 1299 1300ifdef CONFIG_PROXYARP 1301CFLAGS += -DCONFIG_PROXYARP 1302OBJS += ../src/ap/x_snoop.o 1303OBJS += ../src/ap/dhcp_snoop.o 1304ifdef CONFIG_IPV6 1305OBJS += ../src/ap/ndisc_snoop.o 1306endif 1307endif 1308 1309OBJS += ../src/drivers/driver_common.o 1310 1311ifdef CONFIG_WPA_CLI_EDIT 1312OBJS_c += ../src/utils/edit.o 1313else 1314OBJS_c += ../src/utils/edit_simple.o 1315endif 1316 1317ifdef CONFIG_ACS 1318CFLAGS += -DCONFIG_ACS 1319OBJS += ../src/ap/acs.o 1320LIBS += -lm 1321endif 1322 1323#ifdef CONFIG_NO_STDOUT_DEBUG 1324ifneq ($(DEBUG), 1) 1325CFLAGS += -DCONFIG_WPA_NO_LOG 1326CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1327endif 1328 1329ifdef CONFIG_DEBUG_SYSLOG 1330CFLAGS += -DCONFIG_DEBUG_SYSLOG 1331endif 1332 1333ifdef CONFIG_DEBUG_LINUX_TRACING 1334CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1335endif 1336 1337ifdef CONFIG_DEBUG_FILE 1338CFLAGS += -DCONFIG_DEBUG_FILE 1339endif 1340 1341ifdef CONFIG_SQLITE 1342CFLAGS += -DCONFIG_SQLITE 1343LIBS += -lsqlite3 1344LIBS_h += -lsqlite3 1345endif 1346 1347ifdef CONFIG_FST 1348CFLAGS += -DCONFIG_FST 1349OBJS += ../src/fst/fst.o 1350OBJS += ../src/fst/fst_group.o 1351OBJS += ../src/fst/fst_iface.o 1352OBJS += ../src/fst/fst_session.o 1353OBJS += ../src/fst/fst_ctrl_aux.o 1354ifdef CONFIG_FST_TEST 1355CFLAGS += -DCONFIG_FST_TEST 1356endif 1357ifndef CONFIG_NO_CTRL_IFACE 1358OBJS += ../src/fst/fst_ctrl_iface.o 1359endif 1360endif 1361 1362ifdef CONFIG_WEP 1363CFLAGS += -DCONFIG_WEP 1364COPY_OBJS = copy_objs 1365ALL=$(COPY_OBJS) hostapd_cli 1366 1367all: verify_config $(ALL) 1368 1369Q=@ 1370E=echo 1371ifeq ($(V), 1) 1372Q= 1373E=true 1374endif 1375 1376ifdef CONFIG_NO_TKIP 1377CFLAGS += -DCONFIG_NO_TKIP 1378endif 1379 1380$(DESTDIR)$(BINDIR)/%: % 1381 install -D $(<) $(@) 1382 1383install: $(addprefix $(DESTDIR)$(BINDIR)/,$(ALL)) 1384 1385_OBJS_VAR := OBJS 1386include ../src/objs.mk 1387 1388hostapd: $(OBJS) 1389 $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) 1390 @$(E) " LD " $@ 1391 1392BCHECK=../src/drivers/build.hostapd 1393 1394$(COPY_OBJS): $(OBJS) 1395 cp $(OBJS) ../build/objs > /dev/null 2>&1 1396 1397#hostapd: $(BCHECK) $(OBJS) 1398# $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS) 1399# @$(E) " LD " $@ 1400 1401ifdef CONFIG_WPA_TRACE 1402OBJS_c += ../src/utils/trace.o 1403endif 1404 1405_OBJS_VAR := OBJS_c 1406include ../src/objs.mk 1407 1408hostapd_cli: $(OBJS_c) 1409 $(Q)$(CC) $(LDFLAGS) -o hostapd_cli $(OBJS_c) $(LIBS_c) 1410 @$(E) " LD " $@ 1411 1412NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS) 1413NOBJS += ../src/utils/common.o 1414ifdef NEED_RC4 1415ifdef CONFIG_INTERNAL_RC4 1416ifndef CONFIG_NO_RC4 1417NOBJS += ../src/crypto/rc4.o 1418endif 1419endif 1420endif 1421ifdef CONFIG_INTERNAL_MD5 1422NOBJS += ../src/crypto/md5-internal.o 1423endif 1424NOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o 1425NOBJS += ../src/utils/os_$(CONFIG_OS).o 1426NOBJS += ../src/utils/wpa_debug.o 1427NOBJS += ../src/utils/wpabuf.o 1428ifdef CONFIG_WPA_TRACE 1429NOBJS += ../src/utils/trace.o 1430endif 1431 1432HOBJS += 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 1433HOBJS += ../src/crypto/aes-encblock.o 1434ifdef CONFIG_INTERNAL_AES 1435HOBJS += ../src/crypto/aes-internal.o 1436HOBJS += ../src/crypto/aes-internal-enc.o 1437endif 1438ifeq ($(CONFIG_TLS), linux) 1439HOBJS += ../src/crypto/crypto_linux.o 1440endif 1441 1442SOBJS += sae_pk_gen.o 1443SOBJS += ../src/utils/common.o 1444SOBJS += ../src/utils/os_$(CONFIG_OS).o 1445SOBJS += ../src/utils/base64.o 1446SOBJS += ../src/utils/wpa_debug.o 1447SOBJS += ../src/utils/wpabuf.o 1448ifdef CONFIG_WPA_TRACE 1449SOBJS += ../src/utils/trace.o 1450endif 1451SOBJS += ../src/common/ieee802_11_common.o 1452SOBJS += ../src/common/sae.o 1453SOBJS += ../src/common/sae_pk.o 1454SOBJS += ../src/common/dragonfly.o 1455SOBJS += $(AESOBJS) 1456SOBJS += ../src/crypto/sha256-prf.o 1457SOBJS += ../src/crypto/sha384-prf.o 1458SOBJS += ../src/crypto/sha512-prf.o 1459SOBJS += ../src/crypto/dh_groups.o 1460SOBJS += ../src/crypto/sha256-kdf.o 1461SOBJS += ../src/crypto/sha384-kdf.o 1462SOBJS += ../src/crypto/sha512-kdf.o 1463 1464_OBJS_VAR := NOBJS 1465include ../src/objs.mk 1466_OBJS_VAR := HOBJS 1467include ../src/objs.mk 1468_OBJS_VAR := SOBJS 1469include ../src/objs.mk 1470 1471nt_password_hash: $(NOBJS) 1472 $(Q)$(CC) $(LDFLAGS) -o nt_password_hash $(NOBJS) $(LIBS_n) 1473 @$(E) " LD " $@ 1474 1475hlr_auc_gw: $(HOBJS) 1476 $(Q)$(CC) $(LDFLAGS) -o hlr_auc_gw $(HOBJS) $(LIBS_h) 1477 @$(E) " LD " $@ 1478 1479sae_pk_gen: $(SOBJS) 1480 $(Q)$(CC) $(LDFLAGS) -o sae_pk_gen $(SOBJS) $(LIBS_s) 1481 @$(E) " LD " $@ 1482 1483.PHONY: lcov-html 1484lcov-html: 1485 lcov -c -d $(BUILDDIR) > lcov.info 1486 genhtml lcov.info --output-directory lcov-html 1487 1488clean: common-clean 1489 rm -f core *~ nt_password_hash hlr_auc_gw 1490 rm -f sae_pk_gen 1491 rm -f lcov.info 1492 rm -rf lcov-html 1493