1# $FreeBSD$ 2 3.include <bsd.own.mk> 4 5WPA_SUPPLICANT_DISTDIR?= ${.CURDIR}/../../../contrib/wpa_supplicant 6.PATH: ${.CURDIR}/.. ${WPA_SUPPLICANT_DISTDIR} 7 8PROG= wpa_supplicant 9SRCS= config.c eloop.c common.c md5.c rc4.c sha1.c aes_wrap.c \ 10 wpa_supplicant.c events.c wpa.c preauth.c pmksa_cache.c \ 11 ctrl_iface.c ctrl_iface_unix.c l2_packet.c main.c drivers.c \ 12 driver_ndis.c Packet32.c \ 13 driver_wired.c \ 14 driver_freebsd.c os_unix.c 15 16MAN= wpa_supplicant.8 wpa_supplicant.conf.5 17 18.if ${MK_EXAMPLES} != "no" 19FILESDIR= ${SHAREDIR}/examples/wpa_supplicant 20FILES= wpa_supplicant.conf 21.endif 22 23CFLAGS+= -I${.CURDIR} -I${WPA_SUPPLICANT_DISTDIR} 24CFLAGS+= -DCONFIG_DRIVER_BSD 25CFLAGS+= -DCONFIG_DRIVER_NDIS 26CFLAGS+= -DCONFIG_DRIVER_WIRED 27CFLAGS+= -DCONFIG_CTRL_IFACE 28CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX 29CFLAGS+= -DCONFIG_TERMINATE_ONLASTIF 30CFLAGS+= -DCONFIG_DEBUG_SYSLOG 31CFLAGS+= -g 32DPADD+= ${LIBPCAP} 33LDADD+= -lpcap 34 35# NB: we only support wpa_supplicant.conf file 36SRCS+= config_file.c base64.c 37CFLAGS+=-DCONFIG_BACKEND_FILE 38 39# User customizations to the wpa_supplicant build environment 40CFLAGS+=${WPA_SUPPLICANT_CFLAGS} 41#DPADD+=${WPA_SUPPLICANT_DPADD} 42LDADD+=${WPA_SUPPLICANT_LDADD} 43#LDFLAGS+=${WPA_SUPPLICANT_LDFLAGS} 44 45.if ${MK_WPA_SUPPLICANT_EAPOL} != "no" 46SRCS+= eapol_sm.c eap.c eap_methods.c 47CFLAGS+= -DIEEE8021X_EAPOL 48 49.if ${MK_OPENSSL} != "no" && !defined(RELEASE_CRUNCH) 50CFLAGS+=-DEAP_TLS -DEAP_PEAP -DEAP_MSCHAPv2 -DEAP_LEAP -DEAP_PSK \ 51 -DEAP_TLV -DEAP_TLS_FUNCS -DEAP_TLS_OPENSSL 52SRCS+= eap_tls.c eap_peap.c eap_mschapv2.c eap_leap.c \ 53 eap_psk.c eap_psk_common.c \ 54 eap_tlv.c eap_tls_common.c tls_openssl.c ms_funcs.c crypto.c 55 56CFLAGS+=-DEAP_TTLS -DEAP_MD5 57SRCS+= eap_ttls.c eap_md5.c 58 59.if !empty(CFLAGS:M*-DEAP_GTC) 60SRCS+= eap_gtc.c 61.endif 62 63.if !empty(CFLAGS:M*-DEAP_OTP) 64SRCS+= eap_otp.c 65.endif 66 67.if !empty(CFLAGS:M*-DEAP_AKA) 68NEED_SIM_COMMON= true 69SRCS+= eap_aka.c 70.endif 71 72.if !empty(CFLAGS:M*-DEAP_SIM) 73NEED_SIM_COMMON= true 74SRCS+= eap_sim.c 75.endif 76 77.if defined(NEED_SIM_COMMON) 78SRCS+= eap_sim_common.c 79 80# PC/SC interface for smartcards (USIM, GSM SIM) 81# GSM/UMTS authentication algorithm (for EAP-SIM/EAP-AKA) 82# NB: requires devel/pcsc-lite 83# 84# WPA_SUPPLICANT_CFLAGS=-DEAP_AKA -DPCSC_FUNCS -I/usr/local/include/PCSC 85# WPA_SUPPLICANT_LDADD=-L/usr/local/lib 86# 87.if !empty(CFLAGS:M*-DPCSC_FUNCS) 88SRCS+= pcsc_funcs.c 89DPADD+=${LIBPTHREAD} 90LDADD+=-lpcsclite -lpthread 91.endif 92.endif 93 94.if !empty(CFLAGS:M*-DEAP_GPSK) 95CFLAGS+=-DEAP_GPSK_SHA256 96SRCS+= eap_gpsk.c eap_gpsk_common.c 97NEED_SHA256= true 98.endif 99 100.if !empty(CFLAGS:M*-DEAP_PAX) 101SRCS+= eap_pax.c eap_pax_common.c 102.endif 103 104.if !empty(CFLAGS:M*-DEAP_SAKE) 105SRCS+= eap_sake.c eap_sake_common.c 106.endif 107 108# NB: requires patch to openssl 109#CFLAGS+= -DEAP_FAST 110#SRCS+= eap_fast.c 111 112NEED_LIBSSL= true 113.else 114CFLAGS+= -DEAP_TLS_NONE 115SRCS+= tls_none.c 116.endif 117 118.endif 119 120# 121# Configure crypto/cipher support. 122# 123# EAPOL support requires openssl in which case we use their 124# cipher code. Otherwise we use our internal versions. 125# 126.if !defined(NEED_LIBSSL) 127CFLAGS+= -DINTERNAL_AES 128CFLAGS+= -DINTERNAL_SHA1 129CFLAGS+= -DINTERNAL_MD5 130.else 131DPADD+= ${LIBSSL} ${LIBCRYPTO} 132LDADD+= -lssl -lcrypto 133.endif 134 135.if defined(NEED_SHA256) 136CFLAGS+=-DINTERNAL_SHA256 137SRCS+= sha256.c 138.endif 139 140.include <bsd.prog.mk> 141