xref: /OK3568_Linux_fs/buildroot/package/hostapd/hostapd.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# hostapd
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunHOSTAPD_VERSION = 2.9
8*4882a593SmuzhiyunHOSTAPD_SITE = http://w1.fi/releases
9*4882a593SmuzhiyunHOSTAPD_SUBDIR = hostapd
10*4882a593SmuzhiyunHOSTAPD_CONFIG = $(HOSTAPD_DIR)/$(HOSTAPD_SUBDIR)/.config
11*4882a593SmuzhiyunHOSTAPD_PATCH = \
12*4882a593Smuzhiyun	https://w1.fi/security/2020-1/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch \
13*4882a593Smuzhiyun	https://w1.fi/security/2020-1/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch \
14*4882a593Smuzhiyun	https://w1.fi/security/2020-1/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \
15*4882a593Smuzhiyun	https://w1.fi/security/2021-1/0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch
16*4882a593SmuzhiyunHOSTAPD_DEPENDENCIES = host-pkgconf
17*4882a593SmuzhiyunHOSTAPD_CFLAGS = $(TARGET_CFLAGS)
18*4882a593SmuzhiyunHOSTAPD_LICENSE = BSD-3-Clause
19*4882a593SmuzhiyunHOSTAPD_LICENSE_FILES = README
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun# 0001-AP-Silently-ignore-management-frame-from-unexpected-.patch
22*4882a593SmuzhiyunHOSTAPD_IGNORE_CVES += CVE-2019-16275
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun# 0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch
25*4882a593SmuzhiyunHOSTAPD_IGNORE_CVES += CVE-2020-12695
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun# 0002-ASN.1-Validate-DigestAlgorithmIdentifier-parameters.patch
28*4882a593SmuzhiyunHOSTAPD_IGNORE_CVES += CVE-2021-30004
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun# 0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch
31*4882a593SmuzhiyunHOSTAPD_IGNORE_CVES += CVE-2021-27803
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunHOSTAPD_CPE_ID_VENDOR = w1.fi
34*4882a593SmuzhiyunHOSTAPD_SELINUX_MODULES = hostapd
35*4882a593SmuzhiyunHOSTAPD_CONFIG_SET =
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE = \
38*4882a593Smuzhiyun	CONFIG_INTERNAL_LIBTOMMATH \
39*4882a593Smuzhiyun	CONFIG_DEBUG_FILE \
40*4882a593Smuzhiyun	CONFIG_DEBUG_SYSLOG
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunHOSTAPD_CONFIG_DISABLE =
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun# Try to use openssl if it's already available
45*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
46*4882a593SmuzhiyunHOSTAPD_DEPENDENCIES += host-pkgconf libopenssl
47*4882a593SmuzhiyunHOSTAPD_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl`
48*4882a593SmuzhiyunHOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=openssl\)/\1/'
49*4882a593Smuzhiyunelse
50*4882a593SmuzhiyunHOSTAPD_CONFIG_DISABLE += CONFIG_EAP_PWD CONFIG_EAP_TEAP
51*4882a593SmuzhiyunHOSTAPD_CONFIG_EDITS += 's/\#\(CONFIG_TLS=\).*/\1internal/'
52*4882a593Smuzhiyunendif
53*4882a593Smuzhiyun
54*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_HOSTAP),)
55*4882a593SmuzhiyunHOSTAPD_CONFIG_DISABLE += CONFIG_DRIVER_HOSTAP
56*4882a593Smuzhiyunendif
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_NL80211),)
59*4882a593SmuzhiyunHOSTAPD_CONFIG_DISABLE += CONFIG_DRIVER_NL80211
60*4882a593Smuzhiyunendif
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_WIRED),y)
63*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_DRIVER_WIRED
64*4882a593Smuzhiyunendif
65*4882a593Smuzhiyun
66*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_DRIVER_NONE),y)
67*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_DRIVER_NONE
68*4882a593Smuzhiyunendif
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun# Add options for wireless drivers
71*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_HAS_WIFI_DRIVERS),y)
72*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += \
73*4882a593Smuzhiyun	CONFIG_HS20 \
74*4882a593Smuzhiyun	CONFIG_IEEE80211AC \
75*4882a593Smuzhiyun	CONFIG_IEEE80211N \
76*4882a593Smuzhiyun	CONFIG_IEEE80211R \
77*4882a593Smuzhiyun	CONFIG_INTERWORKING
78*4882a593Smuzhiyunendif
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_ACS),y)
81*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_ACS
82*4882a593Smuzhiyunendif
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_EAP),y)
85*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += \
86*4882a593Smuzhiyun	CONFIG_EAP \
87*4882a593Smuzhiyun	CONFIG_RADIUS_SERVER
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun# Enable both TLS v1.1 (CONFIG_TLSV11) and v1.2 (CONFIG_TLSV12)
90*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_TLSV1
91*4882a593Smuzhiyunelse
92*4882a593SmuzhiyunHOSTAPD_CONFIG_DISABLE += CONFIG_EAP
93*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += \
94*4882a593Smuzhiyun	CONFIG_NO_ACCOUNTING \
95*4882a593Smuzhiyun	CONFIG_NO_RADIUS
96*4882a593Smuzhiyunendif
97*4882a593Smuzhiyun
98*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_WPS),y)
99*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_WPS
100*4882a593Smuzhiyunendif
101*4882a593Smuzhiyun
102*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_WPA3),y)
103*4882a593SmuzhiyunHOSTAPD_CONFIG_SET += \
104*4882a593Smuzhiyun	CONFIG_DPP \
105*4882a593Smuzhiyun	CONFIG_SAE
106*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += \
107*4882a593Smuzhiyun	CONFIG_OWE
108*4882a593Smuzhiyunelse
109*4882a593SmuzhiyunHOSTAPD_CONFIG_DISABLE += \
110*4882a593Smuzhiyun	CONFIG_OWE
111*4882a593Smuzhiyunendif
112*4882a593Smuzhiyun
113*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_VLAN),)
114*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_NO_VLAN
115*4882a593Smuzhiyunendif
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_VLAN_DYNAMIC),y)
118*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_FULL_DYNAMIC_VLAN
119*4882a593SmuzhiyunHOSTAPD_CONFIG_SET += NEED_LINUX_IOCTL
120*4882a593Smuzhiyunendif
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_HOSTAPD_VLAN_NETLINK),y)
123*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_VLAN_NETLINK
124*4882a593Smuzhiyunendif
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun# Options for building with libnl
127*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBNL),y)
128*4882a593SmuzhiyunHOSTAPD_DEPENDENCIES += libnl
129*4882a593SmuzhiyunHOSTAPD_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl3/
130*4882a593SmuzhiyunHOSTAPD_CONFIG_ENABLE += CONFIG_LIBNL32
131*4882a593Smuzhiyun# libnl-3 needs -lm (for rint) and -lpthread if linking statically
132*4882a593Smuzhiyun# And library order matters hence stick -lnl-3 first since it's appended
133*4882a593Smuzhiyun# in the hostapd Makefiles as in LIBS+=-lnl-3 ... thus failing
134*4882a593Smuzhiyunifeq ($(BR2_STATIC_LIBS),y)
135*4882a593SmuzhiyunHOSTAPD_LIBS += -lnl-3 -lm -lpthread
136*4882a593Smuzhiyunendif
137*4882a593Smuzhiyunendif
138*4882a593Smuzhiyun
139*4882a593Smuzhiyundefine HOSTAPD_CONFIGURE_CMDS
140*4882a593Smuzhiyun	cp $(@D)/hostapd/defconfig $(HOSTAPD_CONFIG)
141*4882a593Smuzhiyun	sed -i $(patsubst %,-e 's/^#\(%\)/\1/',$(HOSTAPD_CONFIG_ENABLE)) \
142*4882a593Smuzhiyun		$(patsubst %,-e 's/^\(%\)/#\1/',$(HOSTAPD_CONFIG_DISABLE)) \
143*4882a593Smuzhiyun		$(patsubst %,-e '1i%=y',$(HOSTAPD_CONFIG_SET)) \
144*4882a593Smuzhiyun		$(patsubst %,-e %,$(HOSTAPD_CONFIG_EDITS)) \
145*4882a593Smuzhiyun		$(HOSTAPD_CONFIG)
146*4882a593Smuzhiyunendef
147*4882a593Smuzhiyun
148*4882a593Smuzhiyundefine HOSTAPD_BUILD_CMDS
149*4882a593Smuzhiyun	$(TARGET_MAKE_ENV) CFLAGS="$(HOSTAPD_CFLAGS)" \
150*4882a593Smuzhiyun		LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(HOSTAPD_LIBS)" \
151*4882a593Smuzhiyun		$(MAKE) CC="$(TARGET_CC)" -C $(@D)/$(HOSTAPD_SUBDIR)
152*4882a593Smuzhiyunendef
153*4882a593Smuzhiyun
154*4882a593Smuzhiyundefine HOSTAPD_INSTALL_TARGET_CMDS
155*4882a593Smuzhiyun	$(INSTALL) -m 0755 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd \
156*4882a593Smuzhiyun		$(TARGET_DIR)/usr/sbin/hostapd
157*4882a593Smuzhiyun	$(INSTALL) -m 0755 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd_cli \
158*4882a593Smuzhiyun		$(TARGET_DIR)/usr/bin/hostapd_cli
159*4882a593Smuzhiyun	$(INSTALL) -m 0644 -D $(@D)/$(HOSTAPD_SUBDIR)/hostapd.conf \
160*4882a593Smuzhiyun		$(TARGET_DIR)/etc/hostapd.conf
161*4882a593Smuzhiyunendef
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun$(eval $(generic-package))
164