summaryrefslogtreecommitdiffstats
path: root/package/broadcom-wl/Makefile
blob: 961baac55a58f1203225a7fc1fba002a95dcf3ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# 
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id: Makefile 2480 2005-11-14 02:07:33Z nbd $

include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk

PKG_NAME:=broadcom-wl
PKG_VERSION:=4.80.9.2
PKG_RELEASE:=1
WLC_VERSION:=0.1

PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources
PKG_MD5SUM:=7d9fab2c611369bbe075c3924ea77450
PKG_CAT:=bzcat

include $(INCLUDE_DIR)/package.mk

define Package/kmod-brcm-wl
  SECTION:=drivers
  CATEGORY:=Drivers
  DEPENDS:=@LINUX_2_4_BRCM
  DEFAULT:=y
  SUBMENU:=Proprietary BCM43xx WiFi driver
  TITLE:=Kernel driver (normal version)
  DESCRIPTION:=Proprietary Wireless driver for the Broadcom BCM43xx chipset
  VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(PKG_RELEASE)
endef

define Package/kmod-brcm-wl-mimo
  $(call Package/kmod-brcm-wl)
  DEFAULT:=m if ALL
  TITLE:=Kernel driver (MIMO version)
  DESCRIPTION:=Proprietary Wireless driver for the Broadcom BCM43xx chipset (MIMO version)
endef

define Package/wlc
  $(call Package/kmod-brcm-wl-mimo)
  DEFAULT:=y
  DEPENDS:=kmod-brcm-wl
  TITLE:=Setup utility
  DESCRIPTION:=Utility for initializing the Broadcom wl driver
  VERSION:=$(WLC_VERSION)-$(PKG_RELEASE)
endef

define Package/wl
  $(call Package/wlc)
  TITLE:=Utility for changing the driver's parameters
  DESCRIPTION:=Utility for changing the Broadcom wl driver's parameters
  VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
endef

define Package/nas
  $(call Package/wl)
  DEPENDS:=@PACKAGE_kmod-brcm-wl||PACKAGE_kmod-brcm-wl-mimo +nvram
  DEFAULT:=m
  TITLE:=Proprietary WPA/WPA2 authenticator
  DESCRIPTION:=Proprietary WPA/WPA2 authenticator for the Broadcom wl driver
endef

define Build/Prepare
  $(call Build/Prepare/Default)
	$(CP) src/* $(PKG_BUILD_DIR)/
endef

MAKEFLAGS_KMOD = -C "$(LINUX_DIR)" \
		CROSS_COMPILE="$(TARGET_CROSS)" \
		ARCH="$(LINUX_KARCH)" \
		PATH="$(TARGET_PATH)" \
		SUBDIRS="$(PKG_BUILD_DIR)/kmod"


define Build/Compile
	# Compile the kernel part
	$(MAKE) $(MAKEFLAGS_KMOD) \
		modules
	$(MAKE) $(MAKEFLAGS_KMOD) MOD_NAME="_mimo" \
		modules

	# Compile wlc
	$(MAKE) -C $(PKG_BUILD_DIR)/wlc \
		$(TARGET_CONFIGURE_OPTS) \
		CC="$(TARGET_CC)" \
		CFLAGS="-I$(PKG_BUILD_DIR)/wlc/include $(TARGET_CFLAGS)" \
		all
endef

define wl_template
	install -d -m0755 $(1)/etc/modules.d
	echo "wl$(2)" > $(1)/etc/modules.d/20-wl$(2)
	install -d -m0755 $(1)/lib/modules/$(LINUX_VERSION)
	install -m0644 $(PKG_BUILD_DIR)/kmod/wl$(2).o $(1)/lib/modules/$(LINUX_VERSION)/
endef

define Package/kmod-brcm-wl/install
	$(call wl_template,$(1))
endef

define Package/kmod-brcm-wl-mimo/install
	$(call wl_template,$(1),_mimo)
endef

define Package/wlc/install
	$(CP) ./files/* $(1)/
	install -d -m0755 $(1)/sbin
	install -m0755 $(PKG_BUILD_DIR)/wlc/wlc $(1)/sbin/
endef

define Package/wl/install
	install -d -m0755 $(1)/usr/sbin
	install -m0755 $(PKG_BUILD_DIR)/wl $(1)/usr/sbin/
endef

define Package/nas/install
	install -d -m0755 $(1)/usr/lib
	install -m0755 $(PKG_BUILD_DIR)/libbcmcrypto.so $(1)/usr/lib/
	install -d -m0755 $(1)/usr/sbin
	install -m0755 $(PKG_BUILD_DIR)/nas $(1)/usr/sbin/
	ln -sf nas $(1)/usr/sbin/nas4not
	ln -sf nas $(1)/usr/sbin/nas4wds
endef

$(eval $(call BuildPackage,kmod-brcm-wl))
$(eval $(call BuildPackage,kmod-brcm-wl-mimo))
$(eval $(call BuildPackage,wlc))
$(eval $(call BuildPackage,wl))
$(eval $(call BuildPackage,nas))