Installation d'un environnement de compilation Windows

From Bluefish Wiki
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 de l'extérieur dans une fenêtre fille.
  • Le lancement de programmes externes ne fonctionne pas.
  • L'édition de fichiers UTF avec entête BOM n'est pas actuellement pris en charge.

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 faites, vous pouvez alternativement télécharger et installer (unzip/untar/...) manuellement les paquets .

Changements récents de l'environnement de compilation

Si vous maintenez un environnement de compilation pour Bluefish merci de bien vouloir lire et appliquer cette sous-section qui contient d'importants changements !

2009-12-10
Si vous construisez vos propres installateurs, nous utilisons à présent une version unicode de NSIS, Unicode NSIS, permettant le support des traductions encodées UTF-8.
2009-09-23
Les paquets GNOME on étés mis à jour pour correspondre à ceux inclus dans l'installeur GTK+ de Pidgin.
Il est actuellement utilisé en tant qu'environnement d'exécution cible pour l'installeur de Bluefish. Si vous installez pour la première fois votre environnement vous pouvez négliger cette section car les informations données ci-dessous ne vous concernent pas. Si vous avez déjà construit votre environnement de compilation, vous devez mettre à jour quelques paquets avec les versions proposées ci-dessous. Ceci concerne atk (1.26.0->1.24.0), glib (2.20.4->2.18.4), gtk+ (2.16.5->2.14.7), et pango (1.24.5->1.22.4).
Si vous n'avez pas l'intention de lancer la compilation de Bluefish hors de votre environnement MSYS ce changement n'est pas obligatoire. Toutefois si vous voulez le faire et désirer conserver GTK+ 2.16 vous pouvez utiliser l'installeur GTK-Win. Cette version n'est pas officiellement supporté par le team de développement car si elle convient à Bluefish, elle n'est pas compatible avec Pidgin, garder ceci en mémoire si vous utilisez les deux programmes.


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.24.0-1_win32.zip
atk-dev_1.24.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.18.4-1_win32.zip
glib-dev_2.18.4-1_win32.zip
gnome-common-2.11.0.zip
gtk+_2.14.7-1_win32.zip
gtk+-dev_2.14.7-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.22.4-1_win32.zip
pango-dev_1.22.4-1_win32.zip
pkg-config_0.23-3_win32.zip
pkg-config-dev_0.23-3_win32.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 : http://www.muleslow.net/files/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

dans le code source Aspell ajouter :

#include "asc_ctype.hpp"

dans les includes de common/file_util.cpp.

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

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
make
make install


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 compiler l'installeur vous aurez besoin de Unicode NSISavec le plugin UnTGZ installé. Vous devez également avoir makensis.exe dans votre path (par exemple dans /opt/nsis).

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

./configure CONFIG_SITE=win32/config.nsis
cd win32
make -f Makefile.mingw installer


Notes et références

  1. Note de Daniel Leidert: Je commence par appliquer le script msys.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...

Voir aussi

Existing win32 builds