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