Hello,
you are doing the right way, I'll put some basic information with examples to
contribute.
When creating a MODULE that needs some dependency, there are two situations to
check initially:
1) If the library is already present in configure.ac (and detected when you run
./configure), then you just need to put the dependency inside the Module source
using <depend> tag
2) If it is a NEW library not present in configure.ac, then you have to change
configure.ac and recreate 'configure' script.
Supposing the new library included was for example 'openr2'
You can do a quick check running:
./configure |grep openr2
The result should make it clear if it was detected or nor detected, like the
above example, that would give you this result:
checking for openr2_chan_new in -lopenr2... yes
The result "yes" above means the library was Found and it's ready for use. You
correctly modified configure.ac and recreated configure.
If you get a different result or no result, check the paths where the library
lives in you linux distro and make the appropriate changes in configure.ac
because configure was not able to find them, also check the logfile.
Some types of library install theirselves in different places, and some linux
distros have different places for them, special attention for 64bit distros vs
32bit distros.
After succeed with ./configure you can tie dependency in any module source code
by using the <depend> tag inside the module you need.
example from chan_dahdi.c :
/*** MODULEINFO
<depend>res_smdi</depend>
<depend>dahdi</depend>
<depend>tonezone</depend>
<depend>res_features</depend>
<use>pri</use>
<use>openr2</use>
***/
<depend> means module will NOT compile if dependency is not satisfied.
<use> means module can make use of the library or not, it's not essencial and
it WILL compile without the library being detected by ./configure.
I hope you succeed.
Regards,
Rafael Prado
De:
<[email protected]<mailto:[email protected]>>
em nome de Catalin Stanciu <[email protected]<mailto:[email protected]>>
Responder para: Asterisk List
<[email protected]<mailto:[email protected]>>
Data: domingo, 6 de março de 2016 17:56
Para: Asterisk List
<[email protected]<mailto:[email protected]>>
Assunto: [asterisk-dev] Add module dependecy in build system
Hello,
I am trying to include a module dependency in the asterisk build system, but
after some hours of research I couldn't found any useful information.
To start I have followed the asterisk manual
(https://wiki.asterisk.org/wiki/display/AST/Build+System+Architecture)
1. I have used the AST_EXT_LIB_SETUP and AST_EXT_LIB_CHECK functions to
configure in configure.ac<http://configure.ac>
2. I have included in build_tools/menuselect-deps.in<http://menuselect-deps.in>
the line similar to other dependencies
3. I have included in makeopts.in<http://makeopts.in> two lines one for LIB
and the other for INCLUDE.
4. Finally I have included in the module source code the lines with MODULEINFO
I don't know what I am doing wrong but I think the documentation for build
system architecture must have some examples with explanation of complex cases.
Thank you.
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev