Browse Source

Makefile: split module groups definitions in Makefile.groups

- the part was quite big and it is more config related than build rules
- it has to be updated with the current list of modules
Daniel-Constantin Mierla 12 years ago
parent
commit
23a22e2c8d
2 changed files with 247 additions and 241 deletions
  1. 2 241
      Makefile
  2. 245 0
      Makefile.groups

+ 2 - 241
Makefile

@@ -124,247 +124,8 @@ ifneq ($(group_include),)
 	modules_configured:=0
 endif
 
-# Module group definitions, default only include the standard group
-# Make backwards compatible, don't set group_include default...
-#group_include?="standard"
-
-# Modules in this group are considered a standard part of SER (due to 
-# widespread usage) and have no external compile or link dependencies (note 
-# that some of these interplay with external systems).
-module_group_standard=acc_syslog auth avp ctl dispatcher diversion enum\
-				eval exec fifo db_flatstore gflags maxfwd mediaproxy \
-				nathelper options pdt permissions pike print ratelimit \
-				registrar rr rtpproxy sanity sl textops timer tm uac \
-				unixsock uri usrloc xlog cfg_rpc sipcapture msrp tmrec
-
-# Modules in this group are considered a standard part of SER (due to 
-# widespread usage) but they have dependencies that must be satisfied for 
-# compilation.
-# acc_radius, auth_radius, misc_radius => radiusclient-ng
-# acc_db, auth_db, avp_db, db_ops, domain, lcr, msilo, dialog, speeddial,
-# uri_db => database module (db_mysql, db_postgres, dbtext ...)
-# mysql, postgres => mysql server and client libraries or postgres server and
-#  client libraries or other database back-end (ex. mysql-devel)
-# pa, xmlrpc => libxml2
-# rls => pa
-#
-# NOTE! All presence modules (dialog, pa, presence_b2b, rls, xcap) have been
-# included in this group due to interdependencies
-module_group_standard_dep=acc_db acc_radius auth_db auth_radius avp_db \
-				auth_identity db_ops domain lcr misc_radius \
-				msilo dialog pa \
-				presence_b2b rls speeddial uri_db xcap xmlrpc
-
-# For db use (db modules, excluding drivers)
-module_group_db=acc_db auth_db avp_db db_ops db_text \
-				uri_db domain lcr msilo speeddial
-				#dbtext (s) not migrated yet to the new db interface
-
-# For mysql
-module_group_mysql_driver=db_mysql
-module_group_mysql=$(module_group_mysql_driver) $(module_group_db)
-
-# For postgress
-module_group_postgres_driver=db_postgres
-module_group_postgres=$(module_group_postgres_driver) $(module_group_db)
-
-# For radius
-module_group_radius=acc_radius auth_radius misc_radius avp_radius uri_radius \
-					peering
-
-# For presence
-# kamailio modules
-module_group_presence=presence presence_dialoginfo presence_mwi presence_xml presence_profile\
-						pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp \
-						rls xcap_client xcap_server presence_conference \
-						presence_reginfo pua_reginfo
-#ser modules
-module_group_presence+=dialog presence_b2b xcap
-# obsolete/unmaintained ser modules
-#module_group_presence=pa rls
-
-# Modules in this group satisfy specific or niche applications, but are 
-# considered stable for production use. They may or may not have dependencies
-# cpl-c => libxml2
-# jabber => expat (library)
-# osp => OSP Toolkit (sipfoundry)
-# sms => none (external modem)
-module_group_stable=cpl-c dbtext jabber osp sms pdb
-
-# Modules in this group are either not complete, untested, or without enough
-# reports of usage to allow the module into the stable group. They may or may
-# not have dependencies
-module_group_experimental=tls oracle iptrtpproxy ndb_redis async websocket outbound
-
-# For cassandra
-module_group_cassandra_driver=db_cassandra
-module_group_cassandra=$(module_group_cassandra_driver) $(module_group_db)
-
-
-### Kamailio specific groups ###
-# Standard modules in K Debian distro
-module_group_kstandard=acc alias_db auth auth_db benchmark call_control corex \
-				cfgutils db_text dialog dispatcher diversion domain drouting \
-				exec group htable imc kex maxfwd mi_datagram mi_fifo msilo \
-				nat_traversal nathelper path pdt permissions pike pv qos \
-				ratelimit regex registrar rr rtimer rtpproxy siptrace siputils \
-				sl sms speeddial sqlops sst statistics textops tmx uac \
-				uac_redirect uri_db userblacklist usrloc xlog seas \
-				avpops cfg_db cfg_rpc ctl db_flatstore dialplan enum \
-				iptrtpproxy lcr mediaproxy mi_rpc pdb sanity tm topoh \
-				blst prefix_route counters debugger matrix mqueue mtree \
-				pipelimit rtpproxy textopsx xhttp xhttp_rpc ipops p_usrloc \
-				sdpops async sipcapture dmq msrp tmrec db_cluster
-
-# K mysql module
-module_group_kmysql=db_mysql
-
-# K postgress module
-module_group_kpostgres=db_postgres
-
-# K cpl module
-module_group_kcpl=cpl-c
-
-# K radius modules
-module_group_kradius=acc_radius auth_radius misc_radius peering
-
-# K unixodbc module
-module_group_kunixodbc=db_unixodbc
-
-# K xmlrpc modules
-module_group_kxml=xmlrpc mi_xmlrpc xmlops
-
-# K perl module
-module_group_kperl=app_perl db_perlvdb
-
-# K snmpstats module
-module_group_ksnmpstats=snmpstats
-
-# K xmpp module
-module_group_kxmpp=xmpp
-
-# K carrierroute module
-module_group_kcarrierroute=carrierroute
-
-# K berkeley module
-module_group_kberkeley=db_berkeley
-
-# K ldap modules
-module_group_kldap=ldap db2_ldap h350
-
-# K utils module
-module_group_kutils=utils
-
-# K purple module
-module_group_kpurple=purple
-
-# K memcached module
-module_group_kmemcached=memcached
-
-# K tls module
-module_group_ktls=tls
-
-# K websocket module
-module_group_kwebsocket=websocket
-
-# K outbound module
-module_group_koutbound=outbound
-
-# K presence modules
-module_group_kpresence=presence presence_dialoginfo presence_mwi presence_xml presence_profile\
-						pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp \
-						rls xcap_client xcap_server presence_conference \
-						presence_reginfo pua_reginfo
-
-# K lua module
-module_group_klua=app_lua
-
-# K python module
-module_group_kpython=app_python
-
-# K geoip module
-module_group_kgeoip=geoip
-
-# K sqlite module
-module_group_ksqlite=db_sqlite
-
-# K json modules
-module_group_kjson=json jsonrpc-c
-
-# K redis module
-module_group_kredis=ndb_redis
-
-# K mono module
-module_group_kmono=app_mono
-
-# For IMS
-# kamailio modules
-module_group_kims=ims_auth cdp cdp_avp dialog_ng ims_qos ims_isc ims_icscf\
-                        ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf
-
-# if not set on the cmd. line, env or in the modules.lst (cfg_group_include)
-# exclude the below modules.
-ifneq ($(group_include)$(cfg_group_include),)
-	# For group_include, default all modules are excluded except those in 
-	# include_modules
-	exclude_modules?=
-else
-	# Old defaults for backwards compatibility
-	# excluded because they depend on external libraries
-	exclude_modules?= 		cpl mangler postgres jabber mysql cpl-c \
-							auth_radius misc_radius avp_radius uri_radius \
-							acc_radius pa rls presence_b2b xcap xmlrpc\
-							osp tls oracle \
-							unixsock dbg print_lib auth_identity db2_ldap ldap \
-							db_berkeley db_mysql db_postgres db_oracle \
-							db_sqlite db_unixodbc db_cassandra memcached mi_xmlrpc \
-							app_perl db_perlvdb purple \
-							snmpstats xmpp cdp \
-							carrierroute peering \
-							dialplan lcr utils presence presence_mwi \
-							presence_dialoginfo presence_xml pua pua_bla \
-							pua_dialoginfo pua_usrloc pua_xmpp \
-							regex xcap_client xcap_server presence_conference \
-							presence_reginfo pua_reginfo websocket outbound
-	#excluded because they depend on external *.h files
-	exclude_modules+= h350
-	# excluded because they do not compile (remove them only after they are
-	#  fixed) -- andrei
-	exclude_modules+= bdb dbtext iptrtpproxy pa rls
-	# depends on libgeoip
-	exclude_modules+= geoip
-	# depends on liblua5.1-dev
-	exclude_modules+= app_lua
-	# depends on libpython-dev
-	exclude_modules+= app_python
-	# depends on libxml2
-	exclude_modules+= xmlops xhttp_pi
-	# depends on jsoc-c
-	exclude_modules+= json jsonrpc-c
-	# depends on libhiredis
-	exclude_modules+= ndb_redis
-	# depends on mono-devel
-	exclude_modules+= app_mono
-	# depends on tm being compiled with -DWITH_AS_SUPPORT support
-ifeq (,$(findstring -DWITH_AS_SUPPORT, $(C_DEFS)))
-		exclude_modules+= seas
-endif
-endif
-
-# always exclude the CVS dir
-override exclude_modules+= CVS $(skip_modules)
-
-# Test for the groups and add to include_modules
-ifneq (,$(group_include))
-$(eval override include_modules+= $(foreach grp, $(group_include), \
-										$(module_group_$(grp)) ))
-endif
-
-# first 2 lines are excluded because of the experimental or incomplete
-# status of the modules
-# the rest is excluded because it depends on external libraries
-#
-static_modules:=
+# get the groups of modules to compile
+include Makefile.groups
 
 ALLDEP=config.mak Makefile Makefile.dirs Makefile.sources Makefile.rules
 

