Makefile 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Copyright (C) 2006-2021 OpenWrt.org
  4. include $(TOPDIR)/rules.mk
  5. PKG_NAME:=hostapd
  6. PKG_RELEASE:=$(AUTORELEASE).1
  7. PKG_SOURCE_URL:=http://w1.fi/hostap.git
  8. PKG_SOURCE_PROTO:=git
  9. PKG_SOURCE_DATE:=2022-07-29
  10. PKG_SOURCE_VERSION:=b704dc72ef824dfdd96674b90179b274d1d38105
  11. PKG_MIRROR_HASH:=6c9dd359ef5a4595b6576e07928566d6864957c4af6466d641d6c3f7717f4689
  12. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  13. PKG_LICENSE:=BSD-3-Clause
  14. PKG_CPE_ID:=cpe:/a:w1.fi:hostapd
  15. PKG_BUILD_PARALLEL:=1
  16. PKG_ASLR_PIE_REGULAR:=1
  17. PKG_CONFIG_DEPENDS:= \
  18. CONFIG_PACKAGE_kmod-ath9k \
  19. CONFIG_PACKAGE_kmod-cfg80211 \
  20. CONFIG_PACKAGE_hostapd \
  21. CONFIG_PACKAGE_hostapd-basic \
  22. CONFIG_PACKAGE_hostapd-mini \
  23. CONFIG_WPA_RFKILL_SUPPORT \
  24. CONFIG_DRIVER_WEXT_SUPPORT \
  25. CONFIG_DRIVER_11AC_SUPPORT \
  26. CONFIG_DRIVER_11AX_SUPPORT \
  27. CONFIG_WPA_ENABLE_WEP
  28. EAPOL_TEST_PROVIDERS:=eapol-test eapol-test-openssl eapol-test-wolfssl
  29. SUPPLICANT_PROVIDERS:=
  30. HOSTAPD_PROVIDERS:=
  31. LOCAL_TYPE=$(strip \
  32. $(if $(findstring wpad,$(BUILD_VARIANT)),wpad, \
  33. $(if $(findstring supplicant,$(BUILD_VARIANT)),supplicant, \
  34. hostapd \
  35. )))
  36. LOCAL_AND_LIB_VARIANT=$(patsubst hostapd-%,%,\
  37. $(patsubst wpad-%,%,\
  38. $(patsubst supplicant-%,%,\
  39. $(BUILD_VARIANT)\
  40. )))
  41. LOCAL_VARIANT=$(patsubst %-internal,%,\
  42. $(patsubst %-openssl,%,\
  43. $(patsubst %-wolfssl,%,\
  44. $(patsubst %-mbedtls,%,\
  45. $(LOCAL_AND_LIB_VARIANT)\
  46. ))))
  47. SSL_VARIANT=$(strip \
  48. $(if $(findstring openssl,$(LOCAL_AND_LIB_VARIANT)),openssl,\
  49. $(if $(findstring wolfssl,$(LOCAL_AND_LIB_VARIANT)),wolfssl,\
  50. $(if $(findstring mbedtls,$(LOCAL_AND_LIB_VARIANT)),mbedtls,\
  51. internal\
  52. ))))
  53. CONFIG_VARIANT:=$(LOCAL_VARIANT)
  54. ifeq ($(LOCAL_VARIANT),mesh)
  55. CONFIG_VARIANT:=full
  56. endif
  57. include $(INCLUDE_DIR)/package.mk
  58. STAMP_CONFIGURED:=$(STAMP_CONFIGURED)_$(CONFIG_WPA_MSG_MIN_PRIORITY)
  59. ifneq ($(CONFIG_DRIVER_11AC_SUPPORT),)
  60. HOSTAPD_IEEE80211AC:=y
  61. endif
  62. ifneq ($(CONFIG_DRIVER_11AX_SUPPORT),)
  63. HOSTAPD_IEEE80211AX:=y
  64. endif
  65. DRIVER_MAKEOPTS= \
  66. CONFIG_ACS=$(CONFIG_PACKAGE_kmod-cfg80211) \
  67. CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-cfg80211) \
  68. CONFIG_IEEE80211AC=$(HOSTAPD_IEEE80211AC) \
  69. CONFIG_IEEE80211AX=$(HOSTAPD_IEEE80211AX) \
  70. CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \
  71. CONFIG_MBO=$(CONFIG_WPA_MBO_SUPPORT)
  72. ifeq ($(SSL_VARIANT),openssl)
  73. DRIVER_MAKEOPTS += CONFIG_TLS=openssl CONFIG_SAE=y
  74. TARGET_LDFLAGS += -lcrypto -lssl
  75. ifeq ($(LOCAL_VARIANT),basic)
  76. DRIVER_MAKEOPTS += CONFIG_OWE=y
  77. endif
  78. ifeq ($(LOCAL_VARIANT),mesh)
  79. DRIVER_MAKEOPTS += CONFIG_AP=y CONFIG_MESH=y
  80. endif
  81. ifeq ($(LOCAL_VARIANT),full)
  82. DRIVER_MAKEOPTS += CONFIG_OWE=y CONFIG_SUITEB192=y CONFIG_AP=y CONFIG_MESH=y
  83. endif
  84. endif
  85. ifeq ($(SSL_VARIANT),wolfssl)
  86. DRIVER_MAKEOPTS += CONFIG_TLS=wolfssl CONFIG_SAE=y
  87. TARGET_LDFLAGS += -lwolfssl
  88. ifeq ($(LOCAL_VARIANT),basic)
  89. DRIVER_MAKEOPTS += CONFIG_OWE=y
  90. endif
  91. ifeq ($(LOCAL_VARIANT),mesh)
  92. DRIVER_MAKEOPTS += CONFIG_AP=y CONFIG_MESH=y CONFIG_WPS_NFC=1
  93. endif
  94. ifeq ($(LOCAL_VARIANT),full)
  95. DRIVER_MAKEOPTS += CONFIG_OWE=y CONFIG_SUITEB192=y CONFIG_AP=y CONFIG_MESH=y CONFIG_WPS_NFC=1
  96. endif
  97. endif
  98. ifeq ($(SSL_VARIANT),mbedtls)
  99. DRIVER_MAKEOPTS += CONFIG_TLS=mbedtls CONFIG_SAE=y
  100. TARGET_LDFLAGS += -lmbedcrypto -lmbedx509 -lmbedtls
  101. ifeq ($(LOCAL_VARIANT),basic)
  102. DRIVER_MAKEOPTS += CONFIG_OWE=y
  103. endif
  104. ifeq ($(LOCAL_VARIANT),mesh)
  105. DRIVER_MAKEOPTS += CONFIG_AP=y CONFIG_MESH=y CONFIG_WPS_NFC=1
  106. endif
  107. ifeq ($(LOCAL_VARIANT),full)
  108. DRIVER_MAKEOPTS += CONFIG_OWE=y CONFIG_SUITEB192=y CONFIG_AP=y CONFIG_MESH=y CONFIG_WPS_NFC=1
  109. endif
  110. endif
  111. ifneq ($(LOCAL_TYPE),hostapd)
  112. ifdef CONFIG_WPA_RFKILL_SUPPORT
  113. DRIVER_MAKEOPTS += NEED_RFKILL=y
  114. endif
  115. endif
  116. DRV_DEPENDS:=+PACKAGE_kmod-cfg80211:libnl-tiny
  117. define Package/hostapd/Default
  118. SECTION:=net
  119. CATEGORY:=Network
  120. SUBMENU:=WirelessAPD
  121. TITLE:=IEEE 802.1x Authenticator
  122. URL:=http://hostap.epitest.fi/
  123. DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus
  124. EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE))
  125. USERID:=network=101:network=101
  126. PROVIDES:=hostapd
  127. CONFLICTS:=$(HOSTAPD_PROVIDERS)
  128. HOSTAPD_PROVIDERS+=$(1)
  129. endef
  130. define Package/hostapd
  131. $(call Package/hostapd/Default,$(1))
  132. TITLE+= (built-in full)
  133. VARIANT:=full-internal
  134. endef
  135. define Package/hostapd/description
  136. This package contains a full featured IEEE 802.1x/WPA/EAP/RADIUS
  137. Authenticator.
  138. endef
  139. define Package/hostapd-openssl
  140. $(call Package/hostapd/Default,$(1))
  141. TITLE+= (OpenSSL full)
  142. VARIANT:=full-openssl
  143. DEPENDS+=+PACKAGE_hostapd-openssl:libopenssl
  144. endef
  145. Package/hostapd-openssl/description = $(Package/hostapd/description)
  146. define Package/hostapd-wolfssl
  147. $(call Package/hostapd/Default,$(1))
  148. TITLE+= (wolfSSL full)
  149. VARIANT:=full-wolfssl
  150. DEPENDS+=+PACKAGE_hostapd-wolfssl:libwolfssl
  151. endef
  152. Package/hostapd-wolfssl/description = $(Package/hostapd/description)
  153. define Package/hostapd-mbedtls
  154. $(call Package/hostapd/Default,$(1))
  155. TITLE+= (mbedTLS full)
  156. VARIANT:=full-mbedtls
  157. DEPENDS+=+PACKAGE_hostapd-mbedtls:libmbedtls
  158. endef
  159. Package/hostapd-mbedtls/description = $(Package/hostapd/description)
  160. define Package/hostapd-basic
  161. $(call Package/hostapd/Default,$(1))
  162. TITLE+= (WPA-PSK, 11r, 11w)
  163. VARIANT:=basic
  164. endef
  165. define Package/hostapd-basic/description
  166. This package contains a basic IEEE 802.1x/WPA Authenticator with WPA-PSK, 802.11r and 802.11w support.
  167. endef
  168. define Package/hostapd-basic-openssl
  169. $(call Package/hostapd/Default,$(1))
  170. TITLE+= (WPA-PSK, 11r and 11w)
  171. VARIANT:=basic-openssl
  172. DEPENDS+=+PACKAGE_hostapd-basic-openssl:libopenssl
  173. endef
  174. define Package/hostapd-basic-openssl/description
  175. This package contains a basic IEEE 802.1x/WPA Authenticator with WPA-PSK, 802.11r and 802.11w support.
  176. endef
  177. define Package/hostapd-basic-wolfssl
  178. $(call Package/hostapd/Default,$(1))
  179. TITLE+= (WPA-PSK, 11r and 11w)
  180. VARIANT:=basic-wolfssl
  181. DEPENDS+=+PACKAGE_hostapd-basic-wolfssl:libwolfssl
  182. endef
  183. define Package/hostapd-basic-wolfssl/description
  184. This package contains a basic IEEE 802.1x/WPA Authenticator with WPA-PSK, 802.11r and 802.11w support.
  185. endef
  186. define Package/hostapd-basic-mbedtls
  187. $(call Package/hostapd/Default,$(1))
  188. TITLE+= (WPA-PSK, 11r and 11w)
  189. VARIANT:=basic-mbedtls
  190. DEPENDS+=+PACKAGE_hostapd-basic-mbedtls:libmbedtls
  191. endef
  192. define Package/hostapd-basic-mbedtls/description
  193. This package contains a basic IEEE 802.1x/WPA Authenticator with WPA-PSK, 802.11r and 802.11w support.
  194. endef
  195. define Package/hostapd-mini
  196. $(call Package/hostapd/Default,$(1))
  197. TITLE+= (WPA-PSK only)
  198. VARIANT:=mini
  199. endef
  200. define Package/hostapd-mini/description
  201. This package contains a minimal IEEE 802.1x/WPA Authenticator (WPA-PSK only).
  202. endef
  203. define Package/wpad/Default
  204. SECTION:=net
  205. CATEGORY:=Network
  206. SUBMENU:=WirelessAPD
  207. TITLE:=IEEE 802.1x Auth/Supplicant
  208. DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus
  209. EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE))
  210. USERID:=network=101:network=101
  211. URL:=http://hostap.epitest.fi/
  212. PROVIDES:=hostapd wpa-supplicant
  213. CONFLICTS:=$(HOSTAPD_PROVIDERS) $(SUPPLICANT_PROVIDERS)
  214. HOSTAPD_PROVIDERS+=$(1)
  215. SUPPLICANT_PROVIDERS+=$(1)
  216. endef
  217. define Package/wpad
  218. $(call Package/wpad/Default,$(1))
  219. TITLE+= (built-in full)
  220. VARIANT:=wpad-full-internal
  221. endef
  222. define Package/wpad/description
  223. This package contains a full featured IEEE 802.1x/WPA/EAP/RADIUS
  224. Authenticator and Supplicant
  225. endef
  226. define Package/wpad-openssl
  227. $(call Package/wpad/Default,$(1))
  228. TITLE+= (OpenSSL full)
  229. VARIANT:=wpad-full-openssl
  230. DEPENDS+=+PACKAGE_wpad-openssl:libopenssl
  231. endef
  232. Package/wpad-openssl/description = $(Package/wpad/description)
  233. define Package/wpad-wolfssl
  234. $(call Package/wpad/Default,$(1))
  235. TITLE+= (wolfSSL full)
  236. VARIANT:=wpad-full-wolfssl
  237. DEPENDS+=+PACKAGE_wpad-wolfssl:libwolfssl
  238. endef
  239. Package/wpad-wolfssl/description = $(Package/wpad/description)
  240. define Package/wpad-mbedtls
  241. $(call Package/wpad/Default,$(1))
  242. TITLE+= (mbedTLS full)
  243. VARIANT:=wpad-full-mbedtls
  244. DEPENDS+=+PACKAGE_wpad-mbedtls:libmbedtls
  245. endef
  246. Package/wpad-mbedtls/description = $(Package/wpad/description)
  247. define Package/wpad-basic
  248. $(call Package/wpad/Default,$(1))
  249. TITLE+= (WPA-PSK, 11r, 11w)
  250. VARIANT:=wpad-basic
  251. endef
  252. define Package/wpad-basic/description
  253. This package contains a basic IEEE 802.1x/WPA Authenticator and Supplicant with WPA-PSK, 802.11r and 802.11w support.
  254. endef
  255. define Package/wpad-basic-openssl
  256. $(call Package/wpad/Default,$(1))
  257. TITLE+= (OpenSSL, 11r, 11w)
  258. VARIANT:=wpad-basic-openssl
  259. DEPENDS+=+PACKAGE_wpad-basic-openssl:libopenssl
  260. endef
  261. define Package/wpad-basic-openssl/description
  262. This package contains a basic IEEE 802.1x/WPA Authenticator and Supplicant with WPA-PSK, SAE (WPA3-Personal), 802.11r and 802.11w support.
  263. endef
  264. define Package/wpad-basic-wolfssl
  265. $(call Package/wpad/Default,$(1))
  266. TITLE+= (wolfSSL, 11r, 11w)
  267. VARIANT:=wpad-basic-wolfssl
  268. DEPENDS+=+PACKAGE_wpad-basic-wolfssl:libwolfssl
  269. endef
  270. define Package/wpad-basic-wolfssl/description
  271. This package contains a basic IEEE 802.1x/WPA Authenticator and Supplicant with WPA-PSK, SAE (WPA3-Personal), 802.11r and 802.11w support.
  272. endef
  273. define Package/wpad-basic-mbedtls
  274. $(call Package/wpad/Default,$(1))
  275. TITLE+= (mbedTLS, 11r, 11w)
  276. VARIANT:=wpad-basic-mbedtls
  277. DEPENDS+=+PACKAGE_wpad-basic-mbedtls:libmbedtls
  278. endef
  279. define Package/wpad-basic-mbedtls/description
  280. This package contains a basic IEEE 802.1x/WPA Authenticator and Supplicant with WPA-PSK, SAE (WPA3-Personal), 802.11r and 802.11w support.
  281. endef
  282. define Package/wpad-mini
  283. $(call Package/wpad/Default,$(1))
  284. TITLE+= (WPA-PSK only)
  285. VARIANT:=wpad-mini
  286. endef
  287. define Package/wpad-mini/description
  288. This package contains a minimal IEEE 802.1x/WPA Authenticator and Supplicant (WPA-PSK only).
  289. endef
  290. define Package/wpad-mesh
  291. $(call Package/wpad/Default,$(1))
  292. DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
  293. PROVIDES+=wpa-supplicant-mesh wpad-mesh
  294. endef
  295. define Package/wpad-mesh/description
  296. This package contains a minimal IEEE 802.1x/WPA Authenticator and Supplicant (with 802.11s mesh and SAE support).
  297. endef
  298. define Package/wpad-mesh-openssl
  299. $(call Package/wpad-mesh,$(1))
  300. TITLE+= (OpenSSL, 11s, SAE)
  301. DEPENDS+=+PACKAGE_wpad-mesh-openssl:libopenssl
  302. VARIANT:=wpad-mesh-openssl
  303. endef
  304. Package/wpad-mesh-openssl/description = $(Package/wpad-mesh/description)
  305. define Package/wpad-mesh-wolfssl
  306. $(call Package/wpad-mesh,$(1))
  307. TITLE+= (wolfSSL, 11s, SAE)
  308. DEPENDS+=+PACKAGE_wpad-mesh-wolfssl:libwolfssl
  309. VARIANT:=wpad-mesh-wolfssl
  310. endef
  311. Package/wpad-mesh-wolfssl/description = $(Package/wpad-mesh/description)
  312. define Package/wpad-mesh-mbedtls
  313. $(call Package/wpad-mesh,$(1))
  314. TITLE+= (mbedTLS, 11s, SAE)
  315. DEPENDS+=+PACKAGE_wpad-mesh-mbedtls:libmbedtls
  316. VARIANT:=wpad-mesh-mbedtls
  317. endef
  318. Package/wpad-mesh-mbedtls/description = $(Package/wpad-mesh/description)
  319. define Package/wpa-supplicant/Default
  320. SECTION:=net
  321. CATEGORY:=Network
  322. SUBMENU:=WirelessAPD
  323. TITLE:=WPA Supplicant
  324. URL:=http://hostap.epitest.fi/wpa_supplicant/
  325. DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus
  326. EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE))
  327. USERID:=network=101:network=101
  328. PROVIDES:=wpa-supplicant
  329. CONFLICTS:=$(SUPPLICANT_PROVIDERS)
  330. SUPPLICANT_PROVIDERS+=$(1)
  331. endef
  332. define Package/wpa-supplicant
  333. $(call Package/wpa-supplicant/Default,$(1))
  334. TITLE+= (built-in full)
  335. VARIANT:=supplicant-full-internal
  336. endef
  337. define Package/wpa-supplicant-openssl
  338. $(call Package/wpa-supplicant/Default,$(1))
  339. TITLE+= (OpenSSL full)
  340. VARIANT:=supplicant-full-openssl
  341. DEPENDS+=+PACKAGE_wpa-supplicant-openssl:libopenssl
  342. endef
  343. define Package/wpa-supplicant-wolfssl
  344. $(call Package/wpa-supplicant/Default,$(1))
  345. TITLE+= (wolfSSL full)
  346. VARIANT:=supplicant-full-wolfssl
  347. DEPENDS+=+PACKAGE_wpa-supplicant-wolfssl:libwolfssl
  348. endef
  349. define Package/wpa-supplicant-mbedtls
  350. $(call Package/wpa-supplicant/Default,$(1))
  351. TITLE+= (mbedTLS full)
  352. VARIANT:=supplicant-full-mbedtls
  353. DEPENDS+=+PACKAGE_wpa-supplicant-mbedtls:libmbedtls
  354. endef
  355. define Package/wpa-supplicant/config
  356. source "$(SOURCE)/Config.in"
  357. endef
  358. define Package/wpa-supplicant-p2p
  359. $(call Package/wpa-supplicant/Default,$(1))
  360. TITLE+= (Wi-Fi P2P support)
  361. DEPENDS+=@PACKAGE_kmod-cfg80211
  362. VARIANT:=supplicant-p2p-internal
  363. endef
  364. define Package/wpa-supplicant-mesh/Default
  365. $(call Package/wpa-supplicant/Default,$(1))
  366. DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN)
  367. PROVIDES+=wpa-supplicant-mesh
  368. endef
  369. define Package/wpa-supplicant-mesh-openssl
  370. $(call Package/wpa-supplicant-mesh/Default,$(1))
  371. TITLE+= (OpenSSL, 11s, SAE)
  372. VARIANT:=supplicant-mesh-openssl
  373. DEPENDS+=+PACKAGE_wpa-supplicant-mesh-openssl:libopenssl
  374. endef
  375. define Package/wpa-supplicant-mesh-wolfssl
  376. $(call Package/wpa-supplicant-mesh/Default,$(1))
  377. TITLE+= (wolfSSL, 11s, SAE)
  378. VARIANT:=supplicant-mesh-wolfssl
  379. DEPENDS+=+PACKAGE_wpa-supplicant-mesh-wolfssl:libwolfssl
  380. endef
  381. define Package/wpa-supplicant-mesh-mbedtls
  382. $(call Package/wpa-supplicant-mesh/Default,$(1))
  383. TITLE+= (mbedTLS, 11s, SAE)
  384. VARIANT:=supplicant-mesh-mbedtls
  385. DEPENDS+=+PACKAGE_wpa-supplicant-mesh-mbedtls:libmbedtls
  386. endef
  387. define Package/wpa-supplicant-basic
  388. $(call Package/wpa-supplicant/Default,$(1))
  389. TITLE+= (11r, 11w)
  390. VARIANT:=supplicant-basic
  391. endef
  392. define Package/wpa-supplicant-mini
  393. $(call Package/wpa-supplicant/Default,$(1))
  394. TITLE+= (minimal)
  395. VARIANT:=supplicant-mini
  396. endef
  397. define Package/hostapd-common
  398. TITLE:=hostapd/wpa_supplicant common support files
  399. SECTION:=net
  400. CATEGORY:=Network
  401. SUBMENU:=WirelessAPD
  402. endef
  403. define Package/hostapd-utils
  404. SECTION:=net
  405. CATEGORY:=Network
  406. SUBMENU:=WirelessAPD
  407. TITLE:=IEEE 802.1x Authenticator (utils)
  408. URL:=http://hostap.epitest.fi/
  409. DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(HOSTAPD_PROVIDERS),PACKAGE_$(pkg)))
  410. VARIANT:=*
  411. endef
  412. define Package/hostapd-utils/description
  413. This package contains a command line utility to control the
  414. IEEE 802.1x/WPA/EAP/RADIUS Authenticator.
  415. endef
  416. define Package/wpa-cli
  417. SECTION:=net
  418. CATEGORY:=Network
  419. SUBMENU:=WirelessAPD
  420. DEPENDS:=@$(subst $(space),||,$(foreach pkg,$(SUPPLICANT_PROVIDERS),PACKAGE_$(pkg)))
  421. TITLE:=WPA Supplicant command line control utility
  422. VARIANT:=*
  423. endef
  424. define Package/eapol-test/Default
  425. TITLE:=802.1x auth test utility
  426. SECTION:=net
  427. SUBMENU:=WirelessAPD
  428. CATEGORY:=Network
  429. DEPENDS:=$(DRV_DEPENDS) +libubus
  430. endef
  431. define Package/eapol-test
  432. $(call Package/eapol-test/Default,$(1))
  433. TITLE+= (built-in full)
  434. VARIANT:=supplicant-full-internal
  435. endef
  436. define Package/eapol-test-openssl
  437. $(call Package/eapol-test/Default,$(1))
  438. TITLE+= (OpenSSL full)
  439. VARIANT:=supplicant-full-openssl
  440. CONFLICTS:=$(filter-out eapol-test-openssl ,$(EAPOL_TEST_PROVIDERS))
  441. DEPENDS+=+PACKAGE_eapol-test-openssl:libopenssl
  442. PROVIDES:=eapol-test
  443. endef
  444. define Package/eapol-test-wolfssl
  445. $(call Package/eapol-test/Default,$(1))
  446. TITLE+= (wolfSSL full)
  447. VARIANT:=supplicant-full-wolfssl
  448. CONFLICTS:=$(filter-out eapol-test-openssl ,$(filter-out eapol-test-wolfssl ,$(EAPOL_TEST_PROVIDERS)))
  449. DEPENDS+=+PACKAGE_eapol-test-wolfssl:libwolfssl
  450. PROVIDES:=eapol-test
  451. endef
  452. define Package/eapol-test-mbedtls
  453. $(call Package/eapol-test/Default,$(1))
  454. TITLE+= (mbedTLS full)
  455. VARIANT:=supplicant-full-mbedtls
  456. CONFLICTS:=$(filter-out eapol-test-openssl ,$(filter-out eapol-test-mbedtls ,$(EAPOL_TEST_PROVIDERS)))
  457. DEPENDS+=+PACKAGE_eapol-test-mbedtls:libmbedtls
  458. PROVIDES:=eapol-test
  459. endef
  460. ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
  461. define Build/Configure/rebuild
  462. $(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.a | $(XARGS) rm -f
  463. rm -f $(PKG_BUILD_DIR)/hostapd/hostapd
  464. rm -f $(PKG_BUILD_DIR)/wpa_supplicant/wpa_supplicant
  465. rm -f $(PKG_BUILD_DIR)/.config_*
  466. touch $(subst .configured_,.config_,$(STAMP_CONFIGURED))
  467. endef
  468. endif
  469. define Build/Configure
  470. $(Build/Configure/rebuild)
  471. $(if $(wildcard ./files/hostapd-$(CONFIG_VARIANT).config), \
  472. $(CP) ./files/hostapd-$(CONFIG_VARIANT).config $(PKG_BUILD_DIR)/hostapd/.config \
  473. )
  474. $(if $(wildcard ./files/wpa_supplicant-$(CONFIG_VARIANT).config), \
  475. $(CP) ./files/wpa_supplicant-$(CONFIG_VARIANT).config $(PKG_BUILD_DIR)/wpa_supplicant/.config
  476. )
  477. endef
  478. TARGET_CPPFLAGS := \
  479. -I$(STAGING_DIR)/usr/include/libnl-tiny \
  480. -I$(PKG_BUILD_DIR)/src/crypto \
  481. $(TARGET_CPPFLAGS) \
  482. -DCONFIG_LIBNL20 \
  483. -D_GNU_SOURCE \
  484. $(if $(CONFIG_WPA_MSG_MIN_PRIORITY),-DCONFIG_MSG_MIN_PRIORITY=$(CONFIG_WPA_MSG_MIN_PRIORITY))
  485. TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
  486. TARGET_LDFLAGS += -Wl,--gc-sections -flto=jobserver -fuse-linker-plugin -lubox -lubus
  487. ifdef CONFIG_PACKAGE_kmod-cfg80211
  488. TARGET_LDFLAGS += -lm -lnl-tiny
  489. endif
  490. ifdef CONFIG_WPA_ENABLE_WEP
  491. DRIVER_MAKEOPTS += CONFIG_WEP=y
  492. endif
  493. define Build/RunMake
  494. CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
  495. $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(1) \
  496. $(TARGET_CONFIGURE_OPTS) \
  497. $(DRIVER_MAKEOPTS) \
  498. LIBS="$(TARGET_LDFLAGS)" \
  499. LIBS_c="$(TARGET_LDFLAGS_C)" \
  500. AR="$(TARGET_CROSS)gcc-ar" \
  501. BCHECK= \
  502. $(if $(findstring s,$(OPENWRT_VERBOSE)),V=1) \
  503. $(2)
  504. endef
  505. define Build/Compile/wpad
  506. echo ` \
  507. $(call Build/RunMake,hostapd,-s MULTICALL=1 dump_cflags); \
  508. $(call Build/RunMake,wpa_supplicant,-s MULTICALL=1 dump_cflags) | \
  509. sed -e 's,-n ,,g' -e 's^$(TARGET_CFLAGS)^^' \
  510. ` > $(PKG_BUILD_DIR)/.cflags
  511. sed -i 's/"/\\"/g' $(PKG_BUILD_DIR)/.cflags
  512. +$(call Build/RunMake,hostapd, \
  513. CFLAGS="$$$$(cat $(PKG_BUILD_DIR)/.cflags)" \
  514. MULTICALL=1 \
  515. hostapd_cli hostapd_multi.a \
  516. )
  517. +$(call Build/RunMake,wpa_supplicant, \
  518. CFLAGS="$$$$(cat $(PKG_BUILD_DIR)/.cflags)" \
  519. MULTICALL=1 \
  520. wpa_cli wpa_supplicant_multi.a \
  521. )
  522. +export MAKEFLAGS="$(MAKE_JOBSERVER)"; $(TARGET_CC) -o $(PKG_BUILD_DIR)/wpad \
  523. $(TARGET_CFLAGS) \
  524. ./files/multicall.c \
  525. $(PKG_BUILD_DIR)/hostapd/hostapd_multi.a \
  526. $(PKG_BUILD_DIR)/wpa_supplicant/wpa_supplicant_multi.a \
  527. $(TARGET_LDFLAGS)
  528. endef
  529. define Build/Compile/hostapd
  530. +$(call Build/RunMake,hostapd, \
  531. hostapd hostapd_cli \
  532. )
  533. endef
  534. define Build/Compile/supplicant
  535. +$(call Build/RunMake,wpa_supplicant, \
  536. wpa_cli wpa_supplicant \
  537. )
  538. endef
  539. define Build/Compile/supplicant-full-internal
  540. +$(call Build/RunMake,wpa_supplicant, \
  541. eapol_test \
  542. )
  543. endef
  544. define Build/Compile/supplicant-full-openssl
  545. +$(call Build/RunMake,wpa_supplicant, \
  546. eapol_test \
  547. )
  548. endef
  549. define Build/Compile/supplicant-full-wolfssl
  550. +$(call Build/RunMake,wpa_supplicant, \
  551. eapol_test \
  552. )
  553. endef
  554. define Build/Compile/supplicant-full-mbedtls
  555. +$(call Build/RunMake,wpa_supplicant, \
  556. eapol_test \
  557. )
  558. endef
  559. define Build/Compile
  560. $(Build/Compile/$(LOCAL_TYPE))
  561. $(Build/Compile/$(BUILD_VARIANT))
  562. endef
  563. define Install/hostapd
  564. $(INSTALL_DIR) $(1)/usr/sbin
  565. endef
  566. define Install/supplicant
  567. $(INSTALL_DIR) $(1)/usr/sbin
  568. endef
  569. define Package/hostapd-common/install
  570. $(INSTALL_DIR) $(1)/etc/capabilities $(1)/etc/rc.button $(1)/etc/hotplug.d/ieee80211 $(1)/etc/init.d $(1)/lib/netifd $(1)/usr/share/acl.d
  571. $(INSTALL_BIN) ./files/dhcp-get-server.sh $(1)/lib/netifd/dhcp-get-server.sh
  572. $(INSTALL_DATA) ./files/hostapd.sh $(1)/lib/netifd/hostapd.sh
  573. $(INSTALL_BIN) ./files/wpad.init $(1)/etc/init.d/wpad
  574. $(INSTALL_BIN) ./files/wps-hotplug.sh $(1)/etc/rc.button/wps
  575. $(INSTALL_DATA) ./files/wpad_acl.json $(1)/usr/share/acl.d
  576. $(INSTALL_DATA) ./files/wpad.json $(1)/etc/capabilities
  577. endef
  578. define Package/hostapd/install
  579. $(call Install/hostapd,$(1))
  580. $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostapd/hostapd $(1)/usr/sbin/
  581. endef
  582. Package/hostapd-basic/install = $(Package/hostapd/install)
  583. Package/hostapd-basic-openssl/install = $(Package/hostapd/install)
  584. Package/hostapd-basic-wolfssl/install = $(Package/hostapd/install)
  585. Package/hostapd-basic-mbedtls/install = $(Package/hostapd/install)
  586. Package/hostapd-mini/install = $(Package/hostapd/install)
  587. Package/hostapd-openssl/install = $(Package/hostapd/install)
  588. Package/hostapd-wolfssl/install = $(Package/hostapd/install)
  589. Package/hostapd-mbedtls/install = $(Package/hostapd/install)
  590. ifneq ($(LOCAL_TYPE),supplicant)
  591. define Package/hostapd-utils/install
  592. $(INSTALL_DIR) $(1)/usr/sbin
  593. $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostapd/hostapd_cli $(1)/usr/sbin/
  594. endef
  595. endif
  596. define Package/wpad/install
  597. $(call Install/hostapd,$(1))
  598. $(call Install/supplicant,$(1))
  599. $(INSTALL_BIN) $(PKG_BUILD_DIR)/wpad $(1)/usr/sbin/
  600. $(LN) wpad $(1)/usr/sbin/hostapd
  601. $(LN) wpad $(1)/usr/sbin/wpa_supplicant
  602. endef
  603. Package/wpad-basic/install = $(Package/wpad/install)
  604. Package/wpad-basic-openssl/install = $(Package/wpad/install)
  605. Package/wpad-basic-wolfssl/install = $(Package/wpad/install)
  606. Package/wpad-basic-mbedtls/install = $(Package/wpad/install)
  607. Package/wpad-mini/install = $(Package/wpad/install)
  608. Package/wpad-openssl/install = $(Package/wpad/install)
  609. Package/wpad-wolfssl/install = $(Package/wpad/install)
  610. Package/wpad-mbedtls/install = $(Package/wpad/install)
  611. Package/wpad-mesh-openssl/install = $(Package/wpad/install)
  612. Package/wpad-mesh-wolfssl/install = $(Package/wpad/install)
  613. Package/wpad-mesh-mbedtls/install = $(Package/wpad/install)
  614. define Package/wpa-supplicant/install
  615. $(call Install/supplicant,$(1))
  616. $(INSTALL_BIN) $(PKG_BUILD_DIR)/wpa_supplicant/wpa_supplicant $(1)/usr/sbin/
  617. endef
  618. Package/wpa-supplicant-basic/install = $(Package/wpa-supplicant/install)
  619. Package/wpa-supplicant-mini/install = $(Package/wpa-supplicant/install)
  620. Package/wpa-supplicant-p2p/install = $(Package/wpa-supplicant/install)
  621. Package/wpa-supplicant-openssl/install = $(Package/wpa-supplicant/install)
  622. Package/wpa-supplicant-wolfssl/install = $(Package/wpa-supplicant/install)
  623. Package/wpa-supplicant-mbedtls/install = $(Package/wpa-supplicant/install)
  624. Package/wpa-supplicant-mesh-openssl/install = $(Package/wpa-supplicant/install)
  625. Package/wpa-supplicant-mesh-wolfssl/install = $(Package/wpa-supplicant/install)
  626. Package/wpa-supplicant-mesh-mbedtls/install = $(Package/wpa-supplicant/install)
  627. ifneq ($(LOCAL_TYPE),hostapd)
  628. define Package/wpa-cli/install
  629. $(INSTALL_DIR) $(1)/usr/sbin
  630. $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/wpa_cli $(1)/usr/sbin/
  631. endef
  632. endif
  633. ifeq ($(BUILD_VARIANT),supplicant-full-internal)
  634. define Package/eapol-test/install
  635. $(INSTALL_DIR) $(1)/usr/sbin
  636. $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/
  637. endef
  638. endif
  639. ifeq ($(BUILD_VARIANT),supplicant-full-openssl)
  640. define Package/eapol-test-openssl/install
  641. $(INSTALL_DIR) $(1)/usr/sbin
  642. $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/
  643. endef
  644. endif
  645. ifeq ($(BUILD_VARIANT),supplicant-full-wolfssl)
  646. define Package/eapol-test-wolfssl/install
  647. $(INSTALL_DIR) $(1)/usr/sbin
  648. $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/
  649. endef
  650. endif
  651. ifeq ($(BUILD_VARIANT),supplicant-full-mbedtls)
  652. define Package/eapol-test-mbedtls/install
  653. $(INSTALL_DIR) $(1)/usr/sbin
  654. $(CP) $(PKG_BUILD_DIR)/wpa_supplicant/eapol_test $(1)/usr/sbin/
  655. endef
  656. endif
  657. # Build hostapd-common before its dependents, to avoid
  658. # spurious rebuilds when building multiple variants.
  659. $(eval $(call BuildPackage,hostapd-common))
  660. $(eval $(call BuildPackage,hostapd))
  661. $(eval $(call BuildPackage,hostapd-basic))
  662. $(eval $(call BuildPackage,hostapd-basic-openssl))
  663. $(eval $(call BuildPackage,hostapd-basic-wolfssl))
  664. $(eval $(call BuildPackage,hostapd-basic-mbedtls))
  665. $(eval $(call BuildPackage,hostapd-mini))
  666. $(eval $(call BuildPackage,hostapd-openssl))
  667. $(eval $(call BuildPackage,hostapd-wolfssl))
  668. $(eval $(call BuildPackage,hostapd-mbedtls))
  669. $(eval $(call BuildPackage,wpad))
  670. $(eval $(call BuildPackage,wpad-mesh-openssl))
  671. $(eval $(call BuildPackage,wpad-mesh-wolfssl))
  672. $(eval $(call BuildPackage,wpad-mesh-mbedtls))
  673. $(eval $(call BuildPackage,wpad-basic))
  674. $(eval $(call BuildPackage,wpad-basic-openssl))
  675. $(eval $(call BuildPackage,wpad-basic-wolfssl))
  676. $(eval $(call BuildPackage,wpad-basic-mbedtls))
  677. $(eval $(call BuildPackage,wpad-mini))
  678. $(eval $(call BuildPackage,wpad-openssl))
  679. $(eval $(call BuildPackage,wpad-wolfssl))
  680. $(eval $(call BuildPackage,wpad-mbedtls))
  681. $(eval $(call BuildPackage,wpa-supplicant))
  682. $(eval $(call BuildPackage,wpa-supplicant-mesh-openssl))
  683. $(eval $(call BuildPackage,wpa-supplicant-mesh-wolfssl))
  684. $(eval $(call BuildPackage,wpa-supplicant-mesh-mbedtls))
  685. $(eval $(call BuildPackage,wpa-supplicant-basic))
  686. $(eval $(call BuildPackage,wpa-supplicant-mini))
  687. $(eval $(call BuildPackage,wpa-supplicant-p2p))
  688. $(eval $(call BuildPackage,wpa-supplicant-openssl))
  689. $(eval $(call BuildPackage,wpa-supplicant-wolfssl))
  690. $(eval $(call BuildPackage,wpa-supplicant-mbedtls))
  691. $(eval $(call BuildPackage,wpa-cli))
  692. $(eval $(call BuildPackage,hostapd-utils))
  693. $(eval $(call BuildPackage,eapol-test))
  694. $(eval $(call BuildPackage,eapol-test-openssl))
  695. $(eval $(call BuildPackage,eapol-test-wolfssl))
  696. $(eval $(call BuildPackage,eapol-test-mbedtls))