1ifndef CC 2CC=gcc 3endif 4 5ifndef CFLAGS 6CFLAGS = -MMD -Wall -g 7endif 8CFLAGS += $(EXTRACFLAGS) 9 10export LIBDIR ?= /usr/local/lib/ 11export BINDIR ?= /usr/local/sbin/ 12 13CFLAGS += -I../src 14CFLAGS += -I../src/crypto 15CFLAGS += -I../src/utils 16CFLAGS += -I../src/common 17CFLAGS += -I../src/rsn_supp 18 19CFLAGS += -ffunction-sections -fdata-sections 20LDFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections 21 22ALL=wpa_supplicant wpa_passphrase wpa_cli 23 24all: verify_config $(ALL) dynamic_eap_methods 25 26verify_config: 27 @if [ ! -r .config ]; then \ 28 echo 'Building wpa_supplicant requires a configuration file'; \ 29 echo '(.config). See README for more instructions. You can'; \ 30 echo 'run "cp defconfig .config" to create an example'; \ 31 echo 'configuration.'; \ 32 exit 1; \ 33 fi 34 35mkconfig: 36 @if [ -e .config ]; then \ 37 echo '.config exists - did not replace it'; \ 38 exit 1; \ 39 fi 40 echo CONFIG_DRIVER_HOSTAP=y >> .config 41 echo CONFIG_DRIVER_WEXT=y >> .config 42 43install: all 44 mkdir -p $(DESTDIR)$(BINDIR) 45 for i in $(ALL); do cp $$i $(DESTDIR)$(BINDIR)/$$i; done 46 $(MAKE) -C ../src install 47 48OBJS = config.o 49OBJS += ../src/utils/common.o 50OBJS += ../src/utils/wpa_debug.o 51OBJS += ../src/utils/wpabuf.o 52OBJS += ../src/crypto/md5.o 53OBJS += ../src/crypto/rc4.o 54OBJS += ../src/crypto/md4.o 55OBJS += ../src/crypto/sha1.o 56OBJS += ../src/crypto/des.o 57OBJS_p = wpa_passphrase.o 58OBJS_p += ../src/utils/common.o 59OBJS_p += ../src/utils/wpa_debug.o 60OBJS_p += ../src/crypto/md5.o 61OBJS_p += ../src/crypto/md4.o 62OBJS_p += ../src/crypto/sha1.o 63OBJS_p += ../src/crypto/des.o 64OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o 65 66-include .config 67 68ifndef CONFIG_OS 69ifdef CONFIG_NATIVE_WINDOWS 70CONFIG_OS=win32 71else 72CONFIG_OS=unix 73endif 74endif 75 76ifeq ($(CONFIG_OS), internal) 77CFLAGS += -DOS_NO_C_LIB_DEFINES 78endif 79 80OBJS += ../src/utils/os_$(CONFIG_OS).o 81OBJS_p += ../src/utils/os_$(CONFIG_OS).o 82OBJS_c += ../src/utils/os_$(CONFIG_OS).o 83 84ifndef CONFIG_ELOOP 85CONFIG_ELOOP=eloop 86endif 87OBJS += ../src/utils/$(CONFIG_ELOOP).o 88 89 90ifdef CONFIG_EAPOL_TEST 91CFLAGS += -Werror -DEAPOL_TEST 92endif 93 94ifndef CONFIG_BACKEND 95CONFIG_BACKEND=file 96endif 97 98ifeq ($(CONFIG_BACKEND), file) 99OBJS += config_file.o 100ifndef CONFIG_NO_CONFIG_BLOBS 101NEED_BASE64=y 102endif 103CFLAGS += -DCONFIG_BACKEND_FILE 104endif 105 106ifeq ($(CONFIG_BACKEND), winreg) 107OBJS += config_winreg.o 108endif 109 110ifeq ($(CONFIG_BACKEND), none) 111OBJS += config_none.o 112endif 113 114ifdef CONFIG_NO_CONFIG_WRITE 115CFLAGS += -DCONFIG_NO_CONFIG_WRITE 116endif 117 118ifdef CONFIG_NO_CONFIG_BLOBS 119CFLAGS += -DCONFIG_NO_CONFIG_BLOBS 120endif 121 122ifdef CONFIG_NO_SCAN_PROCESSING 123CFLAGS += -DCONFIG_NO_SCAN_PROCESSING 124endif 125 126ifdef CONFIG_DRIVER_HOSTAP 127CFLAGS += -DCONFIG_DRIVER_HOSTAP 128OBJS_d += ../src/drivers/driver_hostap.o 129CONFIG_WIRELESS_EXTENSION=y 130endif 131 132ifdef CONFIG_DRIVER_WEXT 133CFLAGS += -DCONFIG_DRIVER_WEXT 134CONFIG_WIRELESS_EXTENSION=y 135endif 136 137ifdef CONFIG_DRIVER_NL80211 138CFLAGS += -DCONFIG_DRIVER_NL80211 139OBJS_d += ../src/drivers/driver_nl80211.o 140LIBS += -lnl 141ifdef CONFIG_CLIENT_MLME 142OBJS_d += ../src/drivers/radiotap.o 143endif 144endif 145 146ifdef CONFIG_DRIVER_PRISM54 147CFLAGS += -DCONFIG_DRIVER_PRISM54 148OBJS_d += ../src/drivers/driver_prism54.o 149CONFIG_WIRELESS_EXTENSION=y 150endif 151 152ifdef CONFIG_DRIVER_HERMES 153CFLAGS += -DCONFIG_DRIVER_HERMES 154OBJS_d += ../src/drivers/driver_hermes.o 155CONFIG_WIRELESS_EXTENSION=y 156endif 157 158ifdef CONFIG_DRIVER_MADWIFI 159CFLAGS += -DCONFIG_DRIVER_MADWIFI 160OBJS_d += ../src/drivers/driver_madwifi.o 161CONFIG_WIRELESS_EXTENSION=y 162endif 163 164ifdef CONFIG_DRIVER_ATMEL 165CFLAGS += -DCONFIG_DRIVER_ATMEL 166OBJS_d += ../src/drivers/driver_atmel.o 167CONFIG_WIRELESS_EXTENSION=y 168endif 169 170ifdef CONFIG_DRIVER_NDISWRAPPER 171CFLAGS += -DCONFIG_DRIVER_NDISWRAPPER 172OBJS_d += ../src/drivers/driver_ndiswrapper.o 173CONFIG_WIRELESS_EXTENSION=y 174endif 175 176ifdef CONFIG_DRIVER_RALINK 177CFLAGS += -DCONFIG_DRIVER_RALINK 178OBJS_d += ../src/drivers/driver_ralink.o 179endif 180 181ifdef CONFIG_DRIVER_BROADCOM 182CFLAGS += -DCONFIG_DRIVER_BROADCOM 183OBJS_d += ../src/drivers/driver_broadcom.o 184endif 185 186ifdef CONFIG_DRIVER_IPW 187CFLAGS += -DCONFIG_DRIVER_IPW 188OBJS_d += ../src/drivers/driver_ipw.o 189CONFIG_WIRELESS_EXTENSION=y 190endif 191 192ifdef CONFIG_DRIVER_BSD 193CFLAGS += -DCONFIG_DRIVER_BSD 194OBJS_d += ../src/drivers/driver_bsd.o 195ifndef CONFIG_L2_PACKET 196CONFIG_L2_PACKET=freebsd 197endif 198endif 199 200ifdef CONFIG_DRIVER_NDIS 201CFLAGS += -DCONFIG_DRIVER_NDIS 202OBJS_d += ../src/drivers/driver_ndis.o 203ifdef CONFIG_NDIS_EVENTS_INTEGRATED 204OBJS_d += ../src/drivers/driver_ndis_.o 205endif 206ifndef CONFIG_L2_PACKET 207CONFIG_L2_PACKET=pcap 208endif 209CONFIG_WINPCAP=y 210ifdef CONFIG_USE_NDISUIO 211CFLAGS += -DCONFIG_USE_NDISUIO 212endif 213endif 214 215ifdef CONFIG_DRIVER_WIRED 216CFLAGS += -DCONFIG_DRIVER_WIRED 217OBJS_d += ../src/drivers/driver_wired.o 218endif 219 220ifdef CONFIG_DRIVER_TEST 221CFLAGS += -DCONFIG_DRIVER_TEST 222OBJS_d += ../src/drivers/driver_test.o 223endif 224 225ifdef CONFIG_DRIVER_OSX 226CFLAGS += -DCONFIG_DRIVER_OSX 227OBJS_d += ../src/drivers/driver_osx.o 228LDFLAGS += -framework CoreFoundation 229LDFLAGS += -F/System/Library/PrivateFrameworks -framework Apple80211 230endif 231 232ifdef CONFIG_DRIVER_PS3 233CFLAGS += -DCONFIG_DRIVER_PS3 -m64 234OBJS_d += ../src/drivers/driver_ps3.o 235LDFLAGS += -m64 236endif 237 238ifdef CONFIG_DRIVER_IPHONE 239CFLAGS += -DCONFIG_DRIVER_IPHONE 240OBJS_d += ../src/drivers/driver_iphone.o 241OBJS_d += ../src/drivers/MobileApple80211.o 242LIBS += -framework CoreFoundation 243endif 244 245ifdef CONFIG_DRIVER_ROBOSWITCH 246CFLAGS += -DCONFIG_DRIVER_ROBOSWITCH 247OBJS_d += ../src/drivers/driver_roboswitch.o 248endif 249 250ifndef CONFIG_L2_PACKET 251CONFIG_L2_PACKET=linux 252endif 253 254OBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o 255 256ifeq ($(CONFIG_L2_PACKET), pcap) 257ifdef CONFIG_WINPCAP 258CFLAGS += -DCONFIG_WINPCAP 259LIBS += -lwpcap -lpacket 260LIBS_w += -lwpcap 261else 262LIBS += -ldnet -lpcap 263endif 264endif 265 266ifeq ($(CONFIG_L2_PACKET), winpcap) 267LIBS += -lwpcap -lpacket 268LIBS_w += -lwpcap 269endif 270 271ifeq ($(CONFIG_L2_PACKET), freebsd) 272LIBS += -lpcap 273endif 274 275ifdef CONFIG_EAP_TLS 276# EAP-TLS 277ifeq ($(CONFIG_EAP_TLS), dyn) 278CFLAGS += -DEAP_TLS_DYNAMIC 279EAPDYN += ../src/eap_peer/eap_tls.so 280else 281CFLAGS += -DEAP_TLS 282OBJS += ../src/eap_peer/eap_tls.o 283OBJS_h += ../src/eap_server/eap_tls.o 284endif 285TLS_FUNCS=y 286CONFIG_IEEE8021X_EAPOL=y 287endif 288 289ifdef CONFIG_EAP_PEAP 290# EAP-PEAP 291ifeq ($(CONFIG_EAP_PEAP), dyn) 292CFLAGS += -DEAP_PEAP_DYNAMIC 293EAPDYN += ../src/eap_peer/eap_peap.so 294else 295CFLAGS += -DEAP_PEAP 296OBJS += ../src/eap_peer/eap_peap.o 297OBJS += ../src/eap_common/eap_peap_common.o 298OBJS_h += ../src/eap_server/eap_peap.o 299endif 300TLS_FUNCS=y 301CONFIG_IEEE8021X_EAPOL=y 302endif 303 304ifdef CONFIG_EAP_TTLS 305# EAP-TTLS 306ifeq ($(CONFIG_EAP_TTLS), dyn) 307CFLAGS += -DEAP_TTLS_DYNAMIC 308EAPDYN += ../src/eap_peer/eap_ttls.so 309else 310CFLAGS += -DEAP_TTLS 311OBJS += ../src/eap_peer/eap_ttls.o 312OBJS_h += ../src/eap_server/eap_ttls.o 313endif 314MS_FUNCS=y 315TLS_FUNCS=y 316CHAP=y 317CONFIG_IEEE8021X_EAPOL=y 318endif 319 320ifdef CONFIG_EAP_MD5 321# EAP-MD5 322ifeq ($(CONFIG_EAP_MD5), dyn) 323CFLAGS += -DEAP_MD5_DYNAMIC 324EAPDYN += ../src/eap_peer/eap_md5.so 325else 326CFLAGS += -DEAP_MD5 327OBJS += ../src/eap_peer/eap_md5.o 328OBJS_h += ../src/eap_server/eap_md5.o 329endif 330CHAP=y 331CONFIG_IEEE8021X_EAPOL=y 332endif 333 334# backwards compatibility for old spelling 335ifdef CONFIG_MSCHAPV2 336ifndef CONFIG_EAP_MSCHAPV2 337CONFIG_EAP_MSCHAPV2=y 338endif 339endif 340 341ifdef CONFIG_EAP_MSCHAPV2 342# EAP-MSCHAPv2 343ifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 344CFLAGS += -DEAP_MSCHAPv2_DYNAMIC 345EAPDYN += ../src/eap_peer/eap_mschapv2.so 346EAPDYN += ../src/eap_peer/mschapv2.so 347else 348CFLAGS += -DEAP_MSCHAPv2 349OBJS += ../src/eap_peer/eap_mschapv2.o 350OBJS += ../src/eap_peer/mschapv2.o 351OBJS_h += ../src/eap_server/eap_mschapv2.o 352endif 353MS_FUNCS=y 354CONFIG_IEEE8021X_EAPOL=y 355endif 356 357ifdef CONFIG_EAP_GTC 358# EAP-GTC 359ifeq ($(CONFIG_EAP_GTC), dyn) 360CFLAGS += -DEAP_GTC_DYNAMIC 361EAPDYN += ../src/eap_peer/eap_gtc.so 362else 363CFLAGS += -DEAP_GTC 364OBJS += ../src/eap_peer/eap_gtc.o 365OBJS_h += ../src/eap_server/eap_gtc.o 366endif 367CONFIG_IEEE8021X_EAPOL=y 368endif 369 370ifdef CONFIG_EAP_OTP 371# EAP-OTP 372ifeq ($(CONFIG_EAP_OTP), dyn) 373CFLAGS += -DEAP_OTP_DYNAMIC 374EAPDYN += ../src/eap_peer/eap_otp.so 375else 376CFLAGS += -DEAP_OTP 377OBJS += ../src/eap_peer/eap_otp.o 378endif 379CONFIG_IEEE8021X_EAPOL=y 380endif 381 382ifdef CONFIG_EAP_SIM 383# EAP-SIM 384ifeq ($(CONFIG_EAP_SIM), dyn) 385CFLAGS += -DEAP_SIM_DYNAMIC 386EAPDYN += ../src/eap_peer/eap_sim.so 387else 388CFLAGS += -DEAP_SIM 389OBJS += ../src/eap_peer/eap_sim.o 390OBJS_h += ../src/eap_server/eap_sim.o 391endif 392CONFIG_IEEE8021X_EAPOL=y 393CONFIG_EAP_SIM_COMMON=y 394endif 395 396ifdef CONFIG_EAP_LEAP 397# EAP-LEAP 398ifeq ($(CONFIG_EAP_LEAP), dyn) 399CFLAGS += -DEAP_LEAP_DYNAMIC 400EAPDYN += ../src/eap_peer/eap_leap.so 401else 402CFLAGS += -DEAP_LEAP 403OBJS += ../src/eap_peer/eap_leap.o 404endif 405MS_FUNCS=y 406CONFIG_IEEE8021X_EAPOL=y 407endif 408 409ifdef CONFIG_EAP_PSK 410# EAP-PSK 411ifeq ($(CONFIG_EAP_PSK), dyn) 412CFLAGS += -DEAP_PSK_DYNAMIC 413EAPDYN += ../src/eap_peer/eap_psk.so 414else 415CFLAGS += -DEAP_PSK 416OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o 417OBJS_h += ../src/eap_server/eap_psk.o 418endif 419CONFIG_IEEE8021X_EAPOL=y 420NEED_AES=y 421endif 422 423ifdef CONFIG_EAP_AKA 424# EAP-AKA 425ifeq ($(CONFIG_EAP_AKA), dyn) 426CFLAGS += -DEAP_AKA_DYNAMIC 427EAPDYN += ../src/eap_peer/eap_aka.so 428else 429CFLAGS += -DEAP_AKA 430OBJS += ../src/eap_peer/eap_aka.o 431OBJS_h += ../src/eap_server/eap_aka.o 432endif 433CONFIG_IEEE8021X_EAPOL=y 434CONFIG_EAP_SIM_COMMON=y 435endif 436 437ifdef CONFIG_EAP_AKA_PRIME 438# EAP-AKA' 439ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 440CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 441else 442CFLAGS += -DEAP_AKA_PRIME 443endif 444NEED_SHA256=y 445endif 446 447ifdef CONFIG_EAP_SIM_COMMON 448OBJS += ../src/eap_common/eap_sim_common.o 449OBJS_h += ../src/eap_server/eap_sim_db.o 450NEED_AES=y 451NEED_FIPS186_2_PRF=y 452endif 453 454ifdef CONFIG_EAP_FAST 455# EAP-FAST 456ifeq ($(CONFIG_EAP_FAST), dyn) 457CFLAGS += -DEAP_FAST_DYNAMIC 458EAPDYN += ../src/eap_peer/eap_fast.so 459EAPDYN += ../src/eap_common/eap_fast_common.o 460else 461CFLAGS += -DEAP_FAST 462OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o 463OBJS += ../src/eap_common/eap_fast_common.o 464OBJS_h += ../src/eap_server/eap_fast.o 465endif 466TLS_FUNCS=y 467CONFIG_IEEE8021X_EAPOL=y 468NEED_T_PRF=y 469endif 470 471ifdef CONFIG_EAP_PAX 472# EAP-PAX 473ifeq ($(CONFIG_EAP_PAX), dyn) 474CFLAGS += -DEAP_PAX_DYNAMIC 475EAPDYN += ../src/eap_peer/eap_pax.so 476else 477CFLAGS += -DEAP_PAX 478OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o 479OBJS_h += ../src/eap_server/eap_pax.o 480endif 481CONFIG_IEEE8021X_EAPOL=y 482endif 483 484ifdef CONFIG_EAP_SAKE 485# EAP-SAKE 486ifeq ($(CONFIG_EAP_SAKE), dyn) 487CFLAGS += -DEAP_SAKE_DYNAMIC 488EAPDYN += ../src/eap_peer/eap_sake.so 489else 490CFLAGS += -DEAP_SAKE 491OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o 492OBJS_h += ../src/eap_server/eap_sake.o 493endif 494CONFIG_IEEE8021X_EAPOL=y 495endif 496 497ifdef CONFIG_EAP_GPSK 498# EAP-GPSK 499ifeq ($(CONFIG_EAP_GPSK), dyn) 500CFLAGS += -DEAP_GPSK_DYNAMIC 501EAPDYN += ../src/eap_peer/eap_gpsk.so 502else 503CFLAGS += -DEAP_GPSK 504OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o 505OBJS_h += ../src/eap_server/eap_gpsk.o 506endif 507CONFIG_IEEE8021X_EAPOL=y 508ifdef CONFIG_EAP_GPSK_SHA256 509CFLAGS += -DEAP_GPSK_SHA256 510endif 511NEED_SHA256=y 512endif 513 514ifdef CONFIG_WPS 515# EAP-WSC 516CFLAGS += -DCONFIG_WPS -DEAP_WSC 517OBJS += wps_supplicant.o 518OBJS += ../src/utils/uuid.o 519OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o 520OBJS += ../src/wps/wps.o 521OBJS += ../src/wps/wps_common.o 522OBJS += ../src/wps/wps_attr_parse.o 523OBJS += ../src/wps/wps_attr_build.o 524OBJS += ../src/wps/wps_attr_process.o 525OBJS += ../src/wps/wps_dev_attr.o 526OBJS += ../src/wps/wps_enrollee.o 527OBJS += ../src/wps/wps_registrar.o 528OBJS_h += ../src/eap_server/eap_wsc.o 529CONFIG_IEEE8021X_EAPOL=y 530NEED_DH_GROUPS=y 531NEED_SHA256=y 532NEED_BASE64=y 533NEED_CRYPTO=y 534NEED_80211_COMMON=y 535 536ifdef CONFIG_WPS_UPNP 537CFLAGS += -DCONFIG_WPS_UPNP 538OBJS += ../src/wps/wps_upnp.o 539OBJS += ../src/wps/wps_upnp_ssdp.o 540OBJS += ../src/wps/wps_upnp_web.o 541OBJS += ../src/wps/wps_upnp_event.o 542OBJS += ../src/wps/httpread.o 543endif 544 545endif 546 547ifdef CONFIG_EAP_IKEV2 548# EAP-IKEv2 549ifeq ($(CONFIG_EAP_IKEV2), dyn) 550CFLAGS += -DEAP_IKEV2_DYNAMIC 551EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o 552EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 553else 554CFLAGS += -DEAP_IKEV2 555OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o 556OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 557OBJS_h += ../src/eap_server/eap_ikev2.o 558OBJS_h += ../src/eap_server/ikev2.o 559endif 560CONFIG_IEEE8021X_EAPOL=y 561NEED_DH_GROUPS=y 562NEED_DH_GROUPS_ALL=y 563endif 564 565ifdef CONFIG_EAP_VENDOR_TEST 566ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 567CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 568EAPDYN += ../src/eap_peer/eap_vendor_test.so 569else 570CFLAGS += -DEAP_VENDOR_TEST 571OBJS += ../src/eap_peer/eap_vendor_test.o 572OBJS_h += ../src/eap_server/eap_vendor_test.o 573endif 574CONFIG_IEEE8021X_EAPOL=y 575endif 576 577ifdef CONFIG_EAP_TNC 578# EAP-TNC 579CFLAGS += -DEAP_TNC 580OBJS += ../src/eap_peer/eap_tnc.o 581OBJS += ../src/eap_peer/tncc.o 582NEED_BASE64=y 583ifndef CONFIG_NATIVE_WINDOWS 584ifndef CONFIG_DRIVER_BSD 585LIBS += -ldl 586endif 587endif 588endif 589 590ifdef CONFIG_IEEE8021X_EAPOL 591# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 592CFLAGS += -DIEEE8021X_EAPOL 593OBJS += ../src/eapol_supp/eapol_supp_sm.o ../src/eap_peer/eap.o ../src/eap_common/eap_common.o ../src/eap_peer/eap_methods.o 594ifdef CONFIG_DYNAMIC_EAP_METHODS 595CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 596LIBS += -ldl -rdynamic 597endif 598endif 599 600ifdef CONFIG_EAP_SERVER 601CFLAGS += -DEAP_SERVER 602OBJS_h += ../src/eap_server/eap.o 603OBJS_h += ../src/eap_server/eap_identity.o 604OBJS_h += ../src/eap_server/eap_methods.o 605endif 606 607ifdef CONFIG_RADIUS_CLIENT 608OBJS_h += ../src/utils/ip_addr.o 609OBJS_h += ../src/radius/radius.o 610OBJS_h += ../src/radius/radius_client.o 611endif 612 613ifdef CONFIG_AUTHENTICATOR 614OBJS_h += ../hostapd/eapol_sm.o 615OBJS_h += ../hostapd/ieee802_1x.o 616endif 617 618ifdef CONFIG_WPA_AUTHENTICATOR 619OBJS_h += ../hostapd/wpa.o 620OBJS_h += ../hostapd/wpa_auth_ie.o 621ifdef CONFIG_IEEE80211R 622OBJS_h += ../hostapd/wpa_ft.o 623endif 624ifdef CONFIG_PEERKEY 625OBJS_h += ../hostapd/peerkey.o 626endif 627endif 628 629ifdef CONFIG_PCSC 630# PC/SC interface for smartcards (USIM, GSM SIM) 631CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC 632OBJS += ../src/utils/pcsc_funcs.o 633# -lpthread may not be needed depending on how pcsc-lite was configured 634ifdef CONFIG_NATIVE_WINDOWS 635#Once MinGW gets support for WinScard, -lwinscard could be used instead of the 636#dynamic symbol loading that is now used in pcsc_funcs.c 637#LIBS += -lwinscard 638else 639LIBS += -lpcsclite -lpthread 640endif 641endif 642 643ifdef CONFIG_SIM_SIMULATOR 644CFLAGS += -DCONFIG_SIM_SIMULATOR 645NEED_MILENAGE=y 646endif 647 648ifdef CONFIG_USIM_SIMULATOR 649CFLAGS += -DCONFIG_USIM_SIMULATOR 650NEED_MILENAGE=y 651endif 652 653ifdef NEED_MILENAGE 654OBJS += ../src/hlr_auc_gw/milenage.o 655endif 656 657ifndef CONFIG_TLS 658CONFIG_TLS=openssl 659endif 660 661ifeq ($(CONFIG_TLS), internal) 662ifndef CONFIG_CRYPTO 663CONFIG_CRYPTO=internal 664endif 665endif 666ifeq ($(CONFIG_CRYPTO), libtomcrypt) 667CFLAGS += -DCONFIG_INTERNAL_X509 668endif 669ifeq ($(CONFIG_CRYPTO), internal) 670CFLAGS += -DCONFIG_INTERNAL_X509 671endif 672 673 674ifdef TLS_FUNCS 675# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST) 676CFLAGS += -DEAP_TLS_FUNCS 677OBJS += ../src/eap_peer/eap_tls_common.o 678OBJS_h += ../src/eap_server/eap_tls_common.o 679NEED_TLS_PRF=y 680ifeq ($(CONFIG_TLS), openssl) 681CFLAGS += -DEAP_TLS_OPENSSL 682OBJS += ../src/crypto/tls_openssl.o 683LIBS += -lssl -lcrypto 684LIBS_p += -lcrypto 685endif 686ifeq ($(CONFIG_TLS), gnutls) 687OBJS += ../src/crypto/tls_gnutls.o 688LIBS += -lgnutls -lgcrypt -lgpg-error 689LIBS_p += -lgcrypt 690ifdef CONFIG_GNUTLS_EXTRA 691CFLAGS += -DCONFIG_GNUTLS_EXTRA 692LIBS += -lgnutls-extra 693endif 694endif 695ifeq ($(CONFIG_TLS), schannel) 696OBJS += ../src/crypto/tls_schannel.o 697endif 698ifeq ($(CONFIG_TLS), internal) 699OBJS += ../src/crypto/tls_internal.o 700OBJS += ../src/tls/tlsv1_common.o ../src/tls/tlsv1_record.o 701OBJS += ../src/tls/tlsv1_cred.o ../src/tls/tlsv1_client.o 702OBJS += ../src/tls/tlsv1_client_write.o ../src/tls/tlsv1_client_read.o 703OBJS += ../src/tls/asn1.o ../src/tls/rsa.o ../src/tls/x509v3.o 704OBJS_p += ../src/tls/asn1.o ../src/tls/rsa.o 705OBJS_p += ../src/crypto/rc4.o ../src/crypto/aes_wrap.o ../src/crypto/aes.o 706NEED_BASE64=y 707NEED_TLS_PRF=y 708CFLAGS += -DCONFIG_TLS_INTERNAL 709CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 710ifeq ($(CONFIG_CRYPTO), internal) 711endif 712ifeq ($(CONFIG_CRYPTO), libtomcrypt) 713LIBS += -ltomcrypt -ltfm 714LIBS_p += -ltomcrypt -ltfm 715endif 716endif 717ifeq ($(CONFIG_TLS), none) 718OBJS += ../src/crypto/tls_none.o 719CFLAGS += -DEAP_TLS_NONE 720CONFIG_INTERNAL_AES=y 721CONFIG_INTERNAL_SHA1=y 722CONFIG_INTERNAL_MD5=y 723CONFIG_INTERNAL_SHA256=y 724endif 725ifdef CONFIG_SMARTCARD 726ifndef CONFIG_NATIVE_WINDOWS 727ifneq ($(CONFIG_L2_PACKET), freebsd) 728LIBS += -ldl 729endif 730endif 731endif 732NEED_CRYPTO=y 733else 734OBJS += ../src/crypto/tls_none.o 735endif 736 737ifdef CONFIG_PKCS12 738CFLAGS += -DPKCS12_FUNCS 739endif 740 741ifdef CONFIG_SMARTCARD 742CFLAGS += -DCONFIG_SMARTCARD 743endif 744 745ifdef MS_FUNCS 746OBJS += ../src/crypto/ms_funcs.o 747NEED_CRYPTO=y 748endif 749 750ifdef CHAP 751OBJS += ../src/eap_common/chap.o 752endif 753 754ifdef NEED_CRYPTO 755ifndef TLS_FUNCS 756ifeq ($(CONFIG_TLS), openssl) 757LIBS += -lcrypto 758LIBS_p += -lcrypto 759endif 760ifeq ($(CONFIG_TLS), gnutls) 761LIBS += -lgcrypt 762LIBS_p += -lgcrypt 763endif 764ifeq ($(CONFIG_TLS), schannel) 765endif 766ifeq ($(CONFIG_TLS), internal) 767ifeq ($(CONFIG_CRYPTO), libtomcrypt) 768LIBS += -ltomcrypt -ltfm 769LIBS_p += -ltomcrypt -ltfm 770endif 771endif 772endif 773ifeq ($(CONFIG_TLS), openssl) 774OBJS += ../src/crypto/crypto_openssl.o 775OBJS_p += ../src/crypto/crypto_openssl.o 776CONFIG_INTERNAL_SHA256=y 777endif 778ifeq ($(CONFIG_TLS), gnutls) 779OBJS += ../src/crypto/crypto_gnutls.o 780OBJS_p += ../src/crypto/crypto_gnutls.o 781CONFIG_INTERNAL_SHA256=y 782endif 783ifeq ($(CONFIG_TLS), schannel) 784OBJS += ../src/crypto/crypto_cryptoapi.o 785OBJS_p += ../src/crypto/crypto_cryptoapi.o 786CONFIG_INTERNAL_SHA256=y 787endif 788ifeq ($(CONFIG_TLS), internal) 789ifeq ($(CONFIG_CRYPTO), libtomcrypt) 790OBJS += ../src/crypto/crypto_libtomcrypt.o 791OBJS_p += ../src/crypto/crypto_libtomcrypt.o 792CONFIG_INTERNAL_SHA256=y 793endif 794ifeq ($(CONFIG_CRYPTO), internal) 795OBJS += ../src/crypto/crypto_internal.o ../src/tls/bignum.o 796OBJS_p += ../src/crypto/crypto_internal.o ../src/tls/bignum.o 797CFLAGS += -DCONFIG_CRYPTO_INTERNAL 798ifdef CONFIG_INTERNAL_LIBTOMMATH 799CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 800ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 801CFLAGS += -DLTM_FAST 802endif 803else 804LIBS += -ltommath 805LIBS_p += -ltommath 806endif 807CONFIG_INTERNAL_AES=y 808CONFIG_INTERNAL_DES=y 809CONFIG_INTERNAL_SHA1=y 810CONFIG_INTERNAL_MD4=y 811CONFIG_INTERNAL_MD5=y 812CONFIG_INTERNAL_SHA256=y 813endif 814ifeq ($(CONFIG_CRYPTO), cryptoapi) 815OBJS += ../src/crypto/crypto_cryptoapi.o 816OBJS_p += ../src/crypto/crypto_cryptoapi.o 817CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 818CONFIG_INTERNAL_SHA256=y 819endif 820endif 821ifeq ($(CONFIG_TLS), none) 822OBJS += ../src/crypto/crypto_none.o 823OBJS_p += ../src/crypto/crypto_none.o 824CONFIG_INTERNAL_SHA256=y 825endif 826else 827CONFIG_INTERNAL_AES=y 828CONFIG_INTERNAL_SHA1=y 829CONFIG_INTERNAL_MD5=y 830endif 831 832ifdef CONFIG_INTERNAL_AES 833CFLAGS += -DINTERNAL_AES 834endif 835ifdef CONFIG_INTERNAL_SHA1 836CFLAGS += -DINTERNAL_SHA1 837endif 838ifdef CONFIG_INTERNAL_SHA256 839CFLAGS += -DINTERNAL_SHA256 840endif 841ifdef CONFIG_INTERNAL_MD5 842CFLAGS += -DINTERNAL_MD5 843endif 844ifdef CONFIG_INTERNAL_MD4 845CFLAGS += -DINTERNAL_MD4 846endif 847ifdef CONFIG_INTERNAL_DES 848CFLAGS += -DINTERNAL_DES 849endif 850 851ifdef CONFIG_IEEE80211R 852NEED_SHA256=y 853endif 854 855ifdef CONFIG_IEEE80211W 856CFLAGS += -DCONFIG_IEEE80211W 857NEED_SHA256=y 858endif 859 860ifdef NEED_SHA256 861OBJS += ../src/crypto/sha256.o 862CFLAGS += -DNEED_SHA256 863endif 864 865ifdef CONFIG_WIRELESS_EXTENSION 866OBJS_d += ../src/drivers/driver_wext.o 867endif 868 869ifdef CONFIG_CTRL_IFACE 870ifeq ($(CONFIG_CTRL_IFACE), y) 871ifdef CONFIG_NATIVE_WINDOWS 872CONFIG_CTRL_IFACE=named_pipe 873else 874CONFIG_CTRL_IFACE=unix 875endif 876endif 877CFLAGS += -DCONFIG_CTRL_IFACE 878ifeq ($(CONFIG_CTRL_IFACE), unix) 879CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 880endif 881ifeq ($(CONFIG_CTRL_IFACE), udp) 882CFLAGS += -DCONFIG_CTRL_IFACE_UDP 883endif 884ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 885CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 886endif 887OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o 888endif 889 890ifdef CONFIG_CTRL_IFACE_DBUS 891CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE 892OBJS += ctrl_iface_dbus.o ctrl_iface_dbus_handlers.o dbus_dict_helpers.o 893ifndef DBUS_LIBS 894DBUS_LIBS := $(shell pkg-config --libs dbus-1) 895endif 896LIBS += $(DBUS_LIBS) 897ifndef DBUS_INCLUDE 898DBUS_INCLUDE := $(shell pkg-config --cflags dbus-1) 899endif 900dbus_version=$(subst ., ,$(shell pkg-config --modversion dbus-1)) 901DBUS_VERSION_MAJOR=$(word 1,$(dbus_version)) 902DBUS_VERSION_MINOR=$(word 2,$(dbus_version)) 903ifeq ($(DBUS_VERSION_MAJOR),) 904DBUS_VERSION_MAJOR=0 905endif 906ifeq ($(DBUS_VERSION_MINOR),) 907DBUS_VERSION_MINOR=0 908endif 909DBUS_INCLUDE += -DDBUS_VERSION_MAJOR=$(DBUS_VERSION_MAJOR) 910DBUS_INCLUDE += -DDBUS_VERSION_MINOR=$(DBUS_VERSION_MINOR) 911CFLAGS += $(DBUS_INCLUDE) 912endif 913 914ifdef CONFIG_READLINE 915CFLAGS += -DCONFIG_READLINE 916LIBS_c += -lncurses -lreadline 917endif 918 919ifdef CONFIG_NATIVE_WINDOWS 920CFLAGS += -DCONFIG_NATIVE_WINDOWS 921LIBS += -lws2_32 -lgdi32 -lcrypt32 922LIBS_c += -lws2_32 923LIBS_p += -lws2_32 -lgdi32 924ifeq ($(CONFIG_CRYPTO), cryptoapi) 925LIBS_p += -lcrypt32 926endif 927endif 928 929ifdef CONFIG_NO_STDOUT_DEBUG 930CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 931ifndef CONFIG_CTRL_IFACE 932CFLAGS += -DCONFIG_NO_WPA_MSG 933endif 934endif 935 936ifdef CONFIG_IPV6 937# for eapol_test only 938CFLAGS += -DCONFIG_IPV6 939endif 940 941ifdef CONFIG_PEERKEY 942CFLAGS += -DCONFIG_PEERKEY 943endif 944 945ifdef CONFIG_IEEE80211R 946CFLAGS += -DCONFIG_IEEE80211R 947OBJS += ../src/rsn_supp/wpa_ft.o 948endif 949 950ifndef CONFIG_NO_WPA 951OBJS += ../src/rsn_supp/wpa.o 952OBJS += ../src/rsn_supp/preauth.o 953OBJS += ../src/rsn_supp/pmksa_cache.o 954OBJS += ../src/rsn_supp/peerkey.o 955OBJS += ../src/rsn_supp/wpa_ie.o 956OBJS += ../src/common/wpa_common.o 957NEED_AES=y 958else 959CFLAGS += -DCONFIG_NO_WPA -DCONFIG_NO_WPA2 960endif 961 962ifdef CONFIG_NO_WPA2 963CFLAGS += -DCONFIG_NO_WPA2 964endif 965 966ifdef CONFIG_NO_WPA_PASSPHRASE 967CFLAGS += -DCONFIG_NO_PBKDF2 968endif 969 970ifdef CONFIG_NO_AES_EXTRAS 971CFLAGS += -DCONFIG_NO_AES_WRAP 972CFLAGS += -DCONFIG_NO_AES_CTR -DCONFIG_NO_AES_OMAC1 973CFLAGS += -DCONFIG_NO_AES_EAX -DCONFIG_NO_AES_CBC 974CFLAGS += -DCONFIG_NO_AES_ENCRYPT 975CFLAGS += -DCONFIG_NO_AES_ENCRYPT_BLOCK 976endif 977 978ifdef NEED_AES 979OBJS += ../src/crypto/aes_wrap.o ../src/crypto/aes.o 980endif 981 982ifdef NEED_DH_GROUPS 983OBJS += ../src/crypto/dh_groups.o 984ifdef NEED_DH_GROUPS_ALL 985CFLAGS += -DALL_DH_GROUPS 986endif 987endif 988 989ifndef NEED_FIPS186_2_PRF 990CFLAGS += -DCONFIG_NO_FIPS186_2_PRF 991endif 992 993ifndef NEED_T_PRF 994CFLAGS += -DCONFIG_NO_T_PRF 995endif 996 997ifndef NEED_TLS_PRF 998CFLAGS += -DCONFIG_NO_TLS_PRF 999endif 1000 1001ifdef NEED_BASE64 1002OBJS += ../src/utils/base64.o 1003endif 1004 1005ifdef CONFIG_CLIENT_MLME 1006OBJS += mlme.o ../src/common/ieee802_11_common.o 1007CFLAGS += -DCONFIG_CLIENT_MLME 1008endif 1009 1010ifndef CONFIG_MAIN 1011CONFIG_MAIN=main 1012endif 1013 1014ifdef CONFIG_DEBUG_SYSLOG 1015CFLAGS += -DCONFIG_DEBUG_SYSLOG 1016endif 1017 1018ifdef CONFIG_DEBUG_FILE 1019CFLAGS += -DCONFIG_DEBUG_FILE 1020endif 1021 1022ifdef CONFIG_DEBUG_SYSLOG 1023CFLAGS += -DCONFIG_DEBUG_SYSLOG 1024endif 1025 1026ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1027CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1028endif 1029 1030OBJS += ../src/drivers/scan_helpers.o 1031 1032OBJS_wpa_rm := ctrl_iface.o mlme.o ctrl_iface_unix.o 1033OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o 1034ifdef CONFIG_AUTHENTICATOR 1035OBJS_wpa += tests/link_test.o 1036endif 1037OBJS_wpa += $(OBJS_l2) 1038OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o 1039OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o ../src/radius/radius.o ../src/radius/radius_client.o 1040OBJS_t += ../src/utils/ip_addr.o 1041OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o 1042OBJS += $(CONFIG_MAIN).o 1043 1044ifdef CONFIG_PRIVSEP 1045OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o ../src/drivers/scan_helpers.o 1046OBJS_priv += $(OBJS_l2) 1047OBJS_priv += ../src/utils/os_$(CONFIG_OS).o 1048OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o 1049OBJS_priv += ../src/utils/common.o 1050OBJS_priv += ../src/utils/wpa_debug.o 1051OBJS_priv += ../src/utils/wpabuf.o 1052OBJS_priv += wpa_priv.o 1053ifdef CONFIG_DRIVER_TEST 1054OBJS_priv += ../src/crypto/sha1.o 1055OBJS_priv += ../src/crypto/md5.o 1056ifeq ($(CONFIG_TLS), openssl) 1057OBJS_priv += ../src/crypto/crypto_openssl.o 1058endif 1059ifeq ($(CONFIG_TLS), gnutls) 1060OBJS_priv += ../src/crypto/crypto_gnutls.o 1061endif 1062ifeq ($(CONFIG_TLS), internal) 1063ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1064OBJS_priv += ../src/crypto/crypto_libtomcrypt.o 1065else 1066OBJS_priv += ../src/crypto/crypto_internal.o 1067endif 1068endif 1069endif # CONFIG_DRIVER_TEST 1070OBJS += ../src/l2_packet/l2_packet_privsep.o 1071OBJS += ../src/drivers/driver_privsep.o 1072EXTRA_progs += wpa_priv 1073else 1074OBJS += $(OBJS_d) ../src/drivers/drivers.o 1075OBJS += $(OBJS_l2) 1076endif 1077 1078ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1079CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1080OBJS += ../src/drivers/ndis_events.o 1081EXTRALIBS += -loleaut32 -lole32 -luuid 1082ifdef PLATFORMSDKLIB 1083EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1084else 1085EXTRALIBS += WbemUuid.Lib 1086endif 1087endif 1088 1089ifndef LDO 1090LDO=$(CC) 1091endif 1092 1093dynamic_eap_methods: $(EAPDYN) 1094 1095wpa_priv: $(OBJS_priv) 1096 $(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) 1097 1098wpa_supplicant: .config $(OBJS) $(EXTRA_progs) 1099 $(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) 1100 1101eapol_test: .config $(OBJS_t) 1102 $(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS) 1103 1104preauth_test: .config $(OBJS_t2) 1105 $(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS) 1106 1107wpa_passphrase: $(OBJS_p) 1108 $(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) 1109 1110wpa_cli: $(OBJS_c) 1111 $(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c) 1112 1113link_test: $(OBJS) $(OBJS_h) tests/link_test.o 1114 $(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS) 1115 1116test_wpa: $(OBJS_wpa) $(OBJS_h) 1117 $(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS) 1118 1119OBJSa=../src/tls/asn1_test.o ../src/tls/asn1.o ../src/tls/x509v3.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \ 1120 ../src/crypto/crypto_$(CONFIG_CRYPTO).o ../src/crypto/md5.o ../src/crypto/sha1.o \ 1121 ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \ 1122 ../src/crypto/aes.o ../src/tls/bignum.o ../src/tls/rsa.o 1123asn1_test: $(OBJSa) 1124 $(LDO) $(LDFLAGS) -o asn1_test $(OBJSa) 1125 1126OBJSx=tests/test_x509v3.o ../src/tls/asn1.o ../src/tls/x509v3.o \ 1127 ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_unix.o \ 1128 ../src/crypto/crypto_$(CONFIG_CRYPTO).o \ 1129 ../src/crypto/md5.o ../src/crypto/sha1.o ../src/crypto/aes.o \ 1130 ../src/crypto/rc4.o ../src/crypto/des.o ../src/crypto/aes_wrap.o \ 1131 ../src/crypto/sha256.o \ 1132 ../src/tls/bignum.o ../src/tls/rsa.o 1133test_x509v3: $(OBJSx) 1134 $(LDO) $(LDFLAGS) -o test_x509v3 $(OBJSx) 1135 1136win_if_list: win_if_list.c 1137 $(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w) 1138 1139eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c 1140 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1141 -Deap_peer_psk_register=eap_peer_method_dynamic_init 1142 1143eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c 1144 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1145 -Deap_peer_pax_register=eap_peer_method_dynamic_init 1146 1147eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c 1148 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1149 -Deap_peer_sake_register=eap_peer_method_dynamic_init 1150 1151eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c 1152 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1153 -Deap_peer_wsc_register=eap_peer_method_dynamic_init 1154 1155eap_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 1156 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1157 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init 1158 1159%.so: %.c 1160 $(CC) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ 1161 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init 1162 1163Q=@ 1164E=echo 1165ifeq ($(V), 1) 1166Q= 1167E=true 1168endif 1169 1170%.o: %.c 1171 $(Q)$(CC) -c -o $@ $(CFLAGS) $< 1172 @$(E) " CC " $< 1173 1174wpa_supplicant.exe: wpa_supplicant 1175 mv -f $< $@ 1176wpa_cli.exe: wpa_cli 1177 mv -f $< $@ 1178wpa_passphrase.exe: wpa_passphrase 1179 mv -f $< $@ 1180win_if_list.exe: win_if_list 1181 mv -f $< $@ 1182eapol_test.exe: eapol_test 1183 mv -f $< $@ 1184 1185WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe 1186 1187windows-bin: $(WINALL) 1188 $(STRIP) $(WINALL) 1189 1190wpa_gui/Makefile: 1191 qmake -o wpa_gui/Makefile wpa_gui/wpa_gui.pro 1192 1193wpa_gui: wpa_gui/Makefile 1194 $(MAKE) -C wpa_gui 1195 1196wpa_gui-qt4/Makefile: 1197 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro 1198 1199wpa_gui-qt4: wpa_gui-qt4/Makefile 1200 $(MAKE) -C wpa_gui-qt4 1201 1202TEST_MS_FUNCS_OBJS = ../src/crypto/crypto_openssl.o ../src/crypto/sha1.o ../src/crypto/md5.o \ 1203 ../src/utils/os_unix.o ../src/crypto/rc4.o tests/test_ms_funcs.o 1204test-ms_funcs: $(TEST_MS_FUNCS_OBJS) 1205 $(LDO) $(LDFLAGS) -o $@ $(TEST_MS_FUNCS_OBJS) $(LIBS) -lcrypto 1206 ./test-ms_funcs 1207 rm test-ms_funcs 1208 1209TEST_SHA1_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o tests/test_sha1.o #../src/crypto/crypto_openssl.o 1210test-sha1: $(TEST_SHA1_OBJS) 1211 $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA1_OBJS) $(LIBS) 1212 ./test-sha1 1213 rm test-sha1 1214 1215TEST_SHA256_OBJS = ../src/crypto/sha256.o ../src/crypto/md5.o tests/test_sha256.o ../src/utils/os_unix.o ../src/crypto/crypto_openssl.o 1216test-sha256: $(TEST_SHA256_OBJS) 1217 $(LDO) $(LDFLAGS) -o $@ $(TEST_SHA256_OBJS) $(LIBS) 1218 ./test-sha256 1219 rm test-sha256 1220 1221TEST_AES_OBJS = ../src/crypto/aes_wrap.o ../src/crypto/aes.o tests/test_aes.o 1222test-aes: $(TEST_AES_OBJS) 1223 $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS) 1224 ./test-aes 1225 rm test-aes 1226 1227TEST_EAP_SIM_COMMON_OBJS = ../src/crypto/sha1.o ../src/crypto/md5.o \ 1228 ../src/crypto/aes_wrap.o ../src/utils/common.o ../src/utils/os_unix.o \ 1229 ../src/utils/wpa_debug.o ../src/crypto/aes.o \ 1230 tests/test_eap_sim_common.o 1231test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS) 1232 $(LDO) $(LDFLAGS) -o $@ $(TEST_AES_OBJS) $(LIBS) 1233 ./test-eap_sim_common 1234 rm test-eap_sim_common 1235 1236TEST_MD4_OBJS = ../src/crypto/md4.o tests/test_md4.o #../src/crypto/crypto_openssl.o 1237test-md4: $(TEST_MD4_OBJS) 1238 $(LDO) $(LDFLAGS) -o $@ $(TEST_MD4_OBJS) $(LIBS) 1239 ./test-md4 1240 rm test-md4 1241 1242TEST_MD5_OBJS = ../src/crypto/md5.o tests/test_md5.o #../src/crypto/crypto_openssl.o 1243test-md5: $(TEST_MD5_OBJS) 1244 $(LDO) $(LDFLAGS) -o $@ $(TEST_MD5_OBJS) $(LIBS) 1245 ./test-md5 1246 rm test-md5 1247 1248tests: test-ms_funcs test-sha1 test-aes test-eap_sim_common test-md4 test-md5 1249 1250clean: 1251 $(MAKE) -C ../src clean 1252 rm -f core *~ *.o *.d eap_*.so $(ALL) $(WINALL) eapol_test preauth_test 1253 rm -f wpa_priv 1254 1255%.eps: %.fig 1256 fig2dev -L eps $*.fig $*.eps 1257 1258%.png: %.fig 1259 fig2dev -L png -m 3 $*.fig | pngtopnm | pnmscale 0.4 | pnmtopng \ 1260 > $*.png 1261 1262docs-pics: doc/wpa_supplicant.png doc/wpa_supplicant.eps 1263 1264docs: docs-pics 1265 (cd ..; doxygen wpa_supplicant/doc/doxygen.full; cd wpa_supplicant) 1266 $(MAKE) -C doc/latex 1267 cp doc/latex/refman.pdf wpa_supplicant-devel.pdf 1268 1269docs-fast: docs-pics 1270 (cd ..; doxygen wpa_supplicant/doc/doxygen.fast; cd wpa_supplicant) 1271 1272clean-docs: 1273 rm -rf doc/latex doc/html 1274 rm -f doc/wpa_supplicant.{eps,png} wpa_supplicant-devel.pdf 1275 1276-include $(OBJS:%.o=%.d) 1277