4 Download lastest mingw-get-inst.exe from http://www.mingw.org
5 Run mingw-get-inst.exe. Choose "download lastest catalogues".
6 In the feature list, select:
9 * Mingw developer toolkit
10 Let the installer fetch and install everything.
14 mingw-get install msys-zip
15 mingw-get install msys-unzip
16 mingw-get install msys-wget
17 mingw-get install msys-libopenssl
19 mkdir -p /opt/perl/bin
20 cp /bin/perl /opt/perl/bin/.
24 wget http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
26 Download lastest linphone-deps-win32 zip from
27 http://download.savannah.gnu.org/releases-noredirect/linphone/misc
30 Download lastest gtk+ win32 bundle from http://www.gtk.org
32 Install all these three package in /:
35 unzip ~/intltool_0.40.4-1_win32.zip
36 unzip <path to gtk bundle zip>
37 unzip <path to linphone-deps>
39 #Install GTK+ Outcrop theme, the one used by linphone for distribution.
41 wget http://art.gnome.org/download/themes/gtk2/1122/GTK2-Outcrop.tar.gz
42 tar -xvzf GTK2-Outcrop.tar.gz
44 #Remove the special stdint.h and inttypes.h included in linphone-deps: it is for MSVC only.
45 #Mingw will use the one in /mingw/include
46 rm /include/stdint.h /include/inttypes.h
48 #Remove libgcc specific libraries, only needed for MSVC:
49 rm /lib/libgcc.a /lib/libmingw32.a /lib/libmingwex.a
51 #To get the translations working, remove from C:/MinGW/lib :
52 libintl.a libintl.la libintl.dll.a
54 * Download and install Inno Setup Compiler (required only if you run 'make setup.exe'). Add it to your windows Path environment variable.
56 Get Linphone source code
57 ************************
59 Install msys-git from (http://code.google.com/p/msysgit/). During installation you are asked to make a choice about how line endings are treated by git.
60 Choose "Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY IMPORTANT. OTHERS BREAK AUTOMAKE.
62 It is recommended that you create a directory somewhere with a path without any spaces or ~ characters, for example
64 Within msys-git bash, do
66 git clone git://git.savannah.nongnu.org/linphone.git --recursive
72 WARNING: During the build, windows might slow down suddenly. Using ctl+alt+del to start the windows system monitor,
73 you might see a process 'LVpSRV.exe' or something like this that eats 90% of cpu.
74 Kill it. Don't know what it is, but once killed, windows runs normally.
76 #run autogen.sh after a git checkout or update
78 ./configure --prefix=/opt/linphone --enable-shared --disable-static
80 #will install to /opt/linphone, required for compilation of plugins.
82 #make a binary zip of linphone
84 #additionally you can make binary installer if you have Inno Setup 5 installed in its default path
86 #now you're done, you have a fresh linphone windows installer in the current directory.
89 cd mediastreamer2/plugins/msx264
91 PKG_CONFIG_PATH=/opt/linphone/lib/pkgconfig ./configure --prefix=/opt/linphone --enable-shared --disable-static
92 #make a binary zip of this plugin
97 #the buddylookup plugin enables lookup of buddies in a remote database using xml-rpc over http/https.
98 cd coreapi/plugins/buddylookup
100 PKG_CONFIG_PATH=/opt/linphone/lib/pkgconfig ./configure --prefix=/opt/linphone --enable-shared --disable-static
102 #make a binary zip of this plugin
106 ******************************************************
107 * Notes about linphone-deps generation *
108 ******************************************************
110 Linphone-deps is a collection of linphone dependencies, that are for some of them difficult
111 to find as windows binaries.
112 These notes are useful if you want to upgrade part of the software that is included in the
113 linphone-deps packages.
115 List of software included in linphone-deps:
117 libeXosip2 (compiled)
118 libavcodec, libavutil, libavformat, libavdevice, libswscale (compiled, all these from ffmpeg)
119 libtheora (from the web)
120 libx264 (compiled from the version distributed from linphone's web site)
121 libogg (from the web)
122 libspeex, libspeexdsp (compiled, statically to workaround a dll-related crash)
123 libgnutls (from the web)
124 libgsm (from the web)
129 For every package compiled that goes into linphone-deps, .la files (libtool files) must be removed to avoid libtool errors.
130 When running "make install DESTDIR=<somepath>", somepath must be absolute and should not contain any ~ or space.
133 ./configure --enable-shared --disable-static --enable-memalign-hack --extra-cflags="-fno-common" --enable-gpl && make
134 make install DESTDIR=/home/<myuser>/ffmpeg-install
135 Copy to ~/ffmpeg-install/usr/local/* to linphone-deps/.
136 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.
138 - building libxml2: the binaries found on the internet are generated with MSVC++, and for obscure reason they are not suitable for building libsoup
139 (that requires libxml2).
140 ./configure --enable-shared --disable-static && make && make install DESTDIR=/home/<myuser>/libxml2-install
141 copy ~/libxml2-install/usr/local/* into linphone-deps/.
145 * download yasm normal version windows executable from yasm project page:
146 http://www.tortall.net/projects/yasm/wiki/Download
147 copy it as /usr/local/bin/yasm.exe
149 cd into x264/ dir then run:
150 ./configure --enable-pic
152 make install DESTDIR=/home/<myuser>/x264-install
153 then copy the content of ~/x264-install/usr/local/ into linphone-deps/.
155 - libgnutls (required for libsoup https support)
156 - download binary zip from http://josefsson.org/gnutls4win.org
157 - add to linphone-deps
159 - building libsoup (only required for buddylookup plugin)
160 - download source from gnome ftp (warning: at the time of the writing only version 2.26.x can compile with the
161 glib version supplied in the gtk-bundle, 2.27 requires a new version of glib)
162 - uncompress libgnutls zip in /
163 - make sure you have libxml2 installed in /
164 - apply a bugfix patch (fix gnutls support on windows, completely broken otherwise). The patch
165 is in linphone-deps/src, apply it this way:
168 patch -p0 < libsoup-gnutls-bugfix.patch
170 ./configure --prefix=/usr --enable-shared --disable-static
173 make install DESTDIR=/home/<myuser>/libsoup-install
174 - copy ~/libsoup-install/usr/* into linphone-deps/
176 Once you have everything in linphone-deps, remove .la files from lib: