]> xenbits.xensource.com Git - people/royger/freebsd.git/commitdiff
wpa: Restructure wpa build
authorCy Schubert <cy@FreeBSD.org>
Thu, 20 May 2021 21:28:17 +0000 (14:28 -0700)
committerCy Schubert <cy@FreeBSD.org>
Tue, 1 Jun 2021 02:39:16 +0000 (19:39 -0700)
The current WPA build assumes a flat namespace. However the latest sources
from w1.fi now have a duplicate config.c, in two separate subdirectories.
The flat namespace will overwrite config.o with the output from the most
recently modified config.c, of which there are two of them.

This commit resolves this problem by building each component in
wpa's src subdirectory tree into its own .a archive, just as the w1.fi
upstream build as used by the port does. The advantages of this approach
are:

1. Duplicate source file names, i.e. config.c in the wpa_supplicant
   direcory and another config.c in src/utils in the next wpa
   will result in both compiles writing to the same .o file.

2. This restructure simplifies maintanence. A develper needs only to add
   new files as identified by git status in the vendor branch to the
   appropriate Makefile within the usr.sbin/wpa tree. This also reduces
   time required to prepare a new import and should reduce error.

3. The new wpa build structure more closely represents the build as
   performed by the upstream tarball.

This is in preparation for the next wpa update from w1.fi.

Reviewed by: philip
Tested by: philip
MFC after: 2 months
Differential Revision: https://reviews.freebsd.org/D30372

26 files changed:
share/mk/src.libnames.mk
usr.sbin/wpa/Makefile
usr.sbin/wpa/Makefile.crypto
usr.sbin/wpa/Makefile.inc
usr.sbin/wpa/hostapd/Makefile
usr.sbin/wpa/hostapd_cli/Makefile
usr.sbin/wpa/src/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/ap/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/common/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/crypto/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/drivers/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/eap_common/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/eap_peer/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/eap_server/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/eapol_auth/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/eapol_supp/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/l2_packet/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/radius/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/rsn_supp/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/tls/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/utils/Makefile [new file with mode: 0644]
usr.sbin/wpa/src/wps/Makefile [new file with mode: 0644]
usr.sbin/wpa/wpa_cli/Makefile
usr.sbin/wpa/wpa_passphrase/Makefile
usr.sbin/wpa/wpa_priv/Makefile
usr.sbin/wpa/wpa_supplicant/Makefile

index 75eafa3742459d6d217c2c23afca31faab98d41c..db76fdd0486ca29eb468c3eb6763850eb77b3600 100644 (file)
@@ -64,7 +64,22 @@ _INTERNALLIBS=       \
                smdb \
                smutil \
                telnet \
-               vers
+               vers \
+               wpaap \
+               wpacommon \
+               wpacrypto \
+               wpadrivers \
+               wpaeap_common \
+               wpaeap_peer \
+               wpaeap_server \
+               wpaeapol_auth \
+               wpaeapol_supp \
+               wpal2_packet \
+               wparadius \
+               wparsn_supp \
+               wpatls \
+               wpautils \
+               wpawps
 
 _LIBRARIES=    \
                ${_PRIVATELIBS} \
@@ -583,6 +598,51 @@ LIBBE?=            ${LIBBEDIR}/libbe${PIE_SUFFIX}.a
 LIBPMCSTATDIR= ${_LIB_OBJTOP}/lib/libpmcstat
 LIBPMCSTAT?=   ${LIBPMCSTATDIR}/libpmcstat${PIE_SUFFIX}.a
 
+LIBWPAAPDIR=   ${_LIB_OBJTOP}/usr.sbin/wpa/src/ap
+LIBWPAAP?=     ${LIBWPAAPDIR}/libwpaap${PIE_SUFFIX}.a
+
+LIBWPACOMMONDIR=       ${_LIB_OBJTOP}/usr.sbin/wpa/src/common
+LIBWPACOMMON?= ${LIBWPACOMMONDIR}/libwpacommon${PIE_SUFFIX}.a
+
+LIBWPACRYPTODIR=       ${_LIB_OBJTOP}/usr.sbin/wpa/src/crypto
+LIBWPACRYPTO?= ${LIBWPACRYPTODIR}/libwpacrypto${PIE_SUFFIX}.a
+
+LIBWPADRIVERSDIR=      ${_LIB_OBJTOP}/usr.sbin/wpa/src/drivers
+LIBWPADRIVERS?=        ${LIBWPADRIVERSDIR}/libwpadrivers${PIE_SUFFIX}.a
+
+LIBWPAEAP_COMMONDIR=   ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_common
+LIBWPAEAP_COMMON?=     ${LIBWPAEAP_COMMONDIR}/libwpaeap_common${PIE_SUFFIX}.a
+
+LIBWPAEAP_PEERDIR=     ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_peer
+LIBWPAEAP_PEER?=       ${LIBWPAEAP_PEERDIR}/libwpaeap_peer${PIE_SUFFIX}.a
+
+LIBWPAEAP_SERVERDIR=   ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_server
+LIBWPAEAP_SERVER?=     ${LIBWPAEAP_SERVERDIR}/libwpaeap_server${PIE_SUFFIX}.a
+
+LIBWPAEAPOL_AUTHDIR=   ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_auth
+LIBWPAEAPOL_AUTH?=     ${LIBWPAEAPOL_AUTHDIR}/libwpaeapol_auth${PIE_SUFFIX}.a
+
+LIBWPAEAPOL_SUPPDIR=   ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_supp
+LIBWPAEAPOL_SUPP?=     ${LIBWPAEAPOL_SUPPDIR}/libwpaeapol_supp${PIE_SUFFIX}.a
+
+LIBWPAL2_PACKETDIR=    ${_LIB_OBJTOP}/usr.sbin/wpa/src/l2_packet
+LIBWPAL2_PACKET?=      ${LIBWPAL2_PACKETDIR}/libwpal2_packet${PIE_SUFFIX}.a
+
+LIBWPARADIUSDIR=       ${_LIB_OBJTOP}/usr.sbin/wpa/src/radius
+LIBWPARADIUS?= ${LIBWPARADIUSDIR}/libwparadius${PIE_SUFFIX}.a
+
+LIBWPARSN_SUPPDIR=     ${_LIB_OBJTOP}/usr.sbin/wpa/src/rsn_supp
+LIBWPARSN_SUPP?=       ${LIBWPARSN_SUPPDIR}/libwparsn_supp${PIE_SUFFIX}.a
+
+LIBWPATLSDIR=  ${_LIB_OBJTOP}/usr.sbin/wpa/src/tls
+LIBWPATLS?=    ${LIBWPATLSDIR}/libwpatls${PIE_SUFFIX}.a
+
+LIBWPAUTILSDIR=        ${_LIB_OBJTOP}/usr.sbin/wpa/src/utils
+LIBWPAUTILS?=  ${LIBWPAUTILSDIR}/libwpautils${PIE_SUFFIX}.a
+
+LIBWPAWPSDIR=  ${_LIB_OBJTOP}/usr.sbin/wpa/src/wps
+LIBWPAWPS?=    ${LIBWPAWPSDIR}/libwpawps${PIE_SUFFIX}.a
+
 LIBC_NOSSP_PICDIR=     ${_LIB_OBJTOP}/lib/libc
 LIBC_NOSSP_PIC?=       ${LIBC_NOSSP_PICDIR}/libc_nossp_pic.a
 
