1 # Copyright (C) 2006-2014 OpenWrt.org
3 # This is free software, licensed under the GNU General Public License v2.
4 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
10 PKG_VERSION
:=2016-12-14
12 PKG_REV
:=aaa9c60bc29750f7c09685635b6811c8041663cc
14 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.xz
15 PKG_SOURCE_URL
:=http
://w1.fi
/hostap.git
16 PKG_SOURCE_SUBDIR
:=$(PKG_NAME
)-$(PKG_VERSION
)
17 PKG_SOURCE_VERSION
:=$(PKG_REV
)
19 PKG_MIRROR_HASH
:=6ee5b8a8b9361c1bc688c27441763bd28722ff6236d96954213fef291c5cf73e
21 PKG_MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
22 PKG_LICENSE
:=BSD-3-Clause
26 PKG_CONFIG_DEPENDS
:= \
27 CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK \
28 CONFIG_PACKAGE_kmod-ath9k \
29 CONFIG_PACKAGE_kmod-cfg80211 \
30 CONFIG_PACKAGE_hostapd \
31 CONFIG_PACKAGE_hostapd-mini \
32 CONFIG_WPA_RFKILL_SUPPORT \
33 CONFIG_DRIVER_WEXT_SUPPORT \
34 CONFIG_DRIVER_11N_SUPPORT
37 $(if
$(findstring wpad
,$(BUILD_VARIANT
)),wpad
, \
38 $(if
$(findstring supplicant
,$(BUILD_VARIANT
)),supplicant
, \
41 LOCAL_VARIANT
=$(patsubst wpad-
%,%,$(patsubst supplicant-
%,%,$(BUILD_VARIANT
)))
42 CONFIG_VARIANT
:=$(LOCAL_VARIANT
)
43 ifeq ($(LOCAL_VARIANT
),mesh
)
47 ifneq ($(LOCAL_TYPE
),hostapd
)
48 ifeq ($(LOCAL_VARIANT
),full
)
49 PKG_CONFIG_DEPENDS
+= \
50 CONFIG_WPA_SUPPLICANT_INTERNAL \
51 CONFIG_WPA_SUPPLICANT_OPENSSL
55 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)-$(BUILD_VARIANT
)/$(PKG_NAME
)-$(PKG_VERSION
)
57 include $(INCLUDE_DIR
)/package.mk
59 STAMP_CONFIGURED
:=$(STAMP_CONFIGURED
)_
$(CONFIG_WPA_MSG_MIN_PRIORITY
)
61 ifneq ($(CONFIG_DRIVER_11N_SUPPORT
),)
66 CONFIG_ACS
=$(CONFIG_PACKAGE_kmod-cfg80211
) \
67 CONFIG_DRIVER_NL80211
=$(CONFIG_PACKAGE_kmod-cfg80211
) \
68 CONFIG_IEEE80211N
=$(HOSTAPD_IEEE80211N
) \
69 CONFIG_DRIVER_WEXT
=$(CONFIG_DRIVER_WEXT_SUPPORT
) \
71 ifeq ($(LOCAL_VARIANT
),full
)
72 DRIVER_MAKEOPTS
+= CONFIG_IEEE80211W
=$(CONFIG_DRIVER_11W_SUPPORT
)
75 ifneq ($(LOCAL_TYPE
),hostapd
)
76 ifdef CONFIG_WPA_SUPPLICANT_OPENSSL
77 ifeq ($(LOCAL_VARIANT
),full
)
78 DRIVER_MAKEOPTS
+= CONFIG_TLS
=openssl
79 TARGET_LDFLAGS
+= -lcrypto
-lssl
82 ifeq ($(LOCAL_VARIANT
),mesh
)
83 DRIVER_MAKEOPTS
+= CONFIG_TLS
=openssl CONFIG_AP
=y CONFIG_SAE
=y CONFIG_MESH
=y
84 TARGET_LDFLAGS
+= -lcrypto
-lssl
86 ifdef CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK
87 TARGET_CFLAGS
+= -DNO_TIMESTAMP_CHECK
89 ifdef CONFIG_WPA_RFKILL_SUPPORT
90 DRIVER_MAKEOPTS
+= NEED_RFKILL
=y
93 CONFIG_DRIVER_ROBOSWITCH
=$(CONFIG_PACKAGE_kmod-switch
)
96 ifdef CONFIG_USE_GLIBC
97 TARGET_LDFLAGS
+= -lrt
98 TARGET_LDFLAGS_C
+= -lrt
101 DRV_DEPENDS
:=+PACKAGE_kmod-cfg80211
:libnl-tiny
103 define Package
/hostapd
/Default
106 TITLE
:=IEEE
802.1x Authenticator
107 URL
:=http
://hostap.epitest.fi
/
108 DEPENDS
:=$(DRV_DEPENDS
) +hostapd-common
+libubus
111 define Package
/hostapd
112 $(call Package
/hostapd
/Default
)
115 CONFLICTS
:=wpad wpad-mini wpad-mesh
118 define Package
/hostapd
/description
119 This package contains a full featured IEEE
802.1x
/WPA
/EAP
/RADIUS
123 define Package
/hostapd-mini
124 $(call Package
/hostapd
/Default
)
125 TITLE
+= (WPA-PSK only
)
127 CONFLICTS
:=wpad wpad-mini wpad-mesh
130 define Package
/hostapd-mini
/description
131 This package contains a minimal IEEE
802.1x
/WPA Authenticator
(WPA-PSK only
).
134 define Package
/hostapd-utils
135 $(call Package
/hostapd
/Default
)
137 DEPENDS
:=@PACKAGE_hostapd||PACKAGE_hostapd-mini||PACKAGE_wpad||PACKAGE_wpad-mesh||PACKAGE_wpad-mini
140 define Package
/hostapd-utils
/description
141 This package contains a command line utility to control the
142 IEEE
802.1x
/WPA
/EAP
/RADIUS Authenticator.
145 define Package
/wpad
/Default
148 TITLE
:=IEEE
802.1x Authenticator
/Supplicant
149 DEPENDS
:=$(DRV_DEPENDS
) +hostapd-common
+libubus
150 URL
:=http
://hostap.epitest.fi
/
154 $(call Package
/wpad
/Default
)
156 DEPENDS
+=+WPA_SUPPLICANT_OPENSSL
:libopenssl
160 define Package
/wpad
/description
161 This package contains a full featured IEEE
802.1x
/WPA
/EAP
/RADIUS
162 Authenticator and Supplicant
165 define Package
/wpad-mini
166 $(call Package
/wpad
/Default
)
167 TITLE
+= (WPA-PSK only
)
171 define Package
/wpad-mini
/description
172 This package contains a minimal IEEE
802.1x
/WPA Authenticator and Supplicant
(WPA-PSK only
).
175 define Package
/wpad-mesh
176 $(call Package
/wpad
/Default
)
177 TITLE
+= (with
802.11s mesh and SAE support
)
178 DEPENDS
:=$(DRV_DEPENDS
) +libubus
+PACKAGE_wpad-mesh
:libopenssl @PACKAGE_kmod-cfg80211 @
(!TARGET_uml||BROKEN
)
182 define Package
/wpad-mesh
/description
183 This package contains a minimal IEEE
802.1x
/WPA Authenticator and Supplicant
(with
802.11s mesh and SAE support
).
186 define Package
/wpa-supplicant
189 TITLE
:=WPA Supplicant
190 URL
:=http
://hostap.epitest.fi
/wpa_supplicant
/
191 DEPENDS
:=$(DRV_DEPENDS
) +WPA_SUPPLICANT_OPENSSL
:libopenssl
192 CONFLICTS
:=wpad wpad-mini wpad-mesh
193 VARIANT
:=supplicant-full
196 define Package
/wpa-supplicant
/config
197 source
"$(SOURCE)/Config.in"
200 define Package
/wpa-supplicant-p2p
201 $(Package
/wpa-supplicant
)
202 TITLE
:=WPA Supplicant
(with Wi-Fi P2P support
)
203 DEPENDS
:=$(DRV_DEPENDS
) @PACKAGE_kmod-cfg80211
204 CONFLICTS
:=wpad wpad-mini wpad-mesh
205 VARIANT
:=supplicant-p2p
208 define Package
/wpa-supplicant-mesh
209 $(Package
/wpa-supplicant
)
210 TITLE
:=WPA Supplicant
(with
802.11s and SAE
)
211 DEPENDS
:=$(DRV_DEPENDS
) +PACKAGE_wpa-supplicant-mesh
:libopenssl @PACKAGE_kmod-cfg80211 @
(!TARGET_uml||BROKEN
)
212 CONFLICTS
:=wpad wpad-mesh wpad-mesh
213 VARIANT
:=supplicant-mesh
216 define Package
/wpa-supplicant-mini
217 $(Package
/wpa-supplicant
)
218 TITLE
:=WPA Supplicant
(minimal version
)
219 DEPENDS
:=$(DRV_DEPENDS
)
220 CONFLICTS
:=wpad wpad-mini wpad-mesh
221 VARIANT
:=supplicant-mini
224 define Package
/wpa-cli
227 DEPENDS
:=@PACKAGE_wpa-supplicant||PACKAGE_wpa-supplicant-p2p||PACKAGE_wpad-mini||PACKAGE_wpad||PACKAGE_wpad-mesh
228 TITLE
:=WPA Supplicant command line control utility
231 define Package
/hostapd-common
232 TITLE
:=hostapd
/wpa_supplicant common support files
237 define Package
/eapol-test
238 TITLE
:=802.1x authentication
test utility
241 VARIANT
:=supplicant-full
242 DEPENDS
:=$(DRV_DEPENDS
)
246 ifneq ($(wildcard $(PKG_BUILD_DIR
)/.config_
*),$(subst .configured_
,.config_
,$(STAMP_CONFIGURED
)))
247 define Build
/Configure
/rebuild
248 $(FIND
) $(PKG_BUILD_DIR
) -name \
*.o
-or
-name \
*.a |
$(XARGS
) rm -f
249 rm -f
$(PKG_BUILD_DIR
)/hostapd
/hostapd
250 rm -f
$(PKG_BUILD_DIR
)/wpa_supplicant
/wpa_supplicant
251 rm -f
$(PKG_BUILD_DIR
)/.config_
*
252 touch
$(subst .configured_
,.config_
,$(STAMP_CONFIGURED
))
256 define Build
/Configure
257 $(Build
/Configure
/rebuild
)
258 $(if
$(wildcard .
/files
/hostapd-
$(CONFIG_VARIANT
).config
), \
259 $(CP
) .
/files
/hostapd-
$(CONFIG_VARIANT
).config
$(PKG_BUILD_DIR
)/hostapd
/.config \
261 $(CP
) .
/files
/wpa_supplicant-
$(CONFIG_VARIANT
).config
$(PKG_BUILD_DIR
)/wpa_supplicant
/.config
265 -I
$(STAGING_DIR
)/usr
/include/libnl-tiny \
266 -I
$(PKG_BUILD_DIR
)/src
/crypto \
270 $(if
$(CONFIG_WPA_MSG_MIN_PRIORITY
),-DCONFIG_MSG_MIN_PRIORITY
=$(CONFIG_WPA_MSG_MIN_PRIORITY
))
272 TARGET_CFLAGS
+= -ffunction-sections
-fdata-sections
273 TARGET_LDFLAGS
+= -Wl
,--gc-sections
274 ifeq ($(findstring supplicant
,$(BUILD_VARIANT
)),)
275 TARGET_LDFLAGS
+= -lubox
-lubus
278 ifdef CONFIG_PACKAGE_kmod-cfg80211
279 TARGET_LDFLAGS
+= -lm
-lnl-tiny
283 CFLAGS
="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
284 $(MAKE
) $(PKG_JOBS
) -C
$(PKG_BUILD_DIR
)/$(1) \
285 $(TARGET_CONFIGURE_OPTS
) \
287 LIBS
="$(TARGET_LDFLAGS)" \
288 LIBS_c
="$(TARGET_LDFLAGS_C)" \
293 define Build
/Compile
/wpad
295 $(call Build/RunMake,hostapd,-s MULTICALL=1 dump_cflags); \
296 $(call Build/RunMake,wpa_supplicant,-s MULTICALL=1 dump_cflags) | \
297 sed -e 's,-n ,,g' -e 's^$(TARGET_CFLAGS)^^' \
298 ` > $(PKG_BUILD_DIR
)/.
cflags
299 +$(call Build
/RunMake
,hostapd
, \
300 CFLAGS
="$$$$(cat $(PKG_BUILD_DIR)/.cflags)" \
302 hostapd_cli hostapd_multi.a \
304 +$(call Build
/RunMake
,wpa_supplicant
, \
305 CFLAGS
="$$$$(cat $(PKG_BUILD_DIR)/.cflags)" \
307 wpa_cli wpa_supplicant_multi.a \
309 $(TARGET_CC
) -o
$(PKG_BUILD_DIR
)/wpad \
311 .
/files
/multicall.c \
312 $(PKG_BUILD_DIR
)/hostapd
/hostapd_multi.a \
313 $(PKG_BUILD_DIR
)/wpa_supplicant
/wpa_supplicant_multi.a \
317 define Build
/Compile
/hostapd
318 $(call Build
/RunMake
,hostapd
, \
319 hostapd hostapd_cli \
323 define Build
/Compile
/supplicant
324 $(call Build
/RunMake
,wpa_supplicant
, \
325 wpa_cli wpa_supplicant \
329 define Build
/Compile
/supplicant-full
330 $(call Build
/RunMake
,wpa_supplicant
, \
336 $(Build
/Compile
/$(LOCAL_TYPE
))
337 $(Build
/Compile
/$(BUILD_VARIANT
))
340 define Install
/hostapd
341 $(INSTALL_DIR
) $(1)/usr
/sbin
344 define Install
/supplicant
345 $(INSTALL_DIR
) $(1)/usr
/sbin
348 define Package
/hostapd-common
/install
349 $(INSTALL_DIR
) $(1)/lib
/netifd
350 $(INSTALL_DATA
) .
/files
/netifd.sh
$(1)/lib
/netifd
/hostapd.sh
353 define Package
/hostapd
/install
354 $(call Install
/hostapd
,$(1))
355 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/hostapd
/hostapd
$(1)/usr
/sbin
/
357 Package
/hostapd-mini
/install = $(Package
/hostapd
/install)
359 ifneq ($(LOCAL_TYPE
),supplicant
)
360 define Package
/hostapd-utils
/install
361 $(INSTALL_DIR
) $(1)/usr
/sbin
$(1)/etc
/rc.button
362 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/hostapd
/hostapd_cli
$(1)/usr
/sbin
/
363 $(INSTALL_BIN
) .
/files
/wps-hotplug.sh
$(1)/etc
/rc.button
/wps
367 define Package
/wpad
/install
368 $(call Install
/hostapd
,$(1))
369 $(call Install
/supplicant
,$(1))
370 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/wpad
$(1)/usr
/sbin
/
371 $(LN
) wpad
$(1)/usr
/sbin
/hostapd
372 $(LN
) wpad
$(1)/usr
/sbin
/wpa_supplicant
374 Package
/wpad-mini
/install = $(Package
/wpad
/install)
375 Package
/wpad-mesh
/install = $(Package
/wpad
/install)
377 define Package
/wpa-supplicant
/install
378 $(call Install
/supplicant
,$(1))
379 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/wpa_supplicant
/wpa_supplicant
$(1)/usr
/sbin
/
381 Package
/wpa-supplicant-mini
/install = $(Package
/wpa-supplicant
/install)
382 Package
/wpa-supplicant-p2p
/install = $(Package
/wpa-supplicant
/install)
383 Package
/wpa-supplicant-mesh
/install = $(Package
/wpa-supplicant
/install)
385 ifneq ($(LOCAL_TYPE
),hostapd
)
386 define Package
/wpa-cli
/install
387 $(INSTALL_DIR
) $(1)/usr
/sbin
388 $(CP
) $(PKG_BUILD_DIR
)/wpa_supplicant
/wpa_cli
$(1)/usr
/sbin
/
392 ifeq ($(BUILD_VARIANT
),supplicant-full
)
393 define Package
/eapol-test
/install
394 $(INSTALL_DIR
) $(1)/usr
/sbin
395 $(CP
) $(PKG_BUILD_DIR
)/wpa_supplicant
/eapol_test
$(1)/usr
/sbin
/
399 $(eval
$(call BuildPackage
,hostapd
))
400 $(eval
$(call BuildPackage
,hostapd-mini
))
401 $(eval
$(call BuildPackage
,wpad
))
402 $(eval
$(call BuildPackage
,wpad-mesh
))
403 $(eval
$(call BuildPackage
,wpad-mini
))
404 $(eval
$(call BuildPackage
,wpa-supplicant
))
405 $(eval
$(call BuildPackage
,wpa-supplicant-mesh
))
406 $(eval
$(call BuildPackage
,wpa-supplicant-mini
))
407 $(eval
$(call BuildPackage
,wpa-supplicant-p2p
))
408 $(eval
$(call BuildPackage
,wpa-cli
))
409 $(eval
$(call BuildPackage
,hostapd-utils
))
410 $(eval
$(call BuildPackage
,hostapd-common
))
411 $(eval
$(call BuildPackage
,eapol-test
))