X-Git-Url: http://sjero.net/git/?p=linphone;a=blobdiff_plain;f=README.macos;h=dd39c2f6e866db181b7ccca97e3df6f6913d0fe8;hp=e9440307e7a00fbcc5e590d18686df90940d2b40;hb=9b7ac9b79375f845edd0e8366e602863a223d2c0;hpb=0f8e893f80a37780daa37a719d3dd1f0975e59fc diff --git a/README.macos b/README.macos index e9440307..dd39c2f6 100644 --- a/README.macos +++ b/README.macos @@ -2,84 +2,117 @@ * Compiling linphone on macos X * ********************************** +You need: + - Xcode (download from apple or using appstore application) + - Macports: http://www.macports.org/ + Download and install macports using its user friendly installer. -You have two options: using gtk-osx framework (http://gtk-osx.sourceforge.net/) which results in a Linphone GTK well integrated into Mac OS -environment. The other option is using MacPort, in which case Linphone will run as an X11 application inside Mac OS. - -At the date of March 25, 2011, no video support is available yet. - - -Compiling using gtk-osx -======================= - -Requirements: -* gtk-osx framework -* xcode (for gcc) -* macport (to retrieve dependencies easily, such as libosip2, libeXosip2, libspeex -* linphone git tree - -Steps: - -- Install gtk-osx jhbuild environment as described at -http://sourceforge.net/apps/trac/gtk-osx/wiki/Build -It will build gtk for osx as well as many dependencies. - -- Install ige-mac-bundler following instructions here (git clone method is preferred): -http://sourceforge.net/apps/trac/gtk-osx/wiki/Bundle +- Install build time dependencies + $ sudo port install automake autoconf libtool intltool - Install some linphone dependencies with macports - $ port install speex-dev - $ port install osip2 - $ port install eXosip2 - -- Install libSDL and ffmpeg from their official git or hg repositories. At this date (2011/05/09) the macports version are too old and buggy. + $ sudo port install speex + $ sudo port install libosip2 # WARNING: currently outdated in macport + $ sudo port install libeXosip2 #WARNING: currently outdated in macport + $ sudo port install ffmpeg-devel -gpl2 + $ sudo port install libvpx + $ sudo port install readline + +- Install srtp (optional) for call encryption + $ sudo port install srtp + If that fails, get from source: + $ git clone git://git.linphone.org/srtp.git + $ cd srtp && autoconf && ./configure --prefix=/opt/local && make libsrtp.a + $ sudo make install + +- Install zrtpcpp (optional), for unbreakable call encryption + $ sudo port install cmake + $ git clone git://git.linphone.org/zrtpcpp.git + $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make + $ sudo make install + +- 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 + $ sudo port install hicolor-icon-theme + +- Install additional librairies required for wizard (linphone.org account creation assistant) + $ sudo port install libsoup + + - Install sqlite3 for message storage + $ sudo port install sqlite3 + + ** WARNING 2013-03-06 glib-networking is currently broken in macports - generates crashes or hangs when used in a bundle ** + As a temporary workaround, build a newer version by yourself: + $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz + $ tar -xvzf glib-networking-2.34.2.tar.xz + $ cd glib-networking-2.34.2 + $ ./configure --prefix=/opt/local --without-ca-certificates && make + $ sudo make install + +- Compile and install the tunnel library (optional, proprietary extension only) + + If you got the source code from git, run ./autogen.sh first + + Then or otherwise, do: + + $ ./configure --prefix=/opt/local && make && sudo make install + + +- Compile linphone + + If you got the source code from git, run ./autogen.sh first. + + Then or otherwise, do: + + $ ./configure --prefix=/opt/local --with-readline=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp && make -- Now you can compile linphone + Install to /opt/local -$ jhbuild shell -$ PKG_CONFIG_PATH=$HOME/gtk/inst/lib/pkgconfig:/opt/local/lib/pkgconfig/ ./configure --disable-static --disable-strict --with-gsm=/opt/local --disable-x11 -#assuming you have gsm installed in /opt/local. However gsm is optional. -$ make + $ sudo make install -- You can generate a bundle using -$ make bundle + Done. -The bundle is generated in ~/Desktop/Linphone and can safely be exported to other places and computers. +If you want to generate a portable bundle, then install gtk-mac-bundler. +Use git: + $ 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: + $ sudo touch touch /opt/local/lib/charset.alias +Then run, inside linphone source tree: + 1. Run configure as told before but with "--enable-relativeprefix" appended. + + $ make + $ make bundle -Compiling using MacPort -======================= +The resulting bundle is located in linphone build directory, together with a zipped version. -This procedure works for audio, video still not fully supported. -It was tested on macos X (leopard) on september 2009. +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). -Requirements: -* xcode (for gcc) -* macport (GNU porting project) -* svn or git checkout'd linphone tree. + $ git clone https://github.com/jralls/gtk-quartz-engine.git + $ cd gtk-quartz-engine + $ autoreconf -i + $ ./configure --prefix=/opt/local && make + $ sudo make install -Steps: -* install with the 'port install' command the following dependencies - - automake - - autoconf - - libtool - - gettext - - intltool - - gtk2 - - speex-dev - - osip2 - - eXosip2 - -* add /opt/local/bin to your PATH by editing (or creating) ~/.profile, logout and login again for changes to take effect +Generate a new bundle to have it included. -* within linphone source directory, run ./autogen.sh -* run - ./configure --prefix=/opt/local --disable-video --with-readline=none && make - (note: we disable readline for linphonec because it appears to hang at this time) -* install to /opt/local - sudo make install +libiconv hack +************* +The Makefile.am rules used to generate the bundle fetch a libiconv.2.dylib from a linphone download page. +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. +In case this library needs to generated, here are the commands: + $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz + $ cd libiconv-1.14 + $ patch -p1 < ../linphone/build/macos/libiconv-macos.patch + $ ./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 + $ make install DESTDIR=/tmp +The resulted library can be found in /tmp/opt/local/lib +