index 451c4c3b17a6e25cdf3aae87a3839047d280e5ae..fe8fb60b1dc24fc9cabc01409faa5b2b8535289f 100644 (file)
@@ -1,7 +1,12 @@
 # $FreeBSD$
 
-SUBDIR= wpa_supplicant wpa_cli wpa_passphrase
-SUBDIR+= hostapd hostapd_cli
+SUBDIR=        src .WAIT \
+       wpa_supplicant \
+       wpa_cli \
+       wpa_passphrase \
+       hostapd \
+       hostapd_cli \
+
 SUBDIR_PARALLEL=
 
 .include <bsd.subdir.mk>
index bed452bf8592dae5658b7f3ed535b58a0d56c691..a7ddb917ac6d087280705de768c8aebe16ba9541 100644 (file)
@@ -1,13 +1,10 @@
 # $FreeBSD$
 
 .if ${MK_OPENSSL} != "no"
-SRCS+= crypto_openssl.c random.c sha1-prf.c sha256-prf.c sha256-tlsprf.c \
-       sha512.c
 LIBADD+=       ssl crypto
 CFLAGS+= -DCONFIG_SHA256
 .else
 CFLAGS+=-DCONFIG_CRYPTO_INTERNAL
-SRCS+= crypto_internal.c random.c
 CONFIG_INTERNAL_AES=y
 CONFIG_INTERNAL_DES=y
 CONFIG_INTERNAL_MD4=y
@@ -33,129 +30,28 @@ NEED_TLS_PRF=y
 .if defined(CONFIG_INTERNAL_TLS)
 CFLAGS+=-DCONFIG_INTERNAL_LIBTOMMATH \
        -DCONFIG_TLS_INTERNAL_CLIENT
-SRCS+= asn1.c \
-       bignum.c \
-       crypto_internal-cipher.c \
-       crypto_internal-modexp.c \
-       crypto_internal-rsa.c \
-       pkcs1.c \
-       pkcs5.c \
-       pkcs8.c \
-       rsa.c \
-       tls_internal.c \
-       tlsv1_common.c \
-       tlsv1_record.c \
-       tlsv1_cred.c \
-       tlsv1_client.c \
-       tlsv1_client_write.c \
-       tlsv1_client_read.c \
-       tlsv1_client_ocsp.c \
-       x509v3.c
 NEED_DES=y
 NEED_MD4=y
 NEED_RC4=y
 .else
 CFLAGS+=-DEAP_TLS_OPENSSL
-SRCS+= tls_openssl.c tls_openssl_ocsp.c
 .endif
 .endif
 
-.if defined(CONFIG_INTERNAL_AES)
-SRCS+= aes-unwrap.c aes-wrap.c \
-       aes-internal.c \
-       aes-internal-dec.c \
-       aes-internal-enc.c
-.endif
-
-.if defined(NEED_AES_CBC)
-SRCS+= aes-cbc.c
-.endif
-
 .if defined(NEED_AES_EAX)
-SRCS+= aes-eax.c
 NEED_AES_CTR=y
 .endif
 
-.if defined(NEED_AES_CTR)
-SRCS+= aes-ctr.c
-.endif
-
-.if defined(NEED_AES_ENCBLOCK)
-SRCS+= aes-encblock.c
-.endif
-
-.if defined(NEED_AES_OMAC1)
-SRCS+= aes-omac1.c
-.endif
-
-.if defined(NEED_DES)
-.if defined(CONFIG_INTERNAL_DES)
-SRCS+= des-internal.c
-.endif
-.endif
-
-.if defined(NEED_MD4)
-.if defined(CONFIG_INTERNAL_MD4)
-SRCS+= md4-internal.c
-.endif
-.endif
-
-.if defined(CONFIG_INTERNAL_MD5)
-SRCS+= md5.c md5-internal.c
-.endif
-
-.if defined(NEED_FIPS186_2_PRF)
-.if defined(CONFIG_INTERNAL_SHA1)
-SRCS+= fips_prf_internal.c
-.else
-SRCS+= fips_prf_openssl.c
-.endif
-.endif
-
-.if defined(CONFIG_INTERNAL_RC4)
-SRCS+= rc4.c
-.endif
-
-.if defined(CONFIG_INTERNAL_SHA1)
-SRCS+= sha1-internal.c sha1-pbkdf2.c sha1.c sha1-prf.c
-.endif
-
 .if defined(NEED_SHA256)
 CFLAGS+=-DCONFIG_SHA256
-SRCS+= sha256.c
-.if defined(CONFIG_INTERNAL_SHA256)
-SRCS+= sha256-internal.c sha256-prf.c
-.endif
 .endif
 
 .if defined(NEED_SHA384)
 CFLAGS+=-DCONFIG_SHA384
