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