+ 245 - 0
Makefile.groups

@@ -0,0 +1,245 @@
+# Module groups definitions
+#
+
+# - default only include the standard group
+# Make backwards compatible, don't set group_include default...
+# group_include?="standard"
+
+# Modules in this group are considered a standard part (due to 
+# widespread usage) and have no external compile or link dependencies (note 
+# that some of these interplay with external systems).
+module_group_standard=acc_syslog auth avp ctl dispatcher diversion enum\
+				eval exec fifo db_flatstore gflags maxfwd mediaproxy \
+				nathelper options pdt permissions pike print ratelimit \
+				registrar rr rtpproxy sanity sl textops timer tm uac \
+				unixsock uri usrloc xlog cfg_rpc sipcapture msrp tmrec
+
+# Modules in this group are considered a standard part of SER (due to 
+# widespread usage) but they have dependencies that must be satisfied for 
+# compilation.
+# acc_radius, auth_radius, misc_radius => radiusclient-ng
+# acc_db, auth_db, avp_db, db_ops, domain, lcr, msilo, dialog, speeddial,
+# uri_db => database module (db_mysql, db_postgres, dbtext ...)
+# mysql, postgres => mysql server and client libraries or postgres server and
+#  client libraries or other database back-end (ex. mysql-devel)
+# pa, xmlrpc => libxml2
+# rls => pa
+#
+# NOTE! All presence modules (dialog, pa, presence_b2b, rls, xcap) have been
+# included in this group due to interdependencies
+module_group_standard_dep=acc_db acc_radius auth_db auth_radius avp_db \
+				auth_identity db_ops domain lcr misc_radius \
+				msilo dialog pa \
+				presence_b2b rls speeddial uri_db xcap xmlrpc
+
+# For db use (db modules, excluding drivers)
+module_group_db=acc_db auth_db avp_db db_ops db_text \
+				uri_db domain lcr msilo speeddial
+				#dbtext (s) not migrated yet to the new db interface
+
+# For mysql
+module_group_mysql_driver=db_mysql
+module_group_mysql=$(module_group_mysql_driver) $(module_group_db)
+
+# For postgress
+module_group_postgres_driver=db_postgres
+module_group_postgres=$(module_group_postgres_driver) $(module_group_db)
+
+# For radius
+module_group_radius=acc_radius auth_radius misc_radius avp_radius uri_radius \
+					peering
+
+# For presence
+# kamailio modules
+module_group_presence=presence presence_dialoginfo presence_mwi presence_xml presence_profile\
+						pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp \
+						rls xcap_client xcap_server presence_conference \
+						presence_reginfo pua_reginfo
+#ser modules
+module_group_presence+=dialog presence_b2b xcap
+# obsolete/unmaintained ser modules
+#module_group_presence=pa rls
+
+# Modules in this group satisfy specific or niche applications, but are 
+# considered stable for production use. They may or may not have dependencies
+# cpl-c => libxml2
+# jabber => expat (library)
+# osp => OSP Toolkit (sipfoundry)
+# sms => none (external modem)
+module_group_stable=cpl-c dbtext jabber osp sms pdb
+
+# Modules in this group are either not complete, untested, or without enough
+# reports of usage to allow the module into the stable group. They may or may
+# not have dependencies
+module_group_experimental=tls oracle iptrtpproxy ndb_redis async websocket outbound
+
+# For cassandra
+module_group_cassandra_driver=db_cassandra
+module_group_cassandra=$(module_group_cassandra_driver) $(module_group_db)
+
+
+### Kamailio specific groups ###
+# Standard modules in K Debian distro
+module_group_kstandard=acc alias_db auth auth_db benchmark call_control corex \
+				cfgutils db_text dialog dispatcher diversion domain drouting \
+				exec group htable imc kex maxfwd mi_datagram mi_fifo msilo \
+				nat_traversal nathelper path pdt permissions pike pv qos \
+				ratelimit regex registrar rr rtimer rtpproxy siptrace siputils \
+				sl sms speeddial sqlops sst statistics textops tmx uac \
+				uac_redirect uri_db userblacklist usrloc xlog seas \
+				avpops cfg_db cfg_rpc ctl db_flatstore dialplan enum \
+				iptrtpproxy lcr mediaproxy mi_rpc pdb sanity tm topoh \
+				blst prefix_route counters debugger matrix mqueue mtree \
+				pipelimit rtpproxy textopsx xhttp xhttp_rpc ipops p_usrloc \
+				sdpops async sipcapture dmq msrp tmrec db_cluster
+
+# K mysql module
+module_group_kmysql=db_mysql
+
+# K postgress module
+module_group_kpostgres=db_postgres
+
+# K cpl module
+module_group_kcpl=cpl-c
+
+# K radius modules
+module_group_kradius=acc_radius auth_radius misc_radius peering
+
+# K unixodbc module
+module_group_kunixodbc=db_unixodbc
+
+# K xmlrpc modules
+module_group_kxml=xmlrpc mi_xmlrpc xmlops
+
+# K perl module
+module_group_kperl=app_perl db_perlvdb
+
+# K snmpstats module
+module_group_ksnmpstats=snmpstats
+
+# K xmpp module
+module_group_kxmpp=xmpp
+
+# K carrierroute module
+module_group_kcarrierroute=carrierroute
+
+# K berkeley module
+module_group_kberkeley=db_berkeley
+
+# K ldap modules
+module_group_kldap=ldap db2_ldap h350
+
+# K utils module
+module_group_kutils=utils
+
+# K purple module
+module_group_kpurple=purple
+
+# K memcached module
+module_group_kmemcached=memcached
+
+# K tls module
+module_group_ktls=tls
+
+# K websocket module
+module_group_kwebsocket=websocket
+
+# K outbound module
+module_group_koutbound=outbound
+
+# K presence modules
+module_group_kpresence=presence presence_dialoginfo presence_mwi presence_xml presence_profile\
+						pua pua_bla pua_dialoginfo pua_mi pua_usrloc pua_xmpp \
+						rls xcap_client xcap_server presence_conference \
+						presence_reginfo pua_reginfo
+
+# K lua module
+module_group_klua=app_lua
+
+# K python module
+module_group_kpython=app_python
+
+# K geoip module
+module_group_kgeoip=geoip
+
+# K sqlite module
+module_group_ksqlite=db_sqlite
+
+# K json modules
+module_group_kjson=json jsonrpc-c
+
+# K redis module
+module_group_kredis=ndb_redis
+
+# K mono module
+module_group_kmono=app_mono
+
+# For IMS
+# kamailio modules
+module_group_kims=ims_auth cdp cdp_avp dialog_ng ims_qos ims_isc ims_icscf\
+                        ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf
+
+# if not set on the cmd. line, env or in the modules.lst (cfg_group_include)
+# exclude the below modules.
+ifneq ($(group_include)$(cfg_group_include),)
+	# For group_include, default all modules are excluded except those in 
+	# include_modules
+	exclude_modules?=
+else
+	# Old defaults for backwards compatibility
+	# excluded because they depend on external libraries
+	exclude_modules?= 		cpl mangler postgres jabber mysql cpl-c \
+							auth_radius misc_radius avp_radius uri_radius \
+							acc_radius pa rls presence_b2b xcap xmlrpc\
+							osp tls oracle \
+							unixsock dbg print_lib auth_identity db2_ldap ldap \
+							db_berkeley db_mysql db_postgres db_oracle \
+							db_sqlite db_unixodbc db_cassandra memcached mi_xmlrpc \
+							app_perl db_perlvdb purple \
+							snmpstats xmpp cdp \
+							carrierroute peering \
+							dialplan lcr utils presence presence_mwi \
+							presence_dialoginfo presence_xml pua pua_bla \
+							pua_dialoginfo pua_usrloc pua_xmpp \
+							regex xcap_client xcap_server presence_conference \
+							presence_reginfo pua_reginfo websocket outbound
+	#excluded because they depend on external *.h files
+	exclude_modules+= h350
+	# excluded because they do not compile (remove them only after they are
+	#  fixed) -- andrei
+	exclude_modules+= bdb dbtext iptrtpproxy pa rls
+	# depends on libgeoip
+	exclude_modules+= geoip
+	# depends on liblua5.1-dev
+	exclude_modules+= app_lua
+	# depends on libpython-dev
+	exclude_modules+= app_python
+	# depends on libxml2
+	exclude_modules+= xmlops xhttp_pi
+	# depends on jsoc-c
+	exclude_modules+= json jsonrpc-c
+	# depends on libhiredis
+	exclude_modules+= ndb_redis
+	# depends on mono-devel
+	exclude_modules+= app_mono
+	# depends on tm being compiled with -DWITH_AS_SUPPORT support
+ifeq (,$(findstring -DWITH_AS_SUPPORT, $(C_DEFS)))
+		exclude_modules+= seas
+endif
+endif
+
+# always exclude the CVS dir
+override exclude_modules+= CVS $(skip_modules)
+
+# Test for the groups and add to include_modules
+ifneq (,$(group_include))
+$(eval override include_modules+= $(foreach grp, $(group_include), \
+										$(module_group_$(grp)) ))
+endif
+
+# first 2 lines are excluded because of the experimental or incomplete
+# status of the modules
+# the rest is excluded because it depends on external libraries
+#
+static_modules:=
+