asterisk-chan-dongle: fix uclibc build
[feed/telephony.git] / net / asterisk-chan-dongle / Makefile
1 #
2 # Copyright (C) 2017 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:=asterisk-chan-dongle
11 PKG_VERSION:=1.1-20170724
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=git://github.com/wdoekes/asterisk-chan-dongle.git
16 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
17 PKG_SOURCE_VERSION:=1e452f7598266be0970cec582ba32dbc5568868d
18 PKG_SOURCE_PROTO:=git
19
20 PKG_FIXUP:=autoreconf
21
22 PKG_LICENSE:=GPL-2.0
23 PKG_LICENSE_FILES:=COPYRIGHT.txt LICENSE.txt
24 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
25
26 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
27
28 include $(INCLUDE_DIR)/package.mk
29
30 define Package/asterisk-chan-dongle/Default
31 SUBMENU:=Telephony
32 SECTION:=net
33 CATEGORY:=Network
34 URL:=https://github.com/wdoekes/asterisk-chan-dongle
35 DEPENDS:=+USE_UCLIBC:libiconv-full +kmod-usb-acm +kmod-usb-serial +kmod-usb-serial-option +libusb-1.0 +usb-modeswitch
36 TITLE:=Huawei UMTS 3G dongle support
37 endef
38
39 define Package/asterisk11-chan-dongle
40 $(call Package/asterisk-chan-dongle/Default)
41 DEPENDS+=asterisk11
42 VARIANT:=asterisk11
43 endef
44
45 define Package/asterisk13-chan-dongle
46 $(call Package/asterisk-chan-dongle/Default)
47 DEPENDS+=asterisk13
48 VARIANT:=asterisk13
49 endef
50
51 define Package/description/Default
52 Asterisk channel driver for Huawei UMTS 3G dongle.
53 endef
54
55 Package/asterisk11-chan-dongle/description = $(Package/description/Default)
56 Package/asterisk13-chan-dongle/description = $(Package/description/Default)
57
58 ifeq ($(BUILD_VARIANT),asterisk11)
59 CHAN_DONGLE_AST_HEADERS:=$(STAGING_DIR)/usr/include/asterisk-11/include
60 CONFIGURE_ARGS+= \
61 --with-astversion=11
62 endif
63
64 ifeq ($(BUILD_VARIANT),asterisk13)
65 CHAN_DONGLE_AST_HEADERS:=$(STAGING_DIR)/usr/include/asterisk-13/include
66 CONFIGURE_ARGS+= \
67 --with-astversion=13
68 endif
69
70 CONFIGURE_ARGS+= \
71 --with-asterisk=$(CHAN_DONGLE_AST_HEADERS)
72
73 TARGET_CFLAGS+= \
74 -I$(CHAN_DONGLE_AST_HEADERS)
75
76 # musl and glibc include their own iconv, but uclibc does not
77 ifneq ($(CONFIG_USE_UCLIBC),)
78 TARGET_CPPFLAGS+= \
79 -I$(STAGING_DIR)/usr/lib/libiconv-full/include
80 endif
81
82 # -DAST_MODULE_SELF_SYM=__internal_chan_dongle_self to fix Asterisk 14
83 # compile issues
84 CHAN_DONGLE_EXTRA_CFLAGS:= \
85 -Wno-old-style-declaration \
86 -I$(PKG_BUILD_DIR) \
87 -DAST_MODULE_SELF_SYM=__internal_chan_dongle_self \
88 $(TARGET_CPPFLAGS) \
89 -D_GNU_SOURCE \
90 -DHAVE_CONFIG_H \
91 $(FPIC)
92
93 MAKE_ARGS:= \
94 CC="$(TARGET_CC)" \
95 LD="$(TARGET_CC)" \
96 CFLAGS="$(TARGET_CFLAGS) $(CHAN_DONGLE_EXTRA_CFLAGS)" \
97 LDFLAGS="$(TARGET_LDFLAGS) $(if $(CONFIG_USE_UCLIBC),-L$(STAGING_DIR)/usr/lib/libiconv-full/lib -liconv)"
98
99 # $CHAN_DONGLE_ICONV_INC used by 200-fix-iconv-detection.patch
100 CONFIGURE_VARS += \
101 CHAN_DONGLE_ICONV_INC="$(TOOLCHAIN_DIR)/include $(STAGING_DIR)/usr/lib/libiconv-full/include" \
102 ac_cv_type_size_t=yes \
103 ac_cv_type_ssize_t=yes
104
105 define Build/Compile
106 $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_ARGS)
107 endef
108
109 define Package/conffiles/Default
110 /etc/asterisk/dongle.conf
111 endef
112
113 Package/asterisk11-chan-dongle/conffiles = $(Package/conffiles/Default)
114 Package/asterisk13-chan-dongle/conffiles = $(Package/conffiles/Default)
115
116 define Package/Install/Default
117 $(INSTALL_DIR) $(1)/etc/asterisk
118 $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/dongle.conf $(1)/etc/asterisk
119 $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
120 $(INSTALL_BIN) $(PKG_BUILD_DIR)/chan_dongle.so $(1)/usr/lib/asterisk/modules
121 endef
122
123 Package/asterisk11-chan-dongle/install = $(Package/Install/Default)
124 Package/asterisk13-chan-dongle/install = $(Package/Install/Default)
125
126 $(eval $(call BuildPackage,asterisk11-chan-dongle))
127 $(eval $(call BuildPackage,asterisk13-chan-dongle))