freetdm: clean PKG_CONFIG_DEPENDS
[feed/telephony.git] / libs / freetdm / Makefile
1 #
2 # Copyright (C) 2021 Sebastian Kemper <sebastian_ml@gmx.net>
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:=freetdm
11 PKG_RELEASE:=2
12 PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
13
14 PKG_SOURCE_PROTO:=git
15 PKG_SOURCE_URL:=https://github.com/freeswitch/freetdm.git
16 PKG_SOURCE_DATE:=2021-08-30
17 PKG_SOURCE_VERSION:=8918ee1c3637cad0f9d41a402d26d3aa076fc202
18 PKG_MIRROR_HASH:=c910ff0fb62c8a174f6e0bbd749783da1ecd71634d4dcde48b118909f4981943
19
20 PKG_FIXUP:=autoreconf
21
22 PKG_BUILD_PARALLEL:=1
23 PKG_INSTALL:=1
24
25 PKG_LICENSE:= \
26 BSD-2-Clause \
27 BSD-3-Clause \
28 BSD-4-Clause \
29 GPL-2.0+ \
30 MIT/X11 (BSD like) \
31 MPL-1.1
32
33 PKG_LICENSE_FILES:=LICENSE
34
35 PKG_BUILD_DEPENDS:=freeswitch
36
37 FS_EXAMPLES_DIR:=/usr/share/freeswitch/examples
38 FS_LIB_DIR:=/usr/lib
39 FS_MOD_DIR:=$(FS_LIB_DIR)/freeswitch/mod
40 FS_PKGCONFIG_DIR:=$(FS_LIB_DIR)/pkgconfig
41
42 PKG_CONFIG_DEPENDS:= \
43 CONFIG_FREETDM_WITH_DEBUG \
44 CONFIG_LIBC \
45 CONFIG_PACKAGE_libfreetdm-ftmod-libpri \
46 CONFIG_PACKAGE_libfreetdm-ftmod-pritap \
47
48 include $(INCLUDE_DIR)/package.mk
49
50 define Package/libfreetdm/install/ftmod
51 $(INSTALL_DIR) $(1)$(FS_MOD_DIR)
52 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(FS_MOD_DIR)/ftmod_$(2).so \
53 $(1)$(FS_MOD_DIR)
54 endef
55
56 define Package/freetdm/config
57 source "$(SOURCE)/Config.in"
58 endef
59
60 define Package/libfreetdm/Default
61 SECTION:=libs
62 CATEGORY:=Libraries
63 SUBMENU:=Telephony
64 URL:=https://www.freeswitch.org
65 endef
66
67 define Package/libfreetdm
68 $(call Package/libfreetdm/Default)
69 DEPENDS:=
70 TITLE:=TDM signaling and media API
71 MENU:=1
72 endef
73
74 define Package/libfreetdm/description
75 Provides a unified interface to hardware TDM cards and SS7 stacks.
76 endef
77
78 define Package/libfreetdm/install
79 $(INSTALL_DIR) $(1)$(FS_LIB_DIR)
80 $(CP) $(PKG_INSTALL_DIR)$(FS_LIB_DIR)/libfreetdm.so.* \
81 $(1)$(FS_LIB_DIR)
82 endef
83
84 define Package/freeswitch-mod-freetdm
85 $(call Package/libfreetdm/Default)
86 SECTION:=net
87 CATEGORY:=Network
88 SUBMENU:=Telephony
89 DEPENDS:=freeswitch +libfreetdm
90 TITLE:=FreeTDM endpoint module
91 endef
92
93 define Package/freeswitch-mod-freetdm/description
94 This module is the glue between FreeSWITCH and FreeTDM.
95 endef
96
97 define Package/freeswitch-mod-freetdm/install
98 $(INSTALL_DIR) $(1)$(FS_MOD_DIR)
99 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(FS_MOD_DIR)/mod_freetdm.so \
100 $(1)$(FS_MOD_DIR)
101 ifeq ($(CONFIG_FS_WITH_MODCONF),y)
102 $(INSTALL_DIR) \
103 $(1)$(FS_EXAMPLES_DIR)/mod_freetdm/freeswitch/autoload_configs
104 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/*.conf \
105 $(1)$(FS_EXAMPLES_DIR)/mod_freetdm
106 $(INSTALL_DATA) \
107 $(PKG_INSTALL_DIR)/etc/freeswitch/autoload_configs/freetdm.conf.xml \
108 $(1)$(FS_EXAMPLES_DIR)/mod_freetdm/freeswitch/autoload_configs
109 endif
110 endef
111
112 define Package/libfreetdm/FTModule
113 define Package/libfreetdm-ftmod-$(subst _,-,$(1))
114 $(call Package/libfreetdm/Default)
115 DEPENDS:=libfreetdm \
116 $(patsubst +%,+PACKAGE_libfreetdm-ftmod-$(subst _,-,$(1)):%,$(4))
117 TITLE:=$(2) FreeTDM module
118 endef
119 define Package/libfreetdm-ftmod-$(subst _,-,$(1))/description
120 $(subst \n,$(newline),$(3))
121 endef
122 define Package/libfreetdm-ftmod-$(subst _,-,$(1))/install
123 $(call Package/libfreetdm/install/ftmod,$$(1),$(1))
124 endef
125 $$(eval $$(call BuildPackage,libfreetdm-ftmod-$(subst _,-,$(1))))
126 endef
127
128 CONFIGURE_ARGS+= \
129 --srcdir=$(PKG_BUILD_DIR) \
130 --disable-dependency-tracking \
131 --disable-static \
132 --with-modinstdir=$(FS_MOD_DIR) \
133 $(call autoconf_bool,CONFIG_FREETDM_WITH_DEBUG,debug) \
134 $(if $(CONFIG_PACKAGE_libfreetdm-ftmod-libpri),--with-libpri="$(STAGING_DIR)/usr",--without-libpri) \
135 $(if $(CONFIG_PACKAGE_libfreetdm-ftmod-pritap),--with-pritap,--without-pritap)
136
137 $(eval $(call BuildPackage,libfreetdm))
138 $(eval $(call BuildPackage,freeswitch-mod-freetdm))
139
140 ################################
141 # FreeTDM modules
142 # Params:
143 # 1 - Package subname
144 # 2 - Package title
145 # 3 - Module description
146 # 4 - Module dependencies
147 ################################
148
149 $(eval $(call Package/libfreetdm/FTModule,analog,Analog,Offers generic FXO/FXS support for any type of card supported by FreeTDM.,))
150 $(eval $(call Package/libfreetdm/FTModule,analog_em,Analog EM,Offers generic E&M signaling for any type of card supported by FreeTDM.,))
151 $(eval $(call Package/libfreetdm/FTModule,libpri,LibPRI,Offers support for PRI lines using the open source libpri stack for any\ntype of card supported by FreeTDM. Supports both PRI and BRI signalling.,+libpri @!aarch64))
152 $(eval $(call Package/libfreetdm/FTModule,pritap,PRI tapping,This module is used to tap PRI lines.,+libfreetdm-ftmod-libpri))
153 $(eval $(call Package/libfreetdm/FTModule,skel,Skeleton,ftmod_skel is an example module.,))
154 $(eval $(call Package/libfreetdm/FTModule,zt,DAHDI I/O,This module supports the DAHDI interface. The DAHDI interface is used by\nseveral hardware vendors.,))