From a2ff0d323993d7b8f9a908b23b541c8a31ac78a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Fri, 24 Feb 2017 15:17:01 +0100 Subject: [PATCH] Update README.md --- README.md | 130 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index cde6c760e..7f37fde9b 100644 --- a/README.md +++ b/README.md @@ -1,91 +1,97 @@ +Linphone +======== + This is Linphone, a free (GPL) video softphone based on the SIP protocol. -# Warning +**WARNING:** Unless you exactly know what you are doing, you should take at look at *linphone-desktop[1]*. -Unless you exactly know what you are doing, you should take at look at [linphone-desktop](https://github.com/BelledonneCommunications/linphone-desktop). -# Otherwise… +Building Linphone +----------------- -## Building Linphone +### Required dependencies -- Install build time dependencies - - libtool - - intltool +* *BcToolbox[2]*: portability layer +* *BelleSIP[3]*: SIP stack +* *Mediastreamer2[4]*: multimedia engine +* libxml2 +* zlib +* libsqlite3: user data storage (disablable) +* libnotify: system notification (GNU/Linux only;disablable) +* libgtk2: graphical interface (disablable) +* gettext and libintl: internationalization support (disablable) -- you need at least: - - belle-sip>=1.3.0 - - speex>=1.2.0 (including libspeexdsp part) - - libxml2 - - bctoolbox - + if you want the gtk/glade interface: - - libgtk >=2.16.0 - + if you want video support: - - libvpx (VP8 codec) - - libavcodec (ffmpeg) - - libswscale (part of ffmpeg too) for better scaling performance - - libxv (x11 video extension) - - libgl1-mesa (OpenGL API -- GLX development files) - - libglew (OpenGL Extension Wrangler library) - - libv4l (Video for linux) - - libx11 (x11) - - theora (optional) - + gsm codec (gsm source package or libgsm-dev or gsm-devel) (optional) - + libreadline (optional: for convenient command line in linphonec) - + libsqlite3 (optional : for a local history of chat messages) - + if you want uPnP support (optional): - - libupnp (version 1.6 branch (not patched with 18-url-upnpstrings.patch)) +### Opitonal dependencies - Here is the command line to get these dependencies installed for Ubuntu && Debian +* *Belcard[5]*: VCard support +* gtkmacintegration: integration with MacOSX menu - $ sudo apt-get install libtool intltool libgtk2.0-dev libspeexdsp-dev \ -libavcodec-dev libswscale-dev libx11-dev libxv-dev libgl1-mesa-dev \ -libglew1.6-dev libv4l-dev libxml2-dev - + for optional library - $ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev \ -libsqlite3-dev libupnp4-dev libsrtp-dev +### Build instructions - + Install zrtp (optional), for unbreakable call encryption - $ git clone git://git.linphone.org/bzrtp.git - $ cd bzrtp && ./autogen.sh && ./configure && make - $ sudo make install + cmake . -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH= + + make + make install -- Compile linphone - $ ./autogen.sh - $ ./configure - $ make && sudo make install - $ sudo ldconfig +### Supported build opitons + +* `CMAKE_INSTALL_PREFIX=` : install prefix +* `CMAKE_PREFIX_PATH=` : column-separated list of prefixes where to search for dependencies +* `ENABLE_SHARED=NO` : do not build the shared library +* `ENABLE_STATIC=NO` : do not build the static library +* `ENABLE_STRICT=NO` : build without strict compilation flags (-Wall -Werror) +* `ENABLE_DOC=NO` : do not generate the reference documentation of liblinphone +* `ENABLE_GTK_UI=NO` : do not build the GTK user interface +* `ENABLE_UNIT_TESTS=NO` : do not build testing binaries +* `ENABLE_VCARD=NO` : disable VCard support +* `ENABLE_SQLITE_STORAGE=NO` : disable SQlite user data storage (message, history, contacts list) +* `ENABLE_TOOLS=NO` : do not build tool binaries +* `ENABLE_NLS=NO` : disable internationalization +* `ENABLE_ASSISTANT=NO` : disable account creation wizard + +### Note for packagers + +Our CMake scripts may automatically add some paths into research paths of generated binaries. +To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON` +while you invoke cmake. -For windows compilation see README.mingw. -For macOS X, see README.macos - - -## Notes for developers +Notes for developers +-------------------- Here is a short description of the content of the source tree. -- oRTP/ is a poweful implementation of the RTP protocol. See the oRTP/README for more details. - It is used by mediastreamer2 to send and receive streams to the network. +- **oRTP/** is a poweful implementation of the RTP protocol. See the oRTP/README for more details. + It is used by mediastreamer2 to send and receive streams to the network. -- mediastreamer2/ is one of the important part of linphone. It is a framework for audio - and video processing. It contains several objects for grabing audio and video and outputing - it (through rtp, to file). - It contains also codec objects to compress audio and video streams. - The mediastream.h files contain routines to easyly setup audio streams. +- **mediastreamer2/** is one of the important part of linphone. It is a framework for audio + and video processing. It contains several objects for grabing audio and video and outputing + it (through rtp, to file). + It contains also codec objects to compress audio and video streams. + The mediastream.h files contain routines to easyly setup audio streams. -- coreapi/ is the central point of linphone, which handles relationship between sip signalisation and media - streaming. It contains an easy to use api to create a sip phone. +- **coreapi/** is the central point of linphone, which handles relationship between sip signalisation and media + streaming. It contains an easy to use api to create a sip phone. -- gtk/ is the directory that contains the gui frontend of linphone. It uses all libraries descibed above. +- **gtk/** is the directory that contains the gui frontend of linphone. It uses all libraries descibed above. -- console/ +- **console/** * linphonec.c is the main file for the console version of linphone. * sipomatic.c / sipomatic.h contains the code for sipomatic, the test program that auto-answer to linphone calls. * shell.c (program name: linphonecsh) is a small utilities to send interactive commands to a running linphonec daemon. -- share/ contains translation, documentation, rings and hello sound files. +- **share/** contains translation, documentation, rings and hello sound files. + +------------------------------ + + +- [1] linphone-desktop: git://git.linphone.org/linphone-desktop.git +- [2] bctoolbox: git://git.linphone.org/bctoolbox.git *or* +- [3] belle-sip: git://git.linphone.org/belle-sip.git *or* +- [4] mediastreamer2: git://git.linphone.org/mediastreamer2.git *or* +- [5] belcard: git://git.linphone.org/belcard.git *or*