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