-SRCS+= sha384.c
-.if defined(CONFIG_INTERNAL_SHA384)
-SRCS+= sha384-internal.c sha384-prf.c
-.endif
 .endif
 
 .if defined(NEED_SHA512)
 CFLAGS+=-DCONFIG_SHA512
-SRCS+= sha512.c
-.if defined(CONFIG_INTERNAL_SHA512)
-SRCS+= sha512-internal.c sha512-prf.c
-.endif
-.endif
-
-.if defined(NEED_TLS_PRF)
-SRCS+= sha1-tlsprf.c
-.endif
-
-.if defined(CONFIG_INTERNAL_DH5)
-.if defined(NEED_DH_GROUPS)
-SRCS+= dh_group5.c
-.endif
-.endif
-
-.if defined(NEED_DH_GROUPS)
-SRCS+= dh_groups.c
 .endif
 
 .if defined(NEED_DH_GROUPS_ALL)
index 0a69ca08166bfa214447f7a1a75c8dfc561b1bab..87a1d6c23bbcf9b3a4e4f1fb88e2371a6087ada0 100644 (file)
@@ -1,5 +1,7 @@
 # $FreeBSD$
 
+.include <src.opts.mk>
+
 BINDIR?=       /usr/sbin
 
 WARNS?=                0
@@ -8,18 +10,7 @@ WPA_DISTDIR?=                 ${SRCTOP}/contrib/wpa/
 WPA_SUPPLICANT_DISTDIR?=${WPA_DISTDIR}/wpa_supplicant
 HOSTAPD_DISTDIR?=      ${WPA_DISTDIR}/hostapd
 
-.PATH.c:${.CURDIR:H} \
-       ${WPA_DISTDIR}/src/common \
-       ${WPA_DISTDIR}/src/crypto \
-       ${WPA_DISTDIR}/src/eapol_auth \
-       ${WPA_DISTDIR}/src/eap_common \
-       ${WPA_DISTDIR}/src/eapol_supp \
-       ${WPA_DISTDIR}/src/l2_packet \
-       ${WPA_DISTDIR}/src/radius \
-       ${WPA_DISTDIR}/src/rsn_supp \
-       ${WPA_DISTDIR}/src/tls \
-       ${WPA_DISTDIR}/src/utils \
-       ${WPA_DISTDIR}/src/wps
+.PATH.c:${.CURDIR:H}
 
 CFLAGS+=-I${.CURDIR}
 CFLAGS+=-I${HOSTAPD_DISTDIR}
@@ -31,9 +22,78 @@ CFLAGS+=-I${WPA_DISTDIR}/src/l2_packet
 CFLAGS+=-I${WPA_DISTDIR}/src/utils
 CFLAGS+=-I${WPA_DISTDIR}/src/wps
 
-CFLAGS+= -DCONFIG_CTRL_IFACE
-CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX
-CFLAGS+= -DNEED_AP_MLME
-CFLAGS+= -DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"
+CFLAGS+=-DCONFIG_DRIVER_BSD
+CFLAGS+=-DCONFIG_DRIVER_WIRED
+CFLAGS+=-DCONFIG_DRIVER_RADIUS_ACL
+CFLAGS+=-DCONFIG_CTRL_IFACE
+CFLAGS+=-DCONFIG_CTRL_IFACE_UNIX
+CFLAGS+=-DCONFIG_IEEE80211AC
+CFLAGS+=-DCONFIG_IEEE80211N
+CFLAGS+=-DCONFIG_IEEE80211R
+CFLAGS+=-DCONFIG_IEEE80211W
+CFLAGS+=-DCONFIG_IEEE80211AX
+CFLAGS+=-DNEED_AP_MLME
+CFLAGS+=-DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"
+CFLAGS+=-DCONFIG_DEBUG_SYSLOG
+CFLAGS+=-DCONFIG_WPS
+CFLAGS+=-DCONFIG_WPS2
+CFLAGS+=-DCONFIG_WPS_UPNP
+CFLAGS+=-DCONFIG_WPS_OOB
+CFLAGS+=-DCONFIG_INTERWORKING
+CFLAGS+=-DPKCS12_FUNCS
+CFLAGS+=-DCONFIG_GAS
+CFLAGS+=-DCONFIG_PEERKEY
+CFLAGS+=-DCONFIG_PRIVSEP
+CFLAGS+=-DCONFIG_SMARTCARD
+CFLAGS+=-DCONFIG_TERMINATE_ONLASTIF
+CFLAGS+=-DCONFIG_TLS=openssl
+CFLAGS+=-DCONFIG_MATCH_IFACE
+CFLAGS+=-DEAP_SERVER
+CFLAGS+=-DEAP_SERVER_GTC
+CFLAGS+=-DEAP_SERVER_IDENTITY
+CFLAGS+=-DEAP_SERVER_MD5
+CFLAGS+=-DEAP_SERVER_MSCHAPV2
+CFLAGS+=-DEAP_SERVER_PEAP
+CFLAGS+=-DEAP_SERVER_TLS
+CFLAGS+=-DEAP_SERVER_TTLS
+CFLAGS+=-DEAP_SERVER_WSC
+CFLAGS+=-DEAP_TLS_FUNCS
+
+.if ${MK_WPA_SUPPLICANT_EAPOL} != "no"
+CFLAGS+=-DCONFIG_HS20 \
+       -DEAP_GTC \
+       -DEAP_LEAP \
+       -DEAP_MD5 \
+       -DEAP_MSCHAPv2 \
+       -DEAP_OTP \
+       -DEAP_PEAP \
+       -DEAP_PSK \
+       -DEAP_TLS \
+       -DEAP_TTLS \
+       -DEAP_WSC \
+       -DIEEE8021X_EAPOL
+NEED_AES_EAX=y
+NEED_AES_ENCBLOCK=y
+NEED_AES_OMAC1=y
+.endif
+
+.if !empty(CFLAGS:M*-DEAP_AKA)
+NEED_SIM_COMMON=y
+NEED_AES_CBC=y
+.endif
+
+.if !empty(CFLAGS:M*-DEAP_SIM)
+NEED_SIM_COMMON=y
+NEED_AES_CBC=y
+.endif
+
+.if defined(NEED_SIM_COMMON)
+NEED_FIPS186_2_PRF=y
+.endif
+
+.if !empty(CFLAGS:M*-DEAP_GPSK)
+CFLAGS+=-DEAP_GPSK_SHA256
+NEED_AES_OMAC1=y
+.endif
 
 .include <bsd.own.mk>
