acx-mac80211: support loading different firmwares
[openwrt/openwrt.git] / package / acx-mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2008 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=acx-mac80211
12 PKG_REV:=06f0acf66d53ea422e9c1bd6b475f13818d94f20
13 PKG_VERSION:=20101030
14 PKG_RELEASE:=1
15
16 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
17 PKG_SOURCE_URL:=git://acx100.git.sourceforge.net/gitroot/acx100/acx-mac80211
18 PKG_SOURCE_PROTO:=git
19 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
20 PKG_SOURCE_VERSION:=$(PKG_REV)
21
22 include $(INCLUDE_DIR)/package.mk
23
24 define KernelPackage/acx-mac80211
25 SUBMENU:=Wireless Drivers
26 TITLE:=ACX111 Mac80211 driver
27 DEPENDS:=@PCI_SUPPORT||TARGET_ar7 +kmod-mac80211
28 FILES:=$(PKG_BUILD_DIR)/acx-mac80211.ko
29 AUTOLOAD:=$(call AutoLoad,50,acx-mac80211)
30 MENU:=1
31 endef
32
33 define KernelPackage/acx-mac80211/config
34 menu "Configuration"
35 depends on PACKAGE_kmod-acx-mac80211
36
37 choice
38 prompt "acx firmware version"
39 default ACX_DEFAULT if !TARGET_adm5120
40 default ACX_1_2_1_34 if TARGET_adm5120
41 help
42 This option allows you to select the version of the acx firmware.
43
44 config ACX_DEFAULT
45 bool "Default"
46 help
47 Default firmware for ACX devices.
48
49 If unsure, select this.
50
51 config ACX_1_2_1_34
52 bool "1.2.1_34"
53 help
54 1.2.1_34 firmware for ACX devices. Works with Zyxel P-334WT.
55
56 If unsure, select the "default" firmware.
57
58 endchoice
59
60 endmenu
61 endef
62
63 define KernelPackage/acx-mac80211/description
64 Driver for acx111 cards (Mac80211 version)
65 endef
66
67
68 C16_FW:=tiacx111c16
69 C19_FW:=tiacx111c19
70
71 ifeq ($(CONFIG_ACX_DEFAULT),y)
72 define Download/tiacx111c16
73 FILE:=$(C16_FW)
74 URL:=http://teknoraver.net/software/acx-mac80211/
75 MD5SUM:=7026826460376f6b174f9225bd7781b9
76 endef
77 $(eval $(call Download,tiacx111c16))
78
79 define Download/tiacx111c19
80 FILE:=$(C19_FW)
81 URL:=http://ipkg.k1k2.de/files/
82 MD5SUM:=a1fa9681e297b4e36e257090fc12265a
83 endef
84 $(eval $(call Download,tiacx111c19))
85 endif
86
87 ifeq ($(CONFIG_ACX_1_2_1_34),y)
88 define Download/tiacx111c16
89 FILE:=$(C16_FW)_1.2.1_34
90 # URL:=http://acx100.erley.org/fw/acx111_1.2.1.34/
91 URL:=http://sites.google.com/site/atorkhov/files/
92 MD5SUM:=fcd07de4b25e1d2aaf3b78b27c5b7ee9
93 endef
94 $(eval $(call Download,tiacx111c16))
95 endif
96
97 PKG_EXTRA_KCONFIG:= \
98 CONFIG_ACX_MAC80211=m \
99 CONFIG_ACX_MAC80211_PCI=m \
100
101 PKG_EXTRA_CFLAGS:= \
102 $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(PKG_EXTRA_KCONFIG)))) \
103 $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(PKG_EXTRA_KCONFIG)))) \
104
105 ifneq ($(CONFIG_LINUX_2_6_30)$(CONFIG_LINUX_2_6_31)$(CONFIG_LINUX_2_6_32),)
106 LINUX_AUTOCONF_FILE:= linux/autoconf.h
107 else
108 LINUX_AUTOCONF_FILE:= generated/autoconf.h
109 endif
110
111 define Build/Compile
112 $(MAKE) -C "$(LINUX_DIR)" \
113 ARCH="$(LINUX_KARCH)" \
114 CROSS_COMPILE="$(TARGET_CROSS)" \
115 SUBDIRS="$(PKG_BUILD_DIR)" \
116 $(PKG_EXTRA_KCONFIG) \
117 EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(2,6,37)\"" \
118 LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include \
119 -Iarch/$(LINUX_KARCH)/include \
120 -include $(LINUX_AUTOCONF_FILE) \
121 -include linux/compat-2.6.h" \
122 V="$(V)" \
123 modules
124 endef
125
126 define Build/Configure
127 endef
128
129 define KernelPackage/acx-mac80211/install
130 $(INSTALL_DIR) $(1)/lib/firmware
131 ifeq ($(CONFIG_ACX_DEFAULT),y)
132 $(INSTALL_DATA) $(DL_DIR)/$(C16_FW) $(1)/lib/firmware/
133 $(INSTALL_DATA) $(DL_DIR)/$(C19_FW) $(1)/lib/firmware/
134 endif
135 ifeq ($(CONFIG_ACX_1_2_1_34),y)
136 $(INSTALL_DATA) $(DL_DIR)/$(C16_FW)_1.2.1_34 $(1)/lib/firmware/$(C16_FW)
137 endif
138 endef
139
140 $(eval $(call KernelPackage,acx-mac80211))