]> sjero.net Git - linphone/blob - README.macos
Aac-eld add missing header according to RFC3640 3.3.6
[linphone] / README.macos
1 **********************************
2 * Compiling linphone on macos X  *
3 **********************************
4
5 You need:
6  - Xcode (download from apple or using appstore application)
7  - Macports: http://www.macports.org/
8    Download and install macports using its user friendly installer.
9
10 - Install build time dependencies
11  $ sudo port install automake autoconf libtool intltool
12
13 - Install some linphone dependencies with macports
14  $ sudo port install speex
15  $ sudo port install libosip2 # WARNING: currently outdated in macport
16  $ sudo port install libeXosip2 #WARNING: currently outdated in macport
17  $ sudo port install ffmpeg-devel -gpl2
18  $ sudo port install libvpx
19  $ sudo port install readline
20  
21 - Install srtp (optional) for call encryption
22  $ sudo port install srtp
23  If that fails, get from source:
24  $ git clone git://git.linphone.org/srtp.git
25  $ cd srtp && autoconf && ./configure --prefix=/opt/local && make libsrtp.a
26  $ sudo make install
27
28 - Install zrtpcpp (optional), for unbreakable call encryption
29  $ sudo port install cmake
30  $ git clone git://git.linphone.org/zrtpcpp.git
31  $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make
32  $ sudo make install
33
34 - Install gtk. It is recommended to use the quartz backend for better integration.
35  $ sudo port install gtk2 +quartz +no_x11
36  $ sudo port install gtk-osx-application -python27
37  $ sudo port install hicolor-icon-theme
38  
39 - Install additional librairies required for wizard (linphone.org account creation assistant)
40  $ sudo port install libsoup
41  
42  - Install sqlite3 for message storage
43  $ sudo port install sqlite3
44  
45  ** WARNING 2013-03-06 glib-networking is currently broken in macports - generates crashes or hangs when used in a bundle **
46  As a temporary workaround, build a newer version by yourself:
47  $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz
48  $ tar -xvzf glib-networking-2.34.2.tar.xz
49  $ cd glib-networking-2.34.2
50  $ ./configure --prefix=/opt/local --without-ca-certificates && make 
51  $ sudo make install
52
53 - Compile and install the tunnel library (optional, proprietary extension only)
54
55  If you got the source code from git, run ./autogen.sh first
56
57  Then or otherwise, do:
58
59  $ ./configure --prefix=/opt/local && make && sudo make install
60
61
62 - Compile linphone
63
64  If you got the source code from git, run ./autogen.sh first.
65
66  Then or otherwise, do:
67         
68  $ ./configure --prefix=/opt/local --with-readline=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp && make
69
70  Install to /opt/local
71
72  $ sudo make install 
73
74  Done.
75
76 If you want to generate a portable bundle, then install gtk-mac-bundler.
77 Use git:
78  $ git clone https://github.com/jralls/gtk-mac-bundler.git 
79  $ cd gtk-mac-bundler && make install
80  $ export PATH=$PATH:~/.local/bin
81  #make this dummy charset.alias file for the bundler to be happy:
82  $ sudo touch touch /opt/local/lib/charset.alias
83
84 Then run, inside linphone source tree:
85  1. Run configure as told before but with "--enable-relativeprefix" appended.
86  
87  $ make
88  $ make bundle
89
90 The resulting bundle is located in linphone build directory, together with a zipped version.
91
92 For a better appearance, you can install the gtk-quartz-engine (a gtk theme) that make gtk application more similar to other mac applications (but not perfect).
93
94  $ git clone https://github.com/jralls/gtk-quartz-engine.git
95  $ cd gtk-quartz-engine
96  $ autoreconf -i 
97  $ ./configure --prefix=/opt/local && make 
98  $ sudo make install
99
100 Generate a new bundle to have it included.
101
102 libiconv hack 
103 *************
104
105 The Makefile.am rules used to generate the bundle fetch a libiconv.2.dylib from a linphone download page.
106 This library adds some additional symbols so that dependencies requiring the iconv from /usr/lib and the ones requiring from the bundle are both satisfied.
107 In case this library needs to generated, here are the commands:
108  $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
109  $ cd libiconv-1.14
110  $ patch -p1 < ../linphone/build/macos/libiconv-macos.patch
111  $ ./configure --prefix=/opt/local --disable-static 'CFLAGS=-arch i386 -arch x86_64 -mmacosx-version-min=10.5' 'LDFLAGS=-arch i386 -arch x86_64 -mmacosx-version-min=10.5'  CXXFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" && make
112  $ make install DESTDIR=/tmp
113
114 The resulted library can be found in /tmp/opt/local/lib
115
116  
117
118