index 579694046989406ffd7c7d162b8acb2af9c6bda0..6e026babae1a4429308edb155b2f1f80983e6897 100644 (file)
@@ -3,96 +3,14 @@
 .include <src.opts.mk>
 .include "../Makefile.inc"
 
-.PATH.c:${HOSTAPD_DISTDIR} \
-       ${WPA_DISTDIR}/src/ap \
-       ${WPA_DISTDIR}/src/eap_server \
-       ${WPA_DISTDIR}/src/eap_peer \
-       ${WPA_DISTDIR}/src/drivers \
-       ${WPA_DISTDIR}/wpa_supplicant
+.PATH.c:${HOSTAPD_DISTDIR}
 
 PACKAGE=       hostapd
 PROG=  hostapd
-SRCS=  accounting.c \
-       ap_config.c \
-       ap_drv_ops.c \
-       ap_list.c \
-       ap_mlme.c \
-       authsrv.c \
-       base64.c \
-       beacon.c \
-       bss_load.c \
-       chap.c \
-       common.c \
-       config_file.c \
+SRCS=  config_file.c \
        ctrl_iface.c \
-       ctrl_iface_ap.c \
-       ctrl_iface_common.c \
-       dfs.c \
-       driver_bsd.c \
-       driver_common.c \
-       drivers.c \
-       drv_callbacks.c \
-       eloop.c \
-       gas.c \
-       gas_serv.c \
-       http_client.c \
-       http_server.c \
-       httpread.c \
-       hostapd.c \
-       hs20.c \
-       hw_features.c \
-       hw_features_common.c \
-       ieee802_11.c \
-       ieee802_11_auth.c \
-       ieee802_11_common.c \
-       ieee802_11_he.c \
-       ieee802_11_ht.c \
-       ieee802_11_shared.c \
-       ieee802_11_vht.c \
-       ieee802_1x.c \
-       ip_addr.c \
-       l2_packet_freebsd.c \
-       main.c \
-       mbo_ap.c \
-       ms_funcs.c \
-       neighbor_db.c \
-       os_unix.c \
-       pmksa_cache_auth.c \
-       preauth_auth.c \
-       radius.c \
-       radius_client.c \
-       radius_das.c \
-       rrm.c \
-       sta_info.c \
-       tkip_countermeasures.c \
-       upnp_xml.c \
-       utils.c \
-       uuid.c \
-       vlan.c \
-       vlan_ifconfig.c \
-       vlan_init.c \
-       wmm.c \
-       wpa_auth.c \
-       wpa_auth_glue.c \
-       wpa_auth_ie.c \
-       wpa_common.c \
-       wpa_ctrl.c \
-       wpa_debug.c \
-       wpabuf.c \
-       wps.c \
-       wps_attr_build.c \
-       wps_attr_process.c \
-       wps_attr_parse.c \
-       wps_common.c \
-       wps_dev_attr.c \
-       wps_enrollee.c \
-       wps_hostapd.c \
-       wps_registrar.c \
-       wps_upnp.c \
-       wps_upnp_ap.c \
-       wps_upnp_event.c \
-       wps_upnp_ssdp.c \
-       wps_upnp_web.c
+       eap_register.c \
+       main.c
 
 MAN=   hostapd.8 hostapd.conf.5
 
@@ -104,26 +22,17 @@ FILES=     hostapd.conf hostapd.eap_user hostapd.wpa_psk
 
 CFLAGS+=-I${.CURDIR:H}/wpa_supplicant \
        -I${WPA_DISTDIR}/src/eap_peer \
-       -DCONFIG_DRIVER_BSD \
-       -DCONFIG_DRIVER_RADIUS_ACL \
-       -DCONFIG_HS20 \
        -DCONFIG_MBO \
-       -DCONFIG_IEEE80211N \
-       -DCONFIG_IEEE80211W \
-       -DCONFIG_IEEE80211AC \
-       -DCONFIG_IEEE80211AX \
-       -DCONFIG_INTERWORKING \
-       -DCONFIG_PEERKEY \
        -DCONFIG_RSN_PREAUTH \
-       -DCONFIG_WPS \
-       -DCONFIG_WPS2 \
-       -DCONFIG_WPS_UPNP \
        -DHOSTAPD
 .if ${MK_INET6} != "no"
 CFLAGS+= -DCONFIG_IPV6
 .endif
 #CFLAGS+= -g
-LIBADD+=       pcap util
+LIBADD+=       pcap util wpaap wpacommon wpacrypto \
+               wpadrivers wpal2_packet wpaeap_common wpaeap_server \
+               wpaeapol_auth \
+               wparadius wpatls wpautils wpawps
 
 # User customizations for wpa_supplicant/hostapd build environment
 CFLAGS+=${HOSTAPD_CFLAGS}
@@ -131,36 +40,6 @@ CFLAGS+=${HOSTAPD_CFLAGS}
 LDADD+=${HOSTAPD_LDADD}
 #LDFLAGS+=${HOSTAPD_LDFLAGS}
 
-CFLAGS+=-DDPKCS12_FUNCS \
-       -DEAP_SERVER \
-       -DEAP_SERVER_GTC \
-       -DEAP_SERVER_IDENTITY \
-       -DEAP_SERVER_MD5 \
-       -DEAP_SERVER_MSCHAPV2 \
-       -DEAP_SERVER_PEAP \
-       -DEAP_SERVER_TLS \
-       -DEAP_SERVER_TTLS \
-       -DEAP_SERVER_WSC \
-       -DEAP_TLS_FUNCS
-
-SRCS+= eap_server_gtc.c \
-       eap_common.c \
-       eap_peap_common.c \
-       eap_register.c \
-       eap_server.c \
-       eap_server_identity.c \
-       eap_server_md5.c \
-       eap_server_methods.c \
-       eap_server_mschapv2.c \
-       eap_server_peap.c \
-       eap_server_tls.c \
-       eap_server_tls_common.c \
-       eap_server_ttls.c \
-       eap_server_wsc.c \
-       eap_user_db.c \
-       eap_wsc_common.c \
-       eapol_auth_dump.c \
-       eapol_auth_sm.c
 TLS_FUNCS=y
 
 # For WPS, EAP modes, etc
