1################################################################################
2#
3# dahdi-linux
4#
5################################################################################
6
7DAHDI_LINUX_VERSION = 3.3.0
8DAHDI_LINUX_SITE = \
9	http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases
10
11# We need to download all those firmware blobs ourselves, otherwise
12# dahdi-linux will try to download them at install time.
13DAHDI_LINUX_FW_SITE = http://downloads.digium.com/pub/telephony/firmware/releases
14DAHDI_LINUX_FW_FILES = \
15	dahdi-fwload-vpmadt032-1.25.0.tar.gz \
16	dahdi-fw-oct6114-032-1.05.01.tar.gz \
17	dahdi-fw-oct6114-064-1.05.01.tar.gz \
18	dahdi-fw-oct6114-128-1.05.01.tar.gz \
19	dahdi-fw-oct6114-256-1.05.01.tar.gz \
20	dahdi-fw-tc400m-MR6.12.tar.gz \
21	dahdi-fw-hx8-2.06.tar.gz \
22	dahdi-fw-vpmoct032-1.12.0.tar.gz \
23	dahdi-fw-te820-1.76.tar.gz \
24	dahdi-fw-te133-7a001e.tar.gz \
25	dahdi-fw-te134-780017.tar.gz \
26	dahdi-fw-a8b-1f001e.tar.gz \
27	dahdi-fw-a8a-1d0017.tar.gz \
28	dahdi-fw-a4b-d001e.tar.gz \
29	dahdi-fw-a4a-a0017.tar.gz \
30	dahdi-fw-te435-13001e.tar.gz \
31	dahdi-fw-te436-10017.tar.gz
32
33DAHDI_LINUX_EXTRA_DOWNLOADS = \
34	$(patsubst %,$(DAHDI_LINUX_FW_SITE)/%,$(DAHDI_LINUX_FW_FILES))
35
36# dahdi-linux claims to be GPLv2 with parts LGPLv2.1 (not 'or later'),
37# but there are the so-called firmware files (downloaded above) for
38# which the license is unclear: the header claims to be GPLv2, the
39# 'loader-wrapper' claims to be GPLv2, but there are two so-called
40# 'firmware' binary-only .o blobs for which the license is not
41# explicited, which look like they end up as part of a kernel module,
42# and for which the source is nowhere to be found on the upstream site
43# (they are only for x86/x86_64, but we still list them unconditionally).
44DAHDI_LINUX_LICENSE = GPL-2.0, LGPL-2.1, unknown (firmware files)
45DAHDI_LINUX_LICENSE_FILES = LICENSE LICENSE.LGPL
46
47DAHDI_LINUX_INSTALL_STAGING = YES
48
49DAHDI_LINUX_MODULE_SUBDIRS = drivers/dahdi
50
51DAHDI_LINUX_MODULE_MAKE_OPTS = \
52	KSRC=$(LINUX_DIR) \
53	KVERS=$(LINUX_VERSION_PROBED) \
54	DAHDI_BUILD_ALL=m \
55	DAHDI_INCLUDE=$(@D)/include \
56	INSTALL_MOD_DIR=dahdi
57
58define DAHDI_LINUX_EXTRACT_FW
59	$(foreach f,$(DAHDI_LINUX_FW_FILES),\
60		cp $(DAHDI_LINUX_DL_DIR)/$(f) $(@D)/drivers/dahdi/firmware/$(f)$(sep))
61endef
62DAHDI_LINUX_POST_EXTRACT_HOOKS += DAHDI_LINUX_EXTRACT_FW
63
64define DAHDI_LINUX_LINUX_CONFIG_FIXUPS
65	$(call KCONFIG_ENABLE_OPT,CONFIG_CRC_CCITT)
66endef
67
68# Need to pass the same options as for building the modules, because
69# it wants to scan Linux' .config file to check whether some options
70# are set or not (like CONFIG_FW_LOADER).
71define DAHDI_LINUX_CONFIGURE_CMDS
72	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
73		$(DAHDI_LINUX_MODULE_MAKE_OPTS) \
74		prereq
75endef
76
77define DAHDI_LINUX_INSTALL_STAGING_CMDS
78	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
79		$(DAHDI_LINUX_MODULE_MAKE_OPTS) \
80		DESTDIR=$(STAGING_DIR) \
81		install-include
82endef
83
84define DAHDI_LINUX_INSTALL_TARGET_CMDS
85	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
86		$(DAHDI_LINUX_MODULE_MAKE_OPTS) \
87		DESTDIR=$(TARGET_DIR) \
88		install-firmware \
89		install-xpp-firm
90endef
91
92$(eval $(kernel-module))
93$(eval $(generic-package))
94