kamailio源文件modules.lst的内容解释

在执行make cfg 后,在kamailio/src目录下有一个文件modules.lst,内容如下:

# this file is autogenerated by make modules-cfg# the list of sub-directories with modules
modules_dirs:=modules# the list of module groups to compile
cfg_group_include=# the list of extra modules to compile
include_modules= # the list of static modules
static_modules= # the list of modules to skip from compile list
skip_modules= # the list of modules to exclude from compile list
exclude_modules= acc_json acc_radius app_java app_lua app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc auth_ephemeral auth_radius cdp cdp_avp cnxcc cplc crypto db2_ldap db_berkeley db_cassandra db_mongodb db_mysql db_oracle db_perlvdb db_postgres db_redis db_sqlite db_unixodbc dialplan dnssec erlang evapi gcrypt geoip geoip2 gzcompress h350 http_async_client http_client ims_auth ims_charging ims_dialog ims_diameter_server ims_icscf ims_ipsec_pcscf ims_isc ims_ocs ims_qos ims_qos_npn ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf jansson janssonrpcc json jsonrpcc jwt kafka kazoo lcr ldap log_systemd lost lwsc memcached microhttpd misc_radius mqtt nats ndb_cassandra ndb_mongodb ndb_redis nghttp2 nsq outbound peering phonenum presence presence_conference presence_dfks presence_dialoginfo presence_mwi presence_profile presence_reginfo presence_xml pua pua_bla pua_dialoginfo pua_json pua_reginfo pua_rpc pua_usrloc pua_xmpp rabbitmq regex rls rtp_media_server ruxc sctp secsipid secsipid_proc slack snmpstats stirshaken systemdops tls tls_wolfssl tlsa topos_redis utils uuid websocket xcap_client xcap_server xhttp_pi xmlops xmlrpc xmpp $(skip_modules)modules_all= $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))
modules_noinc= $(filter-out $(addprefix modules/, $(exclude_modules) $(static_modules)), $(modules_all)) 
modules= $(filter-out $(modules_noinc), $(addprefix modules/, $(include_modules) )) $(modules_noinc) 
modules_configured:=1

这段代码是一个Makefile片段,用于配置和选择要编译的模块。它定义了一些变量和规则,用于控制哪些模块应该被编译,哪些模块应该被排除。以下是对代码的详细解释:

1. 模块目录

modules_dirs:=modules
  • modules_dirs 变量指定了包含模块的子目录。这里只有一个目录 modules

2. 模块组

cfg_group_include=
  • cfg_group_include 变量用于指定要编译的模块组。这里为空,表示没有特定的模块组被包含。

3. 额外模块

include_modules= 
  • include_modules 变量用于指定额外的模块,这些模块将被包含在编译列表中。这里为空,表示没有额外的模块被包含。

4. 静态模块

static_modules= 
  • static_modules 变量用于指定静态模块。静态模块通常是必须包含的模块。这里为空,表示没有静态模块。

5. 跳过模块

skip_modules= 
  • skip_modules 变量用于指定要跳过的模块。这些模块将不会被编译。这里为空,表示没有模块被跳过。

6. 排除模块

exclude_modules= acc_json acc_radius app_java app_lua app_perl app_python app_python3 app_python3s app_ruby app_ruby_proc auth_ephemeral auth_radius cdp cdp_avp cnxcc cplc crypto db2_ldap db_berkeley db_cassandra db_mongodb db_mysql db_oracle db_perlvdb db_postgres db_redis db_sqlite db_unixodbc dialplan dnssec erlang evapi gcrypt geoip geoip2 gzcompress h350 http_async_client http_client ims_auth ims_charging ims_dialog ims_diameter_server ims_icscf ims_ipsec_pcscf ims_isc ims_ocs ims_qos ims_qos_npn ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf jansson janssonrpcc json jsonrpcc jwt kafka kazoo lcr ldap log_systemd lost lwsc memcached microhttpd misc_radius mqtt nats ndb_cassandra ndb_mongodb ndb_redis nghttp2 nsq outbound peering phonenum presence presence_conference presence_dfks presence_dialoginfo presence_mwi presence_profile presence_reginfo presence_xml pua pua_bla pua_dialoginfo pua_json pua_reginfo pua_rpc pua_usrloc pua_xmpp rabbitmq regex rls rtp_media_server ruxc sctp secsipid secsipid_proc slack snmpstats stirshaken systemdops tls tls_wolfssl tlsa topos_redis utils uuid websocket xcap_client xcap_server xhttp_pi xmlops xmlrpc xmpp $(skip_modules)
  • exclude_modules 变量列出了所有要排除的模块。这些模块将不会被编译。列表中包含了许多模块名称,并且还包含了 $(skip_modules),这意味着 skip_modules 中的模块也会被排除。

