Makefile revision cf32e60fa7e0d33fe1551a6dba8dcbbec47ea50e
16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CC 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCC=gcc 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CFLAGS 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS = -MMD -O2 -Wall -g 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgexport LIBDIR ?= /usr/local/lib/ 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgexport BINDIR ?= /usr/local/sbin/ 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgPKG_CONFIG ?= pkg-config 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -I$(abspath ../src) 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -I$(abspath ../src/utils) 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org-include .config 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_TESTING_OPTIONS 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_TESTING_OPTIONS 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_WPS_TESTING=y 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_TDLS_TESTING=y 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgBINALL=wpa_supplicant wpa_cli 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_NO_WPA_PASSPHRASE 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgBINALL += wpa_passphrase 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL = $(BINALL) 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL += systemd/wpa_supplicant.service 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL += systemd/wpa_supplicant@.service 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL += systemd/wpa_supplicant-nl80211@.service 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL += systemd/wpa_supplicant-wired@.service 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL += dbus/fi.epitest.hostap.WPASupplicant.service 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgALL += dbus/fi.w1.wpa_supplicant1.service 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgall: verify_config $(ALL) dynamic_eap_methods 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgverify_config: 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org @if [ ! -r .config ]; then \ 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo 'Building wpa_supplicant requires a configuration file'; \ 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo '(.config). See README for more instructions. You can'; \ 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo 'run "cp defconfig .config" to create an example'; \ 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo 'configuration.'; \ 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org exit 1; \ 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org fi 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgmkconfig: 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org @if [ -f .config ]; then \ 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo '.config exists - did not replace it'; \ 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org exit 1; \ 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org fi 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo CONFIG_DRIVER_HOSTAP=y >> .config 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org echo CONFIG_DRIVER_WEXT=y >> .config 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org$(DESTDIR)$(BINDIR)/%: % 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org install -D $(<) $(@) 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orginstall: $(addprefix $(DESTDIR)$(BINDIR)/,$(BINALL)) 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org $(MAKE) -C ../src install 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_FIPS 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_NO_RANDOM_POOL= 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_OPENSSL_CMAC=y 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS = config.o 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += notify.o 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += bss.o 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += eap_register.o 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/common.o 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/wpa_debug.o 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/wpabuf.o 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_p = wpa_passphrase.o 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_p += ../src/utils/common.o 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_p += ../src/utils/wpa_debug.o 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_p += ../src/utils/wpabuf.o 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_c += ../src/utils/wpa_debug.o 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_c += ../src/utils/common.o 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_OS 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_NATIVE_WINDOWS 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_OS=win32 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_OS=unix 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_OS), internal) 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DOS_NO_C_LIB_DEFINES 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/os_$(CONFIG_OS).o 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_p += ../src/utils/os_$(CONFIG_OS).o 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_c += ../src/utils/os_$(CONFIG_OS).o 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_WPA_TRACE 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DWPA_TRACE 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/trace.o 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_p += ../src/utils/trace.o 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_c += ../src/utils/trace.o 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_priv += ../src/utils/trace.o 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLDFLAGS += -rdynamic 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -funwind-tables 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_WPA_TRACE_BFD 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DWPA_TRACE_BFD 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -lbfd 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_p += -lbfd 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_c += -lbfd 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_ELOOP 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_ELOOP=eloop 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/$(CONFIG_ELOOP).o 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_c += ../src/utils/$(CONFIG_ELOOP).o 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_ELOOP), eloop) 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# Using glibc < 2.17 requires -lrt for clock_gettime() 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -lrt 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_c += -lrt 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_p += -lrt 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_ELOOP_POLL 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_ELOOP_POLL 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAPOL_TEST 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -Werror -DEAPOL_TEST 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_CODE_COVERAGE 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -O0 -fprofile-arcs -ftest-coverage 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -lgcov 1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_c += -lgcov 1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_p += -lgcov 1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_HT_OVERRIDES 1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_HT_OVERRIDES 1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_VHT_OVERRIDES 1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_VHT_OVERRIDES 1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_BACKEND 1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_BACKEND=file 1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_BACKEND), file) 1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += config_file.o 1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_NO_CONFIG_BLOBS 1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_BASE64=y 1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_BACKEND_FILE 1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_BACKEND), winreg) 1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += config_winreg.o 1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_BACKEND), none) 1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += config_none.o 1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_NO_CONFIG_WRITE 1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_NO_CONFIG_WRITE 1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_NO_CONFIG_BLOBS 1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_NO_CONFIG_BLOBS 1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_NO_SCAN_PROCESSING 1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_NO_SCAN_PROCESSING 1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_IEEE80211W 1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_IEEE80211W 1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_SHA256=y 1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_AES_OMAC1=y 1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_IEEE80211R 1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_IEEE80211R 1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/wpa_ft.o 1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_80211_COMMON=y 1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_SHA256=y 1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_AES_OMAC1=y 1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_SAE 2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_SAE 2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/common/sae.o 2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_ECC=y 2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_DH_GROUPS=y 2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_WNM 2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_WNM 2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += wnm_sta.o 2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_TDLS 2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_TDLS 2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/tdls.o 2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_SHA256=y 2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_AES_OMAC1=y 2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_TDLS_TESTING 2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_TDLS_TESTING 2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_PEERKEY 2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_PEERKEY 2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_NO_WPA 2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/wpa.o 2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/preauth.o 2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/pmksa_cache.o 2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/peerkey.o 2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/rsn_supp/wpa_ie.o 2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/common/wpa_common.o 2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_AES=y 2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_SHA1=y 2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_MD5=y 2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_RC4=y 2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_NO_WPA 2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_IBSS_RSN 2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_RSN_AUTHENTICATOR=y 2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_IBSS_RSN 2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ibss_rsn.o 2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_P2P 2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += p2p_supplicant.o 2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p.o 2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_utils.o 2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_parse.o 2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_build.o 2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_go_neg.o 2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_sd.o 2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_pd.o 2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_invitation.o 2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_dev_disc.o 2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/p2p/p2p_group.o 2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/ap/p2p_hostapd.o 2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/utils/bitfield.o 2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_P2P 2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_GAS=y 2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_OFFCHANNEL=y 2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_80211_COMMON=y 2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_WPS=y 2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_AP=y 2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_P2P_STRICT 2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_P2P_STRICT 2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_WIFI_DISPLAY 2736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_WIFI_DISPLAY 2746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += wifi_display.o 2756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_HS20 2786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += hs20_supplicant.o 2796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_HS20 2806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_INTERWORKING=y 2816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_INTERWORKING 2846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += interworking.o 2856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_INTERWORKING 2866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_GAS=y 2876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 2886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orginclude ../src/drivers/drivers.mak 2906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_AP 2916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_d += $(DRV_BOTH_OBJS) 2926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += $(DRV_BOTH_CFLAGS) 2936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLDFLAGS += $(DRV_BOTH_LDFLAGS) 2946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += $(DRV_BOTH_LIBS) 2956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 2966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_AP_MLME= 2976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_d += $(DRV_WPA_OBJS) 2986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += $(DRV_WPA_CFLAGS) 2996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLDFLAGS += $(DRV_WPA_LDFLAGS) 3006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += $(DRV_WPA_LIBS) 3016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_L2_PACKET 3046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_L2_PACKET=linux 3056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_l2 += ../src/l2_packet/l2_packet_$(CONFIG_L2_PACKET).o 3086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_L2_PACKET), pcap) 3106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_WINPCAP 3116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DCONFIG_WINPCAP 3126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -lwpcap -lpacket 3136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_w += -lwpcap 3146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 3156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -ldnet -lpcap 3166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_L2_PACKET), winpcap) 3206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -lwpcap -lpacket 3216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS_w += -lwpcap 3226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_L2_PACKET), freebsd) 3256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgLIBS += -lpcap 3266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_TLS 3296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-TLS 3306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_TLS), dyn) 3316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_TLS_DYNAMIC 3326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_tls.so 3336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 3346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_TLS 3356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_tls.o 3366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_tls.o 3376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgTLS_FUNCS=y 3396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 3406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_UNAUTH_TLS 3436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-UNAUTH-TLS 3446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_UNAUTH_TLS 3456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_EAP_UNAUTH_TLS 3466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_tls.o 3476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_tls.o 3486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgTLS_FUNCS=y 3496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 3516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_PEAP 3546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-PEAP 3556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_PEAP), dyn) 3566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_PEAP_DYNAMIC 3576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_peap.so 3586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 3596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_PEAP 3606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_peap.o 3616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_common/eap_peap_common.o 3626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_peap.o 3636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgTLS_FUNCS=y 3656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 3666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_TTLS 3696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-TTLS 3706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_TTLS), dyn) 3716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_TTLS_DYNAMIC 3726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_ttls.so 3736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 3746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_TTLS 3756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_ttls.o 3766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_ttls.o 3776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgMS_FUNCS=y 3796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgTLS_FUNCS=y 3806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCHAP=y 3816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 3826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_MD5 3856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-MD5 3866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_MD5), dyn) 3876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_MD5_DYNAMIC 3886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_md5.so 3896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 3906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_MD5 3916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_md5.o 3926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_md5.o 3936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCHAP=y 3956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 3966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 3976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# backwards compatibility for old spelling 3996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_MSCHAPV2 4006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifndef CONFIG_EAP_MSCHAPV2 4016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_EAP_MSCHAPV2=y 4026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_MSCHAPV2 4066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-MSCHAPv2 4076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_MSCHAPV2), dyn) 4086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_MSCHAPv2_DYNAMIC 4096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_mschapv2.so 4106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/mschapv2.so 4116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 4126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_MSCHAPv2 4136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_mschapv2.o 4146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/mschapv2.o 4156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_mschapv2.o 4166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgMS_FUNCS=y 4186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 4196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_GTC 4226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-GTC 4236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_GTC), dyn) 4246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_GTC_DYNAMIC 4256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_gtc.so 4266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 4276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_GTC 4286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_gtc.o 4296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_gtc.o 4306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 4326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_OTP 4356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-OTP 4366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_OTP), dyn) 4376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_OTP_DYNAMIC 4386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_otp.so 4396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 4406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_OTP 4416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_otp.o 4426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 4446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifdef CONFIG_EAP_SIM 4476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org# EAP-SIM 4486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgifeq ($(CONFIG_EAP_SIM), dyn) 4496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_SIM_DYNAMIC 4506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgEAPDYN += ../src/eap_peer/eap_sim.so 4516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgelse 4526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCFLAGS += -DEAP_SIM 4536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS += ../src/eap_peer/eap_sim.o 4546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgOBJS_h += ../src/eap_server/eap_server_sim.o 4556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 4566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_IEEE8021X_EAPOL=y 4576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCONFIG_EAP_SIM_COMMON=y 4586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgNEED_AES_CBC=y 4596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgendif 460 461ifdef CONFIG_EAP_LEAP 462# EAP-LEAP 463ifeq ($(CONFIG_EAP_LEAP), dyn) 464CFLAGS += -DEAP_LEAP_DYNAMIC 465EAPDYN += ../src/eap_peer/eap_leap.so 466else 467CFLAGS += -DEAP_LEAP 468OBJS += ../src/eap_peer/eap_leap.o 469endif 470MS_FUNCS=y 471CONFIG_IEEE8021X_EAPOL=y 472endif 473 474ifdef CONFIG_EAP_PSK 475# EAP-PSK 476ifeq ($(CONFIG_EAP_PSK), dyn) 477CFLAGS += -DEAP_PSK_DYNAMIC 478EAPDYN += ../src/eap_peer/eap_psk.so 479else 480CFLAGS += -DEAP_PSK 481OBJS += ../src/eap_peer/eap_psk.o ../src/eap_common/eap_psk_common.o 482OBJS_h += ../src/eap_server/eap_server_psk.o 483endif 484CONFIG_IEEE8021X_EAPOL=y 485NEED_AES=y 486NEED_AES_OMAC1=y 487NEED_AES_ENCBLOCK=y 488NEED_AES_EAX=y 489endif 490 491ifdef CONFIG_EAP_AKA 492# EAP-AKA 493ifeq ($(CONFIG_EAP_AKA), dyn) 494CFLAGS += -DEAP_AKA_DYNAMIC 495EAPDYN += ../src/eap_peer/eap_aka.so 496else 497CFLAGS += -DEAP_AKA 498OBJS += ../src/eap_peer/eap_aka.o 499OBJS_h += ../src/eap_server/eap_server_aka.o 500endif 501CONFIG_IEEE8021X_EAPOL=y 502CONFIG_EAP_SIM_COMMON=y 503NEED_AES_CBC=y 504endif 505 506ifdef CONFIG_EAP_PROXY 507CFLAGS += -DCONFIG_EAP_PROXY 508OBJS += ../src/eap_peer/eap_proxy_$(CONFIG_EAP_PROXY).o 509include eap_proxy_$(CONFIG_EAP_PROXY).mk 510CONFIG_IEEE8021X_EAPOL=y 511endif 512 513ifdef CONFIG_EAP_AKA_PRIME 514# EAP-AKA' 515ifeq ($(CONFIG_EAP_AKA_PRIME), dyn) 516CFLAGS += -DEAP_AKA_PRIME_DYNAMIC 517else 518CFLAGS += -DEAP_AKA_PRIME 519endif 520NEED_SHA256=y 521endif 522 523ifdef CONFIG_EAP_SIM_COMMON 524OBJS += ../src/eap_common/eap_sim_common.o 525OBJS_h += ../src/eap_server/eap_sim_db.o 526NEED_AES=y 527NEED_FIPS186_2_PRF=y 528endif 529 530ifdef CONFIG_EAP_FAST 531# EAP-FAST 532ifeq ($(CONFIG_EAP_FAST), dyn) 533CFLAGS += -DEAP_FAST_DYNAMIC 534EAPDYN += ../src/eap_peer/eap_fast.so 535EAPDYN += ../src/eap_common/eap_fast_common.o 536else 537CFLAGS += -DEAP_FAST 538OBJS += ../src/eap_peer/eap_fast.o ../src/eap_peer/eap_fast_pac.o 539OBJS += ../src/eap_common/eap_fast_common.o 540OBJS_h += ../src/eap_server/eap_server_fast.o 541endif 542TLS_FUNCS=y 543CONFIG_IEEE8021X_EAPOL=y 544NEED_T_PRF=y 545endif 546 547ifdef CONFIG_EAP_PAX 548# EAP-PAX 549ifeq ($(CONFIG_EAP_PAX), dyn) 550CFLAGS += -DEAP_PAX_DYNAMIC 551EAPDYN += ../src/eap_peer/eap_pax.so 552else 553CFLAGS += -DEAP_PAX 554OBJS += ../src/eap_peer/eap_pax.o ../src/eap_common/eap_pax_common.o 555OBJS_h += ../src/eap_server/eap_server_pax.o 556endif 557CONFIG_IEEE8021X_EAPOL=y 558endif 559 560ifdef CONFIG_EAP_SAKE 561# EAP-SAKE 562ifeq ($(CONFIG_EAP_SAKE), dyn) 563CFLAGS += -DEAP_SAKE_DYNAMIC 564EAPDYN += ../src/eap_peer/eap_sake.so 565else 566CFLAGS += -DEAP_SAKE 567OBJS += ../src/eap_peer/eap_sake.o ../src/eap_common/eap_sake_common.o 568OBJS_h += ../src/eap_server/eap_server_sake.o 569endif 570CONFIG_IEEE8021X_EAPOL=y 571endif 572 573ifdef CONFIG_EAP_GPSK 574# EAP-GPSK 575ifeq ($(CONFIG_EAP_GPSK), dyn) 576CFLAGS += -DEAP_GPSK_DYNAMIC 577EAPDYN += ../src/eap_peer/eap_gpsk.so 578else 579CFLAGS += -DEAP_GPSK 580OBJS += ../src/eap_peer/eap_gpsk.o ../src/eap_common/eap_gpsk_common.o 581OBJS_h += ../src/eap_server/eap_server_gpsk.o 582endif 583CONFIG_IEEE8021X_EAPOL=y 584ifdef CONFIG_EAP_GPSK_SHA256 585CFLAGS += -DEAP_GPSK_SHA256 586endif 587NEED_SHA256=y 588NEED_AES_OMAC1=y 589endif 590 591ifdef CONFIG_EAP_PWD 592CFLAGS += -DEAP_PWD 593OBJS += ../src/eap_peer/eap_pwd.o ../src/eap_common/eap_pwd_common.o 594OBJS_h += ../src/eap_server/eap_server_pwd.o 595CONFIG_IEEE8021X_EAPOL=y 596NEED_SHA256=y 597endif 598 599ifdef CONFIG_EAP_EKE 600# EAP-EKE 601ifeq ($(CONFIG_EAP_EKE), dyn) 602CFLAGS += -DEAP_EKE_DYNAMIC 603EAPDYN += ../src/eap_peer/eap_eke.so 604else 605CFLAGS += -DEAP_EKE 606OBJS += ../src/eap_peer/eap_eke.o ../src/eap_common/eap_eke_common.o 607OBJS_h += ../src/eap_server/eap_server_eke.o 608endif 609CONFIG_IEEE8021X_EAPOL=y 610NEED_DH_GROUPS=y 611NEED_DH_GROUPS_ALL=y 612NEED_SHA256=y 613endif 614 615ifdef CONFIG_WPS 616ifdef CONFIG_WPS2 617CFLAGS += -DCONFIG_WPS2 618endif 619 620# EAP-WSC 621CFLAGS += -DCONFIG_WPS -DEAP_WSC 622OBJS += wps_supplicant.o 623OBJS += ../src/utils/uuid.o 624OBJS += ../src/eap_peer/eap_wsc.o ../src/eap_common/eap_wsc_common.o 625OBJS += ../src/wps/wps.o 626OBJS += ../src/wps/wps_common.o 627OBJS += ../src/wps/wps_attr_parse.o 628OBJS += ../src/wps/wps_attr_build.o 629OBJS += ../src/wps/wps_attr_process.o 630OBJS += ../src/wps/wps_dev_attr.o 631OBJS += ../src/wps/wps_enrollee.o 632OBJS += ../src/wps/wps_registrar.o 633OBJS_h += ../src/eap_server/eap_server_wsc.o 634CONFIG_IEEE8021X_EAPOL=y 635NEED_DH_GROUPS=y 636NEED_SHA256=y 637NEED_BASE64=y 638NEED_80211_COMMON=y 639NEED_AES_CBC=y 640NEED_MODEXP=y 641 642ifdef CONFIG_WPS_NFC 643CFLAGS += -DCONFIG_WPS_NFC 644OBJS += ../src/wps/ndef.o 645NEED_WPS_OOB=y 646endif 647 648ifdef NEED_WPS_OOB 649CFLAGS += -DCONFIG_WPS_OOB 650endif 651 652ifdef CONFIG_WPS_ER 653CONFIG_WPS_UPNP=y 654CFLAGS += -DCONFIG_WPS_ER 655OBJS += ../src/wps/wps_er.o 656OBJS += ../src/wps/wps_er_ssdp.o 657endif 658 659ifdef CONFIG_WPS_UPNP 660CFLAGS += -DCONFIG_WPS_UPNP 661OBJS += ../src/wps/wps_upnp.o 662OBJS += ../src/wps/wps_upnp_ssdp.o 663OBJS += ../src/wps/wps_upnp_web.o 664OBJS += ../src/wps/wps_upnp_event.o 665OBJS += ../src/wps/wps_upnp_ap.o 666OBJS += ../src/wps/upnp_xml.o 667OBJS += ../src/wps/httpread.o 668OBJS += ../src/wps/http_client.o 669OBJS += ../src/wps/http_server.o 670endif 671 672ifdef CONFIG_WPS_STRICT 673CFLAGS += -DCONFIG_WPS_STRICT 674OBJS += ../src/wps/wps_validate.o 675endif 676 677ifdef CONFIG_WPS_TESTING 678CFLAGS += -DCONFIG_WPS_TESTING 679endif 680 681ifdef CONFIG_WPS_REG_DISABLE_OPEN 682CFLAGS += -DCONFIG_WPS_REG_DISABLE_OPEN 683endif 684 685endif 686 687ifdef CONFIG_EAP_IKEV2 688# EAP-IKEv2 689ifeq ($(CONFIG_EAP_IKEV2), dyn) 690CFLAGS += -DEAP_IKEV2_DYNAMIC 691EAPDYN += ../src/eap_peer/eap_ikev2.so ../src/eap_peer/ikev2.o 692EAPDYN += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 693else 694CFLAGS += -DEAP_IKEV2 695OBJS += ../src/eap_peer/eap_ikev2.o ../src/eap_peer/ikev2.o 696OBJS += ../src/eap_common/eap_ikev2_common.o ../src/eap_common/ikev2_common.o 697OBJS_h += ../src/eap_server/eap_server_ikev2.o 698OBJS_h += ../src/eap_server/ikev2.o 699endif 700CONFIG_IEEE8021X_EAPOL=y 701NEED_DH_GROUPS=y 702NEED_DH_GROUPS_ALL=y 703NEED_MODEXP=y 704NEED_CIPHER=y 705endif 706 707ifdef CONFIG_EAP_VENDOR_TEST 708ifeq ($(CONFIG_EAP_VENDOR_TEST), dyn) 709CFLAGS += -DEAP_VENDOR_TEST_DYNAMIC 710EAPDYN += ../src/eap_peer/eap_vendor_test.so 711else 712CFLAGS += -DEAP_VENDOR_TEST 713OBJS += ../src/eap_peer/eap_vendor_test.o 714OBJS_h += ../src/eap_server/eap_server_vendor_test.o 715endif 716CONFIG_IEEE8021X_EAPOL=y 717endif 718 719ifdef CONFIG_EAP_TNC 720# EAP-TNC 721CFLAGS += -DEAP_TNC 722OBJS += ../src/eap_peer/eap_tnc.o 723OBJS += ../src/eap_peer/tncc.o 724OBJS_h += ../src/eap_server/eap_server_tnc.o 725OBJS_h += ../src/eap_server/tncs.o 726NEED_BASE64=y 727ifndef CONFIG_NATIVE_WINDOWS 728ifndef CONFIG_DRIVER_BSD 729LIBS += -ldl 730endif 731endif 732endif 733 734ifdef CONFIG_IEEE8021X_EAPOL 735# IEEE 802.1X/EAPOL state machines (e.g., for RADIUS authentication) 736CFLAGS += -DIEEE8021X_EAPOL 737OBJS += ../src/eapol_supp/eapol_supp_sm.o 738OBJS += ../src/eap_peer/eap.o ../src/eap_peer/eap_methods.o 739NEED_EAP_COMMON=y 740ifdef CONFIG_DYNAMIC_EAP_METHODS 741CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS 742LIBS += -ldl -rdynamic 743endif 744endif 745 746ifdef CONFIG_AP 747NEED_80211_COMMON=y 748NEED_EAP_COMMON=y 749NEED_RSN_AUTHENTICATOR=y 750CFLAGS += -DCONFIG_AP 751OBJS += ap.o 752CFLAGS += -DCONFIG_NO_RADIUS 753CFLAGS += -DCONFIG_NO_ACCOUNTING 754CFLAGS += -DCONFIG_NO_VLAN 755OBJS += ../src/ap/hostapd.o 756OBJS += ../src/ap/wpa_auth_glue.o 757OBJS += ../src/ap/utils.o 758OBJS += ../src/ap/authsrv.o 759OBJS += ../src/ap/ap_config.o 760OBJS += ../src/utils/ip_addr.o 761OBJS += ../src/ap/sta_info.o 762OBJS += ../src/ap/tkip_countermeasures.o 763OBJS += ../src/ap/ap_mlme.o 764OBJS += ../src/ap/ieee802_1x.o 765OBJS += ../src/eapol_auth/eapol_auth_sm.o 766OBJS += ../src/ap/ieee802_11_auth.o 767OBJS += ../src/ap/ieee802_11_shared.o 768OBJS += ../src/ap/drv_callbacks.o 769OBJS += ../src/ap/ap_drv_ops.o 770OBJS += ../src/ap/beacon.o 771OBJS += ../src/ap/eap_user_db.o 772ifdef CONFIG_IEEE80211N 773OBJS += ../src/ap/ieee802_11_ht.o 774ifdef CONFIG_IEEE80211AC 775OBJS += ../src/ap/ieee802_11_vht.o 776endif 777endif 778ifdef CONFIG_WNM 779OBJS += ../src/ap/wnm_ap.o 780endif 781ifdef CONFIG_CTRL_IFACE 782OBJS += ../src/ap/ctrl_iface_ap.o 783endif 784 785CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY 786OBJS += ../src/eap_server/eap_server.o 787OBJS += ../src/eap_server/eap_server_identity.o 788OBJS += ../src/eap_server/eap_server_methods.o 789 790ifdef CONFIG_IEEE80211N 791CFLAGS += -DCONFIG_IEEE80211N 792ifdef CONFIG_IEEE80211AC 793CFLAGS += -DCONFIG_IEEE80211AC 794endif 795endif 796 797ifdef NEED_AP_MLME 798OBJS += ../src/ap/wmm.o 799OBJS += ../src/ap/ap_list.o 800OBJS += ../src/ap/ieee802_11.o 801OBJS += ../src/ap/hw_features.o 802OBJS += ../src/ap/dfs.o 803CFLAGS += -DNEED_AP_MLME 804endif 805ifdef CONFIG_WPS 806CFLAGS += -DEAP_SERVER_WSC 807OBJS += ../src/ap/wps_hostapd.o 808OBJS += ../src/eap_server/eap_server_wsc.o 809endif 810ifdef CONFIG_INTERWORKING 811OBJS += ../src/ap/gas_serv.o 812endif 813ifdef CONFIG_HS20 814OBJS += ../src/ap/hs20.o 815endif 816endif 817 818ifdef NEED_RSN_AUTHENTICATOR 819CFLAGS += -DCONFIG_NO_RADIUS 820NEED_AES_WRAP=y 821OBJS += ../src/ap/wpa_auth.o 822OBJS += ../src/ap/wpa_auth_ie.o 823OBJS += ../src/ap/pmksa_cache_auth.o 824ifdef CONFIG_IEEE80211R 825OBJS += ../src/ap/wpa_auth_ft.o 826endif 827ifdef CONFIG_PEERKEY 828OBJS += ../src/ap/peerkey_auth.o 829endif 830endif 831 832ifdef CONFIG_EAP_SERVER 833CFLAGS += -DEAP_SERVER 834OBJS_h += ../src/eap_server/eap_server.o 835OBJS_h += ../src/eap_server/eap_server_identity.o 836OBJS_h += ../src/eap_server/eap_server_methods.o 837endif 838 839ifdef CONFIG_RADIUS_CLIENT 840OBJS_h += ../src/utils/ip_addr.o 841OBJS_h += ../src/radius/radius.o 842OBJS_h += ../src/radius/radius_client.o 843endif 844 845ifdef CONFIG_AUTHENTICATOR 846OBJS_h += ../src/eapol_auth/eapol_auth_sm.o 847OBJS_h += ../src/ap/ieee802_1x.o 848endif 849 850ifdef CONFIG_WPA_AUTHENTICATOR 851OBJS_h += ../src/ap/wpa_auth.o 852OBJS_h += ../src/ap/wpa_auth_ie.o 853OBJS_h += ../src/ap/pmksa_cache_auth.o 854ifdef CONFIG_IEEE80211R 855OBJS_h += ../src/ap/wpa_auth_ft.o 856endif 857ifdef CONFIG_PEERKEY 858OBJS_h += ../src/ap/peerkey_auth.o 859endif 860endif 861 862ifdef CONFIG_PCSC 863# PC/SC interface for smartcards (USIM, GSM SIM) 864CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC 865OBJS += ../src/utils/pcsc_funcs.o 866# -lpthread may not be needed depending on how pcsc-lite was configured 867ifdef CONFIG_NATIVE_WINDOWS 868#Once MinGW gets support for WinScard, -lwinscard could be used instead of the 869#dynamic symbol loading that is now used in pcsc_funcs.c 870#LIBS += -lwinscard 871else 872LIBS += -lpcsclite -lpthread 873endif 874endif 875 876ifdef CONFIG_SIM_SIMULATOR 877CFLAGS += -DCONFIG_SIM_SIMULATOR 878NEED_MILENAGE=y 879endif 880 881ifdef CONFIG_USIM_SIMULATOR 882CFLAGS += -DCONFIG_USIM_SIMULATOR 883NEED_MILENAGE=y 884endif 885 886ifdef NEED_MILENAGE 887OBJS += ../src/crypto/milenage.o 888NEED_AES_ENCBLOCK=y 889endif 890 891ifdef CONFIG_PKCS12 892CFLAGS += -DPKCS12_FUNCS 893endif 894 895ifdef CONFIG_SMARTCARD 896CFLAGS += -DCONFIG_SMARTCARD 897endif 898 899ifdef MS_FUNCS 900OBJS += ../src/crypto/ms_funcs.o 901NEED_DES=y 902NEED_MD4=y 903endif 904 905ifdef CHAP 906OBJS += ../src/eap_common/chap.o 907endif 908 909ifdef TLS_FUNCS 910NEED_DES=y 911# Shared TLS functions (needed for EAP_TLS, EAP_PEAP, EAP_TTLS, and EAP_FAST) 912OBJS += ../src/eap_peer/eap_tls_common.o 913OBJS_h += ../src/eap_server/eap_server_tls_common.o 914ifndef CONFIG_FIPS 915NEED_TLS_PRF=y 916NEED_SHA1=y 917NEED_MD5=y 918endif 919endif 920 921ifndef CONFIG_TLS 922CONFIG_TLS=openssl 923endif 924 925ifdef CONFIG_TLSV11 926CFLAGS += -DCONFIG_TLSV11 927endif 928 929ifdef CONFIG_TLSV12 930CFLAGS += -DCONFIG_TLSV12 931NEED_SHA256=y 932endif 933 934ifeq ($(CONFIG_TLS), openssl) 935ifdef TLS_FUNCS 936CFLAGS += -DEAP_TLS_OPENSSL 937OBJS += ../src/crypto/tls_openssl.o 938LIBS += -lssl 939endif 940OBJS += ../src/crypto/crypto_openssl.o 941OBJS_p += ../src/crypto/crypto_openssl.o 942ifdef NEED_FIPS186_2_PRF 943OBJS += ../src/crypto/fips_prf_openssl.o 944endif 945LIBS += -lcrypto 946LIBS_p += -lcrypto 947ifdef CONFIG_TLS_ADD_DL 948LIBS += -ldl 949LIBS_p += -ldl 950endif 951endif 952 953ifeq ($(CONFIG_TLS), gnutls) 954ifdef TLS_FUNCS 955OBJS += ../src/crypto/tls_gnutls.o 956LIBS += -lgnutls -lgpg-error 957endif 958OBJS += ../src/crypto/crypto_gnutls.o 959OBJS_p += ../src/crypto/crypto_gnutls.o 960ifdef NEED_FIPS186_2_PRF 961OBJS += ../src/crypto/fips_prf_gnutls.o 962endif 963LIBS += -lgcrypt 964LIBS_p += -lgcrypt 965CONFIG_INTERNAL_SHA256=y 966CONFIG_INTERNAL_RC4=y 967CONFIG_INTERNAL_DH_GROUP5=y 968endif 969 970ifeq ($(CONFIG_TLS), schannel) 971ifdef TLS_FUNCS 972OBJS += ../src/crypto/tls_schannel.o 973endif 974OBJS += ../src/crypto/crypto_cryptoapi.o 975OBJS_p += ../src/crypto/crypto_cryptoapi.o 976ifdef NEED_FIPS186_2_PRF 977OBJS += ../src/crypto/fips_prf_cryptoapi.o 978endif 979CONFIG_INTERNAL_SHA256=y 980CONFIG_INTERNAL_RC4=y 981CONFIG_INTERNAL_DH_GROUP5=y 982endif 983 984ifeq ($(CONFIG_TLS), nss) 985ifdef TLS_FUNCS 986OBJS += ../src/crypto/tls_nss.o 987LIBS += -lssl3 988endif 989OBJS += ../src/crypto/crypto_nss.o 990OBJS_p += ../src/crypto/crypto_nss.o 991ifdef NEED_FIPS186_2_PRF 992OBJS += ../src/crypto/fips_prf_nss.o 993endif 994LIBS += -lnss3 995LIBS_p += -lnss3 996CONFIG_INTERNAL_MD4=y 997CONFIG_INTERNAL_DH_GROUP5=y 998endif 999 1000ifeq ($(CONFIG_TLS), internal) 1001ifndef CONFIG_CRYPTO 1002CONFIG_CRYPTO=internal 1003endif 1004ifdef TLS_FUNCS 1005OBJS += ../src/crypto/crypto_internal-rsa.o 1006OBJS += ../src/crypto/tls_internal.o 1007OBJS += ../src/tls/tlsv1_common.o 1008OBJS += ../src/tls/tlsv1_record.o 1009OBJS += ../src/tls/tlsv1_cred.o 1010OBJS += ../src/tls/tlsv1_client.o 1011OBJS += ../src/tls/tlsv1_client_write.o 1012OBJS += ../src/tls/tlsv1_client_read.o 1013OBJS += ../src/tls/asn1.o 1014OBJS += ../src/tls/rsa.o 1015OBJS += ../src/tls/x509v3.o 1016OBJS += ../src/tls/pkcs1.o 1017OBJS += ../src/tls/pkcs5.o 1018OBJS += ../src/tls/pkcs8.o 1019NEED_SHA256=y 1020NEED_BASE64=y 1021NEED_TLS_PRF=y 1022ifdef CONFIG_TLSV12 1023NEED_TLS_PRF_SHA256=y 1024endif 1025NEED_MODEXP=y 1026NEED_CIPHER=y 1027CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT 1028endif 1029ifdef NEED_CIPHER 1030NEED_DES=y 1031OBJS += ../src/crypto/crypto_internal-cipher.o 1032endif 1033ifdef NEED_MODEXP 1034OBJS += ../src/crypto/crypto_internal-modexp.o 1035OBJS += ../src/tls/bignum.o 1036endif 1037ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1038OBJS += ../src/crypto/crypto_libtomcrypt.o 1039OBJS_p += ../src/crypto/crypto_libtomcrypt.o 1040LIBS += -ltomcrypt -ltfm 1041LIBS_p += -ltomcrypt -ltfm 1042CONFIG_INTERNAL_SHA256=y 1043CONFIG_INTERNAL_RC4=y 1044CONFIG_INTERNAL_DH_GROUP5=y 1045endif 1046ifeq ($(CONFIG_CRYPTO), internal) 1047OBJS += ../src/crypto/crypto_internal.o 1048OBJS_p += ../src/crypto/crypto_internal.o 1049NEED_AES_ENC=y 1050CFLAGS += -DCONFIG_CRYPTO_INTERNAL 1051ifdef CONFIG_INTERNAL_LIBTOMMATH 1052CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH 1053ifdef CONFIG_INTERNAL_LIBTOMMATH_FAST 1054CFLAGS += -DLTM_FAST 1055endif 1056else 1057LIBS += -ltommath 1058LIBS_p += -ltommath 1059endif 1060CONFIG_INTERNAL_AES=y 1061CONFIG_INTERNAL_DES=y 1062CONFIG_INTERNAL_SHA1=y 1063CONFIG_INTERNAL_MD4=y 1064CONFIG_INTERNAL_MD5=y 1065CONFIG_INTERNAL_SHA256=y 1066CONFIG_INTERNAL_RC4=y 1067CONFIG_INTERNAL_DH_GROUP5=y 1068endif 1069ifeq ($(CONFIG_CRYPTO), cryptoapi) 1070OBJS += ../src/crypto/crypto_cryptoapi.o 1071OBJS_p += ../src/crypto/crypto_cryptoapi.o 1072CFLAGS += -DCONFIG_CRYPTO_CRYPTOAPI 1073CONFIG_INTERNAL_SHA256=y 1074CONFIG_INTERNAL_RC4=y 1075endif 1076endif 1077 1078ifeq ($(CONFIG_TLS), none) 1079ifdef TLS_FUNCS 1080OBJS += ../src/crypto/tls_none.o 1081CFLAGS += -DEAP_TLS_NONE 1082CONFIG_INTERNAL_AES=y 1083CONFIG_INTERNAL_SHA1=y 1084CONFIG_INTERNAL_MD5=y 1085endif 1086OBJS += ../src/crypto/crypto_none.o 1087OBJS_p += ../src/crypto/crypto_none.o 1088CONFIG_INTERNAL_SHA256=y 1089CONFIG_INTERNAL_RC4=y 1090endif 1091 1092ifdef TLS_FUNCS 1093ifdef CONFIG_SMARTCARD 1094ifndef CONFIG_NATIVE_WINDOWS 1095ifneq ($(CONFIG_L2_PACKET), freebsd) 1096LIBS += -ldl 1097endif 1098endif 1099endif 1100endif 1101 1102ifndef TLS_FUNCS 1103OBJS += ../src/crypto/tls_none.o 1104ifeq ($(CONFIG_TLS), internal) 1105CONFIG_INTERNAL_AES=y 1106CONFIG_INTERNAL_SHA1=y 1107CONFIG_INTERNAL_MD5=y 1108CONFIG_INTERNAL_RC4=y 1109endif 1110endif 1111 1112AESOBJS = # none so far (see below) 1113ifdef CONFIG_INTERNAL_AES 1114AESOBJS += ../src/crypto/aes-internal.o ../src/crypto/aes-internal-dec.o 1115endif 1116 1117AESOBJS += ../src/crypto/aes-unwrap.o 1118ifdef NEED_AES_EAX 1119AESOBJS += ../src/crypto/aes-eax.o 1120NEED_AES_CTR=y 1121endif 1122ifdef NEED_AES_CTR 1123AESOBJS += ../src/crypto/aes-ctr.o 1124endif 1125ifdef NEED_AES_ENCBLOCK 1126AESOBJS += ../src/crypto/aes-encblock.o 1127endif 1128ifdef NEED_AES_OMAC1 1129NEED_AES_ENC=y 1130ifdef CONFIG_OPENSSL_CMAC 1131CFLAGS += -DCONFIG_OPENSSL_CMAC 1132else 1133AESOBJS += ../src/crypto/aes-omac1.o 1134endif 1135endif 1136ifdef NEED_AES_WRAP 1137NEED_AES_ENC=y 1138AESOBJS += ../src/crypto/aes-wrap.o 1139endif 1140ifdef NEED_AES_CBC 1141NEED_AES_ENC=y 1142AESOBJS += ../src/crypto/aes-cbc.o 1143endif 1144ifdef NEED_AES_ENC 1145ifdef CONFIG_INTERNAL_AES 1146AESOBJS += ../src/crypto/aes-internal-enc.o 1147endif 1148endif 1149ifdef NEED_AES 1150OBJS += $(AESOBJS) 1151endif 1152 1153ifdef NEED_SHA1 1154ifneq ($(CONFIG_TLS), openssl) 1155SHA1OBJS += ../src/crypto/sha1.o 1156endif 1157SHA1OBJS += ../src/crypto/sha1-prf.o 1158ifdef CONFIG_INTERNAL_SHA1 1159SHA1OBJS += ../src/crypto/sha1-internal.o 1160ifdef NEED_FIPS186_2_PRF 1161SHA1OBJS += ../src/crypto/fips_prf_internal.o 1162endif 1163endif 1164ifdef CONFIG_NO_WPA_PASSPHRASE 1165CFLAGS += -DCONFIG_NO_PBKDF2 1166else 1167ifneq ($(CONFIG_TLS), openssl) 1168SHA1OBJS += ../src/crypto/sha1-pbkdf2.o 1169endif 1170endif 1171ifdef NEED_T_PRF 1172SHA1OBJS += ../src/crypto/sha1-tprf.o 1173endif 1174ifdef NEED_TLS_PRF 1175SHA1OBJS += ../src/crypto/sha1-tlsprf.o 1176endif 1177endif 1178 1179ifndef CONFIG_FIPS 1180MD5OBJS += ../src/crypto/md5.o 1181endif 1182ifdef NEED_MD5 1183ifdef CONFIG_INTERNAL_MD5 1184MD5OBJS += ../src/crypto/md5-internal.o 1185endif 1186OBJS += $(MD5OBJS) 1187OBJS_p += $(MD5OBJS) 1188endif 1189 1190ifdef NEED_MD4 1191ifdef CONFIG_INTERNAL_MD4 1192OBJS += ../src/crypto/md4-internal.o 1193endif 1194endif 1195 1196DESOBJS = # none needed when not internal 1197ifdef NEED_DES 1198ifdef CONFIG_INTERNAL_DES 1199DESOBJS += ../src/crypto/des-internal.o 1200endif 1201endif 1202 1203ifdef NEED_RC4 1204ifdef CONFIG_INTERNAL_RC4 1205OBJS += ../src/crypto/rc4.o 1206endif 1207endif 1208 1209SHA256OBJS = # none by default 1210ifdef NEED_SHA256 1211CFLAGS += -DCONFIG_SHA256 1212ifneq ($(CONFIG_TLS), openssl) 1213SHA256OBJS += ../src/crypto/sha256.o 1214endif 1215SHA256OBJS += ../src/crypto/sha256-prf.o 1216ifdef CONFIG_INTERNAL_SHA256 1217SHA256OBJS += ../src/crypto/sha256-internal.o 1218endif 1219ifdef NEED_TLS_PRF_SHA256 1220SHA256OBJS += ../src/crypto/sha256-tlsprf.o 1221endif 1222OBJS += $(SHA256OBJS) 1223endif 1224 1225ifdef NEED_DH_GROUPS 1226OBJS += ../src/crypto/dh_groups.o 1227endif 1228ifdef NEED_DH_GROUPS_ALL 1229CFLAGS += -DALL_DH_GROUPS 1230endif 1231ifdef CONFIG_INTERNAL_DH_GROUP5 1232ifdef NEED_DH_GROUPS 1233OBJS += ../src/crypto/dh_group5.o 1234endif 1235endif 1236 1237ifdef NEED_ECC 1238CFLAGS += -DCONFIG_ECC 1239endif 1240 1241ifdef CONFIG_NO_RANDOM_POOL 1242CFLAGS += -DCONFIG_NO_RANDOM_POOL 1243else 1244OBJS += ../src/crypto/random.o 1245endif 1246 1247ifdef CONFIG_CTRL_IFACE 1248ifeq ($(CONFIG_CTRL_IFACE), y) 1249ifdef CONFIG_NATIVE_WINDOWS 1250CONFIG_CTRL_IFACE=named_pipe 1251else 1252CONFIG_CTRL_IFACE=unix 1253endif 1254endif 1255CFLAGS += -DCONFIG_CTRL_IFACE 1256ifeq ($(CONFIG_CTRL_IFACE), unix) 1257CFLAGS += -DCONFIG_CTRL_IFACE_UNIX 1258endif 1259ifeq ($(CONFIG_CTRL_IFACE), udp) 1260CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1261endif 1262ifeq ($(CONFIG_CTRL_IFACE), named_pipe) 1263CFLAGS += -DCONFIG_CTRL_IFACE_NAMED_PIPE 1264endif 1265ifeq ($(CONFIG_CTRL_IFACE), udp-remote) 1266CONFIG_CTRL_IFACE=udp 1267CFLAGS += -DCONFIG_CTRL_IFACE_UDP 1268CFLAGS += -DCONFIG_CTRL_IFACE_UDP_REMOTE 1269endif 1270OBJS += ctrl_iface.o ctrl_iface_$(CONFIG_CTRL_IFACE).o 1271endif 1272 1273ifdef CONFIG_CTRL_IFACE_DBUS 1274DBUS=y 1275DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS -DDBUS_API_SUBJECT_TO_CHANGE 1276DBUS_OBJS += dbus/dbus_old.o dbus/dbus_old_handlers.o 1277ifdef CONFIG_WPS 1278DBUS_OBJS += dbus/dbus_old_handlers_wps.o 1279endif 1280DBUS_OBJS += dbus/dbus_dict_helpers.o 1281ifndef DBUS_LIBS 1282DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1) 1283endif 1284ifndef DBUS_INCLUDE 1285DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) 1286endif 1287DBUS_CFLAGS += $(DBUS_INCLUDE) 1288endif 1289 1290ifdef CONFIG_CTRL_IFACE_DBUS_NEW 1291DBUS=y 1292DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_NEW 1293DBUS_OBJS ?= dbus/dbus_dict_helpers.o 1294DBUS_OBJS += dbus/dbus_new_helpers.o 1295DBUS_OBJS += dbus/dbus_new.o dbus/dbus_new_handlers.o 1296ifdef CONFIG_WPS 1297DBUS_OBJS += dbus/dbus_new_handlers_wps.o 1298endif 1299ifdef CONFIG_P2P 1300DBUS_OBJS += dbus/dbus_new_handlers_p2p.o 1301endif 1302ifndef DBUS_LIBS 1303DBUS_LIBS := $(shell $(PKG_CONFIG) --libs dbus-1) 1304endif 1305ifndef DBUS_INCLUDE 1306DBUS_INCLUDE := $(shell $(PKG_CONFIG) --cflags dbus-1) 1307endif 1308ifdef CONFIG_CTRL_IFACE_DBUS_INTRO 1309DBUS_OBJS += dbus/dbus_new_introspect.o 1310DBUS_CFLAGS += -DCONFIG_CTRL_IFACE_DBUS_INTRO 1311endif 1312DBUS_CFLAGS += $(DBUS_INCLUDE) 1313endif 1314 1315ifdef DBUS 1316DBUS_CFLAGS += -DCONFIG_DBUS 1317DBUS_OBJS += dbus/dbus_common.o 1318endif 1319 1320OBJS += $(DBUS_OBJS) 1321CFLAGS += $(DBUS_CFLAGS) 1322LIBS += $(DBUS_LIBS) 1323 1324ifdef CONFIG_READLINE 1325OBJS_c += ../src/utils/edit_readline.o 1326LIBS_c += -lncurses -lreadline 1327else 1328ifdef CONFIG_WPA_CLI_EDIT 1329OBJS_c += ../src/utils/edit.o 1330else 1331OBJS_c += ../src/utils/edit_simple.o 1332endif 1333endif 1334 1335ifdef CONFIG_NATIVE_WINDOWS 1336CFLAGS += -DCONFIG_NATIVE_WINDOWS 1337LIBS += -lws2_32 -lgdi32 -lcrypt32 1338LIBS_c += -lws2_32 1339LIBS_p += -lws2_32 -lgdi32 1340ifeq ($(CONFIG_CRYPTO), cryptoapi) 1341LIBS_p += -lcrypt32 1342endif 1343endif 1344 1345ifdef CONFIG_NO_STDOUT_DEBUG 1346CFLAGS += -DCONFIG_NO_STDOUT_DEBUG 1347ifndef CONFIG_CTRL_IFACE 1348CFLAGS += -DCONFIG_NO_WPA_MSG 1349endif 1350endif 1351 1352ifdef CONFIG_IPV6 1353# for eapol_test only 1354CFLAGS += -DCONFIG_IPV6 1355endif 1356 1357ifdef NEED_BASE64 1358OBJS += ../src/utils/base64.o 1359endif 1360 1361ifdef NEED_SME 1362NEED_80211_COMMON=y 1363OBJS += sme.o 1364CFLAGS += -DCONFIG_SME 1365endif 1366 1367ifdef NEED_80211_COMMON 1368OBJS += ../src/common/ieee802_11_common.o 1369endif 1370 1371ifdef NEED_EAP_COMMON 1372OBJS += ../src/eap_common/eap_common.o 1373endif 1374 1375ifndef CONFIG_MAIN 1376CONFIG_MAIN=main 1377endif 1378 1379ifdef CONFIG_DEBUG_SYSLOG 1380CFLAGS += -DCONFIG_DEBUG_SYSLOG 1381ifdef CONFIG_DEBUG_SYSLOG_FACILITY 1382CFLAGS += -DLOG_HOSTAPD="$(CONFIG_DEBUG_SYSLOG_FACILITY)" 1383endif 1384endif 1385 1386ifdef CONFIG_DEBUG_LINUX_TRACING 1387CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING 1388endif 1389 1390ifdef CONFIG_DEBUG_FILE 1391CFLAGS += -DCONFIG_DEBUG_FILE 1392endif 1393 1394ifdef CONFIG_DELAYED_MIC_ERROR_REPORT 1395CFLAGS += -DCONFIG_DELAYED_MIC_ERROR_REPORT 1396endif 1397 1398ifdef CONFIG_FIPS 1399CFLAGS += -DCONFIG_FIPS 1400ifneq ($(CONFIG_TLS), openssl) 1401$(error CONFIG_FIPS=y requires CONFIG_TLS=openssl) 1402endif 1403endif 1404 1405OBJS += $(SHA1OBJS) $(DESOBJS) 1406 1407OBJS_p += $(SHA1OBJS) 1408OBJS_p += $(SHA256OBJS) 1409 1410ifdef CONFIG_BGSCAN_SIMPLE 1411CFLAGS += -DCONFIG_BGSCAN_SIMPLE 1412OBJS += bgscan_simple.o 1413NEED_BGSCAN=y 1414endif 1415 1416ifdef CONFIG_BGSCAN_LEARN 1417CFLAGS += -DCONFIG_BGSCAN_LEARN 1418OBJS += bgscan_learn.o 1419NEED_BGSCAN=y 1420endif 1421 1422ifdef NEED_BGSCAN 1423CFLAGS += -DCONFIG_BGSCAN 1424OBJS += bgscan.o 1425endif 1426 1427ifdef CONFIG_AUTOSCAN_EXPONENTIAL 1428CFLAGS += -DCONFIG_AUTOSCAN_EXPONENTIAL 1429OBJS += autoscan_exponential.o 1430NEED_AUTOSCAN=y 1431endif 1432 1433ifdef CONFIG_AUTOSCAN_PERIODIC 1434CFLAGS += -DCONFIG_AUTOSCAN_PERIODIC 1435OBJS += autoscan_periodic.o 1436NEED_AUTOSCAN=y 1437endif 1438 1439ifdef NEED_AUTOSCAN 1440CFLAGS += -DCONFIG_AUTOSCAN 1441OBJS += autoscan.o 1442endif 1443 1444ifdef CONFIG_EXT_PASSWORD_TEST 1445OBJS += ../src/utils/ext_password_test.o 1446CFLAGS += -DCONFIG_EXT_PASSWORD_TEST 1447NEED_EXT_PASSWORD=y 1448endif 1449 1450ifdef NEED_EXT_PASSWORD 1451OBJS += ../src/utils/ext_password.o 1452CFLAGS += -DCONFIG_EXT_PASSWORD 1453endif 1454 1455ifdef NEED_GAS 1456OBJS += ../src/common/gas.o 1457OBJS += gas_query.o 1458CFLAGS += -DCONFIG_GAS 1459NEED_OFFCHANNEL=y 1460endif 1461 1462ifdef NEED_OFFCHANNEL 1463OBJS += offchannel.o 1464CFLAGS += -DCONFIG_OFFCHANNEL 1465endif 1466 1467OBJS += ../src/drivers/driver_common.o 1468OBJS_priv += ../src/drivers/driver_common.o 1469 1470OBJS_wpa_rm := ctrl_iface.o ctrl_iface_unix.o 1471OBJS_wpa := $(filter-out $(OBJS_wpa_rm),$(OBJS)) $(OBJS_h) tests/test_wpa.o 1472ifdef CONFIG_AUTHENTICATOR 1473OBJS_wpa += tests/link_test.o 1474endif 1475OBJS_wpa += $(OBJS_l2) 1476OBJS += wpa_supplicant.o events.o blacklist.o wpas_glue.o scan.o 1477OBJS_t := $(OBJS) $(OBJS_l2) eapol_test.o 1478OBJS_t += ../src/radius/radius_client.o 1479OBJS_t += ../src/radius/radius.o 1480ifndef CONFIG_AP 1481OBJS_t += ../src/utils/ip_addr.o 1482endif 1483OBJS_t2 := $(OBJS) $(OBJS_l2) preauth_test.o 1484 1485OBJS_nfc := $(OBJS) $(OBJS_l2) nfc_pw_token.o 1486OBJS_nfc += $(OBJS_d) ../src/drivers/drivers.o 1487 1488OBJS += $(CONFIG_MAIN).o 1489 1490ifdef CONFIG_PRIVSEP 1491OBJS_priv += $(OBJS_d) ../src/drivers/drivers.o 1492OBJS_priv += $(OBJS_l2) 1493OBJS_priv += ../src/utils/os_$(CONFIG_OS).o 1494OBJS_priv += ../src/utils/$(CONFIG_ELOOP).o 1495OBJS_priv += ../src/utils/common.o 1496OBJS_priv += ../src/utils/wpa_debug.o 1497OBJS_priv += ../src/utils/wpabuf.o 1498OBJS_priv += wpa_priv.o 1499ifdef CONFIG_DRIVER_NL80211 1500OBJS_priv += ../src/common/ieee802_11_common.o 1501endif 1502ifdef CONFIG_DRIVER_TEST 1503OBJS_priv += $(SHA1OBJS) 1504OBJS_priv += $(MD5OBJS) 1505ifeq ($(CONFIG_TLS), openssl) 1506OBJS_priv += ../src/crypto/crypto_openssl.o 1507endif 1508ifeq ($(CONFIG_TLS), gnutls) 1509OBJS_priv += ../src/crypto/crypto_gnutls.o 1510endif 1511ifeq ($(CONFIG_TLS), nss) 1512OBJS_priv += ../src/crypto/crypto_nss.o 1513endif 1514ifeq ($(CONFIG_TLS), internal) 1515ifeq ($(CONFIG_CRYPTO), libtomcrypt) 1516OBJS_priv += ../src/crypto/crypto_libtomcrypt.o 1517else 1518OBJS_priv += ../src/crypto/crypto_internal.o 1519endif 1520endif 1521endif # CONFIG_DRIVER_TEST 1522OBJS += ../src/l2_packet/l2_packet_privsep.o 1523OBJS += ../src/drivers/driver_privsep.o 1524EXTRA_progs += wpa_priv 1525else 1526OBJS += $(OBJS_d) ../src/drivers/drivers.o 1527OBJS += $(OBJS_l2) 1528endif 1529 1530ifdef CONFIG_NDIS_EVENTS_INTEGRATED 1531CFLAGS += -DCONFIG_NDIS_EVENTS_INTEGRATED 1532OBJS += ../src/drivers/ndis_events.o 1533EXTRALIBS += -loleaut32 -lole32 -luuid 1534ifdef PLATFORMSDKLIB 1535EXTRALIBS += $(PLATFORMSDKLIB)/WbemUuid.Lib 1536else 1537EXTRALIBS += WbemUuid.Lib 1538endif 1539endif 1540 1541ifndef LDO 1542LDO=$(CC) 1543endif 1544 1545Q=@ 1546E=echo 1547ifeq ($(V), 1) 1548Q= 1549E=true 1550endif 1551 1552dynamic_eap_methods: $(EAPDYN) 1553 1554../src/drivers/build.wpa_supplicant: 1555 @if [ -f ../src/drivers/build.hostapd ]; then \ 1556 $(MAKE) -C ../src/drivers clean; \ 1557 fi 1558 @touch ../src/drivers/build.wpa_supplicant 1559 1560BCHECK=../src/drivers/build.wpa_supplicant 1561 1562wpa_priv: $(BCHECK) $(OBJS_priv) 1563 $(Q)$(LDO) $(LDFLAGS) -o wpa_priv $(OBJS_priv) $(LIBS) 1564 @$(E) " LD " $@ 1565 1566$(OBJS_c) $(OBJS_t) $(OBJS_t2) $(OBJS) $(BCHECK) $(EXTRA_progs): .config 1567 1568wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs) 1569 $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) 1570 @$(E) " LD " $@ 1571 1572eapol_test: $(OBJS_t) 1573 $(Q)$(LDO) $(LDFLAGS) -o eapol_test $(OBJS_t) $(LIBS) 1574 @$(E) " LD " $@ 1575 1576preauth_test: $(OBJS_t2) 1577 $(Q)$(LDO) $(LDFLAGS) -o preauth_test $(OBJS_t2) $(LIBS) 1578 @$(E) " LD " $@ 1579 1580wpa_passphrase: $(OBJS_p) 1581 $(Q)$(LDO) $(LDFLAGS) -o wpa_passphrase $(OBJS_p) $(LIBS_p) 1582 @$(E) " LD " $@ 1583 1584wpa_cli: $(OBJS_c) 1585 $(Q)$(LDO) $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c) 1586 @$(E) " LD " $@ 1587 1588link_test: $(OBJS) $(OBJS_h) tests/link_test.o 1589 $(Q)$(LDO) $(LDFLAGS) -o link_test $(OBJS) $(OBJS_h) tests/link_test.o $(LIBS) 1590 @$(E) " LD " $@ 1591 1592test_wpa: $(OBJS_wpa) $(OBJS_h) 1593 $(Q)$(LDO) $(LDFLAGS) -o test_wpa $(OBJS_wpa) $(LIBS) 1594 @$(E) " LD " $@ 1595 1596nfc_pw_token: $(OBJS_nfc) 1597 $(Q)$(LDO) $(LDFLAGS) -o nfc_pw_token $(OBJS_nfc) $(LIBS) 1598 @$(E) " LD " $@ 1599 1600win_if_list: win_if_list.c 1601 $(Q)$(LDO) $(LDFLAGS) -o $@ win_if_list.c $(CFLAGS) $(LIBS_w) 1602 @$(E) " LD " $@ 1603 1604eap_psk.so: ../src/eap_peer/eap_psk.c ../src/eap_common/eap_psk_common.c 1605 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1606 -Deap_peer_psk_register=eap_peer_method_dynamic_init 1607 1608eap_pax.so: ../src/eap_peer/eap_pax.c ../src/eap_common/eap_pax_common.c 1609 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1610 -Deap_peer_pax_register=eap_peer_method_dynamic_init 1611 1612eap_sake.so: ../src/eap_peer/eap_sake.c ../src/eap_common/eap_sake_common.c 1613 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1614 -Deap_peer_sake_register=eap_peer_method_dynamic_init 1615 1616eap_wsc.so: ../src/eap_peer/eap_wsc.c ../src/eap_common/eap_wsc_common.c ../src/wps/wps.c 1617 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1618 -Deap_peer_wsc_register=eap_peer_method_dynamic_init 1619 1620eap_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 1621 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1622 -Deap_peer_ikev2_register=eap_peer_method_dynamic_init 1623 1624eap_eke.so: ../src/eap_peer/eap_eke.c ../src/eap_common/eap_eke_common.c 1625 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $^ \ 1626 -Deap_peer_eke_register=eap_peer_method_dynamic_init 1627 1628%.so: %.c 1629 $(CC) $(LDFLAGS) -o $@ $(CFLAGS) -shared -rdynamic -fPIC $< \ 1630 -D$(*F:eap_%=eap_peer_%)_register=eap_peer_method_dynamic_init 1631 1632ifdef CONFIG_CODE_COVERAGE 1633%.o: %.c 1634 @$(E) " CC " $< 1635 $(Q)cd $(dir $@); $(CC) -c -o $(notdir $@) $(CFLAGS) $(notdir $<) 1636else 1637%.o: %.c 1638 $(Q)$(CC) -c -o $@ $(CFLAGS) $< 1639 @$(E) " CC " $< 1640endif 1641 1642%.service: %.service.in 1643 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ 1644 1645%@.service: %.service.arg.in 1646 sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@ 1647 1648wpa_supplicant.exe: wpa_supplicant 1649 mv -f $< $@ 1650wpa_cli.exe: wpa_cli 1651 mv -f $< $@ 1652wpa_passphrase.exe: wpa_passphrase 1653 mv -f $< $@ 1654win_if_list.exe: win_if_list 1655 mv -f $< $@ 1656eapol_test.exe: eapol_test 1657 mv -f $< $@ 1658 1659WINALL=wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe win_if_list.exe 1660 1661windows-bin: $(WINALL) 1662 $(STRIP) $(WINALL) 1663 1664wpa_gui: 1665 @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement" 1666 1667wpa_gui-qt4/Makefile: 1668 qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro 1669 1670wpa_gui-qt4/lang/wpa_gui_de.qm: wpa_gui-qt4/lang/wpa_gui_de.ts 1671 lrelease wpa_gui-qt4/wpa_gui.pro 1672 1673wpa_gui-qt4: wpa_gui-qt4/Makefile wpa_gui-qt4/lang/wpa_gui_de.qm 1674 $(MAKE) -C wpa_gui-qt4 1675 1676TEST_EAP_SIM_COMMON_OBJS = $(SHA1OBJS) $(MD5OBJS) \ 1677 ../src/utils/common.o ../src/utils/os_unix.o \ 1678 ../src/utils/wpa_debug.o $(AESOBJS) \ 1679 tests/test_eap_sim_common.o 1680test-eap_sim_common: $(TEST_EAP_SIM_COMMON_OBJS) 1681 $(LDO) $(LDFLAGS) -o $@ $(TEST_EAP_SIM_COMMON_OBJS) $(LIBS) 1682 ./test-eap_sim_common 1683 rm test-eap_sim_common 1684 1685tests: test-eap_sim_common 1686 1687FIPSDIR=/usr/local/ssl/fips-2.0 1688FIPSLD=$(FIPSDIR)/bin/fipsld 1689fips: 1690 $(MAKE) CC=$(FIPSLD) FIPSLD_CC="$(CC)" 1691 1692lcov-html: wpa_supplicant.gcda 1693 lcov -c -d .. > lcov.info 1694 genhtml lcov.info --output-directory lcov-html 1695 1696clean: 1697 $(MAKE) -C ../src clean 1698 $(MAKE) -C dbus clean 1699 rm -f core *~ *.o *.d *.gcno *.gcda *.gcov 1700 rm -f eap_*.so $(ALL) $(WINALL) eapol_test preauth_test 1701 rm -f wpa_priv 1702 rm -f nfc_pw_token 1703 rm -f lcov.info 1704 rm -rf lcov-html 1705 1706-include $(OBJS:%.o=%.d) 1707