Git Product home page Git Product logo

linphone-xmpp's Introduction

Linphone

BUILD PREQUISITES

Linphone for iPhone depends on liblinphone SDK. This SDK is generated from makefiles and shell scripts.

You must first install both Xcode with iPhone OS SDK and HomeBrew or MacPorts for these scripts to work.

Install dependencies

  • Using HomeBrew:
brew install automake intltool libtool pkg-config coreutils yasm nasm wget imagemagick
# then you have to install antlr3 from a tap.
wget https://gist.githubusercontent.com/Gui13/f5cf103f50d34c28c7be/raw/f50242f5e0c3a6d25ed7fca1462bce3a7b738971/antlr3.rb
mv antlr3.rb /usr/local/Library/Formula/
brew install antlr3
  • Using MacPorts:
sudo port install coreutils automake autoconf libtool intltool wget pkgconfig cmake gmake yasm nasm grep doxygen ImageMagick optipng antlr3

System linking

  • For this part, we assume that LOCAL_BIN_DIR is set as following depending on which tool you use:

For MacPorts: LOCAL_BIN_DIR=/opt/local/bin

For HomeBrew: LOCAL_BIN_DIR=/usr/local/bin

  • Modify your PATH so that the tools are taken in place of the versions brought by Apple in /usr/bin. Otherwise the build will fail with obscure errors:

export PATH=$LOCAL_BIN_DIR:$PATH

wget --no-check-certificate https://raw.github.com/yuvi/gas-preprocessor/master/gas-preprocessor.pl
chmod +x gas-preprocessor.pl
sudo mv gas-preprocessor.pl $LOCAL_BIN_DIR
  • Link libtoolize to glibtoolize

sudo ln -s $LOCAL_BIN_DIR/glibtoolize $LOCAL_BIN_DIR/libtoolize

  • Link host's strings to simulator SDK

sudo ln -s /usr/bin/strings /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/strings

BUILDING THE SDK

  • GPL third parties versus non GPL third parties

This SDK can be generated in 2 flavors. First is with GPL third parties, it means liblinphone includes GPL third parties like FFMPEG or X264. If you choose this flavor, your final application must comply with GPL in any case. This is the default mode.

To generate the liblinphone multi arch sdk in GPL mode, do:

cd submodules/build && make all

ALTERNATIVELY, you can force liblinphone to use only non GPL code except for liblinphone, mediastreamer2, oRTP, belle-sip. If you choose this flavor, your final application is still subject to GPL except if you have a commercial license for liblinphone, mediastreamer2, oRTP, belle-sip.

To generate the liblinphone multi arch sdk in non GPL mode, do:

cd submodules/build && make all enable_gpl_third_parties=no

  • For Xcode prior to 4.5, use:

make -f Makefile.xcode4.4

  • ZRTP support

You can disable ZRTP support with:

make all enable_zrtp=no

  • In case you upgrade your IOS SDK, you may force rebuilding everything, by doing

make veryclean && make all

The resulting sdk is in liblinphone-sdk/ root directory.

BUILDING THE APPLICATION

After the SDK is built, just open the Linphone Xcode project with Xcode, and press Run.

  • Note regarding third party components subject to license:

The liblinphone-sdk is compiled with third parties code that are subject to patent license, specially: AMR, SILK G729 and H264 codecs. Linphone controls the embedding of these codecs thanks to the preprocessor macros HAVE_SILK, HAVE_AMR, HAVE_G729 HAVE_OPENH264 positioned in Xcode project. Before embedding these 4 codecs in the final application, make sure to have the right to do so.

Added by otis for modfication.

螢幕快照 2018-03-06 上午10.58.15

螢幕快照 2018-03-06 上午10.59.16

linphone-xmpp's People

Contributors

ortizlin avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.