Makefile 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=mt76
  3. PKG_RELEASE=1
  4. PKG_LICENSE:=GPLv2
  5. PKG_LICENSE_FILES:=
  6. PKG_SOURCE_URL:=https://github.com/openwrt/mt76
  7. PKG_SOURCE_PROTO:=git
  8. PKG_SOURCE_DATE:=2020-02-19
  9. PKG_SOURCE_VERSION:=8f8e9161b3550c9b53a70dec6ceeac0d194a221d
  10. PKG_MIRROR_HASH:=8349b1448e89e77ca4f5d4aadb090d4b6b527ca80514dfb26755aba0183dc579
  11. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  12. PKG_BUILD_PARALLEL:=1
  13. PKG_CONFIG_DEPENDS += \
  14. CONFIG_PACKAGE_kmod-mt76-usb \
  15. CONFIG_PACKAGE_kmod-mt76x02-common \
  16. CONFIG_PACKAGE_kmod-mt76x0-common \
  17. CONFIG_PACKAGE_kmod-mt76x0u \
  18. CONFIG_PACKAGE_kmod-mt76x2-common \
  19. CONFIG_PACKAGE_kmod-mt76x2 \
  20. CONFIG_PACKAGE_kmod-mt76x2u \
  21. CONFIG_PACKAGE_kmod-mt7603
  22. STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
  23. include $(INCLUDE_DIR)/kernel.mk
  24. include $(INCLUDE_DIR)/package.mk
  25. define KernelPackage/mt76-default
  26. SUBMENU:=Wireless Drivers
  27. DEPENDS:= \
  28. +kmod-mac80211 \
  29. +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
  30. endef
  31. define KernelPackage/mt76
  32. SUBMENU:=Wireless Drivers
  33. TITLE:=MediaTek MT76x2/MT7603 wireless driver (metapackage)
  34. DEPENDS:= \
  35. +kmod-mt76-core +kmod-mt76x2 +kmod-mt7603
  36. endef
  37. define KernelPackage/mt76-core
  38. $(KernelPackage/mt76-default)
  39. TITLE:=MediaTek MT76xx wireless driver
  40. HIDDEN:=1
  41. FILES:=\
  42. $(PKG_BUILD_DIR)/mt76.ko
  43. endef
  44. define KernelPackage/mt76-usb
  45. $(KernelPackage/mt76-default)
  46. TITLE:=MediaTek MT76xx wireless driver USB support
  47. DEPENDS += +kmod-usb-core +kmod-mt76-core
  48. HIDDEN:=1
  49. FILES:=\
  50. $(PKG_BUILD_DIR)/mt76-usb.ko
  51. endef
  52. define KernelPackage/mt76x02-usb
  53. $(KernelPackage/mt76-default)
  54. TITLE:=MediaTek MT76x0/MT76x2 USB wireless driver common code
  55. DEPENDS+=+kmod-mt76-usb +kmod-mt76x02-common
  56. HIDDEN:=1
  57. FILES:=$(PKG_BUILD_DIR)/mt76x02-usb.ko
  58. endef
  59. define KernelPackage/mt76x02-common
  60. $(KernelPackage/mt76-default)
  61. TITLE:=MediaTek MT76x0/MT76x2 wireless driver common code
  62. DEPENDS+=+kmod-mt76-core
  63. HIDDEN:=1
  64. FILES:=$(PKG_BUILD_DIR)/mt76x02-lib.ko
  65. endef
  66. define KernelPackage/mt76x0-common
  67. $(KernelPackage/mt76-default)
  68. TITLE:=MediaTek MT76x0 wireless driver common code
  69. DEPENDS+=+kmod-mt76x02-common
  70. HIDDEN:=1
  71. FILES:=$(PKG_BUILD_DIR)/mt76x0/mt76x0-common.ko
  72. endef
  73. define KernelPackage/mt76x0e
  74. $(KernelPackage/mt76-default)
  75. TITLE:=MediaTek MT76x0E wireless driver
  76. DEPENDS+=@PCI_SUPPORT +kmod-mt76x0-common
  77. FILES:=\
  78. $(PKG_BUILD_DIR)/mt76x0/mt76x0e.ko
  79. AUTOLOAD:=$(call AutoProbe,mt76x0e)
  80. endef
  81. define KernelPackage/mt76x0u
  82. $(KernelPackage/mt76-default)
  83. TITLE:=MediaTek MT76x0U wireless driver
  84. DEPENDS+=+kmod-mt76x0-common +kmod-mt76x02-usb
  85. FILES:=\
  86. $(PKG_BUILD_DIR)/mt76x0/mt76x0u.ko
  87. AUTOLOAD:=$(call AutoProbe,mt76x0u)
  88. endef
  89. define KernelPackage/mt76x2-common
  90. $(KernelPackage/mt76-default)
  91. TITLE:=MediaTek MT76x2 wireless driver common code
  92. DEPENDS+=+kmod-mt76-core +kmod-mt76x02-common
  93. HIDDEN:=1
  94. FILES:=$(PKG_BUILD_DIR)/mt76x2/mt76x2-common.ko
  95. endef
  96. define KernelPackage/mt76x2u
  97. $(KernelPackage/mt76-default)
  98. TITLE:=MediaTek MT76x2U wireless driver
  99. DEPENDS+=+kmod-mt76x2-common +kmod-mt76x02-usb
  100. FILES:=\
  101. $(PKG_BUILD_DIR)/mt76x2/mt76x2u.ko
  102. AUTOLOAD:=$(call AutoProbe,mt76x2u)
  103. endef
  104. define KernelPackage/mt76x2
  105. $(KernelPackage/mt76-default)
  106. TITLE:=MediaTek MT76x2 wireless driver
  107. DEPENDS+=@PCI_SUPPORT +kmod-mt76x2-common
  108. FILES:=\
  109. $(PKG_BUILD_DIR)/mt76x2/mt76x2e.ko
  110. AUTOLOAD:=$(call AutoProbe,mt76x2e)
  111. endef
  112. define KernelPackage/mt7603
  113. $(KernelPackage/mt76-default)
  114. TITLE:=MediaTek MT7603 wireless driver
  115. DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
  116. FILES:=\
  117. $(PKG_BUILD_DIR)/mt7603/mt7603e.ko
  118. AUTOLOAD:=$(call AutoProbe,mt7603e)
  119. endef
  120. define KernelPackage/mt7615e
  121. $(KernelPackage/mt76-default)
  122. TITLE:=MediaTek MT7615 wireless driver
  123. DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
  124. FILES:=\
  125. $(PKG_BUILD_DIR)/mt7615/mt7615e.ko
  126. AUTOLOAD:=$(call AutoProbe,mt7615e)
  127. endef
  128. NOSTDINC_FLAGS = \
  129. -I$(PKG_BUILD_DIR) \
  130. -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
  131. -I$(STAGING_DIR)/usr/include/mac80211-backport \
  132. -I$(STAGING_DIR)/usr/include/mac80211/uapi \
  133. -I$(STAGING_DIR)/usr/include/mac80211 \
  134. -include backport/autoconf.h \
  135. -include backport/backport.h
  136. ifdef CONFIG_PACKAGE_MAC80211_MESH
  137. NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
  138. endif
  139. ifdef CONFIG_PACKAGE_kmod-mt76-usb
  140. PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
  141. endif
  142. ifdef CONFIG_PACKAGE_kmod-mt76x02-common
  143. PKG_MAKE_FLAGS += CONFIG_MT76x02_LIB=m
  144. endif
  145. ifdef CONFIG_PACKAGE_kmod-mt76x02-usb
  146. PKG_MAKE_FLAGS += CONFIG_MT76x02_USB=m
  147. endif
  148. ifdef CONFIG_PACKAGE_kmod-mt76x0-common
  149. PKG_MAKE_FLAGS += CONFIG_MT76x0_COMMON=m
  150. endif
  151. ifdef CONFIG_PACKAGE_kmod-mt76x0e
  152. PKG_MAKE_FLAGS += CONFIG_MT76x0E=m
  153. endif
  154. ifdef CONFIG_PACKAGE_kmod-mt76x0u
  155. PKG_MAKE_FLAGS += CONFIG_MT76x0U=m
  156. endif
  157. ifdef CONFIG_PACKAGE_kmod-mt76x2-common
  158. PKG_MAKE_FLAGS += CONFIG_MT76x2_COMMON=m
  159. endif
  160. ifdef CONFIG_PACKAGE_kmod-mt76x2
  161. PKG_MAKE_FLAGS += CONFIG_MT76x2E=m
  162. endif
  163. ifdef CONFIG_PACKAGE_kmod-mt76x2u
  164. PKG_MAKE_FLAGS += CONFIG_MT76x2U=m
  165. endif
  166. ifdef CONFIG_PACKAGE_kmod-mt7603
  167. PKG_MAKE_FLAGS += CONFIG_MT7603E=m
  168. endif
  169. ifdef CONFIG_PACKAGE_kmod-mt7615e
  170. PKG_MAKE_FLAGS += CONFIG_MT7615E=m
  171. ifdef CONFIG_TARGET_mediatek_mt7622
  172. PKG_MAKE_FLAGS += CONFIG_MT7622_WMAC=y
  173. NOSTDINC_FLAGS += -DCONFIG_MT7622_WMAC
  174. endif
  175. endif
  176. define Build/Compile
  177. +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
  178. $(KERNEL_MAKE_FLAGS) \
  179. $(PKG_MAKE_FLAGS) \
  180. SUBDIRS="$(PKG_BUILD_DIR)" \
  181. NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
  182. modules
  183. endef
  184. define Package/kmod-mt76/install
  185. true
  186. endef
  187. define KernelPackage/mt76x0-common/install
  188. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  189. cp \
  190. $(PKG_BUILD_DIR)/firmware/mt7610e.bin \
  191. $(1)/lib/firmware/mediatek
  192. endef
  193. define KernelPackage/mt76x2-common/install
  194. $(INSTALL_DIR) $(1)/lib/firmware
  195. cp \
  196. $(PKG_BUILD_DIR)/firmware/mt7662_rom_patch.bin \
  197. $(PKG_BUILD_DIR)/firmware/mt7662.bin \
  198. $(1)/lib/firmware
  199. endef
  200. define KernelPackage/mt76x0u/install
  201. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  202. ln -sf mt7610e.bin $(1)/lib/firmware/mediatek/mt7610u.bin
  203. endef
  204. define KernelPackage/mt76x2u/install
  205. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  206. ln -sf ../mt7662.bin $(1)/lib/firmware/mediatek/mt7662u.bin
  207. ln -sf ../mt7662_rom_patch.bin $(1)/lib/firmware/mediatek/mt7662u_rom_patch.bin
  208. endef
  209. define KernelPackage/mt7603/install
  210. $(INSTALL_DIR) $(1)/lib/firmware
  211. cp $(if $(CONFIG_TARGET_ramips_mt76x8), \
  212. $(PKG_BUILD_DIR)/firmware/mt7628_e1.bin \
  213. $(PKG_BUILD_DIR)/firmware/mt7628_e2.bin \
  214. ,\
  215. $(PKG_BUILD_DIR)/firmware/mt7603_e1.bin \
  216. $(PKG_BUILD_DIR)/firmware/mt7603_e2.bin \
  217. ) \
  218. $(1)/lib/firmware
  219. endef
  220. define KernelPackage/mt7615e/install
  221. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  222. cp \
  223. $(PKG_BUILD_DIR)/firmware/mt7615_cr4.bin \
  224. $(PKG_BUILD_DIR)/firmware/mt7615_n9.bin \
  225. $(PKG_BUILD_DIR)/firmware/mt7615_rom_patch.bin \
  226. $(if $(CONFIG_TARGET_mediatek_mt7622), \
  227. $(PKG_BUILD_DIR)/firmware/mt7622_n9.bin \
  228. $(PKG_BUILD_DIR)/firmware/mt7622_rom_patch.bin) \
  229. $(1)/lib/firmware/mediatek
  230. endef
  231. $(eval $(call KernelPackage,mt76-core))
  232. $(eval $(call KernelPackage,mt76-usb))
  233. $(eval $(call KernelPackage,mt76x02-usb))
  234. $(eval $(call KernelPackage,mt76x02-common))
  235. $(eval $(call KernelPackage,mt76x0-common))
  236. $(eval $(call KernelPackage,mt76x0e))
  237. $(eval $(call KernelPackage,mt76x0u))
  238. $(eval $(call KernelPackage,mt76x2-common))
  239. $(eval $(call KernelPackage,mt76x2u))
  240. $(eval $(call KernelPackage,mt76x2))
  241. $(eval $(call KernelPackage,mt7603))
  242. $(eval $(call KernelPackage,mt7615e))
  243. $(eval $(call KernelPackage,mt76))