Makefile revision 75ecf5267604f166b85a7ee2cf0d9cb682966680
15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ifndef CC 2926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)CC=gcc 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)endif 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ifndef CFLAGS 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)CFLAGS = -MMD -O2 -Wall -g 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)endif 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)export LIBDIR ?= /usr/local/lib/ 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)export BINDIR ?= /usr/local/sbin/ 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)CFLAGS += -I../src 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)CFLAGS += -I../src/utils 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)-include .config 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ALL=wpa_supplicant wpa_cli 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ifndef CONFIG_NO_WPA_PASSPHRASE 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ALL += wpa_passphrase 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)endif 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)all: verify_config $(ALL) dynamic_eap_methods 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)verify_config: 265267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) @if [ ! -r .config ]; then \ 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) echo 'Building wpa_supplicant requires a configuration file'; \ 285267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) echo '(.config). See README for more instructions. You can'; \ 295267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) echo 'run "cp defconfig .config" to create an example'; \ 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) echo 'configuration.'; \ 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) exit 1; \ 32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) fi 335267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 345267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)mkconfig: 3509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) @if [ -f .config ]; then \ 365267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) echo '.config exists - did not replace it'; \ 37926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) exit 1; \ 385267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) fi 395267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) echo CONFIG_DRIVER_HOSTAP=y >> .config 405267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) echo CONFIG_DRIVER_WEXT=y >> .config 41926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 42d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)install: all 435267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) mkdir -p $(DESTDIR)$(BINDIR) 445267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) for i in $(ALL); do cp $$i $(DESTDIR)$(BINDIR)/$$i; done 455267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) $(MAKE) -C ../src install 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 47c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)OBJS = config.o 485267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)OBJS += notify.o 49c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)OBJS += bss.o 505267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)OBJS += eap_register.o 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)OBJS += ../src/utils/common.o 52d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)OBJS += ../src/utils/wpa_debug.o 535267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)OBJS += ../src/utils/wpabuf.o 5409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)OBJS_p = wpa_passphrase.o 555267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)OBJS_p += ../src/utils/common.o 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)OBJS_p += ../src/utils/wpa_debug.o 5706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)OBJS_p += ../src/utils/wpabuf.o 585267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o 595267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)OBJS_c += ../src/utils/wpa_debug.o 605267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)ifndef CONFIG_OS 62c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)ifdef CONFIG_NATIVE_WINDOWS 63CONFIG_OS=win32 64else 65CONFIG_OS=unix 66endif 67endif 68 69ifeq ($(CONFIG_OS), internal) 70CFLAGS += -DOS_NO_C_LIB_DEFINES 71endif 72 73OBJS += ../src/utils/os_$(CONFIG_OS).o 74OBJS_p += ../src/utils/os_$(CONFIG_OS).o 75OBJS_c += ../src/utils/os_$(CONFIG_OS).o 76 77ifdef CONFIG_WPA_TRACE 78CFLAGS += -DWPA_TRACE 79OBJS += ../src/utils/trace.o 80OBJS_p += ../src/utils/trace.o 81OBJS_c += ../src/utils/trace.o 82LDFLAGS += -rdynamic 83CFLAGS += -funwind-tables 84ifdef CONFIG_WPA_TRACE_BFD 85CFLAGS += -DWPA_TRACE_BFD 86LIBS += -lbfd 87LIBS_p += -lbfd 88LIBS_c += -lbfd 89endif 90endif 91 92ifndef CONFIG_ELOOP 93CONFIG_ELOOP=eloop 94endif 95OBJS += ../src/utils/$(CONFIG_ELOOP).o 96OBJS_c += ../src/utils/$(CONFIG_ELOOP).o 97 98 99ifdef CONFIG_EAPOL_TEST 100CFLAGS += -Werror -DEAPOL_TEST 101endif 102 103ifndef CONFIG_BACKEND 104CONFIG_BACKEND=file 105endif 106 107ifeq ($(CONFIG_BACKEND), file) 108OBJS += config_file.o 109ifndef CONFIG_NO_CONFIG_BLOBS 110NEED_BASE64=y 111endif 112CFLAGS += -DCONFIG_BACKEND_FILE 113endif 114 115ifeq ($(CONFIG_BACKEND), winreg) 116OBJS += config_winreg.o 117endif 118 119ifeq ($(CONFIG_BACKEND), none) 120OBJS += config_none.o 121endif 122 123ifdef CONFIG_NO_CONFIG_WRITE 124CFLAGS += -DCONFIG_NO_CONFIG_WRITE 125endif 126 127ifdef CONFIG_NO_CONFIG_BLOBS 128CFLAGS += -DCONFIG_NO_CONFIG_BLOBS 129endif 130 131ifdef CONFIG_NO_SCAN_PROCESSING 132CFLAGS += -DCONFIG_NO_SCAN_PROCESSING 133endif 134 135ifdef CONFIG_IEEE80211W 136CFLAGS += -DCONFIG_IEEE80211W 137NEED_SHA256=y 138NEED_AES_OMAC1=y 139endif 140 141ifdef CONFIG_IEEE80211R 142CFLAGS += -DCONFIG_IEEE80211R 143OBJS += ../src/rsn_supp/wpa_ft.o 144NEED_80211_COMMON=y 145NEED_SHA256=y 146NEED_AES_OMAC1=y 147endif 148 149ifdef CONFIG_TDLS 150CFLAGS += -DCONFIG_TDLS 151OBJS += ../src/rsn_supp/tdls.o 152NEED_SHA256=y 153NEED_AES_OMAC1=y 154endif 155 156ifdef CONFIG_PEERKEY 157CFLAGS += -DCONFIG_PEERKEY 158endif 159 160ifndef CONFIG_NO_WPA 161OBJS += ../src/rsn_supp/wpa.o 162OBJS += ../src/rsn_supp/preauth.o 163OBJS += ../src/rsn_supp/pmksa_cache.o 164OBJS += ../src/rsn_supp/peerkey.o 165OBJS += ../src/rsn_supp/wpa_ie.o 166OBJS += ../src/common/wpa_common.o 167NEED_AES=y 168NEED_SHA1=y 169NEED_MD5=y 170NEED_RC4=y 171else 172CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2 173endif 174 175ifdef CONFIG_IBSS_RSN 176NEED_RSN_AUTHENTICATOR=y 177CFLAGS += -DCONFIG_IBSS_RSN 178OBJS += ibss_rsn.o 179endif 180 181ifdef CONFIG_P2P 182OBJS += p2p_supplicant.o 183OBJS += ../src/p2p/p2p.o 184OBJS += ../src/p2p/p2p_utils.o 185OBJS += ../src/p2p/p2p_parse.o 186OBJS += ../src/p2p/p2p_build.o 187OBJS += ../src/p2p/p2p_go_neg.o 188OBJS += ../src/p2p/p2p_sd.o 189OBJS += ../src/p2p/p2p_pd.o 190OBJS += ../src/p2p/p2p_invitation.o 191OBJS += ../src/p2p/p2p_dev_disc.o 192OBJS += ../src/p2p/p2p_group.o 193OBJS += ../src/ap/p2p_hostapd.o 194CFLAGS += -DCONFIG_P2P 195NEED_80211_COMMON=y 196ifdef CONFIG_P2P_STRICT 197CFLAGS += -DCONFIG_P2P_STRICT 198endif 199endif 200 201ifdef CONFIG_NO_WPA2 202CFLAGS += -DCONFIG_NO_WPA2 203endif 204 205include ../src/drivers/drivers.mak 206ifdef CONFIG_AP 207OBJS_d += $(DRV_BOTH_OBJS) 208CFLAGS += $(DRV_BOTH_CFLAGS) 209LDFLAGS += $(DRV_BOTH_LDFLAGS) 210LIBS += $(DRV_BOTH_LIBS) 211else 212NEED_AP_MLME= 213OBJS_d += $(DRV_WPA_OBJS) 214CFLAGS += $(DRV_WPA_CFLAGS) 215LDFLAGS += $(DRV_WPA_LDFLAGS) 216LIBS += $(DRV_WPA_LIBS) 217endif 218 219ifndef CONFIG_L2_PACKET 220CONFIG_L2_PACKET=linux 221endif 222 223OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o 224 225ifeq ($(CONFIG_L2_PACKET), pcap) 226ifdef CONFIG_WINPCAP 227CFLAGS += -DCONFIG_WINPCAP 228LIBS += -lwpcap -lpacket 229LIBS_w += -lwpcap 230else 231LIBS += -ldnet -lpcap 232endif 233endif 234 235ifeq ($(CONFIG_L2_PACKET), winpcap) 236LIBS += -lwpcap -lpacket 237LIBS_w += -lwpcap 238endif 239 240ifeq ($(CONFIG_L2_PACKET), freebsd) 241LIBS += -lpcap 242endif 243 244ifdef CONFIG_EAP_TLS 245# EAP-TLS 246ifeq ($(CONFIG_EAP_TLS), dyn) 247CFLAGS += -DEAP_TLS_DYNAMIC 248EAPDYN += ../src/eap_peer/eap_tls.so 249else 250CFLAGS += -DEAP_TLS 251OBJS += ../src/eap_peer/eap_tls.o 252OBJS_h += ../src/eap_server/eap_server_tls.o 253endif 254TLS_FUNCS=y 255CONFIG_IEEE8021X_EAPOL=y 256endif 257 258ifdef CONFIG_EAP_PEAP 259# EAP-PEAP 260ifeq ($(CONFIG_EAP_PEAP), dyn) 261CFLAGS += -DEAP_PEAP_DYNAMIC 262EAPDYN += ../src/eap_peer/eap_peap.so 263else 264CFLAGS += -DEAP_PEAP 265OBJS += ../src/eap_peer/eap_peap.o 266OBJS += ../src/eap_common/eap_peap_common.o 267OBJS_h += ../src/eap_server/eap_server_peap.o 268endif 269TLS_FUNCS=y 270CONFIG_IEEE8021X_EAPOL=y 271endif 272 273ifdef CONFIG_EAP_TTLS 274# EAP-TTLS 275ifeq ($(CONFIG_EAP_TTLS), dyn) 276CFLAGS += -DEAP_TTLS_DYNAMIC 277EAPDYN += ../src/eap_peer/eap_ttls.so 278else 279CFLAGS += -DEAP_TTLS 280OBJS += ../src/eap_peer/eap_ttls.o 281OBJS_h += ../src/eap_server/eap_server_ttls.o 282endif 283MS_FUNCS=y 284TLS_FUNCS=y 285CHAP=y 286CONFIG_IEEE8021X_EAPOL=y 287endif 288 289ifdef CONFIG_EAP_MD5 290# EAP-MD5 291ifeq ($(CONFIG_EAP_MD5), dyn) 292CFLAGS += -DEAP_MD5_DYNAMIC 293EAPDYN += ../src/eap_peer/eap_md5.so 294else 295CFLAGS += -DEAP_MD5 296OBJS += ../src/eap_peer/eap_md5.o 297OBJS_h += ../src/eap_server/eap_server_md5.o 298endif 299CHAP=y 300CONFIG_IEEE8021X_EAPOL=y 301endif 302 303# backwards compatibility for old spelling 304ifdef CONFIG_MSCHAPV2 305ifndef CONFIG_EAP_MSCHAPV2 306CONFIG_EAP_MSCHAPV2=y 307endif 308endif 309 310ifdef CONFIG_EAP_MSCHAPV2 311# EAP-MSCHAPv2 312ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 313CFLAGS += -DEAP_MSCHAPv2_DYNAMIC 314EAPDYN += ../src/eap_peer/eap_mschapv2.so 315EAPDYN += ../src/eap_peer/mschapv2.so 316else 317CFLAGS += -DEAP_MSCHAPv2 318OBJS += ../src/eap_peer/eap_mschapv2.o 319OBJS += ../src/eap_peer/mschapv2.o 320OBJS_h += ../src/eap_server/eap_server_mschapv2.o 321endif 322MS_FUNCS=y 323CONFIG_IEEE8021X_EAPOL=y 324endif 325 326ifdef CONFIG_EAP_GTC 327# EAP-GTC 328ifeq ($(CONFIG_EAP_GTC), dyn) 329CFLAGS += -DEAP_GTC_DYNAMIC 330EAPDYN += ../src/eap_peer/eap_gtc.so 331else 332CFLAGS += -DEAP_GTC 333OBJS += ../src/eap_peer/eap_gtc.o 334OBJS_h += ../src/eap_server/eap_server_gtc.o 335endif 336CONFIG_IEEE8021X_EAPOL=y 337endif 338 339ifdef CONFIG_EAP_OTP 340# EAP-OTP 341ifeq ($(CONFIG_EAP_OTP), dyn) 342CFLAGS += -DEAP_OTP_DYNAMIC 343EAPDYN += ../src/eap_peer/eap_otp.so 344else 345CFLAGS += -DEAP_OTP 346OBJS += ../src/eap_peer/eap_otp.o 347endif 348CONFIG_IEEE8021X_EAPOL=y 349endif 350 351ifdef CONFIG_EAP_SIM 352# EAP-SIM 353ifeq ($(CONFIG_EAP_SIM), dyn) 354CFLAGS += -DEAP_SIM_DYNAMIC 355EAPDYN += ../src/eap_peer/eap_sim.so 356else 357CFLAGS += -DEAP_SIM 358OBJS += ../src/eap_peer/eap_sim.o 359OBJS_h += ../src/eap_server/eap_server_sim.o 360endif 361CONFIG_IEEE8021X_EAPOL=y 362CONFIG_EAP_SIM_COMMON=y 363NEED_AES_CBC=y 364endif 365 366ifdef CONFIG_EAP_LEAP 367# EAP-LEAP 368ifeq ($(CONFIG_EAP_LEAP), dyn) 369CFLAGS += -DEAP_LEAP_DYNAMIC 370EAPDYN += ../src/eap_peer/eap_leap.so 371else 372CFLAGS += -DEAP_LEAP 373OBJS += ../src/eap_peer/eap_leap.o 374endif 375MS_FUNCS=y 376CONFIG_IEEE8021X_EAPOL=y 377endif 378 379ifdef CONFIG_EAP_PSK 380# EAP-PSK 381ifeq ($(CONFIG_EAP_PSK), dyn) 382CFLAGS += -DEAP_PSK_DYNAMIC 383EAPDYN += ../src/eap_peer/eap_psk.so 384else 385CFLAGS += -DEAP_PSK 386OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o 387OBJS_h += ../src/eap_server/eap_server_psk.o 388endif 389CONFIG_IEEE8021X_EAPOL=y 390NEED_AES=y 391NEED_AES_OMAC1=y 392NEED_AES_ENCBLOCK=y 393NEED_AES_EAX=y 394endif 395 396ifdef CONFIG_EAP_AKA 397# EAP-AKA 398ifeq ($(CONFIG_EAP_AKA), dyn) 399CFLAGS += -DEAP_AKA_DYNAMIC 400EAPDYN += ../src/eap_peer/eap_aka.so 401else 402CFLAGS += -DEAP_AKA 403OBJS += ../src/eap_peer/eap_aka.o 404OBJS_h += ../src/eap_server/eap_server_aka.o 405endif 406CONFIG_IEEE8021X_EAPOL=y 407CONFIG_EAP_SIM_COMMON=y 408NEED_AES_CBC=y 409endif 410 411ifdef CONFIG_EAP_AKA_PRIME 412# EAP-AKA' 413ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 414CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 415else 416CFLAGS += -DEAP_AKA_PRIME 417endif 418NEED_SHA256=y 419endif 420 421ifdef CONFIG_EAP_SIM_COMMON 422OBJS += ../src/eap_common/eap_sim_common.o 423OBJS_h += ../src/eap_server/eap_sim_db.o 424NEED_AES=y 425NEED_FIPS186_2_PRF=y 426endif 427 428ifdef CONFIG_EAP_FAST 429# EAP-FAST 430ifeq ($(CONFIG_EAP_FAST), dyn) 431CFLAGS += -DEAP_FAST_DYNAMIC 432EAPDYN += ../src/eap_peer/eap_fast.so 433EAPDYN += ../src/eap_common/eap_fast_common.o 434else 435CFLAGS += -DEAP_FAST 436OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o 437OBJS += ../src/eap_common/eap_fast_common.o 438OBJS_h += ../src/eap_server/eap_server_fast.o 439endif 440TLS_FUNCS=y 441CONFIG_IEEE8021X_EAPOL=y 442NEED_T_PRF=y 443endif 444 445ifdef CONFIG_EAP_PAX 446# EAP-PAX 447ifeq ($(CONFIG_EAP_PAX), dyn) 448CFLAGS += -DEAP_PAX_DYNAMIC 449EAPDYN += ../src/eap_peer/eap_pax.so 450else 451CFLAGS += -DEAP_PAX 452OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o 453OBJS_h += ../src/eap_server/eap_server_pax.o 454endif 455CONFIG_IEEE8021X_EAPOL=y 456endif 457 458ifdef CONFIG_EAP_SAKE 459# EAP-SAKE 460ifeq ($(CONFIG_EAP_SAKE), dyn) 461CFLAGS += -DEAP_SAKE_DYNAMIC 462EAPDYN += ../src/eap_peer/eap_sake.so 463else 464CFLAGS += -DEAP_SAKE 465OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o 466OBJS_h += ../src/eap_server/eap_server_sake.o 467endif 468CONFIG_IEEE8021X_EAPOL=y 469endif 470 471ifdef CONFIG_EAP_GPSK 472# EAP-GPSK 473ifeq ($(CONFIG_EAP_GPSK), dyn) 474CFLAGS += -DEAP_GPSK_DYNAMIC 475EAPDYN += ../src/eap_peer/eap_gpsk.so 476else 477CFLAGS += -DEAP_GPSK 478OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o 479OBJS_h += ../src/eap_server/eap_server_gpsk.o 480endif 481CONFIG_IEEE8021X_EAPOL=y 482ifdef CONFIG_EAP_GPSK_SHA256 483CFLAGS += -DEAP_GPSK_SHA256 484endif 485NEED_SHA256=y 486NEED_AES_OMAC1=y 487endif 488 489ifdef CONFIG_EAP_PWD 490CFLAGS += -DEAP_PWD 491OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o 492OBJS_h += ../src/eap_server/eap_pwd.o 493CONFIG_IEEE8021X_EAPOL=y 494NEED_SHA256=y 495endif 496 497ifdef CONFIG_WPS 498ifdef CONFIG_WPS2 499CFLAGS += -DCONFIG_WPS2 500endif 501 502# EAP-WSC 503CFLAGS += -DCONFIG_WPS -DEAP_WSC 504OBJS += wps_supplicant.o 505OBJS += ../src/utils/uuid.o 506OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o 507OBJS += ../src/wps/wps.o 508OBJS += ../src/wps/wps_common.o 509OBJS += ../src/wps/wps_attr_parse.o 510OBJS += ../src/wps/wps_attr_build.o 511OBJS += ../src/wps/wps_attr_process.o 512OBJS += ../src/wps/wps_dev_attr.o 513OBJS += ../src/wps/wps_enrollee.o 514OBJS += ../src/wps/wps_registrar.o 515OBJS_h += ../src/eap_server/eap_server_wsc.o 516CONFIG_IEEE8021X_EAPOL=y 517NEED_DH_GROUPS=y 518NEED_SHA256=y 519NEED_BASE64=y 520NEED_80211_COMMON=y 521NEED_AES_CBC=y 522NEED_MODEXP=y 523 524ifdef CONFIG_WPS_UFD 525CFLAGS += -DCONFIG_WPS_UFD 526OBJS += ../src/wps/wps_ufd.o 527NEED_WPS_OOB=y 528endif 529 530ifdef CONFIG_WPS_NFC 531CFLAGS += -DCONFIG_WPS_NFC 532OBJS += ../src/wps/ndef.o 533OBJS += ../src/wps/wps_nfc.o 534NEED_WPS_OOB=y 535ifdef CONFIG_WPS_NFC_PN531 536PN531_PATH ?= /usr/local/src/nfc 537CFLAGS += -DCONFIG_WPS_NFC_PN531 538CFLAGS += -I${PN531_PATH}/inc 539OBJS += ../src/wps/wps_nfc_pn531.o 540LIBS += ${PN531_PATH}/lib/wpsnfc.dll 541LIBS += ${PN531_PATH}/lib/libnfc_mapping_pn53x.dll 542endif 543endif 544 545ifdef NEED_WPS_OOB 546CFLAGS += -DCONFIG_WPS_OOB 547endif 548 549ifdef CONFIG_WPS_ER 550CONFIG_WPS_UPNP=y 551CFLAGS += -DCONFIG_WPS_ER 552OBJS += ../src/wps/wps_er.o 553OBJS += ../src/wps/wps_er_ssdp.o 554endif 555 556ifdef CONFIG_WPS_UPNP 557CFLAGS += -DCONFIG_WPS_UPNP 558OBJS += ../src/wps/wps_upnp.o 559OBJS += ../src/wps/wps_upnp_ssdp.o 560OBJS += ../src/wps/wps_upnp_web.o 561OBJS += ../src/wps/wps_upnp_event.o 562OBJS += ../src/wps/wps_upnp_ap.o 563OBJS += ../src/wps/upnp_xml.o 564OBJS += ../src/wps/httpread.o 565OBJS += ../src/wps/http_client.o 566OBJS += ../src/wps/http_server.o 567endif 568 569ifdef CONFIG_WPS_STRICT 570CFLAGS += -DCONFIG_WPS_STRICT 571OBJS += ../src/wps/wps_validate.o 572endif 573 574ifdef CONFIG_WPS_TESTING 575CFLAGS += -DCONFIG_WPS_TESTING 576endif 577 578ifdef CONFIG_WPS_REG_DISABLE_OPEN 579CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN 580endif 581 582endif 583 584ifdef CONFIG_EAP_IKEV2 585# EAP-IKEv2 586ifeq ($(CONFIG_EAP_IKEV2), dyn) 587CFLAGS += -DEAP_IKEV2_DYNAMIC 588EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o 589EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 590else 591CFLAGS += -DEAP_IKEV2 592OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o 593OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 594OBJS_h += ../src/eap_server/eap_server_ikev2.o 595OBJS_h += ../src/eap_server/ikev2.o 596endif 597CONFIG_IEEE8021X_EAPOL=y 598NEED_DH_GROUPS=y 599NEED_DH_GROUPS_ALL=y 600NEED_MODEXP=y 601NEED_CIPHER=y 602endif 603 604ifdef CONFIG_EAP_VENDOR_TEST 605ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 606CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 607EAPDYN += ../src/eap_peer/eap_vendor_test.so 608else 609CFLAGS += -DEAP_VENDOR_TEST 610OBJS += ../src/eap_peer/eap_vendor_test.o 611OBJS_h += ../src/eap_server/eap_server_vendor_test.o 612endif 613CONFIG_IEEE8021X_EAPOL=y 614endif 615 616ifdef CONFIG_EAP_TNC 617# EAP-TNC 618CFLAGS += -DEAP_TNC 619OBJS += ../src/eap_peer/eap_tnc.o 620OBJS += ../src/eap_peer/tncc.o 621OBJS_h += ../src/eap_server/eap_server_tnc.o 622OBJS_h += ../src/eap_server/tncs.o 623NEED_BASE64=y 624ifndef CONFIG_NATIVE_WINDOWS 625ifndef CONFIG_DRIVER_BSD 626LIBS += -ldl 627endif 628endif 629endif 630 631ifdef CONFIG_IEEE8021X_EAPOL 632# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 633CFLAGS += -DIEEE8021X_EAPOL 634OBJS += ../src/eapol_supp/eapol_supp_sm.o 635OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o 636NEED_EAP_COMMON=y 637ifdef CONFIG_DYNAMIC_EAP_METHODS 638CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 639LIBS += -ldl -rdynamic 640endif 641endif 642 643ifdef CONFIG_AP 644NEED_80211_COMMON=y 645NEED_EAP_COMMON=y 646NEED_RSN_AUTHENTICATOR=y 647CFLAGS += -DCONFIG_AP 648OBJS += ap.o 649CFLAGS += -DCONFIG_NO_RADIUS 650CFLAGS += -DCONFIG_NO_ACCOUNTING 651CFLAGS += -DCONFIG_NO_VLAN 652OBJS += ../src/ap/hostapd.o 653OBJS += ../src/ap/wpa_auth_glue.o 654OBJS += ../src/ap/utils.o 655OBJS += ../src/ap/authsrv.o 656OBJS += ../src/ap/ap_config.o 657OBJS += ../src/utils/ip_addr.o 658OBJS += ../src/ap/sta_info.o 659OBJS += ../src/ap/tkip_countermeasures.o 660OBJS += ../src/ap/ap_mlme.o 661OBJS += ../src/ap/ieee802_1x.o 662OBJS += ../src/eapol_auth/eapol_auth_sm.o 663OBJS += ../src/ap/ieee802_11_auth.o 664OBJS += ../src/ap/drv_callbacks.o 665OBJS += ../src/ap/ap_drv_ops.o 666ifdef CONFIG_IEEE80211N 667OBJS += ../src/ap/ieee802_11_ht.o 668endif 669ifdef CONFIG_CTRL_IFACE 670OBJS += ../src/ap/ctrl_iface_ap.o 671endif 672 673CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 674OBJS += ../src/eap_server/eap_server.o 675OBJS += ../src/eap_server/eap_server_identity.o 676OBJS += ../src/eap_server/eap_server_methods.o 677 678ifdef CONFIG_IEEE80211N 679CFLAGS += -DCONFIG_IEEE80211N 680endif 681 682ifdef NEED_AP_MLME 683OBJS += ../src/ap/beacon.o 684OBJS += ../src/ap/wmm.o 685OBJS += ../src/ap/ap_list.o 686OBJS += ../src/ap/ieee802_11.o 687OBJS += ../src/ap/hw_features.o 688CFLAGS += -DNEED_AP_MLME 689endif 690ifdef CONFIG_WPS 691CFLAGS += -DEAP_SERVER_WSC 692OBJS += ../src/ap/wps_hostapd.o 693OBJS += ../src/eap_server/eap_server_wsc.o 694endif 695endif 696 697ifdef NEED_RSN_AUTHENTICATOR 698CFLAGS += -DCONFIG_NO_RADIUS 699NEED_AES_WRAP=y 700OBJS += ../src/ap/wpa_auth.o 701OBJS += ../src/ap/wpa_auth_ie.o 702OBJS += ../src/ap/pmksa_cache_auth.o 703ifdef CONFIG_IEEE80211R 704OBJS += ../src/ap/wpa_auth_ft.o 705endif 706ifdef CONFIG_PEERKEY 707OBJS += ../src/ap/peerkey_auth.o 708endif 709endif 710 711ifdef CONFIG_EAP_SERVER 712CFLAGS += -DEAP_SERVER 713OBJS_h += ../src/eap_server/eap_server.o 714OBJS_h += ../src/eap_server/eap_server_identity.o 715OBJS_h += ../src/eap_server/eap_server_methods.o 716endif 717 718ifdef CONFIG_RADIUS_CLIENT 719OBJS_h += ../src/utils/ip_addr.o 720OBJS_h += ../src/radius/radius.o 721OBJS_h += ../src/radius/radius_client.o 722endif 723 724ifdef CONFIG_AUTHENTICATOR 725OBJS_h += ../src/eapol_auth/eapol_auth_sm.o 726OBJS_h += ../src/ap/ieee802_1x.o 727endif 728 729ifdef CONFIG_WPA_AUTHENTICATOR 730OBJS_h += ../src/ap/wpa_auth.o 731OBJS_h += ../src/ap/wpa_auth_ie.o 732OBJS_h += ../src/ap/pmksa_cache_auth.o 733ifdef CONFIG_IEEE80211R 734OBJS_h += ../src/ap/wpa_auth_ft.o 735endif 736ifdef CONFIG_PEERKEY 737OBJS_h += ../src/ap/peerkey_auth.o 738endif 739endif 740 741ifdef CONFIG_PCSC 742# PC/SC interface for smartcards (USIM, GSM SIM) 743CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC 744OBJS += ../src/utils/pcsc_funcs.o 745# -lpthread may not be needed depending on how pcsc-lite was configured 746ifdef CONFIG_NATIVE_WINDOWS 747#Once MinGW gets support for WinScard, -lwinscard could be used instead of the 748#dynamic symbol loading that is now used in pcsc_funcs.c 749#LIBS += -lwinscard 750else 751LIBS += -lpcsclite -lpthread 752endif 753endif 754 755ifdef CONFIG_SIM_SIMULATOR 756CFLAGS += -DCONFIG_SIM_SIMULATOR 757NEED_MILENAGE=y 758endif 759 760ifdef CONFIG_USIM_SIMULATOR 761CFLAGS += -DCONFIG_USIM_SIMULATOR 762NEED_MILENAGE=y 763endif 764 765ifdef NEED_MILENAGE 766OBJS += ../src/crypto/milenage.o 767endif 768 769ifdef CONFIG_PKCS12 770CFLAGS += -DPKCS12_FUNCS 771endif 772 773ifdef CONFIG_SMARTCARD 774CFLAGS += -DCONFIG_SMARTCARD 775endif 776 777ifdef MS_FUNCS 778OBJS += ../src/crypto/ms_funcs.o 779NEED_DES=y 780NEED_MD4=y 781endif 782 783ifdef CHAP 784OBJS += ../src/eap_common/chap.o 785endif 786 787ifdef TLS_FUNCS 788NEED_DES=y 789# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST) 790OBJS += ../src/eap_peer/eap_tls_common.o 791OBJS_h += ../src/eap_server/eap_server_tls_common.o 792NEED_TLS_PRF=y 793endif 794 795ifndef CONFIG_TLS 796CONFIG_TLS=openssl 797endif 798 799ifeq ($(CONFIG_TLS), openssl) 800ifdef TLS_FUNCS 801CFLAGS += -DEAP_TLS_OPENSSL 802OBJS += ../src/crypto/tls_openssl.o 803LIBS += -lssl 804endif 805OBJS += ../src/crypto/crypto_openssl.o 806OBJS_p += ../src/crypto/crypto_openssl.o 807ifdef NEED_FIPS186_2_PRF 808OBJS += ../src/crypto/fips_prf_openssl.o 809endif 810LIBS += -lcrypto 811LIBS_p += -lcrypto 812endif 813 814ifeq ($(CONFIG_TLS), gnutls) 815ifdef TLS_FUNCS 816OBJS += ../src/crypto/tls_gnutls.o 817LIBS += -lgnutls -lgpg-error 818ifdef CONFIG_GNUTLS_EXTRA 819CFLAGS += -DCONFIG_GNUTLS_EXTRA 820LIBS += -lgnutls-extra 821endif 822endif 823OBJS += ../src/crypto/crypto_gnutls.o 824OBJS_p += ../src/crypto/crypto_gnutls.o 825ifdef NEED_FIPS186_2_PRF 826OBJS += ../src/crypto/fips_prf_gnutls.o 827endif 828LIBS += -lgcrypt 829LIBS_p += -lgcrypt 830CONFIG_INTERNAL_SHA256=y 831CONFIG_INTERNAL_RC4=y 832CONFIG_INTERNAL_DH_GROUP5=y 833endif 834 835ifeq ($(CONFIG_TLS), schannel) 836ifdef TLS_FUNCS 837OBJS += ../src/crypto/tls_schannel.o 838endif 839OBJS += ../src/crypto/crypto_cryptoapi.o 840OBJS_p += ../src/crypto/crypto_cryptoapi.o 841ifdef NEED_FIPS186_2_PRF 842OBJS += ../src/crypto/fips_prf_cryptoapi.o 843endif 844CONFIG_INTERNAL_SHA256=y 845CONFIG_INTERNAL_RC4=y 846CONFIG_INTERNAL_DH_GROUP5=y 847endif 848 849ifeq ($(CONFIG_TLS), nss) 850ifdef TLS_FUNCS 851OBJS += ../src/crypto/tls_nss.o 852LIBS += -lssl3 853endif 854OBJS += ../src/crypto/crypto_nss.o 855OBJS_p += ../src/crypto/crypto_nss.o 856ifdef NEED_FIPS186_2_PRF 857OBJS += ../src/crypto/fips_prf_nss.o 858endif 859LIBS += -lnss3 860LIBS_p += -lnss3 861CONFIG_INTERNAL_MD4=y 862CONFIG_INTERNAL_DH_GROUP5=y 863endif 864 865ifeq ($(CONFIG_TLS), internal) 866ifndef CONFIG_CRYPTO 867CONFIG_CRYPTO=internal 868endif 869ifdef TLS_FUNCS 870OBJS += ../src/crypto/crypto_internal-rsa.o 871OBJS += ../src/crypto/tls_internal.o 872OBJS += ../src/tls/tlsv1_common.o 873OBJS += ../src/tls/tlsv1_record.o 874OBJS += ../src/tls/tlsv1_cred.o 875OBJS += ../src/tls/tlsv1_client.o 876OBJS += ../src/tls/tlsv1_client_write.o 877OBJS += ../src/tls/tlsv1_client_read.o 878OBJS += ../src/tls/asn1.o 879OBJS += ../src/tls/rsa.o 880OBJS += ../src/tls/x509v3.o 881OBJS += ../src/tls/pkcs1.o 882OBJS += ../src/tls/pkcs5.o 883OBJS += ../src/tls/pkcs8.o 884NEED_SHA256=y 885NEED_BASE64=y 886NEED_TLS_PRF=y 887NEED_MODEXP=y 888NEED_CIPHER=y 889CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 890endif 891ifdef NEED_CIPHER 892NEED_DES=y 893OBJS += ../src/crypto/crypto_internal-cipher.o 894endif 895ifdef NEED_MODEXP 896OBJS += ../src/crypto/crypto_internal-modexp.o 897OBJS += ../src/tls/bignum.o 898endif 899ifeq ($(CONFIG_CRYPTO), libtomcrypt) 900OBJS += ../src/crypto/crypto_libtomcrypt.o 901OBJS_p += ../src/crypto/crypto_libtomcrypt.o 902LIBS += -ltomcrypt -ltfm 903LIBS_p += -ltomcrypt -ltfm 904CONFIG_INTERNAL_SHA256=y 905CONFIG_INTERNAL_RC4=y 906CONFIG_INTERNAL_DH_GROUP5=y 907endif 908ifeq ($(CONFIG_CRYPTO), internal) 909OBJS += ../src/crypto/crypto_internal.o 910OBJS_p += ../src/crypto/crypto_internal.o 911NEED_AES_ENC=y 912CFLAGS += -DCONFIG_CRYPTO_INTERNAL 913ifdef CONFIG_INTERNAL_LIBTOMMATH 914CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 915ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 916CFLAGS += -DLTM_FAST 917endif 918else 919LIBS += -ltommath 920LIBS_p += -ltommath 921endif 922CONFIG_INTERNAL_AES=y 923CONFIG_INTERNAL_DES=y 924CONFIG_INTERNAL_SHA1=y 925CONFIG_INTERNAL_MD4=y 926CONFIG_INTERNAL_MD5=y 927CONFIG_INTERNAL_SHA256=y 928CONFIG_INTERNAL_RC4=y 929CONFIG_INTERNAL_DH_GROUP5=y 930endif 931ifeq ($(CONFIG_CRYPTO), cryptoapi) 932OBJS += ../src/crypto/crypto_cryptoapi.o 933OBJS_p += ../src/crypto/crypto_cryptoapi.o 934CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 935CONFIG_INTERNAL_SHA256=y 936CONFIG_INTERNAL_RC4=y 937endif 938endif 939 940ifeq ($(CONFIG_TLS), none) 941ifdef TLS_FUNCS 942OBJS += ../src/crypto/tls_none.o 943CFLAGS += -DEAP_TLS_NONE 944CONFIG_INTERNAL_AES=y 945CONFIG_INTERNAL_SHA1=y 946CONFIG_INTERNAL_MD5=y 947endif 948OBJS += ../src/crypto/crypto_none.o 949OBJS_p += ../src/crypto/crypto_none.o 950CONFIG_INTERNAL_SHA256=y 951CONFIG_INTERNAL_RC4=y 952endif 953 954ifdef TLS_FUNCS 955ifdef CONFIG_SMARTCARD 956ifndef CONFIG_NATIVE_WINDOWS 957ifneq ($(CONFIG_L2_PACKET), freebsd) 958LIBS += -ldl 959endif 960endif 961endif 962endif 963 964ifndef TLS_FUNCS 965OBJS += ../src/crypto/tls_none.o 966ifeq ($(CONFIG_TLS), internal) 967CONFIG_INTERNAL_AES=y 968CONFIG_INTERNAL_SHA1=y 969CONFIG_INTERNAL_MD5=y 970CONFIG_INTERNAL_RC4=y 971endif 972endif 973 974AESOBJS = # none so far (see below) 975ifdef CONFIG_INTERNAL_AES 976AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o 977endif 978 979AESOBJS += ../src/crypto/aes-unwrap.o 980ifdef NEED_AES_EAX 981AESOBJS += ../src/crypto/aes-eax.o 982NEED_AES_CTR=y 983endif 984ifdef NEED_AES_CTR 985AESOBJS += ../src/crypto/aes-ctr.o 986endif 987ifdef NEED_AES_ENCBLOCK 988AESOBJS += ../src/crypto/aes-encblock.o 989endif 990ifdef NEED_AES_OMAC1 991NEED_AES_ENC=y 992AESOBJS += ../src/crypto/aes-omac1.o 993endif 994ifdef NEED_AES_WRAP 995NEED_AES_ENC=y 996AESOBJS += ../src/crypto/aes-wrap.o 997endif 998ifdef NEED_AES_CBC 999NEED_AES_ENC=y 1000AESOBJS += ../src/crypto/aes-cbc.o 1001endif 1002ifdef NEED_AES_ENC 1003ifdef CONFIG_INTERNAL_AES 1004AESOBJS += ../src/crypto/aes-internal-enc.o 1005endif 1006endif 1007ifdef NEED_AES 1008OBJS += $(AESOBJS) 1009endif 1010 1011ifdef NEED_SHA1 1012SHA1OBJS += ../src/crypto/sha1.o 1013ifdef CONFIG_INTERNAL_SHA1 1014SHA1OBJS += ../src/crypto/sha1-internal.o 1015ifdef NEED_FIPS186_2_PRF 1016SHA1OBJS += ../src/crypto/fips_prf_internal.o 1017endif 1018endif 1019ifdef CONFIG_NO_WPA_PASSPHRASE 1020CFLAGS += -DCONFIG_NO_PBKDF2 1021else 1022SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1023endif 1024ifdef NEED_T_PRF 1025SHA1OBJS += ../src/crypto/sha1-tprf.o 1026endif 1027ifdef NEED_TLS_PRF 1028SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1029endif 1030endif 1031 1032MD5OBJS = ../src/crypto/md5.o 1033ifdef NEED_MD5 1034ifdef CONFIG_INTERNAL_MD5 1035MD5OBJS += ../src/crypto/md5-internal.o 1036endif 1037ifdef CONFIG_FIPS 1038MD5OBJS += ../src/crypto/md5-non-fips.o 1039endif 1040OBJS += $(MD5OBJS) 1041OBJS_p += $(MD5OBJS) 1042endif 1043 1044ifdef NEED_MD4 1045ifdef CONFIG_INTERNAL_MD4 1046OBJS += ../src/crypto/md4-internal.o 1047endif 1048endif 1049 1050DESOBJS = # none needed when not internal 1051ifdef NEED_DES 1052ifdef CONFIG_INTERNAL_DES 1053DESOBJS += ../src/crypto/des-internal.o 1054endif 1055endif 1056 1057ifdef NEED_RC4 1058ifdef CONFIG_INTERNAL_RC4 1059OBJS += ../src/crypto/rc4.o 1060endif 1061endif 1062 1063SHA256OBJS = # none by default 1064ifdef NEED_SHA256 1065CFLAGS += -DCONFIG_SHA256 1066SHA256OBJS += ../src/crypto/sha256.o 1067ifdef CONFIG_INTERNAL_SHA256 1068SHA256OBJS += ../src/crypto/sha256-internal.o 1069endif 1070OBJS += $(SHA256OBJS) 1071endif 1072 1073ifdef NEED_DH_GROUPS 1074OBJS += ../src/crypto/dh_groups.o 1075endif 1076ifdef NEED_DH_GROUPS_ALL 1077CFLAGS += -DALL_DH_GROUPS 1078endif 1079ifdef CONFIG_INTERNAL_DH_GROUP5 1080ifdef NEED_DH_GROUPS 1081OBJS += ../src/crypto/dh_group5.o 1082endif 1083endif 1084 1085ifdef CONFIG_NO_RANDOM_POOL 1086CFLAGS += -DCONFIG_NO_RANDOM_POOL 1087else 1088OBJS += ../src/crypto/random.o 1089endif 1090 1091ifdef CONFIG_CTRL_IFACE 1092ifeq ($(CONFIG_CTRL_IFACE), y) 1093ifdef CONFIG_NATIVE_WINDOWS 1094CONFIG_CTRL_IFACE=named_pipe 1095else 1096CONFIG_CTRL_IFACE=unix 1097endif 1098endif 1099CFLAGS += -DCONFIG_CTRL_IFACE 1100ifeq ($(CONFIG_CTRL_IFACE), unix) 1101CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1102endif 1103ifeq ($(CONFIG_CTRL_IFACE), udp) 1104CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1105endif 1106ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1107CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1108endif 1109OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o 1110endif 1111 1112ifdef CONFIG_CTRL_IFACE_DBUS 1113DBUS=y 1114DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE 1115DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o 1116ifdef CONFIG_WPS 1117DBUS_OBJS += dbus/dbus_old_handlers_wps.o 1118endif 1119DBUS_OBJS += dbus/dbus_dict_helpers.o 1120ifndef DBUS_LIBS 1121DBUS_LIBS := $(shell pkg-config --libs dbus-1) 1122endif 1123ifndef DBUS_INCLUDE 1124DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1) 1125endif 1126dbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1)) 1127DBUS_VERSION_MAJOR=$(word 1,$(dbus_version)) 1128DBUS_VERSION_MINOR=$(word 2,$(dbus_version)) 1129ifeq ($(DBUS_VERSION_MAJOR),) 1130DBUS_VERSION_MAJOR=0 1131endif 1132ifeq ($(DBUS_VERSION_MINOR),) 1133DBUS_VERSION_MINOR=0 1134endif 1135DBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR) 1136DBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR) 1137DBUS_CFLAGS += $(DBUS_INCLUDE) 1138endif 1139 1140ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1141DBUS=y 1142DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1143DBUS_OBJS ?= dbus/dbus_dict_helpers.o 1144DBUS_OBJS += dbus/dbus_new_helpers.o 1145DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o 1146ifdef CONFIG_WPS 1147DBUS_OBJS += dbus/dbus_new_handlers_wps.o 1148endif 1149ifdef CONFIG_P2P 1150DBUS_OBJS += dbus/dbus_new_handlers_p2p.o 1151endif 1152ifndef DBUS_LIBS 1153DBUS_LIBS := $(shell pkg-config --libs dbus-1) 1154endif 1155ifndef DBUS_INCLUDE 1156DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1) 1157endif 1158ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1159DBUS_OBJS += dbus/dbus_new_introspect.o 1160DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1161endif 1162DBUS_CFLAGS += $(DBUS_INCLUDE) 1163endif 1164 1165ifdef DBUS 1166DBUS_CFLAGS += -DCONFIG_DBUS 1167DBUS_OBJS += dbus/dbus_common.o 1168endif 1169 1170OBJS += $(DBUS_OBJS) 1171CFLAGS += $(DBUS_CFLAGS) 1172LIBS += $(DBUS_LIBS) 1173 1174ifdef CONFIG_READLINE 1175OBJS_c += ../src/utils/edit_readline.o 1176LIBS_c += -lncurses -lreadline 1177else 1178ifdef CONFIG_WPA_CLI_EDIT 1179OBJS_c += ../src/utils/edit.o 1180else 1181OBJS_c += ../src/utils/edit_simple.o 1182endif 1183endif 1184 1185ifdef CONFIG_NATIVE_WINDOWS 1186CFLAGS += -DCONFIG_NATIVE_WINDOWS 1187LIBS += -lws2_32 -lgdi32 -lcrypt32 1188LIBS_c += -lws2_32 1189LIBS_p += -lws2_32 -lgdi32 1190ifeq ($(CONFIG_CRYPTO), cryptoapi) 1191LIBS_p += -lcrypt32 1192endif 1193endif 1194 1195ifdef CONFIG_NO_STDOUT_DEBUG 1196CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1197ifndef CONFIG_CTRL_IFACE 1198CFLAGS += -DCONFIG_NO_WPA_MSG 1199endif 1200endif 1201 1202ifdef CONFIG_IPV6 1203# for eapol_test only 1204CFLAGS += -DCONFIG_IPV6 1205endif 1206 1207ifdef NEED_BASE64 1208OBJS += ../src/utils/base64.o 1209endif 1210 1211ifdef NEED_SME 1212NEED_80211_COMMON=y 1213OBJS += sme.o 1214CFLAGS += -DCONFIG_SME 1215endif 1216 1217ifdef CONFIG_CLIENT_MLME 1218OBJS += mlme.o 1219CFLAGS += -DCONFIG_CLIENT_MLME 1220NEED_80211_COMMON=y 1221endif 1222 1223ifdef NEED_80211_COMMON 1224OBJS += ../src/common/ieee802_11_common.o 1225endif 1226 1227ifdef NEED_EAP_COMMON 1228OBJS += ../src/eap_common/eap_common.o 1229endif 1230 1231ifndef CONFIG_MAIN 1232CONFIG_MAIN=main 1233endif 1234 1235ifdef CONFIG_DEBUG_SYSLOG 1236CFLAGS += -DCONFIG_DEBUG_SYSLOG 1237ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1238CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1239endif 1240endif 1241 1242ifdef CONFIG_DEBUG_FILE 1243CFLAGS += -DCONFIG_DEBUG_FILE 1244endif 1245 1246ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1247CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1248endif 1249 1250ifdef CONFIG_FIPS 1251CFLAGS += -DCONFIG_FIPS 1252endif 1253 1254OBJS += $(SHA1OBJS) $(DESOBJS) 1255 1256OBJS_p += $(SHA1OBJS) 1257 1258ifdef CONFIG_BGSCAN_SIMPLE 1259CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1260OBJS += bgscan_simple.o 1261NEED_BGSCAN=y 1262endif 1263 1264ifdef CONFIG_BGSCAN_LEARN 1265CFLAGS += -DCONFIG_BGSCAN_LEARN 1266OBJS += bgscan_learn.o 1267NEED_BGSCAN=y 1268endif 1269 1270ifdef NEED_BGSCAN 1271CFLAGS += -DCONFIG_BGSCAN 1272OBJS += bgscan.o 1273endif 1274 1275OBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o 1276OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o 1277ifdef CONFIG_AUTHENTICATOR 1278OBJS_wpa += tests/link_test.o 1279endif 1280OBJS_wpa += $(OBJS_l2) 1281OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o 1282OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o 1283OBJS_t += ../src/radius/radius_client.o 1284OBJS_t += ../src/radius/radius.o 1285ifndef CONFIG_AP 1286OBJS_t += ../src/utils/ip_addr.o 1287endif 1288OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o 1289OBJS += $(CONFIG_MAIN).o 1290 1291ifdef CONFIG_PRIVSEP 1292OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o 1293OBJS_priv += $(OBJS_l2) 1294OBJS_priv += ../src/utils/os_$(CONFIG_OS).o 1295OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o 1296OBJS_priv += ../src/utils/common.o 1297OBJS_priv += ../src/utils/wpa_debug.o 1298OBJS_priv += ../src/utils/wpabuf.o 1299OBJS_priv += wpa_priv.o 1300ifdef CONFIG_DRIVER_TEST 1301OBJS_priv += $(SHA1OBJS) 1302OBJS_priv += $(MD5OBJS) 1303ifeq ($(CONFIG_TLS), openssl) 1304OBJS_priv += ../src/crypto/crypto_openssl.o 1305endif 1306ifeq ($(CONFIG_TLS), gnutls) 1307OBJS_priv += ../src/crypto/crypto_gnutls.o 1308endif 1309ifeq ($(CONFIG_TLS), nss) 1310OBJS_priv += ../src/crypto/crypto_nss.o 1311endif 1312ifeq ($(CONFIG_TLS), internal) 1313ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1314OBJS_priv += ../src/crypto/crypto_libtomcrypt.o 1315else 1316OBJS_priv += ../src/crypto/crypto_internal.o 1317endif 1318endif 1319endif # CONFIG_DRIVER_TEST 1320OBJS += ../src/l2_packet/l2_packet_privsep.o 1321OBJS += ../src/drivers/driver_privsep.o 1322EXTRA_progs += wpa_priv 1323else 1324OBJS += $(OBJS_d) ../src/drivers/drivers.o 1325OBJS += $(OBJS_l2) 1326endif 1327 1328ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1329CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1330OBJS += ../src/drivers/ndis_events.o 1331EXTRALIBS += -loleaut32 -lole32 -luuid 1332ifdef PLATFORMSDKLIB 1333EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1334else 1335EXTRALIBS += WbemUuid.Lib 1336endif 1337endif 1338 1339ifndef LDO 1340LDO=$(CC) 1341endif 1342 1343Q=@ 1344E=echo 1345ifeq ($(V), 1) 1346Q= 1347E=true 1348endif 1349 1350dynamic_eap_methods: $(EAPDYN) 1351 1352../src/drivers/build.wpa_supplicant: 1353 @if [ -f ../src/drivers/build.hostapd ]; then \ 1354 $(MAKE) -C ../src/drivers clean; \ 1355 fi 1356 @touch ../src/drivers/build.wpa_supplicant 1357 1358BCHECK=../src/drivers/build.wpa_supplicant 1359 1360wpa_priv: $(BCHECK) $(OBJS_priv) 1361 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) 1362 @$(E) " LD " $@ 1363 1364wpa_supplicant: .config $(BCHECK) $(OBJS) $(EXTRA_progs) 1365 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) 1366 @$(E) " LD " $@ 1367 1368eapol_test: .config $(OBJS_t) 1369 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS) 1370 @$(E) " LD " $@ 1371 1372preauth_test: .config $(OBJS_t2) 1373 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS) 1374 @$(E) " LD " $@ 1375 1376wpa_passphrase: $(OBJS_p) 1377 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) 1378 @$(E) " LD " $@ 1379 1380wpa_cli: $(OBJS_c) 1381 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c) 1382 @$(E) " LD " $@ 1383 1384link_test: $(OBJS) $(OBJS_h) tests/link_test.o 1385 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS) 1386 @$(E) " LD " $@ 1387 1388test_wpa: $(OBJS_wpa) $(OBJS_h) 1389 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS) 1390 @$(E) " LD " $@ 1391 1392win_if_list: win_if_list.c 1393 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w) 1394 @$(E) " LD " $@ 1395 1396eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c 1397 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1398 -Deap_peer_psk_register=eap_peer_method_dynamic_init 1399 1400eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c 1401 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1402 -Deap_peer_pax_register=eap_peer_method_dynamic_init 1403 1404eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c 1405 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1406 -Deap_peer_sake_register=eap_peer_method_dynamic_init 1407 1408eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c 1409 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1410 -Deap_peer_wsc_register=eap_peer_method_dynamic_init 1411 1412eap_ikev2.so: ../src/eap_peer/eap_ikev2.c ../src/eap_peer/ikev2.c ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.c 1413 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1414 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init 1415 1416%.so: %.c 1417 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ 1418 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init 1419 1420%.o: %.c 1421 $(Q)$(CC) -c -o $@ $(CFLAGS) $< 1422 @$(E) " CC " $< 1423 1424wpa_supplicant.exe: wpa_supplicant 1425 mv -f $< $@ 1426wpa_cli.exe: wpa_cli 1427 mv -f $< $@ 1428wpa_passphrase.exe: wpa_passphrase 1429 mv -f $< $@ 1430win_if_list.exe: win_if_list 1431 mv -f $< $@ 1432eapol_test.exe: eapol_test 1433 mv -f $< $@ 1434 1435WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe 1436 1437windows-bin: $(WINALL) 1438 $(STRIP) $(WINALL) 1439 1440wpa_gui/Makefile: 1441 qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro 1442 1443wpa_gui: wpa_gui/Makefile 1444 $(MAKE) -C wpa_gui 1445 1446wpa_gui-qt4/Makefile: 1447 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro 1448 1449wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts 1450 lrelease wpa_gui-qt4/wpa_gui.pro 1451 1452wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm 1453 $(MAKE) -C wpa_gui-qt4 1454 1455TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \ 1456 ../src/utils/common.o ../src/utils/os_unix.o \ 1457 ../src/utils/wpa_debug.o $(AESOBJS) \ 1458 tests/test_eap_sim_common.o 1459test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS) 1460 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS) 1461 ./test-eap_sim_common 1462 rm test-eap_sim_common 1463 1464tests: test-eap_sim_common 1465 1466clean: 1467 $(MAKE) -C ../src clean 1468 $(MAKE) -C dbus clean 1469 rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) eapol_test preauth_test 1470 rm -f wpa_priv 1471 1472-include $(OBJS:%.o=%.d) 1473