Commit d133ebd5 authored by johan's avatar johan

Merge remote-tracking branch 'linphone-public/master' into dev_lime

parents e6209d90 65734e81
......@@ -22,7 +22,7 @@
<folderInfo id="0.2079208171." name="/" resourcePath="">
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.2084203071" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.ELF" id="org.eclipse.cdt.build.core.prefbase.toolchain.2084203071.81924294" name=""/>
<builder arguments="-j4 CFLAGS=&quot;-g -Wall -Werror -Qunused-arguments&quot; CXXFLAGS=&quot;-g&quot;" autoBuildTarget="all" cleanBuildTarget="clean" command="make" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="org.eclipse.cdt.build.core.settings.default.builder.731584538" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="false" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<builder arguments="-j4" autoBuildTarget="all" cleanBuildTarget="clean" command="make" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="org.eclipse.cdt.build.core.settings.default.builder.731584538" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="false" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1252970003" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
<tool id="org.eclipse.cdt.build.core.settings.holder.1371414073" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.306286573" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
......
......@@ -78,3 +78,7 @@ Linphone.app
*.dmg
tester/linphone*.log
tester/linphone_log.txt
.tx/linphone-gtk.linphonedesktopin/
po/linphone.pot
.tx/linphone-gtk.audio-assistantdesktopin/
tester/linphone_log.gz.txt
[main]
host = https://www.transifex.com
minimum_perc = 1
[linphone-gtk.linphonepot]
file_filter = po/<lang>.po
source_file = po/linphone.pot
source_lang = en
type = PO
[linphone-gtk.linphonedesktopin]
source_file = share/linphone.desktop.in
source_lang = en
type = DESKTOP
[linphone-gtk.audio-assistantdesktopin]
source_file = share/audio-assistant.desktop.in
source_lang = en
type = DESKTOP
......@@ -30,6 +30,8 @@ set(LINPHONE_MICRO_VERSION "0")
set(LINPHONE_VERSION "${LINPHONE_MAJOR_VERSION}.${LINPHONE_MINOR_VERSION}.${LINPHONE_MICRO_VERSION}")
set(LINPHONE_SO_VERSION "6")
set(LINPHONE_ALL_LANGS "cs de es fr he hu it ja nb_NO nl pl pt_BR ru sr sv zh_CN zh_TW")
include(CMakeDependentOption)
......@@ -39,9 +41,9 @@ option(ENABLE_DATE "Use build date in internal version number." NO)
option(ENABLE_GTK_UI "Turn on or off compilation of gtk interface." YES)
option(ENABLE_LDAP "Enable LDAP support." NO)
option(ENABLE_MSG_STORAGE "Turn on compilation of message storage." YES)
option(ENABLE_NOTIFY "Enable libnotify support." YES)
cmake_dependent_option(ENABLE_NOTIFY "Enable libnotify support." YES "ENABLE_GTK_UI" NO)
option(ENABLE_RELATIVE_PREFIX "Find resources relatively to the installation directory." NO)
option(ENABLE_TOOLS "Turn on or off compilation of console interface" YES)
option(ENABLE_TOOLS "Turn on or off compilation of tools." YES)
option(ENABLE_TUNNEL "Turn on compilation of tunnel support." NO)
option(ENABLE_TUTORIALS "Enable compilation of tutorials." YES)
option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES)
......@@ -50,24 +52,65 @@ option(ENABLE_VIDEO "Build with video support." YES)
cmake_dependent_option(ENABLE_ASSISTANT "Turn on assistant compiling." YES "ENABLE_GTK_UI" NO)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_PREFIX_PATH}/share/cmake/Modules)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_PREFIX_PATH}/share/cmake/Modules")
include(CheckIncludeFile)
include(CheckSymbolExists)
if(MSVC)
list(APPEND CMAKE_REQUIRED_INCLUDES ${CMAKE_PREFIX_PATH}/include/MSVC)
list(APPEND CMAKE_REQUIRED_INCLUDES "${CMAKE_PREFIX_PATH}/include/MSVC")
endif()
find_package(BelleSIP REQUIRED)
find_package(MS2 REQUIRED)
find_package(XML2 REQUIRED)
if(ENABLE_UNIT_TESTS)
find_package(CUnit)
if(CUNIT_FOUND)
cmake_push_check_state(RESET)
list(APPEND CMAKE_REQUIRED_INCLUDES ${CUNIT_INCLUDE_DIRS})
list(APPEND CMAKE_REQUIRED_LIBRARIES ${CUNIT_LIBRARIES})
check_symbol_exists("CU_get_suite" "CUnit/CUnit.h" HAVE_CU_GET_SUITE)
check_symbol_exists("CU_curses_run_tests" "CUnit/CUnit.h" HAVE_CU_CURSES)
cmake_pop_check_state()
else()
message(WARNING "Could not find the cunit library!")
set(ENABLE_UNIT_TESTS OFF CACHE BOOL "Enable compilation of unit tests." FORCE)
endif()
endif()
if(ENABLE_TUNNEL)
find_package(Tunnel)
if(NOT TUNNEL_FOUND)
message(WARNING "Could not find the tunnel library!")
set(ENABLE_TUNNEL OFF CACHE BOOL "Enable tunnel support" FORCE)
set(ENABLE_TUNNEL OFF CACHE BOOL "Enable tunnel support." FORCE)
endif()
endif()
if(ENABLE_MSG_STORAGE)
find_package(Sqlite3)
if(NOT SQLITE3_FOUND)
message(FATAL_ERROR "Could not find the sqlite3 library!")
endif()
endif()
if(ENABLE_NOTIFY)
find_package(Notify)
if(NOTIFY_FOUND)
set(HAVE_NOTIFY4 1)
else()
message(WARNING "Could not find the notify library!")
set(ENABLE_NOTIFY OFF CACHE BOOL "Enable libnotify support." FORCE)
endif()
endif()
if(ENABLE_ASSISTANT)
find_package(Soup)
if(SOUP_FOUND)
set(BUILD_WIZARD 1)
else()
message(WARNING "Could not find the soup library!")
set(ENABLE_ASSISTANT OFF CACHE BOOL "Turn on assistant compiling." FORCE)
endif()
endif()
find_package(Gettext)
include_directories(
......@@ -79,15 +122,44 @@ include_directories(
${MS2_INCLUDE_DIRS}
${XML2_INCLUDE_DIRS}
)
if(SQLITE3_FOUND)
include_directories(${SQLITE3_INCLUDE_DIRS})
add_definitions("-DMSG_STORAGE_ENABLED")
endif()
if(ENABLE_TUNNEL)
include_directories(${TUNNEL_INCLUDE_DIRS})
endif()
if(ENABLE_ASSISTANT)
include_directories(${SOUP_INCLUDE_DIRS})
endif()
if(MSVC)
include_directories(${CMAKE_PREFIX_PATH}/include/MSVC)
endif()
add_definitions("-DIN_LINPHONE")
if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wuninitialized -Wdeclaration-after-statement -fno-strict-aliasing -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Werror")
if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -Wno-array-bounds")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -Wno-array-bounds")
endif()
if(APPLE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unknown-warning-option -Wno-tautological-compare -Wno-unused-function")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unknown-warning-option -Wno-tautological-compare -Wno-unused-function")
endif()
endif()
set(GETTEXT_PACKAGE "linphone")
if(ENABLE_RELATIVE_PREFIX)
set(LINPHONE_DATA_DIR ".")
else()
......@@ -97,19 +169,36 @@ set(LINPHONE_PLUGINS_DIR "${LINPHONE_DATA_DIR}/lib/liblinphone/plugins")
set(PACKAGE_LOCALE_DIR "${LINPHONE_DATA_DIR}/share/locale")
set(PACKAGE_DATA_DIR "${LINPHONE_DATA_DIR}/share")
set(PACKAGE_SOUND_DIR "${LINPHONE_DATA_DIR}/share/sounds/linphone")
set(PACKAGE_RING_DIR "${PACKAGE_SOUND_DIR}/rings")
set(PACKAGE_FREEDESKTOP_DIR "${PACKAGE_DATA_DIR}/applications")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
add_definitions(-DHAVE_CONFIG_H)
if(ENABLE_VIDEO)
add_definitions(-DVIDEO_ENABLED)
endif()
add_subdirectory(coreapi)
add_subdirectory(share)
if(ENABLE_GTK_UI)
add_subdirectory(gtk)
add_subdirectory(pixmaps)
add_subdirectory(po)
endif()
if(ENABLE_TOOLS)
add_subdirectory(tools)
endif()
if(ENABLE_UNIT_TESTS)
add_subdirectory(tester)
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLinphone.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLinphone.cmake)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/FindLinphone.cmake
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLinphone.cmake
DESTINATION share/cmake/Modules
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
......@@ -7,6 +7,8 @@ SUBDIRS = build m4 pixmaps po @ORTP_DIR@ @MS2_DIR@ \
coreapi console gtk share scripts tools tester include
GITVERSION=`cd $(top_srcdir) && git describe --always || echo $(VERSION)`
ACLOCAL_FLAGS=-I$(top_srcdir)/m4
......@@ -20,11 +22,11 @@ OPTIONAL_SOUNDS=\
INSTALLDIR=$(abs_top_builddir)/linphone-install
INSTALLDIR_WITH_PREFIX=$(INSTALLDIR)/$(prefix)
ZIPFILE=$(abs_top_builddir)/$(PACKAGE)-win32-$(VERSION).zip
ZIPFILE=$(abs_top_builddir)/$(PACKAGE)-win32-$(GITVERSION).zip
ZIP_EXCLUDED=include lib \
$(OPTIONAL_SOUNDS)
SDK_ZIPFILE=$(abs_top_builddir)/lib$(PACKAGE)-win32-$(VERSION).zip
SDK_ZIPFILE=$(abs_top_builddir)/lib$(PACKAGE)-win32-sdk-$(GITVERSION).zip
SDK_EXCLUDED= \
bin/linphone.exe \
lib/*.la \
......@@ -166,6 +168,15 @@ filelist: zip
fi \
done
### LOCALIZATION
pull-transifex:
tx pull -af
$(MAKE) -C po update-po
push-transifex:
tx push -s -t -f --no-interactive
### WINDOWS
......@@ -173,7 +184,7 @@ setup.exe: filelist
cp $(ISS_SCRIPT) $(INSTALLDIR_WITH_PREFIX)/.
cd $(INSTALLDIR_WITH_PREFIX) && \
$(ISCC) $(ISS_SCRIPT)
mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-$(VERSION)-setup.exe
mv $(INSTALLDIR_WITH_PREFIX)/Output/setup.exe $(PACKAGE)-setup-$(GITVERSION).exe
rm -rf $(INSTALLDIR_WITH_PREFIX)/Output
rm -f $(INSTALLDIR_WITH_PREFIX)/$(PACKAGE_WIN32_FILELIST)
rm -f $(INSTALLDIR_WITH_PREFIX)/$(ISS_SCRIPT)
......@@ -201,11 +212,12 @@ Portfile-devel: $(top_srcdir)/scripts/Portfile-devel.tmpl dist
### MAC
MACAPPNAME=Linphone.app
MACAPPZIP=$(PACKAGE)-$(VERSION).app.zip
MACAPPDMG=$(PACKAGE)-$(VERSION).dmg
MACAPPZIP=$(PACKAGE)-$(GITVERSION).app.zip
MACAPPDMG=$(PACKAGE)-$(GITVERSION).dmg
BUNDLEPREFIX=./
BUNDLEDIR=$(BUNDLEPREFIX)$(MACAPPNAME)
#a path prefix where additional libs can be cherry-picked by the bundler.
LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX=/usr/local
bundle:
rm -rf $(INSTALLDIR)
......@@ -215,6 +227,7 @@ bundle:
LINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
LIBLINPHONE_INSTALL_PREFIX=$(INSTALLDIR_WITH_PREFIX) \
MS2_PLUGINS_INSTALL_PREFIX=$(prefix) \
LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX=$(LINPHONE_ADDITIONAL_DEPENDENCIES_PREFIX) \
gtk-mac-bundler $(PACKAGE_BUNDLE_FILE)
printf "[Pango]\nModuleFiles=./etc/pango/pango.modules\n" \
> $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc
......
linphone-3.8.0 -- Date to be defined
Application level improvements:
* The video window has now controls in order to switch fullscreen mode and terminate call.
* The out of call video preview feature (to test camera) is moved into the settings and is no longer linked to the in-call video preview feature.
* Add an assistant to help users to set audio/video parameters
* Some ergonomics improvments (checkbox to set random port for UDP and TCP, ...)
* Lots of updated translations. Arabic translation has been added
* Experimental feature: play an MKV file by drag-and-dropping it on the video call window
Liblinphone level improvements:
* Support for RTP/AVPF (RFC4585) for video streams, allowing fast transmission error recovery with VP8 codec only.
* API enhancements, most objects can be ref-counted.
* Add some getter funtctions to the call information API
* Add a function in the API to accept early-media calls
* Add a function to set the SIP transport timeout
* Add a function to change adaptive rate algorithm at runtime
* Add support of file transfer
* Call video recording feature, in mkv format (H264 streams only for the moment)
* Call playing feature: play an MKV file and send the audio/video stream through a call
* Local player API. Play WAV and MKV file and display video on a specified window display
* A wrapper for Python has been made
* Support of Wake Locks on Android
* Support of multicast IP addresses
* Support of incoming UPDATEs within dialog (RFC3311)
* Support of SRTP by using packages from GNU/Linux distributions
linphone-3.7.0 -- February 20th, 2014
Application level improvements:
* It is now possible to configure multiple proxy accounts with different transports (UDP, TCP, TLS)
......
......@@ -39,12 +39,7 @@ libglew1.6-dev libv4l-dev libxml2-dev
+ for optional library
$ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev \
libsoup2.4-dev libsqlite3-dev libupnp4-dev
+ Install srtp (optional) for call encryption :
$ git clone git://git.linphone.org/srtp.git
$ cd srtp && autoconf && ./configure && make
$ sudo make install
libsoup2.4-dev libsqlite3-dev libupnp4-dev libsrtp-dev
+ Install zrtp (optional), for unbreakable call encryption
$ git clone git://git.linphone.org:bzrtp
......
# Compiling Linphone on MacOS X
# Linphone on MacOS X
## Dependencies
## Build prerequisite
* Xcode (download from apple or using appstore application)
* Java SE
* [Java SE](http://www.oracle.com/technetwork/java/javase/downloads/index.html) or openJDK
This is required to generate a C sourcefile from SIP grammar using [antlr3](http://www.antlr3.org/) generator.
* [HomeBrew](http://brew.sh) or [Macports](http://www.macports.org/).
### Multiple MacOS version support
### Dependencies
#### Using MacPorts
##### Multiple MacOS version support
In order to enable generation of bundle for multiple MacOS version and 32 bit processors, it is recommended to:
......@@ -18,17 +23,16 @@ In order to enable generation of bundle for multiple MacOS version and 32 bit pr
> +universal
### Build time dependencies
#### Using MacPorts
##### Linphone library (liblinphone)
* Linphone core dependencies
sudo port install automake autoconf libtool intltool wget cunit \
sudo port install automake autoconf libtool pkgconfig intltool wget cunit \
antlr3 speex libvpx readline sqlite3 libsoup openldap libupnp \
ffmpeg-devel -gpl2
* UI dependencies: install `GTK`. It is recommended to use the `quartz` backend for better integration.
##### Linphone UI (GTK version)
Install `GTK`. It is recommended to use the `quartz` backend for better integration.
sudo port install gtk2 +quartz +no_x11
sudo port install gtk-osx-application -python27
......@@ -36,24 +40,21 @@ In order to enable generation of bundle for multiple MacOS version and 32 bit pr
#### Using HomeBrew
brew install automake intltool libtool pkg-config coreutils \
yasm nasm wget imagemagick gettext gtk+ speex ffmpeg pygtk
brew link gettext --force
# readline is required from linphonec.c otherwise compilation will fail
brew link readline --force
##### Linphone library (liblinphone)
# 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
brew tap Gui13/linphone
brew install intltool libtool wget pkg-config automake libantlr3.4c \
antlr3.2 gettext speex ffmpeg readline libvpx opus
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
brew link --force gettext
brew tap marekjelen/gtk
brew install gtk+-quartz
##### Linphone UI (GTK version)
# gtk-mac-integration is not available in main repository or Brew yet.
wget https://gist.github.com/Gui13/cdcad37faa6b8ffa0588/raw/bf2277d45e261ad48ae1344c4c97f2684974ed87/gtk-mac-integration.rb
mv gtk-mac-integration.rb /usr/local/Library/Formula/
brew install gtk-mac-integration
brew install cairo --without-x11
brew install gtk+ --without-x11
brew install gettext gtk-mac-integration libsoup hicolor-icon-theme
#readline is required from linphonec.c otherwise compilation will fail
brew link readline --force
### Building Linphone
......@@ -67,7 +68,7 @@ The next pieces need to be compiled manually.
export CXXFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5"
export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5 -Wl,-headerpad_max_install_names -Wl,-read_only_relocs -Wl,suppress"
* Install libantlr3c (library used by belle-sip for parsing)
* (MacPorts only) Install libantlr3c (library used by belle-sip for parsing)
git clone -b linphone git://git.linphone.org/antlr3.git
cd antlr3/runtime/C
......@@ -121,14 +122,12 @@ The libvpx build isn't able to produce dual architecture files. To workaround th
If you got the source code from git, run `./autogen.sh` first.
Then or otherwise, :
# HomeBrew
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --prefix=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict --with-readline=/usr/local && make
# MacPorts
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --prefix=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict --with-readline=/opt/local && make
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --prefix=/opt/local --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict && make
* Install on the system
sudo make install
You are done.
### Generate portable bundle
......@@ -138,7 +137,7 @@ If you want to generate a portable bundle, then install `gtk-mac-bundler`:
git clone https://github.com/jralls/gtk-mac-bundler.git
cd gtk-mac-bundler && make install
export PATH=$PATH:~/.local/bin
#make this dummy charset.alias file for the bundler to be happy:
# make this dummy charset.alias file for the bundler to be happy:
sudo touch /opt/local/lib/charset.alias
The bundler file in `build/MacOS/linphone.bundle` expects some plugins to be installed in `/opt/local/lib/mediastreamer/plugins`.
......@@ -148,6 +147,15 @@ If you don't need plugins, remove or comment out this line from the bundler file
${prefix:ms2plugins}/lib/mediastreamer/plugins/*.*.so
</binary>
If using HomeBrew, this is not working yet. However you will at least need to:
brew install shared-mime-info glib-networking hicolor-icon-theme
update-mime-database /usr/local/share/mime
And modify also:
<prefix name="default">/usr/local</prefix>
Then run, inside Linphone source tree configure as told before but with `--enable-relativeprefix` appended.
make && make bundle
......
......@@ -29,7 +29,8 @@ Download lastest linphone-deps-win32 zip from
http://download.savannah.gnu.org/releases-noredirect/linphone/misc
using your browser.
Download gtk+-2.24.10 win32 _bundle_ from http://www.gtk.org, direct link: http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
Download gtk+-2.24.10 win32 _bundle_ from http://www.gtk.org, direct link:
http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip
Install all these three package in /:
......@@ -46,26 +47,35 @@ tar -xvzf GTK2-Outcrop.tar.gz
#To get the translations working, remove from C:/MinGW/lib :
libintl.a libintl.la libintl.dll.a
* Download and install Inno Setup Compiler (required only if you run 'make setup.exe'). Add it to your windows Path environment variable.
* Download and install Inno Setup Compiler (required only if you run
'make setup.exe'). Add it to your windows Path environment variable.
* Install msys-git from (http://msysgit.github.io/). During installation you are asked to make a choice about how line endings are treated by git. Choose "Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY IMPORTANT. OTHERS BREAK AUTOMAKE.
* Install msys-git from (http://msysgit.github.io/). During installation you
are asked to make a choice about how line endings are treated by git. Choose
"Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY
IMPORTANT. OTHERS BREAK AUTOMAKE.
General rules for compilation
*****************************
- It is recommended that you create a directory somewhere with a path without any spaces or ~ characters, for example c:\sources\.
This is the place where source code must be compiled.
- git commands (to retrieve source code) must be performed within msys-git terminal.
- all other commands (configure, autogen.sh, make) must be done within the mingw shell (msys).
In both msys and msys-git windows, change into the directory you created for sources:
cd /c/sources
- make sure pkg-config works by adding this env variable to your terminal:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
* It is recommended that you create a directory somewhere with a path without
any spaces or ~ characters, for example c:\sources\. This is the place where
source code must be compiled.
* git commands (to retrieve source code) must be performed within msys-git
terminal.
* all other commands (configure, autogen.sh, make) must be done within the
mingw shell (msys). In both msys and msys-git windows, change into the
directory you created for sources:
cd /c/sources
* make sure pkg-config works by adding this env variable to your terminal:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
Building belle-sip
******************
* make sure that java version 1.6 is available in the PATH. java-1.7 will not work with antlr generator.
* make sure that java version 1.6 is available in the PATH. java-1.7 will
not work with antlr generator.
* download the sources with msys-git shell using the following command:
$ git clone git://git.linphone.org/belle-sip.git
* compile and install
......@@ -80,11 +90,12 @@ Building Linphone
$ git clone git://git.linphone.org/linphone.git --recursive
* compile
#always run autogen.sh after a git checkout or update
#always run autogen.sh after a git checkout or update
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-shared --disable-static
#note: in order to use the tunnel (commercial extension), append --enable-tunnel to the configure line above.
#note: in order to use the tunnel (commercial extension), append
#--enable-tunnel to the configure line above.
$ make
$ make install
......@@ -92,15 +103,18 @@ Building Linphone
#Option: make a portable binary zip of linphone
$ make zip
#additionally you can make binary installer if you have Inno Setup 5 installed in its default path
#additionally you can make binary installer if you have Inno Setup 5
installed in its default path
$ make setup.exe
#now you're done, you have a fresh linphone windows installer in the current directory.
#now you're done, you have a fresh linphone windows installer in the
current directory.
Building plugins (optional)
***************************
This the example for msx264 (H264 plugin), the same applies for other linphone plugins.
This the example for msx264 (H264 plugin), the same applies for other
linphone plugins.
$ git clone git://git.linphone.org/msx264.git
$ cd msx264
$ ./autogen.sh
......@@ -115,17 +129,17 @@ Building plugins (optional)
* Notes about linphone-deps generation *
******************************************************
Linphone-deps is a collection of linphone dependencies, that are for some of them difficult
to find as windows binaries.
These notes are useful if you want to upgrade part of the software that is included in the
linphone-deps packages.
Linphone-deps is a collection of linphone dependencies, that are for some of
them difficult to find as windows binaries. These notes are useful if you want
to upgrade part of the software that is included in the linphone-deps packages.
List of software included in linphone-deps:
antlr3c (compiled)
bzrtp (compiled)
polarssl (compiled
libsrtp (compiled)
libavcodec, libavutil, libavformat, libavdevice, libswscale (compiled, all these from ffmpeg)
libavcodec, libavutil, libavformat, libavdevice, libswscale (compiled, all
these from ffmpeg)
libtheora (from the web)
libx264 (compiled from the version distributed from linphone's web site)
libogg (from the web)
......@@ -137,8 +151,10 @@ libsoup (compiled)
libsqlite3 (compiled)
Remarks:
For every package compiled that goes into linphone-deps, .la files (libtool files) must be removed to avoid libtool errors.
When running "make install DESTDIR=<somepath>", somepath must be absolute and should not contain any ~ or space.
For every package compiled that goes into linphone-deps, .la files (libtool
files) must be removed to avoid libtool errors. When running "make install
DESTDIR=<somepath>", somepath must be absolute and should not contain any ~ or
space.
- building antlr3c
* download the sources with:
......@@ -192,9 +208,12 @@ When running "make install DESTDIR=<somepath>", somepath must be absolute and sh
./configure --enable-shared --disable-static --enable-memalign-hack --extra-cflags="-fno-common" --enable-gpl && make
make install DESTDIR=/home/<myuser>/ffmpeg-install
Copy to ~/ffmpeg-install/usr/local/* to linphone-deps/.
Copy also all *.dll.a files from the build tree to lib/ directort of linphone-deps. These are the implibs necessary to link a program against the dlls.
Copy also all *.dll.a files from the build tree to lib/ directort of
linphone-deps. These are the implibs necessary to link a program against the
dlls.
- building libxml2: the binaries found on the internet are generated with MSVC++, and for obscure reason they are not suitable for building libsoup
- building libxml2: the binaries found on the internet are generated with
MSVC++, and for obscure reason they are not suitable for building libsoup
(that requires libxml2).
./configure --enable-shared --disable-static && make && make install DESTDIR=/home/<myuser>/libxml2-install
copy ~/libxml2-install/usr/local/* into linphone-deps/.
......@@ -217,12 +236,14 @@ When running "make install DESTDIR=<somepath>", somepath must be absolute and sh
- add to linphone-deps
- building libsoup (only required for buddylookup plugin)
- download source from gnome ftp (warning: at the time of the writing only version 2.26.x can compile with the
glib version supplied in the gtk-bundle, 2.27 requires a new version of glib)
- download source from gnome ftp (warning: at the time of the writing
only version 2.26.x can compile with the glib version supplied in the
gtk-bundle, 2.27 requires a new version of glib)
- uncompress libgnutls zip in /
- make sure you have libxml2 installed in /
- apply a bugfix patch (fix gnutls support on windows, completely broken otherwise). The patch
is in linphone-deps/src, apply it this way:
- apply a bugfix patch (fix gnutls support on windows, completely
broken otherwise). The patch is in linphone-deps/src, apply it this
way:
cd libsoup-2.26.*
cd libsoup
patch -p0 < libsoup-gnutls-bugfix.patch
......
......@@ -3,7 +3,7 @@ hot stuff:
* ice support
* run a user given command upon incoming calls
* SIP/TLS and SRTP
* SIP/TLS
low priority:
-------------
......
......@@ -33,6 +33,11 @@ fi
INTLTOOLIZE=$(which intltoolize)
#workaround for mingw bug in intltoolize script.
if test "$INTLTOOLIZE" = "/bin/intltoolize" ; then
INTLTOOLIZE=/usr/bin/intltoolize
fi
echo "Generating build scripts in linphone..."
set -x
$LIBTOOLIZE --copy --force
......
......@@ -26,51 +26,53 @@ include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
linphonecore.c \
misc.c \
enum.c \
presence.c \
proxy.c \
friend.c \
authentication.c \
lpconfig.c \
chat.c \
sipsetup.c \
siplogin.c \
address.c \
linphonecore_jni.cc \
authentication.c \
bellesip_sal/sal_address_impl.c \
bellesip_sal/sal_impl.c \
bellesip_sal/sal_op_call.c \
bellesip_sal/sal_op_call_transfer.c \
bellesip_sal/sal_op_events.c \
bellesip_sal/sal_op_impl.c \
bellesip_sal/sal_op_info.c \
bellesip_sal/sal_op_message.c \
bellesip_sal/sal_op_presence.c \
bellesip_sal/sal_op_registration.c \
bellesip_sal/sal_op_publish.c \
bellesip_sal/sal_op_info.c \
bellesip_sal/sal_op_events.c \
bellesip_sal/sal_op_registration.c \
bellesip_sal/sal_sdp.c \
sal.c \
offeranswer.c \
buffer.c \
callbacks.c \
linphonecall.c \
call_log.c \
call_params.c \
chat.c \
conference.c \
content.c \