improve dependency handling, fix some package makefile bugs
[10.03/openwrt.git] / target / linux / package / bcm43xx-standalone / Makefile
1 # $Id$
2
3 include $(TOPDIR)/rules.mk
4 include ../../rules.mk
5
6 PKG_NAME := bcm43xx-standalone
7 PKG_VERSION := 060313
8 PKG_RELEASE := 1
9 PKG_MD%SUM := 773b26a164a54f0da544764969ca019b
10
11 PKG_SOURCE_URL := ftp://bu3sch.de/bcm43xx-snapshots/standalone/bcm43xx/
12 PKG_SOURCE := $(PKG_NAME)-$(PKG_VERSION).tar.bz2
13 PKG_CAT := bzcat
14
15 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
16
17 FIRMWARE_BLOB := wl_apsta-3.130.20.0.o
18 FIRMWARE_BLOB_URL := http://downloads.openwrt.org/sources
19 FIRMWARE_BLOB_MD5SUM := e08665c5c5b66beb9c3b2dd54aa80cb3
20
21 include $(TOPDIR)/package/rules.mk
22
23 $(eval $(call PKG_template,KMOD_BCM43XX_DSCAPE,kmod-$(PKG_NAME),$(LINUX_VERSION)-$(BOARD)+0.$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH),kernel ($(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE))))
24
25 $(PKG_BUILD_DIR)/.configured:
26         touch $@
27
28 $(PKG_BUILD_DIR)/fwcutter/.built:
29         mkdir -p $(PKG_BUILD_DIR)/fwcutter
30         $(CP) ./fwcutter/* $(PKG_BUILD_DIR)/fwcutter/
31         $(SCRIPT_DIR)/download.pl "$(PKG_BUILD_DIR)/fwcutter" "$(FIRMWARE_BLOB)" "$(FIRMWARE_BLOB_MD5SUM)" $(FIRMWARE_BLOB_URL)
32         $(MAKE) -C $(PKG_BUILD_DIR)/fwcutter
33         $(PKG_BUILD_DIR)/fwcutter/fwcutter -w $(PKG_BUILD_DIR)/fwcutter $(PKG_BUILD_DIR)/fwcutter/$(FIRMWARE_BLOB)
34         touch $@
35
36 $(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/fwcutter/.built
37         $(MAKE) -C "$(LINUX_DIR)" \
38                 CROSS_COMPILE="$(TARGET_CROSS)" \
39                 ARCH="$(LINUX_KARCH)" \
40                 PATH="$(TARGET_PATH)" \
41                 SUBDIRS="$(PKG_BUILD_DIR)" \
42                 LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/ieee80211-dscape -I$(LINUX_DIR)/include -DBCM47XX=1" \
43                 modules
44         touch $@
45         
46 $(IPKG_KMOD_BCM43XX_DSCAPE):
47         install -m0755 -d $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/modules/$(LINUX_VERSION)
48         install -m0755 -d $(IDIR_KMOD_BCM43XX_DSCAPE)/etc/modules.d
49         ( \
50                 echo 80211; \
51                 echo rate_control; \
52                 echo bcm43xx; \
53         ) >& $(IDIR_KMOD_BCM43XX_DSCAPE)/etc/modules.d/50-bcm43xx
54         $(CP) $(PKG_BUILD_DIR)/*.ko $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/modules/$(LINUX_VERSION)
55         install -m0755 -d $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/firmware
56         $(CP) $(PKG_BUILD_DIR)/fwcutter/*.fw $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/firmware/
57         $(IPKG_BUILD) $(IDIR_KMOD_BCM43XX_DSCAPE) $(PACKAGE_DIR)