@@ -172,38 +51,22 @@ NEED_SIM_COMMON=y
 .endif
 
 .if !empty(CFLAGS:M*-DEAP_SERVER_AKA)
-SRCS+= eap_server_aka.c
 NEED_SIM_COMMON=y
 .endif
 
 .if !empty(CFLAGS:M*-DEAP_SERVER_SIM)
-SRCS+= eap_server_sim.c
 NEED_SIM_COMMON=y
 .endif
 
 .if defined(NEED_SIM_COMMON)
-SRCS+= eap_sim_common.c \
-       eap_sim_db.c
 NEED_FIPS186_2_PRF=y
 .endif
 
 .if !empty(CFLAGS:M*-DEAP_SERVER_GPSK)
 CFLAGS+=-DEAP_GPSK_SHA256
-SRCS+= eap_server_gpsk.c \
-       eap_gpsk_common.c
 NEED_AES_OMAC1=y
 .endif
 
-.if !empty(CFLAGS:M*-DEAP_SERVER_PAX)
-SRCS+= eap_server_pax.c \
-       eap_pax_common.c
-.endif
-
-.if !empty(CFLAGS:M*-DEAP_SERVER_SAKE)
-SRCS+= eap_server_sake.c \
-       eap_sake_common.c
-.endif
-
 .include "../Makefile.crypto"
 
 .include <bsd.prog.mk>
index eda50e222d2e581b7cd2d1d3ba905aa6cd0e8f82..276e250582981c6ff147d9c187da0d66ee5b78d7 100644 (file)
@@ -6,14 +6,12 @@
 
 PACKAGE=       hostapd
 PROG=  hostapd_cli
-SRCS=  cli.c common.c edit.c eloop.c hostapd_cli.c os_unix.c \
-       wpa_ctrl.c wpa_debug.c
+SRCS=  hostapd_cli.c
 
-CFLAGS+= -DCONFIG_CTRL_IFACE
-CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX
-
-LIBADD+=       util
+LIBADD+=       util wpacommon wpautils
 
 MAN=   hostapd_cli.8
 
+.include "../Makefile.crypto"
+
 .include <bsd.prog.mk>
