Installation d'un environnement de compilation Windows

From Bluefish Wiki
Revision as of 17:22, 21 September 2009 by Fal7i (talk | contribs) (Created page with '== Compilation Windows : Statut == Le binaire et les plugins s'exécutent et semblent pleinement fonctionnels. Si vous rencontrez un comportement inattendu ou des bugs, merci de…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Compilation Windows : Statut

Le binaire et les plugins s'exécutent et semblent pleinement fonctionnels. Si vous rencontrez un comportement inattendu ou des bugs, merci de bien vouloir signaler le problème sur notre système de suivi de problèmes : bugzilla.

  • Problèmes connus :
    • Le code connecteur réseau (socket) ne fonctionne pas et donc les fichiers ne peuvent être ouverts dans une fenêtre fille.


Installer votre environnement de compilation

La première étape est évidemment d'installer et configurer les environnements MinGW et MSYS. Commencer par l'installeur automatisé de MinGW. Au cours de l'installation choisir le compilateur g++ (ne pas choisir MingW make). L'emplacement recommandé est C:\MinGW, mais il n'est pas obligatoire de choisir ce chemin. Il faut ensuite installer le système de base de MSYS. L'emplacement de l'environnement MingW vous dera demandé. Si par exemple vous l'avez installé dans P:\Programs\MinGW, répondez

p:/programs/mingw

à cette question (note: cette information sera inscrite dans /etc/fstab de l'environnement MSYS).

Si vous savez ce que vous faîtes, vous pouvez alternativement télécharger et installer (unzip/untar/...) manuellement les paquets .


Mettre à jour l'environnement de compilation

La seconde étape consiste à mettre à jour et/ou installer tous les logiciels nécessaires. Vous pouvez les télécharger et les extraire manuellement. Vous devez les extraire dans le répertoire où vous avez installé MSYS. Cet emplacement est usuellement C:\Programs\msys\1.0\ (ou C:\MingGW\). Gardez en mémoire que cet emplacement équivaut au répertoire racine (root directory) / et à /usr/ (qui sont le même emplacement) dans MSYS. Note: de même /local and /usr/local désignent le même répertoire.

Paquets MinGW installation à la racine de MingW (C:\MinGW\)
w32api-3.13-mingw32-dev.tar.gz
mingw-utils-0.3.tar.gz
mingwrt-3.16-mingw32-dev.tar.gz
mingwrt-3.16-mingw32-dll.tar.gz
Paquets MSYS installation dans le répertoire racine de MSYS "/" (C:\Programs\msys\1.0\ ou C:\MinGW\)
msysCORE-1.0.11-bin.tar.gz
autoconf-2.63-1-msys-1.0.11-bin.tar.lzma
automake-1.11-1-msys-1.0.11-bin.tar.lzma
bison-2.4.1-1-msys-1.0.11-bin.tar.lzma
bzip2-1.0.5-1-msys-1.0.11-bin.tar.gz
crypt-1.1_1-2-msys-1.0.11-bin.tar.lzma
findutils-4.4.2-1-msys-1.0.11-bin.tar.lzma
flex-2.5.35-1-msys-1.0.11-bin.tar.lzma
gawk-3.1.7-1-msys-1.0.11-bin.tar.lzma
gdbm-1.8.3-2-msys-1.0.11-bin.tar.lzma
gettext-0.17-1-msys-1.0.11-bin.tar.lzma
grep-2.5.4-1-msys-1.0.11-bin.tar.lzma
groff-1.20.1-1-msys-1.0.11-bin.tar.lzma
guile-1.8.7-1-msys-1.0.11-bin.tar.lzma
gzip-1.3.12-1-msys-1.0.11-bin.tar.lzma
libbz2-1.0.5-1-msys-1.0.11-dll-1.tar.gz
libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma
libgdbm-1.8.3-2-msys-1.0.11-dll-3.tar.lzma
libguile-1.8.7-1-msys-1.0.11-dll-17.tar.lzma
libiconv-1.13.1-1-msys-1.0.11-bin.tar.lzma
libltdl-2.2.7a-1-msys-1.0.11-dll-7.tar.lzma
libminires-1.02_1-1-msys-1.0.11-dll.tar.lzma
libopenssl-0.9.8k-1-msys-1.0.11-dll-098.tar.lzma
libregex-1.20090805-1-msys-1.0.11-dll-1.tar.lzma
libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma
lndir-1.0.1-1-msys-1.0.11-bin.tar.gz
m4-1.4.13-1-msys-1.0.11-bin.tar.lzma
man-1.6f-1-msys-1.0.11-bin.tar.lzma
minires-1.02_1-1-msys-1.0.11-bin.tar.lzma
openssl-0.9.8k-1-msys-1.0.11-bin.tar.lzma
patch-2.5.9-1-msys-1.0.11-bin.tar.lzma
perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma
sed-4.2.1-1-msys-1.0.11-bin.tar.lzma
tar-1.22-1-msys-1.0.11-bin.tar.lzma
vim-7.2-1-msys-1.0.11-bin.tar.lzma
zlib-1.2.3-1-msys-1.0.11-dll.tar.gz
Paquets GNOME installation dans le répertoire local de MSYS "/local" (C:\Programs\msys\1.0\local\ ou C:\MinGW\local\)
atk_1.26.0-1_win32.zip
atk-dev_1.26.0-1_win32.zip
cairo_1.8.8-1_win32.zip
cairo-dev_1.8.8-1_win32.zip
expat_2.0.1-1_win32.zip
expat-dev_2.0.1-1_win32.zip
GConf_2.22.0-2_win32.zip
GConf-dev_2.22.0-2_win32.zip
gettext-runtime-0.17.zip
gettext-runtime-dev-0.17.zip
gettext-tools-0.17.zip
glib_2.20.4-1_win32.zip
glib-dev_2.20.4-1_win32.zip
gnome-common-2.11.0.zip
gtk+_2.16.5-1_win32.zip
gtk+-dev_2.16.5-1_win32.zip
intltool_0.40.4-1_win32.zip
intltool-dev_0.40.4-1_win32.zip
libgnurx-2.5.zip
libgnurx-dev-2.5.zip
libiconv-1.9.1.bin.woe32.zip
libpng_1.2.38-1_win32.zip
libpng-dev_1.2.38-1_win32.zip
libxml2_2.7.3-1_win32.zip
libxml2-dev_2.7.3-1_win32.zip
ORBit2-dev_2.14.16-1_win32.zip
ORBit2_2.14.16-1_win32.zip
pango_1.24.5-1_win32.zip
pango-dev_1.24.5-1_win32.zip
pkg-config-0.23-2.zip
zlib-1.2.3.zip
zlib-dev-1.2.3.zip
Paquets externes installation dans le répertoire local de MSYS "/local" (C:\Programs\msys\1.0\local\ ou C:\MinGW\local\)
svn-win32-1.6.5.zip


La question de Perl

Enfin vous avez besoin de Perl. La version Perl dans MSYS est la 5.6.1 qui est trop ancienne pour les scripts de configuration (configure) de nombreux logiciels dont Bluefish. J'utilise la version 5.6.1 de MSYS pour autoconf/automake/autogen.sh et une version externe comme ActiveState's pour tout ce qui nécessite une version plus récente. Installez la version ActivePerl de Perl. Puis éditez /etc/fstab dans l'environnement MSYS (usuellement ) et ajoutez la ligne suivante :

c:/programs/perl /opt/perl

ainsi Perl est monté dans l'environnement MSYS.


Configuration de votre environnement de compilation

Vous pouvez définir quelques variables d'environnement comme suit.

PATH="/bin:/local/bin:/opt/perl/bin"
C_INCLUDE_PATH="/include:/local/include"
LIBRARY_PATH="/lib:/local/lib"
ou alternativement utiliser notre script config.site pour configurer MSYS et ajuster aisément PATH/CFLAGS/LDFLAGS.

De plus nous avons besoin d'ajuster le chemin de recherche macro pour aclocal :

echo /local/share/aclocal > /share/aclocal/dirlist

car un bug de l'éditeur de liens de gconftool-2 ajoute ce lien symbolique :

ln -s /local/bin/libxml2-2.dll /local/bin/libxml2.dll


Compiler les paquets externes

Pour compiler Bluefish nous avons besoin de certaines bibliothèques qui ne sont pas disponibles dans le projet MinGW/MSYS.

Installer les paquets pré-compilés

Shawn Novak propose des archives pré-compilées qu'il vous suffit d'extraire dans /local:

Paquets spécifiques installation dans le répertoire local de MSYS "/local" (C:\Programs\msys\1.0\local\ ouC:\MinGW\local\)
pcre-7.9-bin-MinGW-20090902.tbz2
aspell-0.60.6-bin-MinGW-20090901.tbz2
enchant-1.5.0-bin-MinGW-20090901.tbz2

Un ensemble complet de dictionnaires pour Aspell 0.60.6 est disponible ici : ftp://kernel86.muleslow.net/mingw/aspell/lang/

Compilation et installation depuis les sources

Si vous voulez construire votre propre version personnalisée de ces paquets, voici les paramètres de configuration utilisés. [1]

Aspell 0.60.6
./configure --prefix=/local --disable-rpath --enable-win32-relocatable
Enchant 1.5.0
./configure --prefix=/local --enable-aspell --disable-ispell --disable-myspell
PCRE 7.9 (UTF-8 support is a must)
./configure --prefix=/local --enable-utf8 --enable-unicode-properties
gucharmap 2.26

Malheureusement gucharmap ne compile pas directement. les instructions suivantes proviennent de la liste de diffusion. Appliquer en premier lieu ce patch de Daniel Leidert gucharmap26.diff et configurez ensuite avec les commandes suivantes :

patch -p0 <gucharmap26.diff
intltoolize -f
libtoolize -f
aclocal -I m4/ --force
autoheader -f
automake -f
autoconf -f
./configure --disable-gconf --disable-schemas-install --disable-scrollkeeper
References:
  1. Note de Daniel Leidert: Je commence par appliquer le scriptmsys.site avec le contenu suivant pour configure:
    #!/bin/sh
    
    PATH="/opt/perl/bin:$PATH"
    prefix=/local
    exec_prefix='${prefix}'
    enable_shared=yes
    enable_static=no
    enable_maintainer_mode=yes
    LDFLAGS="-L/local/lib -L/lib"
    CFLAGS="-g -Wall -O2 -I/local/include -I/include -mwindows"
    CPPFLAGS="-g -Wall -O2 -I/local/include -I/include"

    Le script de configuration (configure) est alors appelé comme suit en même temps que les commutateurs comme indiqué ci-dessus:

    ./configure CONFIG_SITE=msys.site ...''configure options see above''...


Compiler Bluefish

Récupération de la dernière version :

svn checkout https://bluefish.svn.sourceforge.net/svnroot/bluefish/trunk/bluefish

Lancer autogen.sh (uses perl 5.6.1). Puis lancer configure (soyez sûr que Perl de /opt/perl/bin est utilisé ; vérifier le PATH) et make :

./autogen.sh
./configure CONFIG_SITE=config.site/config.msys
./strip_prefix.sh
make


Debuguer Bluefish

Pour obtenir des informations de déboguage sur la console, configurer bluefish avec l'option '--enable-debugging-output' de ./configure. De plus les CFLAGS doivent contenir '-g' (par défaut, et également explicitement déclaré par config.msys).

Pour débuguer les crashes installer le Débugueur GNU (GDB).


Création de l'installeur

Pour créer l'installeur, configurer et compiler Bluefish avec les commandes suivantes :

./configure --prefix=/ CFLAGS="-mwindows -DNSIS"
make pkgdatadir="./share/bluefish-unstable" localedir="./share/locale"
make install DESTDIR=/path/to/working/bluefish/win32/build

Une fois Bluefish compilé vous aurez besoin de NSIS avec le plugin UnTGZ installé pour compiler l'installeur. Si vous avez makensis.exe dans votre path (par exemple dans /opt/nsis) vous pouvez lui passer directement bluefish.nsi, ou lancer la version GUI MakeNSISW, après avoir exécuté le script installer_dep.sh. Vous pouvez aussi utiliser ce script:

cd win32
./installer_dep.sh
makensis bluefish.nsi