7. 所有模块

modules_all= $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))
  • modules_all 变量列出了 modules 目录下的所有模块,但排除了 CVSCMakeLists.txt 文件。

8. 不包含的模块

modules_noinc= $(filter-out $(addprefix modules/, $(exclude_modules) $(static_modules)), $(modules_all)) 
  • modules_noinc 变量列出了所有不被包含的模块。它从 modules_all 中排除了 exclude_modulesstatic_modules 中指定的模块。

9. 最终模块列表

modules= $(filter-out $(modules_noinc), $(addprefix modules/, $(include_modules) )) $(modules_noinc) 
  • modules 变量是最终的模块列表。它包含了 include_modules 中指定的模块,并且排除了 modules_noinc 中的模块。

10. 配置标志

modules_configured:=1
  • modules_configured 变量被设置为 1,表示模块配置已经完成。

总结

这段代码的主要目的是根据配置变量(如 include_modulesexclude_modulesstatic_modules 等)来生成最终的模块列表 modules,以便在编译时只编译需要的模块。通过这种方式,可以灵活地控制哪些模块被包含在编译过程中,哪些模块被排除。

如果要编译所有模块,进行如下操作

如果你想要编译所有模块,可以按照以下步骤操作:

1. 修改 exclude_modules 变量

将所有需要排除的模块都从 exclude_modules 中移除,确保没有模块被排除。你可以直接清空 exclude_modules 变量,或者确保没有任何模块在其中。

exclude_modules = 

2. 清空 include_modulesstatic_modules

确保没有在 include_modulesstatic_modules 中指定特定的模块,这样所有模块都会按照默认的设置进行编译。

include_modules = 
static_modules = 

3. 保持 modules_all 变量

保持原样,不需要做任何修改。modules_all 会列出所有的模块。

modules_all = $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))

4. 重新生成配置文件

完成上述修改后,重新运行 make modules-cfg 来重新生成配置文件。所有模块应该都包含在内。

5. 编译 Kamailio

最后,运行 make 来开始编译,所有模块都会被编译。

make

通过这些步骤,你可以确保编译所有的模块。如果之前已经修改过配置文件,只需清空排除和特定包含的模块设置,默认情况下会编译所有模块。

最终的内容

如果你想要编译所有模块,最终的配置文件内容应该类似于以下内容:

# this file is autogenerated by make modules-cfg# the list of sub-directories with modules
modules_dirs := modules# the list of module groups to compile
cfg_group_include =# the list of extra modules to compile
include_modules = # the list of static modules
static_modules = # the list of modules to skip from compile list
skip_modules = # the list of modules to exclude from compile list
exclude_modules = # the list of modules that will be compiled
modules_all = $(filter-out modules/CVS modules/CMakeLists.txt, $(wildcard modules/*))# the list of modules to compile (no exclusions or specific includes)
modules_noinc = $(modules_all) modules = $(modules_noinc)modules_configured := 1

解释:

  1. include_modules = static_modules = :这两个变量是空的,意味着没有额外指定要包含或静态编译的模块。
  2. exclude_modules = :这个变量是空的,意味着没有模块被排除。
  3. modules_noinc = $(modules_all):这个变量包含了所有模块,因为没有排除任何模块。
  4. modules = $(modules_noinc):最终的 modules 变量包含了所有模块,即所有模块都会被编译。

结果:

通过这些修改,Kamailio 将编译所有模块,没有任何排除或指定的模块。你只需要执行 make 来编译所有模块了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/67899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频入门基础:RTP专题(7)——RTP协议简介

一、引言 本文对RTP协议进行简介。在简介之前,请各位先下载RTP的官方文档《RFC 3550》和《RFC 3551》。《RFC 3550》总共有89页,《RFC 3551》总共有44页。本文下面所说的“页数”是指在pdf阅读器中显示的页数: 二、RTP协议简介 根据《RFC 35…

半导体器件与物理篇7 微波二极管、量子效应和热电子器件

基本微波技术 微波频率:微波频率涵盖约从0.1GHz到3000GHz,相当于波长从300cm到0.01cm。 分布效应:电子部件在微波频率,与其在较低频率的工作行为不同。 输运线:一个由电阻、电容、电感三种等效基本电路部件所组成的…

【C++】B2122 单词翻转

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 💯一、我的做法代码实现:代码解析思路分析 💯二、老师的第一种做法代码实现&a…

麦芯(MachCore)应用开发教程5 --- 工位和晶圆传输

麦芯是构建在windows系统上的设备应用操作系统,利用该系统可以快速高效的开发一款设备专用软件。希望进一步了解请email: acloud163.com 黄国强 2025/02/03 一、工位与子设备的关系 想象工厂中的流水线工作站,每个工位(Station&#xff09…

Python从0到100(八十七):CNN网络详细介绍及WISDM数据集模型仿真

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

C++ Primer 迭代器

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【C++篇】位图与布隆过滤器

目录 一,位图 1.1,位图的概念 1.2,位图的设计与实现 1.5,位图的应用举例 1.4,位图常用应用场景 二,布隆过滤器 2.1,定义: 2.2,布隆过滤器的实现 2.3, 应…

VR触感数据手套:触感反馈赋予虚拟交互沉浸式体验

随着动作捕捉技术的蓬勃发展,动捕数据手套成为了手部动作捕捉与虚拟交互的便捷工具,为人们打开了通往虚拟世界的新大门。在众多产品中,mHand Pro作为一款多功能兼具的VR动作捕捉数据手套,凭借其卓越的性能,在手部动作捕…

追逐低空经济,无人机研学技术详解

追逐低空经济,无人机研学技术成为了一个备受关注的领域。以下是对无人机研学技术的详细解析: 一、无人机研学技术概述 无人机研学技术是以无人机为核心,结合航空科技、电子技术、机械原理等多领域知识的一种教育实践活动。它旨在通过理论学习…

(done) MIT6.S081 2023 学习笔记 (Day7: LAB6 Multithreading)

网页:https://pdos.csail.mit.edu/6.S081/2023/labs/thread.html (任务1教会了你如何用 C 语言调用汇编,编译后链接即可) 任务1:Uthread: switching between threads (完成) 在这个练习中,你将设计一个用户级线程系统中的上下文切…

Kubernetes学习之通过Service访问Pod

一、基础概述 1.当通过deployment等controller动态创建和销毁pod使得每个pod都有自己的ip地址,当controller用新的pod替代发生故障的pod时,新的pod会分配到新的ip地址,那么客户端如何稳定的找到并访问pod提供的服务。 2.创建service service从…

【优先算法】专题——前缀和

目录 一、【模版】前缀和 参考代码: 二、【模版】 二维前缀和 参考代码: 三、寻找数组的中心下标 参考代码: 四、除自身以外数组的乘积 参考代码: 五、和为K的子数组 参考代码: 六、和可被K整除的子数组 参…

CDDIS从2025年2月开始数据迁移

CDDIS 将从 2025 年 2 月开始将我们的网站从 cddis.nasa.gov 迁移到 earthdata.nasa.gov,并于 2025 年 6 月结束。 期间可能对GAMIT联网数据下载造成影响。

谷歌Titans模型论文解析,Transformer迎来变革拐点——DeepSeek能否“接招”?

一、引入 Titans 模型 我们将深入探讨谷歌研究院的一篇新论文《Titans: Learning to Memorize at Test Time》,该论文介绍了一种名为 Titans 的新模型架构。 Titans 在缓解 Transformer 二次方成本问题的同时,展现出了令人期待的成果。Titans 模型的设…

新春贺岁,共赴AGI之旅

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 往期精彩文章推荐 季姮教授独家文字版干货 | 面向知识渊博的大语言模型 关于AI TIME AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题…

Baklib推动数字化内容管理解决方案助力企业数字化转型

内容概要 在当今信息爆炸的时代,数字化内容管理成为企业提升效率和竞争力的关键。企业在面对大量数据时,如何高效地存储、分类与检索信息,直接关系到其经营的成败。数字化内容管理不仅限于简单的文档存储,更是整合了文档、图像、…

【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互

Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…

FPGA|例化生成的PLL功能IP核

1、例化上一篇文章中调用的IP核,新建文件PLL_test.v 2、代码如图 timescale 1ns / 1ps module PLL_test(input clk,input rst_n,output clkout0,output clkout1,output clkout2,output clkout3,output clkout4);wire locked;PLL pll_inst(.inclk0(clk),.c0(clkout0)…

【C++】P5734 【深基6.例6】文字处理软件

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯题目描述输入格式输出格式示例输入与输出输入:输出: 💯我的做法操作1:在文档末尾插入字符串操作2&…

后盾人JS -- 原型

没有原型的对象 也有没有原型的对象 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…