diff --git a/usr.sbin/wpa/src/Makefile b/usr.sbin/wpa/src/Makefile
new file mode 100644 (file)
index 0000000..f21856a
--- /dev/null
@@ -0,0 +1,19 @@
+SUBDIR=        ap \
+       common \
+       crypto \
+       drivers \
+       eap_common \
+       eap_peer \
+       eap_server \
+       eapol_auth \
+       eapol_supp \
+       l2_packet \
+       radius \
+       rsn_supp \
+       tls \
+       utils \
+       wps
+
+SUBDIR_PARALLEL=
+
+.include <bsd.subdir.mk>
diff --git a/usr.sbin/wpa/src/ap/Makefile b/usr.sbin/wpa/src/ap/Makefile
new file mode 100644 (file)
index 0000000..edb2f1e
--- /dev/null
@@ -0,0 +1,59 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpaap
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/ap
+
+SRCS=  accounting.c \
+       ap_config.c \
+       ap_drv_ops.c \
+       ap_list.c \
+       ap_mlme.c \
+       authsrv.c \
+       beacon.c \
+       bss_load.c \
+       ctrl_iface_ap.c \
+       dfs.c \
+       drv_callbacks.c \
+       eap_user_db.c \
+       gas_serv.c \
+       hostapd.c \
+       hs20.c \
+       hw_features.c \
+       ieee802_11.c \
+       ieee802_11_auth.c \
+       ieee802_11_he.c \
+       ieee802_11_ht.c \
+       ieee802_11_shared.c \
+       ieee802_11_vht.c \
+       ieee802_1x.c \
+       mbo_ap.c \
+       neighbor_db.c \
+       pmksa_cache_auth.c \
+       preauth_auth.c \
+       rrm.c \
+       sta_info.c \
+       tkip_countermeasures.c \
+       utils.c \
+       vlan.c \
+       vlan_ifconfig.c \
+       vlan_init.c \
+       wmm.c \
+       wpa_auth.c \
+       wpa_auth_glue.c \
+       wpa_auth_ie.c \
+       wps_hostapd.c
+
+CFLAGS+=-DCONFIG_MBO \
+       -DCONFIG_RSN_PREAUTH \
+       -DHOSTAPD
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/common/Makefile b/usr.sbin/wpa/src/common/Makefile
new file mode 100644 (file)
index 0000000..28c16ff
--- /dev/null
@@ -0,0 +1,27 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpacommon
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/common
+
+SRCS=  cli.c \
+       ctrl_iface_common.c \
+       gas.c \
+       hw_features_common.c \
+       ieee802_11_common.c \
+       wpa_common.c \
+       wpa_ctrl.c
+
+CFLAGS+=-DCONFIG_SAE \
+       -DCONFIG_SUITE \
+       -DCONFIG_SUITEB
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/crypto/Makefile b/usr.sbin/wpa/src/crypto/Makefile
new file mode 100644 (file)
index 0000000..d7e1304
--- /dev/null
@@ -0,0 +1,63 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpacrypto
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/crypto
+
+SRCS=  aes-cbc.c \
+       aes-ctr.c \
+       aes-eax.c \
+       aes-encblock.c \
+       aes-internal.c \
+       aes-internal-dec.c \
+       aes-internal-enc.c \
+       aes-omac1.c \
+       aes-unwrap.c \
+       aes-wrap.c \
+       crypto_internal.c \
+       crypto_internal-cipher.c \
+       crypto_internal-modexp.c \
+       crypto_internal-rsa.c \
+       des-internal.c \
+       dh_group5.c \
+       dh_groups.c \
+       fips_prf_internal.c \
+       md4-internal.c \
+       md5.c \
+       md5-internal.c \
+       ms_funcs.c \
+       random.c \
+       rc4.c \
+       sha1.c \
+       sha1-internal.c \
+       sha1-pbkdf2.c \
+       sha1-prf.c \
+       sha1-tlsprf.c \
+       sha256.c \
+       sha256-prf.c \
+       sha256-tlsprf.c \
+       sha256-internal.c \
+       sha384.c \
+       sha384-prf.c \
+       sha384-internal.c \
+       sha512-internal.c \
+       tls_internal.c
+
+CFLAGS+=-DCONFIG_CRYPTO_INTERNAL \
+       -DCONFIG_TLS_INTERNAL_CLIENT \
+       -DCONFIG_TLS_INTERNAL_SERVER \
+       -DCONFIG_SHA256 \
+       -DCONFIG_SHA384 \
+       -DCONFIG_HMAC_SHA384_KDF \
+       -DCONFIG_INTERNAL_SHA384
+#CFLAGS+=-DALL_DH_GROUPS
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/drivers/Makefile b/usr.sbin/wpa/src/drivers/Makefile
new file mode 100644 (file)
index 0000000..1800b65
--- /dev/null
@@ -0,0 +1,21 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpadrivers
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/drivers
+
+SRCS=  drivers.c \
+       driver_bsd.c \
+       driver_common.c \
+       driver_wired.c \
+       driver_wired_common.c
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/eap_common/Makefile b/usr.sbin/wpa/src/eap_common/Makefile
new file mode 100644 (file)
index 0000000..4da89b2
--- /dev/null
@@ -0,0 +1,25 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpaeap_common
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/eap_common
+
+SRCS=  chap.c \
+       eap_common.c \
+       eap_gpsk_common.c \
+       eap_pax_common.c \
+       eap_peap_common.c \
+       eap_psk_common.c \
+       eap_sake_common.c \
+       eap_sim_common.c \
+       eap_wsc_common.c
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/eap_peer/Makefile b/usr.sbin/wpa/src/eap_peer/Makefile
new file mode 100644 (file)
index 0000000..524c7cf
--- /dev/null
@@ -0,0 +1,33 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpaeap_peer
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/eap_peer
+
+SRCS=  eap.c \
+       eap_gtc.c \
+       eap_leap.c \
+       eap_md5.c \
+       eap_methods.c \
+       eap_mschapv2.c \
+       eap_otp.c \
+       eap_peap.c \
+       eap_psk.c \
+       eap_tls.c \
+       eap_tls_common.c \
+       eap_ttls.c \
+       eap_wsc.c \
+       eap_methods.c \
+       mschapv2.c
+
+CFLAGS+=-DIEEE8021X_EAPOL
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/eap_server/Makefile b/usr.sbin/wpa/src/eap_server/Makefile
new file mode 100644 (file)
index 0000000..c5a4566
--- /dev/null
@@ -0,0 +1,34 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpaeap_server
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/eap_server
+
+SRCS=  eap_server.c \
+       eap_server_aka.c \
+       eap_server_gpsk.c \
+       eap_server_gtc.c \
+       eap_server_identity.c \
+       eap_server_md5.c \
+       eap_server_methods.c \
+       eap_server_mschapv2.c \
+       eap_server_pax.c \
+       eap_server_peap.c \
+       eap_server_pwd.c \
+       eap_server_sake.c \
+       eap_server_sim.c \
+       eap_server_tls.c \
+       eap_server_tls_common.c \
+       eap_server_ttls.c \
+       eap_server_wsc.c \
+       eap_sim_db.c
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/eapol_auth/Makefile b/usr.sbin/wpa/src/eapol_auth/Makefile
new file mode 100644 (file)
index 0000000..7f05367
--- /dev/null
@@ -0,0 +1,18 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpaeapol_auth
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/eapol_auth
+
+SRCS=  eapol_auth_sm.c \
+       eapol_auth_dump.c
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/eapol_supp/Makefile b/usr.sbin/wpa/src/eapol_supp/Makefile
new file mode 100644 (file)
index 0000000..2b3cc01
--- /dev/null
@@ -0,0 +1,19 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpaeapol_supp
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/eapol_supp
+
+SRCS=  eapol_supp_sm.c
+
+CFLAGS+=-DIEEE8021X_EAPOL
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/l2_packet/Makefile b/usr.sbin/wpa/src/l2_packet/Makefile
new file mode 100644 (file)
index 0000000..89ce771
--- /dev/null
@@ -0,0 +1,19 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpal2_packet
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/l2_packet
+
+SRCS=  l2_packet_freebsd.c
+
+CFLAGS+=-DIEEE8021X_EAPOL
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/radius/Makefile b/usr.sbin/wpa/src/radius/Makefile
new file mode 100644 (file)
index 0000000..1ef986a
--- /dev/null
@@ -0,0 +1,24 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wparadius
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/radius
+
+SRCS=  radius.c \
+       radius_client.c \
+       radius_das.c \
+       radius_server.c
+
+.if ${MK_INET6} != "no"
+CFLAGS+= -DCONFIG_IPV6
+.endif
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/rsn_supp/Makefile b/usr.sbin/wpa/src/rsn_supp/Makefile
new file mode 100644 (file)
index 0000000..1b50689
--- /dev/null
@@ -0,0 +1,26 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wparsn_supp
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/rsn_supp
+
+SRCS=  pmksa_cache.c \
+       wpa_ft.c \
+       tdls.c \
+       preauth.c \
+       wpa.c \
+       wpa_ie.c
+
+CFLAGS+=-DCONFIG_TDLS \
+       -DCONFIG_WNM \
+       -DIEEE8021X_EAPOL
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/tls/Makefile b/usr.sbin/wpa/src/tls/Makefile
new file mode 100644 (file)
index 0000000..defe9b0
--- /dev/null
@@ -0,0 +1,38 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpatls
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/tls
+
+SRCS=  asn1.c \
+       bignum.c \
+       pkcs1.c \
+       pkcs5.c \
+       pkcs8.c \
+       rsa.c \
+       tlsv1_client.c \
+       tlsv1_client_read.c \
+       tlsv1_client_write.c \
+       tlsv1_client_ocsp.c \
+       tlsv1_common.c \
+       tlsv1_cred.c \
+       tlsv1_record.c \
+       tlsv1_server.c \
+       tlsv1_server_read.c \
+       tlsv1_server_write.c \
+       x509v3.c
+
+CFLAGS+=-DCONFIG_INTERNAL_LIBTOMMATH \
+       -DCONFIG_CRYPTO_INTERNAL \
+       -DCONFIG_TLSV11 \
+       -DCONFIG_TLSV12
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/utils/Makefile b/usr.sbin/wpa/src/utils/Makefile
new file mode 100644 (file)
index 0000000..f08a2d7
--- /dev/null
@@ -0,0 +1,32 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpautils
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/utils
+
+SRCS=  base64.c \
+       bitfield.c \
+       common.c \
+       edit.c \
+       eloop.c \
+       ip_addr.c \
+       os_unix.c \
+       uuid.c \
+       wpa_debug.c \
+       wpabuf.c
+
+CFLAGS+=-DCONFIG_DEBUG_FILE
+
+.if ${MK_INET6} != "no"
+CFLAGS+= -DCONFIG_IPV6
+.endif
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/wpa/src/wps/Makefile b/usr.sbin/wpa/src/wps/Makefile
new file mode 100644 (file)
index 0000000..ddb40b6
--- /dev/null
@@ -0,0 +1,39 @@
+.include <src.opts.mk>
+
+.include "../../Makefile.inc"
+
+LIB=   wpawps
+INTERNALLIB=
+
+.PATH: ${WPA_DISTDIR}/src/wps
+
+SRCS=  http_client.c \
+       httpread.c \
+       http_server.c \
+       upnp_xml.c \
+       wps_attr_build.c \
+       wps_attr_parse.c \
+       wps_attr_process.c \
+       wps.c \
+       wps_common.c \
+       wps_dev_attr.c \
+       wps_enrollee.c \
+       wps_registrar.c \
+       wps_upnp_ap.c \
+       wps_upnp.c \
+       wps_upnp_event.c \
+       wps_upnp_ssdp.c \
+       wps_upnp_web.c
+
+CFLAGS+=-DCONFIG_P2P
+
+.if ${MK_INET6} != "no"
+CFLAGS+= -DCONFIG_IPV6
+.endif
+
+.include "../../Makefile.crypto"
+
+# We are only interested in includes at this point. Not libraries.
+LIBADD=
+
+.include <bsd.lib.mk>
index 504b0883f52f1d229daa1a5fae2339e2a178626e..7568154a7e456f0a02a91ebc6430976224adc65d 100644 (file)
@@ -4,35 +4,32 @@
 
 .include "../Makefile.inc"
 
