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