Because the modules all use the core API functions, which are provided by libfreeswitch.so.

I've just checked and the .so is used by both the freeswitch binary and all the modules. That means although all modules depend on the library, it's only loaded into memory once so you're not wasting memory. If it was compiled statically it'd mean huge module files.

The .la is just used then to generate the .so. As a sideeffect the .la is also distributed into the mod directory (as .la and .a) so you can link statically if you're embedding FS in your own app if you wish, but I don't think they're actually used.

-Steve




On 17 June 2011 01:10, jesse <chat2jesse@gmail.com> wrote:
If you look at mod_console.so make log,  why it depends on libfreeswitch.so?

Creating mod_console.so...
.... -fPIC ....  -D_GNU_SOURCE -shared -o .libs/mod_console.so -shared -Wl,-x .libs/mod_console.o  -lm -L/home/xyz/work/freeswitch-1.0.6/lib /home/xyz/work/freeswitch-1.0.6/.libs/libfreeswitch.so -L/home/xyz/work/freeswitch-1.0.6/libs/apr-util/xml/expat/lib


On Thu, Jun 16, 2011 at 12:47 PM, Steven Ayre <steveayre@gmail.com> wrote:
I think it's because it compiles libfreeswitch as a .la so that it can be build into the freeswitch binary. libfreeswitch.so is also distributed (and built from the .la) so that you can embed freeswitch within your own program.

I'm sure one of the main devs could confirm that...

-Steve





On 16 June 2011 20:38, jesse <chat2jesse@gmail.com> wrote:

Ok, I know the difference between .so and .a/.la, my question is why freeswitch makefile needs to create both libfreeswitch.so and libfreewitch.la? You either dynamic link or static link. I am confused here. ..

On Jun 16, 2011 12:27 PM, "Steven Ayre" <steveayre@gmail.com> wrote:
> They're built in. They're not separate modules, there's no need to load
> them.
>
> The .so is a shared library.
> The .la is a static library created by libtool. It's like a .a file if you
> weren't using libtool.
>
> -Steve
>
>
> On 16 June 2011 20:02, jesse <chat2jesse@gmail.com> wrote:
>
>> in the core? I guess it is included in libfreeswitch.so.
>>
>> based on the makefile output the libfreeswitch has two forms :
>> libfreeswitch.la and libfreeswitch.so, what is the reason ? It creates a
>> big headache for our cross compiling..
>>
>> -jesse
>>
>>
>> On Thu, Jun 16, 2011 at 11:31 AM, Anthony Minessale <
>> anthony.minessale@gmail.com> wrote:
>>
>>> in the core =D
>>>
>>>
>>> On Thu, Jun 16, 2011 at 1:17 PM, jesse <chat2jesse@gmail.com> wrote:
>>> > I am doing cross compiling of freeswitch.
>>> > 2011-06-16 11:12:46.912825 [WARNING] switch_loadable_module.c:948 Module
>>> > path /CORE_SOFTTIMER_MODULE.so and file CORE_SOFTTIMER_MODULE to be
>>> loaded
>>> > ...!
>>> > 2011-06-16 11:12:46.912890 [CRIT] switch_loadable_module.c:882 Error
>>> Loading
>>> > module /CORE_SOFTTIMER_MODULE.so
>>> > **/CORE_SOFTTIMER_MODULE.so: cannot open shared object file: No such
>>> file or
>>> > directory**
>>> > 2011-06-16 11:12:46.912905 [WARNING] switch_loadable_module.c:948 Module
>>> > path /CORE_PCM_MODULE.so and file CORE_PCM_MODULE to be loaded ...!
>>> > 2011-06-16 11:12:46.912941 [CRIT] switch_loadable_module.c:882 Error
>>> Loading
>>> > module /CORE_PCM_MODULE.so
>>> > **/CORE_PCM_MODULE.so: cannot open shared object file: No such file or
>>> > directory**
>>> >
>>> > I can't find them under /usr/local/freeswitch. where are they?
>>> > -jesse
>>> > _______________________________________________
>>> > FreeSWITCH-dev mailing list
>>> > FreeSWITCH-dev@lists.freeswitch.org
>>> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>> > http://www.freeswitch.org
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> Anthony Minessale II
>>>
>>> FreeSWITCH http://www.freeswitch.org/
>>> ClueCon http://www.cluecon.com/
>>> Twitter: http://twitter.com/FreeSWITCH_wire
>>>
>>> AIM: anthm
>>> MSN:anthony_minessale@hotmail.com
>>> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
>>> IRC: irc.freenode.net #freeswitch
>>>
>>> FreeSWITCH Developer Conference
>>> sip:888@conference.freeswitch.org
>>> googletalk:conf+888@conference.freeswitch.org
>>> pstn:+19193869900
>>>
>>> _______________________________________________
>>> FreeSWITCH-dev mailing list
>>> FreeSWITCH-dev@lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>> http://www.freeswitch.org
>>>
>>
>>
>> _______________________________________________
>> FreeSWITCH-dev mailing list
>> FreeSWITCH-dev@lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>> http://www.freeswitch.org
>>
>>

_______________________________________________
FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



_______________________________________________
FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org



_______________________________________________
Join us at ClueCon 2011, Aug 9-11, Chicago
http://www.cluecon.com 877-7-4ACLUE

FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org