1 # Kamailio build system
2 # Module groups definitions
5 # lists are sets of modules that don't include modules that are in other lists
6 # - break the lists as needed in order to use them to build desired groups
11 # - basic used modules, with no extra dependency (widespread usage)
12 mod_list_basic=async auth benchmark blst cfg_rpc cfgutils corex counters \
13 ctl debugger diversion enum exec ipops kex mangler maxfwd \
14 mediaproxy mi_datagram mi_fifo mi_rpc mqueue \
15 nat_traversal nathelper path pike pv ratelimit rr rtimer \
16 rtpproxy sanity sdpops siputils sl statistics textops \
17 textopsx tm tmx topoh xlog rtpengine stun sipt tcpops \
18 auth_xkeys smsops tsilo cfgt statsc topos
20 # - extra used modules, with no extra dependency
21 mod_list_extra=avp auth_diameter call_control dmq domainpolicy msrp pdb \
22 qos sca seas sms sst timer tmrec uac_redirect xhttp \
23 xhttp_rpc xprint jsonrpc-s nosip dmq_usrloc statsd rtjson \
26 # - common modules depending on database
27 mod_list_db=acc alias_db auth_db avpops cfg_db db_text db_flatstore \
28 db_cluster dialog dispatcher domain drouting group \
29 htable imc matrix mohqueue msilo mtree p_usrloc pdt permissions \
30 pipelimit prefix_route registrar sipcapture siptrace speeddial \
31 sqlops uac uri_db userblacklist usrloc
34 # - common modules depending on database, using UID db schema
35 mod_list_dbuid=db2_ops uid_auth_db uid_avp_db uid_domain uid_gflags \
38 # - modules for devel purposes
39 mod_list_devel=malloc_test print print_lib
41 # - modules depending on pcre3 library
42 mod_list_pcre=dialplan lcr regex
44 # - modules depending on radius client library
45 mod_list_radius=acc_radius auth_radius misc_radius peering
47 # - modules depending on ldap client library
48 mod_list_ldap=db2_ldap h350 ldap
50 # - modules depending on mysql client library
51 mod_list_mysql=db_mysql
53 # - modules depending on postgres client library
54 mod_list_postgres=db_postgres
56 # - modules depending on unixodbc library
57 mod_list_unixodbc=db_unixodbc
59 # - modules depending on mysql cassandra library
60 mod_list_cassandra=db_cassandra ndb_cassandra
62 # - modules depending on xml2 library
65 # - modules depending on xml2 library
66 mod_list_xmldeps=xhttp_pi xmlrpc xmlops
68 # - modules depending on xml c rpc library
69 mod_list_mi_xmlrpc=mi_xmlrpc
71 # - modules depending on net-snmp library
72 mod_list_snmpstats=snmpstats
74 # - modules depending on expat library
77 # - modules depending on confuse library
78 mod_list_carrierroute=carrierroute
80 # - modules depending on bdb (db4) library
81 mod_list_berkeley=db_berkeley
83 # - modules depending on curl library
84 mod_list_utils=utils http_client
86 # - modules depending on curl and libevent2 library
87 mod_list_http_async=http_async_client
89 # - modules depending on memcache library
90 mod_list_memcached=memcached
92 # - modules depending on openssl library
93 mod_list_tlsdeps=auth_identity crypto tls
95 # - modules depending on openssl library
96 mod_list_outbound=outbound
98 # - modules depending on openssl and unistring library
99 mod_list_websocket=websocket
101 # - modules depending on libval-threads libcrypto libsres libpthread
102 mod_list_dnssec=dnssec
104 # - modules depending on libsctp
107 # - modules depending on openssl library
108 mod_list_autheph=auth_ephemeral
110 # - modules related to SIMPLE presence extensions
111 mod_list_presence=presence presence_conference presence_dialoginfo \
112 presence_mwi presence_profile presence_reginfo \
114 pua pua_bla pua_dialoginfo pua_mi pua_reginfo \
115 pua_usrloc pua_xmpp \
116 rls xcap_client xcap_server
119 # - modules depending on lua library
122 # - modules depending on perl library
123 mod_list_perldeps=app_perl db_perlvdb
125 # - modules depending on python library
126 mod_list_python=app_python
128 # - modules depending on geoip library
131 # - modules depending on new geoip library
132 mod_list_geoip2=geoip2
134 # - modules depending on sqlite library
135 mod_list_sqlite=db_sqlite
137 # - modules depending on oracle library
138 mod_list_oracle=db_oracle
140 # - modules depending on json (+libevent) library
141 mod_list_json=json jsonrpc-c
143 # - modules depending on jansson (+libevent) library
144 mod_list_jansson=jansson janssonrpc-c
146 # - modules depending on redis library
147 mod_list_redis=ndb_redis
149 # - modules depending on mono library
150 mod_list_mono=app_mono
152 # - modules related to IMS extensions
153 mod_list_ims=cdp cdp_avp ims_dialog ims_auth ims_isc ims_icscf ims_qos \
154 ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf \
155 ims_usrloc_scscf ims_charging ims_ocs
157 # - modules depending on osp toolkit library
160 # - modules depending on java library
161 mod_list_java=app_java
163 # - modules depending on gzip library
164 mod_list_gzcompress=gzcompress
166 # - modules depending on uuid library
169 # - modules depending on ev library
172 # - modules depending on kazoo/rabbitmq
175 # - modules depending on mongodb
176 mod_list_mongodb=db_mongodb ndb_mongodb
178 # - modules depending on redis and event library
181 # - modules depending on erlang library
182 mod_list_erlang=erlang
184 # - modules depending on systemd library
185 mod_list_systemd=log_systemd
187 # - modules depending on libnsq (+libev libevbuffsock liblcurl libjson-c) library
190 # - modules depending on librabbitmq library
191 mod_list_rabbitmq=rabbitmq
194 mod_list_all=$(sort $(mod_list_basic) $(mod_list_extra) \
195 $(mod_list_db) $(mod_list_dbuid) \
196 $(mod_list_devel) $(mod_list_pcre) \
197 $(mod_list_radius) $(mod_list_ldap) \
198 $(mod_list_mysql) $(mod_list_postgres) \
199 $(mod_list_unixodbc) $(mod_list_xmldeps) \
200 $(mod_list_perldeps) $(mod_list_cpl) \
201 $(mod_list_xmpp) $(mod_list_carrierroute) \
202 $(mod_list_berkeley) $(mod_list_utils) \
203 $(mod_list_memcached) \
204 $(mod_list_tlsdeps) $(mod_list_websocket) \
205 $(mod_list_snmpstats) $(mod_list_presence) \
206 $(mod_list_lua) $(mod_list_python) \
207 $(mod_list_geoip) $(mod_list_sqlite) \
208 $(mod_list_json) $(mod_list_redis) \
209 $(mod_list_mono) $(mod_list_ims) \
210 $(mod_list_cassandra) $(mod_list_oracle) \
211 $(mod_list_mi_xmlrpc) \
212 $(mod_list_outbound) $(mod_list_osp) \
213 $(mod_list_java) $(mod_list_dnssec) \
214 $(mod_list_sctp) $(mod_list_autheph) \
215 $(mod_list_gzcompress) $(mod_list_uuid) \
216 $(mod_list_ev) $(mod_list_kazoo) \
217 $(mod_list_mongodb) $(mod_list_cnxcc) \
218 $(mod_list_jansson) $(mod_list_geoip2) \
219 $(mod_list_erlang) $(mod_list_systemd) \
220 $(mod_list_http_async) $(mod_list_nsq) \
221 $(mod_list_rabbitmq))
225 ### --- Groups defined for source code compilation ###
227 # groups are sets of modules selected by compile target interest (should be
228 # built by combining lists)
230 # Modules in this group are the default compiled modules due to
231 # no external compile or link dependencies
232 module_group_default=$(mod_list_basic) $(mod_list_extra) \
233 $(mod_list_db) $(mod_list_dbuid) \
236 # Modules in this group are the default compiled modules due to
237 # no internal/external compile or link dependencies
238 module_group_standard=$(mod_list_basic) $(mod_list_extra) \
241 # Modules in this group are considered a standard part due to
242 # widespread usage, but they have dependencies that must be satisfied for
243 # compilation (e.g., lcr, radius, presence, tls, ...).
244 module_group_common=$(mod_list_db) $(mod_list_dbuid) \
245 $(mod_list_pcre) $(mod_list_radius) \
246 $(mod_list_xmldeps) $(mod_list_presence) \
249 # For db use (db modules, excluding drivers)
250 module_group_db=$(mod_list_db)
253 module_group_mysql_driver=$(mod_list_mysql)
254 module_group_mysql=$(module_group_mysql_driver) $(module_group_db)
257 module_group_postgres_driver=$(mod_list_postgres)
258 module_group_postgres=$(module_group_postgres_driver) $(module_group_db)
261 module_group_radius=$(mod_list_radius)
265 module_group_presence=$(mod_list_presence)
268 module_group_cassandra_driver=$(mod_list_cassandra)
269 module_group_cassandra=$(module_group_cassandra_driver) $(module_group_db)
271 # For all modules not compiled by default
272 module_group_ignore= $(sort $(filter-out $(module_group_default), $(mod_list_all)))
276 ### --- Groups defined for pacKaging ###
278 # Standard modules in main pkg
279 module_group_kstandard=$(mod_list_basic) $(mod_list_extra) \
280 $(mod_list_db) $(mod_list_dbuid) \
284 module_group_kmysql=$(mod_list_mysql)
286 # pkg postgress module
287 module_group_kpostgres=$(mod_list_postgres)
290 module_group_kcpl=$(mod_list_cpl)
293 module_group_kxml=$(mod_list_xmldeps)
295 # pkg mi_xmlrpc modules
296 module_group_kmi_xmlrpc=$(mod_list_mi_xmlrpc)
299 module_group_kradius=$(mod_list_radius)
301 # pkg unixodbc module
302 module_group_kunixodbc=$(mod_list_unixodbc)
305 module_group_kperl=$(mod_list_perldeps)
307 # pkg snmpstats module
308 module_group_ksnmpstats=$(mod_list_snmpstats)
311 module_group_kxmpp=$(mod_list_xmpp)
313 # pkg carrierroute module
314 module_group_kcarrierroute=$(mod_list_carrierroute)
316 # pkg berkeley module
317 module_group_kberkeley=$(mod_list_berkeley)
320 module_group_kldap=$(mod_list_ldap)
323 module_group_kutils=$(mod_list_utils)
325 # pkg https_async module
326 module_group_khttp_async=$(mod_list_http_async)
328 # pkg memcached module
329 module_group_kmemcached=$(mod_list_memcached)
332 module_group_ktls=$(mod_list_tlsdeps)
334 # pkg websocket module
335 module_group_kwebsocket=$(mod_list_websocket)
337 # pkg presence modules
338 module_group_kpresence=$(mod_list_presence)
341 module_group_klua=$(mod_list_lua)
344 module_group_kpython=$(mod_list_python)
347 module_group_kgeoip=$(mod_list_geoip)
350 module_group_kgeoip2=$(mod_list_geoip2)
353 module_group_ksqlite=$(mod_list_sqlite)
356 module_group_kjson=$(mod_list_json)
359 module_group_kjansson=$(mod_list_jansson)
362 module_group_kredis=$(mod_list_redis)
365 module_group_kmono=$(mod_list_mono)
368 module_group_kims=$(mod_list_ims)
370 # pkg outbound module
371 module_group_koutbound=$(mod_list_outbound)
374 module_group_kjava=$(mod_list_java)
377 module_group_kdnssec=$(mod_list_dnssec)
380 module_group_ksctp=$(mod_list_sctp)
382 # pkg auth_ephemeral module
383 module_group_kautheph=$(mod_list_autheph)
385 # pkg gzcompress module
386 module_group_kgzcompress=$(mod_list_gzcompress)
389 module_group_kuuid=$(mod_list_uuid)
392 module_group_kev=$(mod_list_ev)
395 module_group_kkazoo=$(mod_list_kazoo)
397 # pkg mongodb modules
398 module_group_kmongodb=$(mod_list_mongodb)
401 module_group_kcnxcc=$(mod_list_cnxcc)
404 module_group_kerlang=$(mod_list_erlang)
407 module_group_ksystemd=$(mod_list_systemd)
410 module_group_knsq=$(mod_list_nsq)
413 module_group_krabbitmq=$(mod_list_rabbitmq)
415 # list of static modules