Merge pull request #294 from micmac1/pkg_conf_dep_ast15
[feed/telephony.git] / net / asterisk-chan-lantiq / Makefile
1 #
2 # Copyright (C) 2017 - 2018 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
10 PKG_NAME:=chan-lantiq
11 PKG_VERSION:=20180215
12 PKG_RELEASE:=1
13
14 LANTIQ_AST13_VERSION:=f0d7ca7df8e5df802c5bcb79643e3bdc3956c190
15 LANTIQ_AST15_VERSION:=c9d68dd06fcd46ac7985df45f8c2b8833e658f8e
16
17 PKG_LICENSE:=GPL-2.0
18 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
19
20 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
21
22 PKG_FLAGS:=nonshared
23
24 include $(INCLUDE_DIR)/package.mk
25
26 define Download/github
27 define Download/$(PKG_NAME)
28 VERSION:=$(1)
29 SUBDIR:=$(PKG_NAME)
30 FILE:=$(BUILD_VARIANT)-$(PKG_NAME)-$(PKG_VERSION)-$(1).tar.xz
31 URL:=https://github.com/kochstefan/asterisk_channel_lantiq.git
32 PROTO:=git
33 endef
34 $$(eval $$(call Download,chan-lantiq))
35 endef
36
37 define Package/$(PKG_NAME)/Default
38 SUBMENU:=Telephony
39 SECTION:=net
40 CATEGORY:=Network
41 TITLE:=Lantiq channel driver
42 URL:=https://github.com/kochstefan/asterisk_channel_lantiq
43 DEPENDS:=+kmod-ltq-vmmc
44 endef
45
46 define Package/asterisk13-$(PKG_NAME)
47 $(call Package/$(PKG_NAME)/Default)
48 DEPENDS+=asterisk13
49 VARIANT:=asterisk13
50 endef
51
52 define Package/asterisk15-$(PKG_NAME)
53 $(call Package/$(PKG_NAME)/Default)
54 DEPENDS+=asterisk15
55 VARIANT:=asterisk15
56 endef
57
58 define Package/description/Default
59 An implementation of a Lantiq TAPI channel driver for Asterisk.
60 endef
61
62 Package/asterisk13-$(PKG_NAME)/description = $(Package/description/Default)
63 Package/asterisk15-$(PKG_NAME)/description = $(Package/description/Default)
64
65 define Package/conffiles/Default
66 /etc/asterisk/lantiq.conf
67 endef
68
69 Package/asterisk13-$(PKG_NAME)/conffiles = $(Package/conffiles/Default)
70 Package/asterisk15-$(PKG_NAME)/conffiles = $(Package/conffiles/Default)
71
72 define Package/Install/Default
73 $(INSTALL_DIR) $(1)/etc/asterisk
74 $(INSTALL_CONF) \
75 $(PKG_BUILD_DIR)/$(PKG_NAME)/src/configs/samples/lantiq.conf.sample \
76 $(1)/etc/asterisk/lantiq.conf
77 $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
78 $(INSTALL_BIN) \
79 $(PKG_BUILD_DIR)/$(PKG_NAME)/src/channels/chan_lantiq.so \
80 $(1)/usr/lib/asterisk/modules
81 endef
82
83 Package/asterisk13-$(PKG_NAME)/install = $(Package/Install/Default)
84 Package/asterisk15-$(PKG_NAME)/install = $(Package/Install/Default)
85
86 ifeq ($(BUILD_VARIANT),asterisk13)
87 CHAN_LANTIQ_AST_INCLUDES:=-I$(STAGING_DIR)/usr/include/asterisk-13/include
88 CHAN_LANTIQ_VERSION:=$(LANTIQ_AST13_VERSION)
89 endif
90
91 ifeq ($(BUILD_VARIANT),asterisk15)
92 CHAN_LANTIQ_AST_INCLUDES:=-I$(STAGING_DIR)/usr/include/asterisk-15/include
93 CHAN_LANTIQ_VERSION:=$(LANTIQ_AST15_VERSION)
94 endif
95
96 define Build/Prepare
97 $(eval $(call Download/github,$(CHAN_LANTIQ_VERSION)))
98 $(TAR) --extract --no-same-owner --no-same-permissions --xz \
99 --file=$(DL_DIR)/$(BUILD_VARIANT)-$(PKG_NAME)-$(PKG_VERSION)-$(CHAN_LANTIQ_VERSION).tar.xz \
100 --directory=$(PKG_BUILD_DIR)
101 $(CP) ./files/default.exports \
102 $(PKG_BUILD_DIR)/$(PKG_NAME)/src/channels/chan_lantiq.exports
103 endef
104
105 define Build/Configure
106 endef
107
108 define Build/Compile
109 cd $(PKG_BUILD_DIR)/$(PKG_NAME)/src/channels && \
110 $(TARGET_CC) -o chan_lantiq.o -c chan_lantiq.c -MD -MT chan_lantiq.o \
111 -MF .chan_lantiq.o.d -MP -pthread \
112 $(TARGET_CFLAGS) -DAST_MODULE_SELF_SYM=__internal_chan_lantiq_self \
113 $(CHAN_LANTIQ_AST_INCLUDES) \
114 $(TARGET_CPPFLAGS) \
115 -Wall -Wstrict-prototypes -Wmissing-prototypes \
116 -Wmissing-declarations $(FPIC) -DAST_MODULE=\"chan_lantiq\" && \
117 $(TARGET_CC) -o chan_lantiq.so -pthread $(TARGET_LDFLAGS) -shared \
118 -Wl,--version-script,chan_lantiq.exports,--warn-common \
119 chan_lantiq.o
120 endef
121
122 $(eval $(call BuildPackage,asterisk13-$(PKG_NAME)))
123 $(eval $(call BuildPackage,asterisk15-$(PKG_NAME)))