Commit 5411a281 authored by Simon Morlat's avatar Simon Morlat

fix and update windows mingw build

parent e8636c81
......@@ -50,14 +50,14 @@ SDK_EXCLUDED= \
GTK_PREFIX=/usr
GTK_THEME=Outcrop
GTK_FILELIST=gtk+-2.18.5.filelist
GTK_FILELIST=gtk+-2.22.1.filelist
GTK_FILELIST_PATH=$(shell cd $(top_srcdir) && pwd)/$(GTK_FILELIST)
LINPHONEDEPS_FILELIST=linphone-deps.filelist
WINBINDIST_FILES=$(shell cat $(top_srcdir)/$(LINPHONEDEPS_FILELIST))
ISS_SCRIPT=linphone.iss
ISS_SCRIPT_PATH=$(shell cd $(top_srcdir) && pwd)/$(ISS_SCRIPT)
#path to Inno Setup 5 compiler
ISCC=/c/Program\ Files/Inno\ Setup\ 5/ISCC.exe
ISCC=ISCC.exe
PACKAGE_WIN32_FILELIST=$(PACKAGE)-win32.filelist
EXTRA_DIST = config.rpath BUGS linphone.kdevelop \
......
Software to install
*******************
* mingw32, using Automated windows installer (when launched, choose candidate to have lastest binaries)
* msys, using windows installer too.
run msys as Administrator (right click on the icon, and click 'run as administrator')
Download zip and unzip (download setup.exe and run) from http://gnuwin32.sourceforge.net
- add them to your path in msys terminal:
export PATH=$PATH:/c/Program\ Files/GnuWin32/bin
Download from mingw download page (http://www.mingw.org, click download):
- MSYS automake-1.11
- MSYS autoconf-2.63
- MSYS libtool>=2.2.7
- MSYS libcrypt*-bin
- MSYS perl
- MSYS gettext-*bin* and gettext-*dev*
===> Uncompress all these packages in /
- from gcc-4.4 directory
Download:
- gcc-core*-bin
- gcc-core-*-dll
- gcc-c++*-bin
- gcc-c++*-dll
- gmp*-dll
- mpfr*-dll
- w32api*-dev
- mingwrt-dev and mingwrt-dll (mingw run time)
- gnu binutils 2.19
===> Uncompress all these packages in /mingw
note: lzma files can be uncompressed using tar --lzma -xvf <file>
* Download intltool (quicklink:
http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
note: -dev package is not needed.)
uncompress in / with 'unzip' command.
* Download lastest gtk+bundle from http://www.gtk.org , uncompress in /
* Download 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.4-1_win32.zip
http://ftp.gnome.org/pub/GNOME/binaries/win32/libglade/2.6/libglade_2.6.4-1_win32.zip
uncompress in /
* Download ActiveState perl and run the installer with default options (http://www.activestate.com , developer tools)
Yes it is required despite MSYS perl is already installed.
* Download lastest linphone-deps from linphone downloads, misc directory:
http://download.savannah.gnu.org/releases-noredirect/linphone/misc/)
uncompress in /
* Download and install Inno Setup Compiler in its default path (required only if you run 'make setup.exe').
* HACKS:
Move out /lib/libintl.la : it confuses libtool
mv /lib/libintl.la /lib/libintl.la.bak
Move out libstdc++.la in order to workaround a gcc-4.4.0 bug (or packaging bug):
mv /mingw/lib/gcc/mingw32/4.4.0/libstdc++.la /mingw/lib/gcc/mingw32/4.4.0/libstdc++.la.bak
Download lastest mingw-get-inst.exe from http://www.mingw.org
Run mingw-get-inst.exe. Choose "download lastest catalogues".
In the feature list, select:
* C compiler
* C++ compiler
* Mingw developer toolkit
Let the installer fetch and install everything.
In mingw shell, run
mingw-get install msys-zip
mingw-get install msys-unzip
mingw-get install msys-wget
mkdir -p /opt/perl/bin
cp /bin/perl /opt/perl/bin/.
cd ~
#Download intltool
wget http://ftp.acc.umu.se/pub/GNOME/binaries/win32/intltool/0.40/intltool_0.40.4-1_win32.zip
Download lastest linphone-deps-win32 zip from
http://download.savannah.gnu.org/releases-noredirect/linphone/misc
using your browser.
Download lastest gtk+ win32 bundle from http://www.gtk.org
Install all these three package in /:
cd /
unzip ~/intltool_0.40.4-1_win32.zip
unzip <path to gtk bundle zip>
unzip <path to linphone-deps>
#Install GTK+ Outcrop theme, the one used by linphone for distribution.
cd /share/themes
wget http://art.gnome.org/download/themes/gtk2/1122/GTK2-Outcrop.tar.gz
tar -xvzf GTK2-Outcrop.tar.gz
#Remove the special stdint.h and inttypes.h included in linphone-deps: it is for MSVC only.
#Mingw will use the one in /mingw/include
rm /include/stdint.h /include/inttypes.h
#Remove libgcc specific libraries, only needed for MSVC:
rm /lib/libgcc.a /lib/libmingw32.a /lib/libmingwex.a
#Remove libintl from gtk, we don't need it and it conflicts with the one supplied by mingw.
rm /lib/libintl.dll.a
rm /include/intl.h
* Download and install Inno Setup Compiler (required only if you run 'make setup.exe'). Add it to your windows Path environment variable.
Get Linphone source code
************************
......@@ -66,7 +62,7 @@ It is recommended that you create a directory somewhere with a path without any
c:\sources\
Within msys-git bash, do
cd /c/sources
git clone git://git.savannah.nongnu.org/linphone.git
git clone git://git.savannah.nongnu.org/linphone.git --recursive
Building
......@@ -76,17 +72,6 @@ WARNING: During the build, windows might slow down suddenly. Using ctl+alt+del t
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.
The following variables must be exported:
#use ActiveState perl instead of mingw perl
export PERL="/c/Perl/bin/perl"
export INTLTOOL_PERL="/c/Perl/bin/perl"
#add gnuwin32 tools to your path:
export PATH=$PATH:/c/Program\ Files/Gnuwin32/bin
for convenience the 'mingw-envsetup.sh' script in linphone sources does this, so you can just source it:
. ./mingw-envsetup.sh
#run autogen.sh after a git checkout or update
./autogen.sh
./configure --prefix=/opt/linphone --enable-shared --disable-static
......@@ -97,6 +82,7 @@ make install
make zip
#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.
#build plugins
cd mediastreamer2/plugins/msx264
......
......@@ -20,6 +20,10 @@ if test -d /opt/local/share/aclocal ; then
ACLOCAL_ARGS="-I /opt/local/share/aclocal"
fi
if test -d /share/aclocal ; then
ACLOCAL_ARGS="$ACLOCAL_ARGS -I /share/aclocal"
fi
if test -f /opt/local/bin/intltoolize ; then
#darwin
INTLTOOLIZE=/opt/local/bin/intltoolize
......
......@@ -95,25 +95,19 @@ AC_SUBST(ALL_LINGUAS)
AC_DEFINE_UNQUOTED(LINPHONE_ALL_LANGS, "$ALL_LINGUAS", [All supported languages])
if test "$mingw_found" != "yes" ; then
dnl gettext macro does not work properly under mingw.
dnl gettext macro does not work properly under mingw. And we want to use the one provided by GTK.
AM_GNU_GETTEXT([external])
LIBS="$LIBS $LIBINTL"
else
if test "$mingwce_found" != "yes" ; then
AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible])
AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible])
LIBS="$LIBS -L/usr/lib -lintl"
else
dnl gettext macro does not work properly under mingw.
AM_GNU_GETTEXT([external])
LIBS="$LIBS $LIBINTL"
fi
AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible])
AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible])
LIBS="$LIBS -lintl"
fi
GETTEXT_PACKAGE=linphone
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",[The name of the gettext package name])
AC_CHECK_LIB(intl,libintl_gettext)
dnl AC_CHECK_LIB(intl,libintl_gettext)
AC_CHECK_FUNCS([get_current_dir_name strndup stpcpy] )
......
......@@ -4,7 +4,6 @@
# It must be run within a gtk+ binary bundle tree, such as in the zip bundle
# downloadable from www.gtk.org
echo bin
echo bin/libglade-2.0-0.dll
find bin -name *.dll
find lib/gtk-2.0
find etc
......
bin
bin/freetype6.dll
bin/intl.dll
bin/libasprintf-0.dll
bin/libatk-1.0-0.dll
bin/libcairo-2.dll
bin/libcairo-gobject-2.dll
bin/libcairo-script-interpreter-2.dll
bin/libexpat-1.dll
bin/libfontconfig-1.dll
bin/libgailutil-18.dll
bin/libgcc_s_dw2-1.dll
bin/libgdk-win32-2.0-0.dll
bin/libgdk_pixbuf-2.0-0.dll
bin/libgio-2.0-0.dll
bin/libglib-2.0-0.dll
bin/libgmodule-2.0-0.dll
bin/libgobject-2.0-0.dll
bin/libgthread-2.0-0.dll
bin/libgtk-win32-2.0-0.dll
bin/libpango-1.0-0.dll
bin/libpangocairo-1.0-0.dll
bin/libpangoft2-1.0-0.dll
bin/libpangowin32-1.0-0.dll
bin/libpng14-14.dll
bin/zlib1.dll
lib/gtk-2.0
lib/gtk-2.0/2.10.0
lib/gtk-2.0/2.10.0/engines
lib/gtk-2.0/2.10.0/engines/libpixmap.dll
lib/gtk-2.0/2.10.0/engines/libwimp.dll
lib/gtk-2.0/include
lib/gtk-2.0/include/gdkconfig.h
lib/gtk-2.0/modules
lib/gtk-2.0/modules/libgail.dll
etc
etc/fonts
etc/fonts/fonts.conf
etc/fonts/fonts.dtd
etc/gtk-2.0
etc/gtk-2.0/gtk.immodules
etc/gtk-2.0/im-multipress.conf
etc/pango
etc/pango/pango.modules
share/locale/fr
share/locale/fr/LC_MESSAGES
share/locale/fr/LC_MESSAGES/atk10.mo
share/locale/fr/LC_MESSAGES/gdk-pixbuf.mo
share/locale/fr/LC_MESSAGES/gettext-runtime.mo
share/locale/fr/LC_MESSAGES/glib20.mo
share/locale/fr/LC_MESSAGES/gtk20-properties.mo
share/locale/fr/LC_MESSAGES/gtk20.mo
share/locale/de
share/locale/de/LC_MESSAGES
share/locale/de/LC_MESSAGES/atk10.mo
share/locale/de/LC_MESSAGES/gdk-pixbuf.mo
share/locale/de/LC_MESSAGES/gettext-runtime.mo
share/locale/de/LC_MESSAGES/glib20.mo
share/locale/de/LC_MESSAGES/gtk20-properties.mo
share/locale/de/LC_MESSAGES/gtk20.mo
share/locale/sv
share/locale/sv/LC_MESSAGES
share/locale/sv/LC_MESSAGES/atk10.mo
share/locale/sv/LC_MESSAGES/gdk-pixbuf.mo
share/locale/sv/LC_MESSAGES/gettext-runtime.mo
share/locale/sv/LC_MESSAGES/glib20.mo
share/locale/sv/LC_MESSAGES/gtk20-properties.mo
share/locale/sv/LC_MESSAGES/gtk20.mo
share/locale/cs
share/locale/cs/LC_MESSAGES
share/locale/cs/LC_MESSAGES/atk10.mo
share/locale/cs/LC_MESSAGES/gdk-pixbuf.mo
share/locale/cs/LC_MESSAGES/gettext-runtime.mo
share/locale/cs/LC_MESSAGES/glib20.mo
share/locale/cs/LC_MESSAGES/gtk20-properties.mo
share/locale/cs/LC_MESSAGES/gtk20.mo
share/locale/es
share/locale/es/LC_MESSAGES
share/locale/es/LC_MESSAGES/atk10.mo
share/locale/es/LC_MESSAGES/gdk-pixbuf.mo
share/locale/es/LC_MESSAGES/gettext-runtime.mo
share/locale/es/LC_MESSAGES/glib20.mo
share/locale/es/LC_MESSAGES/gtk20-properties.mo
share/locale/es/LC_MESSAGES/gtk20.mo
share/locale/hu
share/locale/hu/LC_MESSAGES
share/locale/hu/LC_MESSAGES/atk10.mo
share/locale/hu/LC_MESSAGES/gdk-pixbuf.mo
share/locale/hu/LC_MESSAGES/glib20.mo
share/locale/hu/LC_MESSAGES/gtk20-properties.mo
share/locale/hu/LC_MESSAGES/gtk20.mo
share/locale/it
share/locale/it/LC_MESSAGES
share/locale/it/LC_MESSAGES/atk10.mo
share/locale/it/LC_MESSAGES/gdk-pixbuf.mo
share/locale/it/LC_MESSAGES/gettext-runtime.mo
share/locale/it/LC_MESSAGES/glib20.mo
share/locale/it/LC_MESSAGES/gtk20-properties.mo
share/locale/it/LC_MESSAGES/gtk20.mo
share/locale/ja
share/locale/ja/LC_MESSAGES
share/locale/ja/LC_MESSAGES/atk10.mo
share/locale/ja/LC_MESSAGES/gdk-pixbuf.mo
share/locale/ja/LC_MESSAGES/gettext-runtime.mo
share/locale/ja/LC_MESSAGES/glib20.mo
share/locale/ja/LC_MESSAGES/gtk20-properties.mo
share/locale/ja/LC_MESSAGES/gtk20.mo
share/locale/nl
share/locale/nl/LC_MESSAGES
share/locale/nl/LC_MESSAGES/atk10.mo
share/locale/nl/LC_MESSAGES/gdk-pixbuf.mo
share/locale/nl/LC_MESSAGES/gettext-runtime.mo
share/locale/nl/LC_MESSAGES/glib20.mo
share/locale/nl/LC_MESSAGES/gtk20-properties.mo
share/locale/nl/LC_MESSAGES/gtk20.mo
share/locale/pl
share/locale/pl/LC_MESSAGES
share/locale/pl/LC_MESSAGES/atk10.mo
share/locale/pl/LC_MESSAGES/gdk-pixbuf.mo
share/locale/pl/LC_MESSAGES/gettext-runtime.mo
share/locale/pl/LC_MESSAGES/glib20.mo
share/locale/pl/LC_MESSAGES/gtk20-properties.mo
share/locale/pl/LC_MESSAGES/gtk20.mo
share/locale/ru
share/locale/ru/LC_MESSAGES
share/locale/ru/LC_MESSAGES/atk10.mo
share/locale/ru/LC_MESSAGES/gdk-pixbuf.mo
share/locale/ru/LC_MESSAGES/gettext-runtime.mo
share/locale/ru/LC_MESSAGES/glib20.mo
share/locale/ru/LC_MESSAGES/gtk20-properties.mo
share/locale/ru/LC_MESSAGES/gtk20.mo
share/locale/pt_BR
share/locale/pt_BR/LC_MESSAGES
share/locale/pt_BR/LC_MESSAGES/atk10.mo
share/locale/pt_BR/LC_MESSAGES/gdk-pixbuf.mo
share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo
share/locale/pt_BR/LC_MESSAGES/glib20.mo
share/locale/pt_BR/LC_MESSAGES/gtk20-properties.mo
share/locale/pt_BR/LC_MESSAGES/gtk20.mo
share/themes
share/themes/Default
share/themes/Default/gtk-2.0-key
share/themes/Default/gtk-2.0-key/gtkrc
share/themes/Emacs
share/themes/Emacs/gtk-2.0-key
share/themes/Emacs/gtk-2.0-key/gtkrc
share/themes/MS-Windows
share/themes/MS-Windows/gtk-2.0
share/themes/MS-Windows/gtk-2.0/gtkrc
share/themes/Raleigh
share/themes/Raleigh/gtk-2.0
share/themes/Raleigh/gtk-2.0/gtkrc
mediastreamer2 @ 82220afa
Subproject commit be95244fa80cc45841b119f9a853ddfdb7b11f01
Subproject commit 82220afa1b04a9ba380c720d5e2bf83347d7404b
oRTP @ d4c36bf2
Subproject commit be584ae2b8a3c9a27d11d1463a68e314f2feffa3
Subproject commit d4c36bf268d696be0823ae3650aacc6d8b2f9dbd
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment