Software to install ******************* * mingw32 (choose candidate to have lastest binaries) * msys run msys as Administrator (right click on the icon, and click 'run as administrator'. * automake*/autoconf*/libtool/perl from msys suplementary tools, uncompress in / * intltool (quicklink: http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip) uncompress in /usr/local * gcc-part-core-4.3 gcc-part-c++-4.3, uncompress in /mingw * download unzip from mingw downloads, uncompress in /mingw * install zip from http://www.info-zip.org/Zip.html#Downloads (quicklink: ftp://ftp.dante.de/tex-archive/tools/zip/info-zip/WIN32/zip232xN.zip), and extract zip.exe to c:\msys\1.0\usr\local\bin * gtk+bundle from http://www.gtk.org , uncompress in /usr/local * libglade and libglade-dev >=2.6.3 from gnome ftp: http://ftp.gnome.org/pub/GNOME/binaries/win32/libglade/2.6/libglade-dev_2.6.3-1_win32.zip http://ftp.gnome.org/pub/GNOME/binaries/win32/libglade/2.6/libglade_2.6.3-1_win32.zip uncompress in /usr/local * download ActiveState perl and run the installer with default options. * download lastest linphone-deps from linphone downloads, misc directory: http://download.savannah.gnu.org/releases-noredirect/linphone/misc/) uncompress in /usr/local Get Linphone source code ************************ Install msys-git from (http://code.google.com/p/msysgit/) git clone git://git.savannah.nongnu.org/linphone.git Building ******** WARNING: During the build, windows might slow down suddenly. Using ctl+alt+del to start the windows system monitor, you might see a process 'LVpSRV.exe' or something like this that eats 90% of cpu. Kill it. Don't know what it is, but once killed, windows runs normally. #use ActiveState perl instead of mingw perl export PERL="/c/Perl/bin/perl" export INTLTOOL_PERL="/c/Perl/bin/perl" #run autogen.sh after a git/svn checkout or update ./autogen.sh ./configure --prefix=/opt/linphone --enable-shared --disable-static --with-osip=/usr/local --with-gsm=/usr/local make #will install to /opt/linphone, useful for compilation of plugins. make install #make a binary zip of linphone make zip #additionally you can make binary installer if you have Inno Setup 5 installed in its default path make setup.exe #build plugins cd mediastreamer2/plugins/msx264 ./autogen.sh PKG_CONFIG_PATH=/opt/linphone/lib/pkgconfig ./configure --prefix=/opt/linphone --enable-shared --disable-static --enable-hacked-x264 make #make a binary zip of this plugin make zip cd coreapi/plugins/buddylookup ./autogen.sh PKG_CONFIG_PATH=/opt/linphone/lib/pkgconfig ./configure --prefix=/opt/linphone --enable-shared --disable-static make #make a binary zip of this plugin make zip ****************************************************** * 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. List of software included in linphone-deps: libosip2 (compiled) libeXosip2 (compiled) 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) libspeex, libspeexdsp (compiled, statically to workaround a dll-related crash) libgnutls (from the web) libgsm (from the web) libxml2 (compiled) libsoup (compiled) - building ffmpeg ./configure --enable-shared --disable-static --enable-memalign-hack --extra-cflags="-fno-common" --enable-gpl && make make install DESTDIR=~/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. - 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=~/libxml2-install copy ~/libxml2-install/usr/local/* into linphone-deps/. - building x264: * Download lastest snapshot the linphone fork of x264 from http://download.savannah.gnu.org/releases/linphone/plugins/sources/ This fork just brings the H264 Nalu size control feature, necessary to make video packet that fits into the network mtu. It will be no longer necessary as soon as x264 official project will accept this patch or a similar one. * download yasm normal version windows executable from yasm project page: http://www.tortall.net/projects/yasm/wiki/Download copy it as /usr/local/bin/yasm.exe uncompress the x264 tarball cd into x264/ dir then run: ./configure --enable-pic make make install DESTDIR=~/x264-install then copy the content of ~/x264-install/usr/local/ into linphone-deps/.