1# 2# Copyright (C) 2006-2014 OpenWrt.org 3# 4# This is free software, licensed under the GNU General Public License v2. 5# See /LICENSE for more information. 6# 7 8include $(TOPDIR)/rules.mk 9include $(INCLUDE_DIR)/kernel.mk 10 11PKG_NAME:=broadcom-wl 12PKG_VERSION:=5.10.56.27.3 13PKG_RELEASE:=8 14 15PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)_$(ARCH).tar.bz2 16PKG_SOURCE_URL:=http://downloads.openwrt.org/sources 17 18PKG_MD5SUM.mipsel:=3363e3a6b3d9d73c49dea870c7834eac 19PKG_MD5SUM.mips:=f8de63debc75333d6b4e28193eb051ff 20PKG_MD5SUM:=$(PKG_MD5SUM.$(ARCH)) 21 22PKG_USE_MIPS16:=0 23PKG_FLAGS:=nonshared 24 25include $(INCLUDE_DIR)/package.mk 26 27define Package/broadcom-wl/Default 28 SECTION:=kernel 29 CATEGORY:=Kernel modules 30 DEPENDS:=@PACKAGE_kmod-brcm-wl||PACKAGE_kmod-brcm-wl-mini 31 SUBMENU:=Proprietary BCM43xx WiFi driver 32 SUBMENUDEP:=@TARGET_brcm47xx||TARGET_brcm63xx 33endef 34 35define KernelPackage/brcm-wl/Default 36 $(call Package/broadcom-wl/Default) 37 SECTION:=kernel 38 DEPENDS:=@TARGET_brcm47xx||TARGET_brcm63xx +wireless-tools 39 TITLE:=Kernel driver for BCM43xx chipsets 40 FILES:=$(PKG_BUILD_DIR)/driver$(1)/wl.ko $(PKG_BUILD_DIR)/glue/wl_glue.ko 41 AUTOLOAD:=$(call AutoLoad,30,wl_glue wl) 42endef 43 44define KernelPackage/brcm-wl/Default/description 45 This package contains the proprietary wireless driver for the Broadcom 46 BCM43xx chipset. 47endef 48 49define KernelPackage/brcm-wl 50$(call KernelPackage/brcm-wl/Default,) 51 TITLE+= (normal version) 52endef 53 54define KernelPackage/brcm-wl/description 55$(call KernelPackage/brcm-wl/Default/description) 56endef 57 58define KernelPackage/brcm-wl-mini 59$(call KernelPackage/brcm-wl/Default,-mini) 60 TITLE+= (Legacy version) 61endef 62 63define KernelPackage/brcm-wl-mini/description 64$(call KernelPackage/brcm-wl/Default/description) 65endef 66 67define Package/wlc 68$(call Package/broadcom-wl/Default) 69 TITLE:=wl driver setup utility 70endef 71 72define Package/wlc/description 73 This package contains an utility for initializing the proprietary Broadcom 74 wl driver. 75endef 76 77define Package/wl 78$(call Package/broadcom-wl/Default) 79 TITLE:=Proprietary Broadcom wl driver config utility 80endef 81 82define Package/wl/description 83 This package contains the proprietary utility (wl) for configuring the 84 proprietary Broadcom wl driver. 85endef 86 87define Package/nas 88$(call Package/broadcom-wl/Default) 89 TITLE:=Proprietary Broadcom WPA/WPA2 authenticator 90endef 91 92define Package/nas/description 93 This package contains the proprietary WPA/WPA2 authenticator (nas) for the 94 proprietary Broadcom wl driver. 95endef 96 97MAKE_KMOD := $(MAKE) -C "$(LINUX_DIR)" \ 98 CROSS_COMPILE="$(TARGET_CROSS)" \ 99 ARCH="$(LINUX_KARCH)" \ 100 PATH="$(TARGET_PATH)" \ 101 SUBDIRS="$(PKG_BUILD_DIR)/kmod" \ 102 103define Build/Prepare 104 $(call Build/Prepare/Default) 105 $(CP) $(PKG_BUILD_DIR)/driver $(PKG_BUILD_DIR)/driver-mini 106 $(CP) ./src/glue $(PKG_BUILD_DIR)/glue 107endef 108 109define Build/Compile 110 # Compile the kernel part 111 $(MAKE_KMOD) \ 112 SUBDIRS="$(PKG_BUILD_DIR)/driver" \ 113 MODFLAGS="-DMODULE -mlong-calls" \ 114 modules 115 116 $(MAKE_KMOD) \ 117 SUBDIRS="$(PKG_BUILD_DIR)/driver-mini" \ 118 MODFLAGS="-DMODULE -mlong-calls" \ 119 BUILD_TYPE="wl_apsta_mini" \ 120 modules 121 122 # Compile glue driver 123 $(MAKE_KMOD) -C "$(LINUX_DIR)" \ 124 SUBDIRS="$(PKG_BUILD_DIR)/glue" \ 125 modules 126 127 # Compile libshared 128 $(MAKE) -C $(PKG_BUILD_DIR)/shared \ 129 $(TARGET_CONFIGURE_OPTS) \ 130 CFLAGS="$(TARGET_CFLAGS) -I. -I$(PKG_BUILD_DIR)/driver/include" \ 131 all 132 133 $(TARGET_CC) -o $(PKG_BUILD_DIR)/wlc \ 134 -I$(PKG_BUILD_DIR)/shared -I$(PKG_BUILD_DIR)/driver/include \ 135 ./src/wlc.c $(PKG_BUILD_DIR)/shared/libshared.a 136 137 $(TARGET_CC) -o $(PKG_BUILD_DIR)/nas \ 138 $(PKG_BUILD_DIR)/nas_exe.o \ 139 $(PKG_BUILD_DIR)/shared/libshared.a 140 141 $(TARGET_CC) -o $(PKG_BUILD_DIR)/wl \ 142 $(PKG_BUILD_DIR)/wl_exe.o \ 143 $(PKG_BUILD_DIR)/shared/libshared.a 144endef 145 146define Build/InstallDev 147 $(INSTALL_DIR) $(1)/usr/lib 148 $(CP) $(PKG_BUILD_DIR)/shared/libshared.a $(1)/usr/lib/ 149endef 150 151define Package/wlc/install 152 $(CP) ./files/* $(1)/ 153 $(INSTALL_DIR) $(1)/sbin 154 $(INSTALL_BIN) $(PKG_BUILD_DIR)/wlc $(1)/sbin/ 155endef 156 157define Package/wlc/postinst 158#!/bin/sh 159[ -n "$${IPKG_INSTROOT}" ] || /etc/init.d/wlunbind enable || true 160endef 161 162define Package/wl/install 163 $(INSTALL_DIR) $(1)/usr/sbin 164 $(INSTALL_BIN) $(PKG_BUILD_DIR)/wl $(1)/usr/sbin/ 165endef 166 167define Package/nas/install 168 $(INSTALL_DIR) $(1)/usr/sbin 169 $(INSTALL_BIN) $(PKG_BUILD_DIR)/nas $(1)/usr/sbin/ 170 $(LN) nas $(1)/usr/sbin/nas4not 171 $(LN) nas $(1)/usr/sbin/nas4wds 172endef 173 174$(eval $(call KernelPackage,brcm-wl)) 175$(eval $(call KernelPackage,brcm-wl-mini)) 176$(eval $(call BuildPackage,wlc)) 177$(eval $(call BuildPackage,wl)) 178$(eval $(call BuildPackage,nas)) 179