当前位置: 首页 > news >正文

FreeSWITCH带依赖模块的makefile.am

头图-84

 

概述

FreeSWITCH默认的G729模块是不带编解码功能的,只能转发媒体流。

需要G729模块增加一个源代码依赖包,来实现编解码功能。

首先需要修改makefile.am文件,实现代码的自动依赖编译。

环境

CentOS 7.9

FreeSWITCH 1.10.12

源代码结构

mod_g729模块源代码结构如下。

mod_g729

├── codec_g729.c

├── g729api.h

├── g729a_v11

│   ├── acelp_ca.c

│   ├── basic_op.c

│   ├── basic_op.h

│   ├── cod_ld8a.c

│   ├── cor_func.c

│   ├── de_acelp.c

│   ├── dec_gain.c

│   ├── dec_gain.h

│   ├── dec_lag3.c

│   ├── dec_ld8a.c

│   ├── dspfunc.c

│   ├── filter.c

│   ├── gainpred.c

│   ├── ld8a.h

│   ├── lpc.c

│   ├── lpcfunc.c

│   ├── lpcfunc.h

│   ├── lspdec.c

│   ├── lspdec.h

│   ├── lspgetq.c

│   ├── lspgetq.h

│   ├── Makefile

│   ├── oper_32b.c

│   ├── oper_32b.h

│   ├── pitch_a.c

│   ├── postfilt.c

│   ├── post_pro.c

│   ├── p_parity.c

│   ├── pred_lt3.c

│   ├── pre_proc.c

│   ├── pre_proc.h

│   ├── qua_gain.c

│   ├── qua_gain.h

│   ├── qua_lsp.c

│   ├── qua_lsp.h

│   ├── tab_ld8a.c

│   ├── tab_ld8a.h

│   ├── taming.c

│   ├── taming.h

│   ├── typedef.h

│   ├── util.c

│   └── util.h

├── g729.h

├── g729_slin_ex.h

├── libg729.c

├── Makefile.am

├── mod_g729.c

├── README.txt

└── slin_g729_ex.h

原makefile

fs默认makefile.am如下,不会自动编译子目录。

include $(top_srcdir)/build/modmake.rulesam

MODNAME=mod_g729

 

G729_DIR=$(switch_srcdir)/libs/libg729

G729_BUILDDIR=$(switch_builddir)/libs/libg729

G729_A=$(G729_BUILDDIR)/.libs/libg729.a

 

mod_LTLIBRARIES = mod_g729.la

mod_g729_la_SOURCES = mod_g729.c

mod_g729_la_CFLAGS = $(AM_CFLAGS)

mod_g729_la_LIBADD = $(switch_builddir)/libfreeswitch.la

mod_g729_la_LDFLAGS = -avoid-version -module -no-undefined -shared

 

if HAVE_G729

mod_g729_la_CFLAGS += -I$(G729_DIR)/src/include

mod_g729_la_LIBADD += $(G729_A)

else

mod_g729_la_CFLAGS += -DG729_PASSTHROUGH

endif

新makefile

修改后的makefile.am。

include $(top_srcdir)/build/modmake.rulesam

MODNAME=mod_g729

 

G729_DIR=./g729a_v11

G729_BUILDDIR=./g729a_v11

G729_A=$(G729_BUILDDIR)/libg729.a

 

mod_LTLIBRARIES = mod_g729.la

mod_g729_la_SOURCES = mod_g729.c

mod_g729_la_CFLAGS = $(AM_CFLAGS)

mod_g729_la_LIBADD = $(switch_builddir)/libfreeswitch.la

mod_g729_la_LDFLAGS = -avoid-version -module -no-undefined -shared

 

mod_g729_la_CFLAGS += -I$(G729_DIR)

mod_g729_la_LIBADD += $(G729_A)

 

BUILT_SOURCES = $(G729_A)

$(mod_LTLIBRARIES) : $(G729_A)

 

$(G729_A):

cd $(G729_DIR) && $(MAKE)

 

clean-local:

cd $(G729_DIR) && $(MAKE) clean

 

修改后,可以自动编译安全G729模块。

总结

未经过充分测试,不清楚对其他业务流程的影响。

 

空空如常

求真得真

 

http://www.zskr.cn/news/158965.html

相关文章:

  • PC实心板性能测评:光学级品质 + 长期稳定性(检测报告) - 品牌排行榜
  • 用Arduino + DAC8031打造心电信号模拟器
  • 2025最新清障车技术排行,引领行业变革,二手蓝牌平板拖车/重型清障车/3万左右清障车/蓝牌重载清障车/五十铃清障车企业哪个好 - 品牌推荐师
  • 国内仿威图机柜定制厂家:ES独立式+KP可拼装(2025推荐榜) - 品牌排行榜
  • 毕业论文调查用什么平台?数据导出与统计体验测试 - 品牌排行榜
  • 工业视觉检测技术企业盘点:深度学习+边缘计算 - 品牌排行榜
  • 2025年沉水罗茨风机厂家实力推荐:增氧曝气风机/河道治理风机/离心沉水风机源头厂家精选 - 品牌推荐官
  • 2025-2026年口碑好的烟尘在线监测仪制造商推荐:哪家做得好+哪家性价比高+知名品牌 - 品牌推荐大师1
  • 【大模型自动化新纪元】:Open-AutoGLM三大引擎驱动智能演进
  • 漫剧创作者版权保护全攻略:从权属认证到侵权取证,可信时间戳+权利卫士实操指南
  • PC实心板品牌影响力:29年市场验证 + 用户口碑(品牌价值) - 品牌排行榜
  • 大模型面试题19:梯度消失梯度爆炸 公式版
  • 2025年GEO优化服务商TOP5权威榜单:解码AI时代流量增长新引擎 - 品牌测评鉴赏家
  • 2026日本房产靠谱房产中介首选:新岸线自有房源+物业托管 - 博客万
  • Java计算机毕设之Java毕设选题推荐:基于springboot的汽车租赁管理系统springboot汽车租赁基于springboot的汽车租赁管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • 不出国门完成资产配置:新岸线解答中国人如何在日本买房子 - 博客万
  • GraniStudio:轴复位例程
  • 【课程设计/毕业设计】基于SpringBoot+Vue的汽车租赁系统基于springboot的汽车租赁管理系统【附源码、数据库、万字文档】
  • Linux shell 脚本示例:使用 pkill 清理各种服务进程
  • 【毕业设计】基于springboot的汽车租赁管理系统(源码+文档+远程调试,全bao定制等)
  • 2026年CIO的AI规划蓝图:如何以三阶段框架驱动企业智能转型
  • C#上位机框架源码,winform界面,清晰可见的源码 标准机项目上位机控制软件程序 界面美观实用
  • 【稀缺资源】Open-AutoGLM虚拟机部署许可限制与绕行方案(内部文档流出)
  • 短剧创作者版权授权全攻略:从创意到维权,可信时间戳工具如何保驾护航?
  • 从工具到伙伴:AI知识库如何重塑企业数字化转型逻辑
  • 中考体育评价系统的设计与实现开题报告
  • 大模型学习避坑指南:六步构建你的知识体系,我靠这份路线图少走了99%的弯路(建议收藏)
  • 如何用Open-AutoGLM在7天内搭建自主决策Agent系统?
  • SRM堆垛机控制系统步完成步骤及标志 FC10功能块
  • 中考体育评价系统的设计与实现任务书