[Freeswitch-users] Freeswitch 1.4.21 from source and Speex

Michael Jerris mike at jerris.com
Wed Sep 2 20:01:20 MSD 2015


My goal is for this to be very simple, so give me some feedback on what you need to manually do and we can see what all can be automated or fixed with patches.

> On Sep 2, 2015, at 11:53 AM, Sharath Kumar <shakumarsoftware at gmail.com> wrote:
> 
> Mike,
> 
> That is very helpful. I will build the cross on the master and see how that goes.
> Shaks
> 
> On Wed, Sep 2, 2015 at 9:46 AM, Michael Jerris <mike at jerris.com <mailto:mike at jerris.com>> wrote:
> 
>> On Sep 2, 2015, at 11:11 AM, Sharath Kumar <shakumarsoftware at gmail.com <mailto:shakumarsoftware at gmail.com>> wrote:
>> 
>> I am not building my own apr-util. If I try to build FS with --without-ldap option, the main FS configure script fails with this message "
>> The configure of apr-util does not have ldap disabled either.
>> 
> 
> Fails with what message?
> 
>> Platform: standard x86_64-linux but with a custom kernel.
>> 
>> Trying to cross-compile on a Ubuntu 14.4 host.
>> 
>> 1. I'm running bootstrap.sh [ I'm not sure whether I should run this it seems like it is for Debian]  
> 
> Thats correct, you should be running this.
> 
>> 2. A makefile that basically calls the top-level configure script and calls make.
>> 
>> PHONY : $(X86_64_ARCH)/freeswitch
>> $(X86_64_ARCH)/freeswitch: $(freeswitch_loc)/configure
>>         cd $(TOP)
>>         mkdir -p $@
>>         cd $@ && \
>>         export PKG_CONFIG_PATH=$(X86_64_INSTALL)/usr/lib/pkgconfig && \
>>         export ac_cv_func_malloc_0_nonnull=yes && \
>>         export ac_cv_func_realloc_0_nonnull=yes && \
>>         export apr_cv_mutex_recursive=yes && \
>>         export ac_cv_file__dev_urandom=yes && \
>>         export ac_cv_file__dev_ptmx=yes && \
>>         export ac_cv_file__dev_zero=yes && \
>>         export ac_cv_func_setpgrp_void=yes && \
>>         export apr_cv_process_shared_works=yes && \
>>         export apr_cv_mutex_robust_shared=no && \
>>         export apr_cv_tcp_nodelay_with_cork=yes && \
>>         export ac_cv_sizeof_struct_iovec=8 && \
>>         export apr_cv_mutex_recursive=yes && \
>>         export ac_cv_file_dbd_apr_dbd_mysql_c=no && \
>>         $(freeswitch_loc)/bootstrap.sh && \
>>         $(freeswitch_loc)/configure \
>>             --build=`uname -m` \
>>             --host=$(X86_64_ARCH) \
>>             --exec-prefix=/usr \
>>             --prefix=/var/lib/freeswitch \
>>             --libexecdir=/usr/lib \
>>             --libdir=/usr/lib \
>>             --sysconfdir=/etc/freeswitch \
>>             --datarootdir=/usr/share \
>>             --includedir=/usr/include/freeswitch \
>>             --with-modinstdir=/usr/lib/freeswitch/mod \
>>             --localstatedir=/var \
>>             --with-rundir=/var/run \
>>             --disable-core-libedit-support \
> 
>>             --enable-static \
> why --enable-static ?
>>             --disable-debug \
>>             --disable-core-odbc-support \
>>             --disable-system-xmlrpc-c \
>>             --without-erlang \
>>             --without-python \
>>             --with-sysroot=$(X86_64_INSTALL) \
> 
> this looks mostly good
> 
>>                                                                                                                                                 64,1-8        38%
>> CPPFLAGS="-I$(freeswitch_loc)/src/include -D_GNU_SOURCE" \
> 
> Why are you adding -D_GNU_SOURCE?  Is this line actually needed?
> 
>>             CFLAGS="-Wno-error=strict-aliasing \
>>                     -Wno-error=unused-value"
> 
>>         sed -e 's/^DEFAULT_INCLUDES = -I./DEFAULT_INCLUDES = -I$$(abs_builddir)/g' \
>>             -i $@/libs/tiff-4.0.2/libtiff/Makefile
> 
> What is this for?
> 
>>         sed -e '/DTHREADSAFE/ a TCC += $$(CPPFLAGS) $$(LDFLAGS)' \
>>             -i $@/libs/sqlite/Makefile
> 
> What is this for? (note on master, we use system sqlite)
> 
>>         sed -e 's%-DSWITCH_DECLARE_CLASS%-I$(freeswitch_loc)/src/include -I$(X86_64_BUILD)/freeswitch/src/include -DSWITCH_DECLARE_CLASS%g' \
>>             -i $@/Makefile
> 
> What is this for?  That symbol doesn't even exist in the core Makefile, so this line is actually doing nothing at all.  I don't think you actually need to add the -I$(X86_64_BUILD)/freeswitch/src/include explicitly here, it will likely get added where it needs to be from stuff from pkg-config (at least on master)
> 
>>         $(MAKE) -C $@ $(X86_64_BUILD)/freeswitch/modules.conf
> 
> What does this do?
> 
>>    $(MAKE) -j $(SIMUL) -C $@ DESTDIR=$(X86_64_INSTALL) \
>>           CPPFLAGS="-I$(freeswitch_loc)/src/include -D_GNU_SOURCE -DHAVE_UINT64_T" \
> 
> What is this CPPFLAGS for?
> 
>>           install
>> 
>> 
>> I also ran autoconf --reconf to generate Makefile.in from the Makefile.am file.
>> 
> 
> you shouldn't have to do that
> 
>> I will definitely migrate to the master but I wanted to try and see if 1.4 builds. 
> 
> I have done quite a lot in the master build system that moves quite a few libraries (although not apr-utils) out of our build system.  This will require you to repackage seperately a few more libs for your cross toolchain, but should greatly simplify the cross of freeswitch itself.  I have also done quite a bit of work fixing srcdir and cross builds in master that is not in the 1.4 branch.  It is likely much easier for you to accomplish this on master (although I do have working cross builds on 1.4, its a lot more painful to make work right)
> 
>> 
>> Am I doing something obviously wrong here ?
>> 
>> Mike, Thank you so much!
>> 
>> Shaks
>> 
>> 
>> 
>> On Tue, Sep 1, 2015 at 7:06 PM, Michael Jerris <mike at jerris.com <mailto:mike at jerris.com>> wrote:
>> those are out of apr-util but we don't use them, and I thought that in our configure we pass to that we disable those.  What steps exactly are you going through trying to build this?  You shouldn't need to be building your own apr libs, those should build as part of our build proces, and in my experience they should cross easily.  can you reply with some details of the platform your trying to cross to and why your build scripts look like so far?  Also, we are getting ready to release 1.6 very soon.  If you are already making a huge version jump I would reccomend you working off master which will become 1.6 instead of 1.4.
>> 
>> On Tuesday, September 1, 2015, Sharath Kumar <shakumarsoftware at gmail.com <mailto:shakumarsoftware at gmail.com>> wrote:
>> Mike,
>> That is great! I ran it through autoconf and It compiles now but I have strange linking errors in libfreeswitch <http://libfreeswitch.la/>.so :(.  Does FS require LDAP lib or is it the apr-util that is not being linked not sure? I searched for these symbols in the older FS and it is nowhere to be found in the .so. The sources also don't have them! Any help would be great!
>> 
>> thank you,
>> Shaks
>> 
>> 
>> ./.libs/libfreeswitch.so: undefined reference to `ber_free'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_err2string'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_get_dn_ber'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_get_option'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_sasl_bind'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_search_ext'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_memfree'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_msgfree'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_first_message'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_unbind_ext'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_get_attribute_ber'
>> ./.libs/libfreeswitch.so: undefined reference to `ber_memfree'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_next_message'
>> ./.libs/libfreeswitch.so: undefined reference to `ldap_pvt_url_scheme2proto'
>> 
>> 
>> On Tue, Sep 1, 2015 at 1:50 PM, Michael Jerris <mike at jerris.com <>> wrote:
>> Recent code uses automake.  The rules are in there:
>> 
>> :grep lib_LTLIBRARIES Makefile.am
>> lib_LTLIBRARIES          = libfreeswitch.la <http://libfreeswitch.la/>
>> 
>>> On Sep 1, 2015, at 3:39 PM, Sharath Kumar <shakumarsoftware at gmail.com <>> wrote:
>>> 
>>> Mike,
>>> Thank you! I was migrating from FS 1.0.6 to 1.4.21 and the old one *had* the speex in the lib. I guess the latest doesn't use it. thanks for the clarification. I guess I will have to manually build speex for my embedded target and install it as a package.
>>> I am also confused about building the FS library i.e "libfreeswitch.la <http://libfreeswitch.la/>". In the older FS, there is a Makefile.in that had rules to make the libfreeswitch.la <http://libfreeswitch.la/>. I may not have looked hard enough but the newer one (Makefile.in) doesn't seem to have any rules to build libfreeswitch.la <http://libfreeswitch.la/>. Am I completely mistaken ?
>>> 
>>> thank you,
>>> Shaks 
>>> 
>>> On Tue, Sep 1, 2015 at 10:38 AM, Michael Jerris <mike at jerris.com <>> wrote:
>>> There is no without-speex, as we use some speex functionality in the core.  We use system packages for the speex library, as detected using pkg-config.  I'm not sure how you could get an error building freeswitch that is attempting to build speex, as we do not build speex.
>>> 
>>> 
>>> > On Aug 31, 2015, at 4:52 PM, Sharath Kumar <shakumarsoftware at gmail.com <>> wrote:
>>> >
>>> > Hi,
>>> >
>>> > I'm trying to cross-compile for an embedded target and building the latest production build from source but it fails trying to build speex.
>>> >
>>> > I also noticed in the libs directory there is no speex folder, so I had to copy it from some other place.
>>> >
>>> > How do I disable speex from compiling ? is it with --without-speex in the configure script ?
>>> >
>>> > thanks,
>>> > Shaks
>>> > _________________________________________________________________________
>>> 
>>> 
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org <>
>>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> 
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>>> http://www.cluecon.com <http://www.cluecon.com/>
>>> 
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org <>
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> 
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services: 
>>> consulting at freeswitch.org <>
>>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>>> 
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org <http://www.freeswitch.org/>
>>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>>> http://www.cluecon.com <http://www.cluecon.com/>
>>> 
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org <>
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>>> http://www.freeswitch.org <http://www.freeswitch.org/>
>> 
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org <>
>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>> 
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org <http://www.freeswitch.org/>
>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>> http://www.cluecon.com <http://www.cluecon.com/>
>> 
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org <>
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>> http://www.freeswitch.org <http://www.freeswitch.org/>
>> 
>> 
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>> 
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org <http://www.freeswitch.org/>
>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>> http://www.cluecon.com <http://www.cluecon.com/>
>> 
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>> http://www.freeswitch.org <http://www.freeswitch.org/>
>> 
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services: 
>> consulting at freeswitch.org <mailto:consulting at freeswitch.org>
>> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
>> 
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org <http://www.freeswitch.org/>
>> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
>> http://www.cluecon.com <http://www.cluecon.com/>
>> 
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
>> http://www.freeswitch.org <http://www.freeswitch.org/>
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org <mailto:consulting at freeswitch.org>
> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org <http://www.freeswitch.org/>
> http://confluence.freeswitch.org <http://confluence.freeswitch.org/>
> http://www.cluecon.com <http://www.cluecon.com/>
> 
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org <mailto:FreeSWITCH-users at lists.freeswitch.org>
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users>
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users>
> http://www.freeswitch.org <http://www.freeswitch.org/>
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services: 
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150902/1e373cbd/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list