Integration of external libraries into FreeSwitch
Guys, since I haven't got any major feedback on my suggestion of privatizing external libraries FreeSwitch depends upon I guess its time for me to give a practical example of how I would like FreeSwitch to be structured. Lets take libresample-0.1.3 as the simplest case (the meat of it is just 3 files: filterkit.c, resample.c, resamplesubs.c; the rest is precisely the fluff I'd like to get rid of): Anyway, here's what I would like to see in FreeSwitch's SVN instead: extlib/libresample/Makefile.[in|am] [ORIGIN|README] src/filterkit.c src/resample.c src/resamplesubs.c src/filterkit.h src/resample_defs.h [inc|include]/libresample.h ORIGIN (or README) file would describe where the library came from an what is the procedure for manually sync'ing up with the upstream development version (if needed). Makefile.[in|am] would mostly be from the original project (which means most of the time it would a trivial one) feeding off a *single* configure run. We can even introduce specific targets into it so that it does "export" public API header files and object files into a predetermined location for ease of future linking: extlib/lib extlib/include so that -I and -L have to point to a single location only (but still withing our build area which means no messy make install's!). PROS: * much greater control over how we build external libraries, which includes ease of using performance related options, building libraries as archives, etc. * much greater control over source code of the the external libraries (don't have to depend on maintainers to push changes we need ASAP). * everything is in SVN * single ./configure run * no messy make installs screwing up the place where --prefix points to * no LD_LIBRARY_PATH and LD_RUN_PATH mess to deal with CONS: * everytime we actually need something from the upstream version it would have to be manually sync'ed up with the FreeSwitch SVN (hence ORIGIN|README). And finally -- as far as Anthony's coding speed is concerned it should be pretty transparent ;-), so what do you all think ? Thanks, Roman.
Hi, Roman!
CONS: * everytime we actually need something from the upstream version it would have to be manually sync'ed up with the FreeSwitch SVN (hence ORIGIN|README).
It seems there's no high development activity in the upstream: * libresample-0.1.3.tgz (LGPL) (released Jan, 7, 2004) Guys from audacity team included libresample into source tree http://audacity.cvs.sourceforge.net/audacity/lib-src/ Here is some explanation: http://audacityteam.org/wiki/index.php?title=Libresample Though, I don't think it's a major priority task to redesign build process and source tree. -- Konstantin Cherkasoff
In my viewpoint, the importance of this restructuring, assuming Tony and others agree with it, would be probably be one of the last things we do before our first initial release version. It's certainly not the most important thing to do yet. On a side note, it'd be great if ogg/vorbis could get added to libresample... I see that's been mentioned on their website as being on the TODO list, but I guess they haven't had time to work on it. Yossi Neiman Cartis Solutions, Inc. - http://www.cartissolutions.com Konstantin Cherkasoff wrote:
Hi, Roman!
CONS: * everytime we actually need something from the upstream version it would have to be manually sync'ed up with the FreeSwitch SVN (hence ORIGIN|README).
It seems there's no high development activity in the upstream: * libresample-0.1.3.tgz (LGPL) (released Jan, 7, 2004)
Guys from audacity team included libresample into source tree
http://audacity.cvs.sourceforge.net/audacity/lib-src/
Here is some explanation: http://audacityteam.org/wiki/index.php?title=Libresample
Though, I don't think it's a major priority task to redesign build process and source tree.
-- Konstantin Cherkasoff
_______________________________________________ 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
-- Yossi Neiman President Cartis Solutions, Inc. - http://www.cartissolutions.com Tel: (630) 259-8100 Fax: (630) 259-8101
I think you're thinking of libsndfile? /b On Oct 5, 2006, at 10:25 AM, Yossi Neiman wrote:
On a side note, it'd be great if ogg/vorbis could get added to libresample... I see that's been mentioned on their website as being on the TODO list, but I guess they haven't had time to work on it.
Oh whatever! It's morning, you expect me to be intelligent at 9am? Think again, give me until at least 10:30. The important thing is that you know what I meant so I could have said Super Fun Happy Library and you would have still known! Yossi Neiman Cartis Solutions, Inc. - http://www.cartissolutions.com Brian West wrote:
I think you're thinking of libsndfile?
/b
On Oct 5, 2006, at 10:25 AM, Yossi Neiman wrote:
On a side note, it'd be great if ogg/vorbis could get added to
libresample... I see that's been mentioned on their website as being on
the TODO list, but I guess they haven't had time to work on it.
------------------------------------------------------------------------
_______________________________________________ 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
On Thu, Oct 05, 2006 at 11:15:10AM +0400, Konstantin Cherkasoff wrote:
Hi, Roman!
CONS: * everytime we actually need something from the upstream version it would have to be manually sync'ed up with the FreeSwitch SVN (hence ORIGIN|README).
It seems there's no high development activity in the upstream: * libresample-0.1.3.tgz (LGPL) (released Jan, 7, 2004)
Guys from audacity team included libresample into source tree
http://audacity.cvs.sourceforge.net/audacity/lib-src/
Here is some explanation: http://audacityteam.org/wiki/index.php?title=Libresample
Though, I don't think it's a major priority task to redesign build process and source tree.
Ok. Here's why I'm personally interested in doing it: 1. FFmpeg integration will hapen in that fashion if it happens at all. It would be much more extra work for me to do it otherwise. 2. It is incredibly hard to control how libraries are built w.r.t. compiler options and such unless we have a tighter integration I've described. This makes my job much harder as far as performance tuning of the FreeSwitch is concerned. Now, #1 doesn't mean that every other library should follow, and #2 could be dismissed on the grounds that premature optimization is not that useful anyway, but these are my reasons. Thanks, Roman.
On 2006-10-06, at 01:44, Roman Shaposhnick wrote:
On Thu, Oct 05, 2006 at 11:15:10AM +0400, Konstantin Cherkasoff wrote:
Hi, Roman!
CONS: * everytime we actually need something from the upstream version it would have to be manually sync'ed up with the FreeSwitch SVN (hence ORIGIN|README).
It seems there's no high development activity in the upstream: * libresample-0.1.3.tgz (LGPL) (released Jan, 7, 2004)
Guys from audacity team included libresample into source tree
http://audacity.cvs.sourceforge.net/audacity/lib-src/
Here is some explanation: http://audacityteam.org/wiki/index.php?title=Libresample
Though, I don't think it's a major priority task to redesign build process and source tree.
Ok. Here's why I'm personally interested in doing it:
1. FFmpeg integration will hapen in that fashion if it happens at all. It would be much more extra work for me to do it otherwise.
2. It is incredibly hard to control how libraries are built w.r.t. compiler options and such unless we have a tighter integration I've described. This makes my job much harder as far as performance tuning of the FreeSwitch is concerned.
Now, #1 doesn't mean that every other library should follow, and #2 could be dismissed on the grounds that premature optimization is not that useful anyway, but these are my reasons.
Thanks, Roman.
Hey Roman, I added macros for optimization and debug features per compiler to the build system. Those macros are now used for: libspeakup srtp libteletone libresample and the freeswitch core. Next step now is to replace the building process for the modules by inherited automake from the core build process and also switch to one make, make install instead of make, make modules etc .. Could you scan through the macros and give any comments as to if we should change the flags for sunpro ? cheers Michał Michał Bielicki CEO VoiceWorks Sp. z o.o. ul. Polna 46/14 00-644 Warszawa Poland Voice: +48 22 875 3293 Fax: +48 22 875 3294 http://www.voiceworks.pl/cypromis http://www.voiceworks.pl/
participants (6)
-
Bielicki Michal
-
Brian West
-
Konstantin Cherkasoff
-
Roman Shaposhnick
-
Roman Shaposhnik
-
Yossi Neiman