-.PATH.c:${WPA_SUPPLICANT_DISTDIR} \
-       ${WPA_DISTDIR}/wpa_supplicant \
-       ${WPA_DISTDIR}/src/eap_peer \
-       ${WPA_DISTDIR}/src/drivers
+.PATH.c:${WPA_SUPPLICANT_DISTDIR}
 
 PACKAGE=       wpa
 PROG=  wpa_cli
-SRCS=  base64.c bitfield.c blacklist.c bss.c cli.c common.c config.c \
-       config_file.c \
-       ctrl_iface.c ctrl_iface_common.c ctrl_iface_unix.c \
-       drivers.c driver_common.c \
-       eap_register.c \
-       edit.c eloop.c events.c hw_features_common.c \
-       ieee802_11_common.c l2_packet_freebsd.c notify.c \
-       op_classes.c \
-       os_unix.c rrm.c scan.c wmm_ac.c \
-       wpa.c wpa_cli.c \
-       wpa_ctrl.c wpa_common.c \
-       wpa_debug.c wpa_ie.c wpa_supplicant.c wpabuf.c wpas_glue.c
+SRCS=  wpa_cli.c
 
 MAN=   wpa_cli.8
 
-CFLAGS+= -DCONFIG_CTRL_IFACE
-CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX
 CFLAGS+= -DCONFIG_TLS=openssl
 # enable use of d_type to identify unix domain sockets
 CFLAGS+= -D_DIRENT_HAVE_D_TYPE
 
 CFLAGS+= -DCONFIG_WPA_CLI_EDIT=y
+LIBADD+=wpaap \
+       wpacommon \
+       wpacrypto \
+       wpaeap_common \
+       wpaeap_peer \
+       wpaeap_server \
+       wpaeapol_auth \
+       wpaeapol_supp \
+       wpal2_packet \
+       wparadius \
+       wparsn_supp \
+       wpatls \
+       wpautils
 LIBADD+=       pcap util
 
 TLS_FUNCS=y
index 9a929c07b6fcb30c2a471ed67031f1c9828df478..0dcb3e69da98ccc85f1db4570b6cb1e4ff837824 100644 (file)
@@ -6,13 +6,14 @@
 
 PACKAGE=       wpa
 PROG=  wpa_passphrase
-SRCS=  common.c md5-internal.c md5.c os_unix.c sha1-internal.c sha1-pbkdf2.c \
-       sha1.c wpa_passphrase.c
+SRCS=  wpa_passphrase.c
 
 CFLAGS+= -DCONFIG_CRYPTO_INTERNAL -DINTERNAL_SHA1 -DINTERNAL_MD5
 
-LIBADD+=       util
+LIBADD+=       util wpacrypto wpautils
 
 MAN=   wpa_passphrase.8
 
+.include "../Makefile.crypto"
+
 .include <bsd.prog.mk>
index 9fd4e3ca98a0e4ce18e086f70994b1c0bd103865..fd316402c1cfe420de3c830c27ebe21db51bdbf0 100644 (file)
@@ -2,15 +2,14 @@
 
 .include "../Makefile.inc"
 
-.PATH.c:${WPA_SUPPLICANT_DISTDIR} \
-       ${WPA_DISTDIR}/src/drivers
+.PATH.c:${WPA_SUPPLICANT_DISTDIR}
 
 PACKAGE=       wpa
 PROG=  wpa_priv
-SRCS=  drivers.c os_unix.c eloop.c common.c wpa_debug.c wpabuf.c wpa_priv.c \
-       driver_common.c l2_packet_freebsd.c
+SRCS=  os_unix.c eloop.c common.c wpa_debug.c wpabuf.c wpa_priv.c \
+       l2_packet_freebsd.c
 
-LIBADD=        pcap
+LIBADD=        pcap wpadrivers
 
 .include "../Makefile.crypto"
 
index 352e13e6bde6baa0ee68d6874e9ae7a3c7b26c55..482c06d68e408dfee300f14dd1d2cafe31e1b534 100644 (file)
@@ -5,26 +5,29 @@
 .include "../Makefile.inc"
 
 .PATH.c:${WPA_SUPPLICANT_DISTDIR} \
-       ${WPA_DISTDIR}/src/eap_peer \
        ${WPA_DISTDIR}/src/drivers
 
 PACKAGE=       wpa
 PROG=  wpa_supplicant
 
-SRCS=  base64.c bitfield.c blacklist.c bss.c cli.c common.c \
-       config.c config_file.c \
-       ctrl_iface.c ctrl_iface_common.c ctrl_iface_unix.c \
-       driver_bsd.c driver_common.c \
-       driver_wired.c driver_wired_common.c drivers.c \
-       eap_register.c eloop.c \
-       events.c gas.c gas_query.c \
-       http_client.c http_server.c \
-       httpread.c hw_features_common.c \
-       ieee802_11_common.c l2_packet_freebsd.c main.c \
-       notify.c offchannel.c op_classes.c os_unix.c pmksa_cache.c preauth.c \
-       rrm.c scan.c upnp_xml.c \
-       wmm_ac.c wpa.c wpa_common.c wpa_ctrl.c \
-       wpa_debug.c wpa_ft.c wpa_ie.c wpa_supplicant.c wpabuf.c wpas_glue.c
+SRCS=  blacklist.c \
+       bss.c \
+       config.c \
+       config_file.c \
+       ctrl_iface.c \
+       ctrl_iface_unix.c \
+       eap_register.c \
+       events.c \
+       gas_query.c \
+       main.c \
+       notify.c \
+       op_classes.c \
+       offchannel.c \
+       rrm.c \
+       scan.c \
+       wmm_ac.c \
+       wpa_supplicant.c \
+       wpas_glue.c
 
 MAN=   wpa_supplicant.8 wpa_supplicant.conf.5
 
@@ -34,27 +37,11 @@ FILESDIR= ${SHAREDIR}/examples/etc
 FILES= wpa_supplicant.conf
 .endif
 
-CFLAGS+=-DCONFIG_BACKEND_FILE \
-       -DCONFIG_DEBUG_SYSLOG \
-       -DCONFIG_DRIVER_BSD \
-       -DCONFIG_DRIVER_WIRED \
-       -DCONFIG_GAS \
-       -DCONFIG_IEEE80211R \
-       -DCONFIG_IEEE80211N \
-       -DCONFIG_IEEE80211W \
-       -DCONFIG_IEEE80211AC \
-       -DCONFIG_IEEE80211AX \
-       -DCONFIG_PEERKEY \
-       -DCONFIG_PRIVSEP \
-       -DCONFIG_SMARTCARD \
-       -DCONFIG_TERMINATE_ONLASTIF \
-       -DCONFIG_TLS=openssl \
-       -DCONFIG_WPS2 \
-       -DCONFIG_WPS_UPNP \
-       -DPKCS12_FUNCS \
-       -DCONFIG_MATCH_IFACE
+CFLAGS+=-DCONFIG_BACKEND_FILE
 #CFLAGS+= -g
-LIBADD=        pcap util
+LIBADD=        pcap util wpaap wpacommon wpacrypto wpadrivers wpaeapol_supp \
+       wpaeap_common wpaeap_server \
+       wpaeap_peer wpal2_packet wparsn_supp wpatls wpautils wpawps
 
 # User customizations to the wpa_supplicant build environment
 CFLAGS+=${WPA_SUPPLICANT_CFLAGS}
@@ -63,10 +50,7 @@ LDADD+=${WPA_SUPPLICANT_LDADD}
 #LDFLAGS+=${WPA_SUPPLICANT_LDFLAGS}
 
 .if ${MK_WPA_SUPPLICANT_EAPOL} != "no"
-CFLAGS+=-DCONFIG_WPS \
-       -DCONFIG_HS20 \
-       -DCONFIG_INTERWORKING \
-       -DEAP_GTC \
+CFLAGS+=-DEAP_GTC \
        -DEAP_LEAP \
        -DEAP_MD5 \
        -DEAP_MSCHAPv2 \
@@ -77,34 +61,9 @@ CFLAGS+=-DCONFIG_WPS \
        -DEAP_TTLS \
        -DEAP_WSC \
        -DIEEE8021X_EAPOL
-SRCS+= chap.c \
-       eap.c \
-       eap_common.c \
-       eap_gtc.c \
-       eap_leap.c \
-       eap_md5.c \
-       eap_methods.c \
-       eap_mschapv2.c \
-       eap_otp.c \
-       eap_peap.c \
-       eap_peap_common.c \
-       eap_psk.c \
-       eap_psk_common.c \
-       eap_tls.c \
-       eap_tls_common.c \
-       eap_ttls.c \
-       eap_wsc.c \
-       eapol_supp_sm.c \
-       eap_wsc_common.c \
-       hs20_supplicant.c \
+SRCS+= hs20_supplicant.c \
        interworking.c \
-       ms_funcs.c \
-       mschapv2.c \
-       uuid.c \
-       wps.c wps_attr_build.c wps_attr_parse.c wps_attr_process.c \
-       wps_common.c wps_dev_attr.c wps_enrollee.c wps_registrar.c \
-       wps_supplicant.c wps_upnp.c wps_upnp_ap.c wps_upnp_event.c \
-       wps_upnp_ssdp.c wps_upnp_web.c
+       wps_supplicant.c
 NEED_AES_EAX=y
 NEED_AES_ENCBLOCK=y
 NEED_AES_OMAC1=y