BðP


Compilation de Perl sous Windows


C'est là que les Athéniens s'atteignirent,
que les Perses se percèrent,
que les Satrapes s'attrapèrent,
et que les Mèdes s'...  

0 - Mise en garde

Cette page décrit l'installation de Perl sur une machine Windows par compilation à partir des sources de Perl.

Sans être réservée à des experts, cette méthode n'est pas recommandée aux débutants. Une certaine pratique du langage C est nécessaire. Il est préférable d'utiliser une version de Perl précompilée qui s'installe sans difficulté.

Néanmoins, les téméraires trouveront ici une description pas à pas de l'installation de Perl 5.8 avec le compilateur Borland C++ 5.5 sous Win2000.

D'après la doc, l'installation peut se faire sous Win95/98, mais je n'ai pas fait de test sur ces plateformes.

Retour en haut de la page

1 - Installation du compilateur C

La première chose à faire est de télécharger le compilateur sur le site de Borland :

http://www.borland.com/products/downloads/download_cbuilder.html

Il s'agit du Compiler (C++Builder Compiler and Command Line Tools), un fichier de 8,7 Mo.

« The Borland C++Builder Compiler includes the latest ANSI/ISO C++ language support including the RTL - the STL framework with C++ template support.
And now, the Borland C++Builder Compiler is available as a free download! »
Borland dixit.

Il faut au préalable s'inscrire au "Borland Developer Network " (gratuit, mais il faut donner une adresse email valide et répondre à plusieurs formulaires - attendez-vous à avoir de la pub dans votre boîte à lettre...)

Après plusieurs questionnaires, on aboutit enfin à une page qui propose le fichier freecommandLinetools.exe qu'il faut télécharger.

Une fois ce fichier sur votre disque dur, un double-clic sur son nom dans l'explorateur, lance l'installation.

Le compilateur s'installe par défaut dans le répertoire C:\Borland\BCC55
Ce répertoire a 5 sous-répertoires : La première chose à faire est de mettre le répertoire Bin dans le path pour que l'on puisse appeler le compilateur depuis n'importe quel autre répertoire. Ensuite, il faut créer (avec votre éditeur favori) deux fichiers de configuration à placer dans le répertoire C:\BORLAND\BCC55\BIN Ces fichiers évitent d'avoir à écrire ces chemins sur la ligne de commande quand on invoque le compilateur.

Enfin, pour éviter des problèmes au moment des tests de Perl, il faut recopier les DLL cc3250.dll et cc3250mt.dll du répertoire c:\Borland\Bcc55\bin dans le répertoire c:\WinNT\system32 ou c:\WINDOWS\system32 pour WinNT/2000/XP ou c:\Windows\system pour Win95/98.

Retour en haut de la page

2 - Tests du compilateur

Pour ne pas tout mélanger, il est nécessaire de créer un répertoire où placer les fichiers sources C et C++. Pour cela, j'utilise dans la suite le répertoire c:\Csources.

Commençons par un programme C : le classique hello1.c, façon Kernighan et Ritchie.

Avec votre éditeur favori, créez le fichier hello1.c dans le répertoire c:\Csources, contenant le code suivant :
#include <stdio.h>

main() {
  printf("\nSalut tout le monde !\n");
  return 0;
}
Ensuite, ouvrez une console, placez-vous dans le répertoire c:\Csources, lancez la compilation par
bcc32 hello1.c
puis lancez le programme en tapant son nom. Vous devez obtenir ça :

console

Essayons ensuite la même chose, mais en C++, façon Stroustrup.
Même procédé pour le fichier hello2.cpp suivant :

#include <iostream.h>

int main(void)
{
  cout << endl << "Salut tout le monde !" << endl;
  return 0;
}
On obtient ça :

console

Enfin, pour voir si les bibliothèques Windows sont là, essayons le programme hello3.c suivant :

#include <windows.h>

int WINAPI WinMain (HINSTANCE hInstance,
		    HINSTANCE hPrevInstance,
                    PSTR szCmdLine,
                    int iCmdShow)
{
  MessageBox (NULL, TEXT("Salut tout le monde !"), TEXT ("Hello"), 0);
  return 0;
}
Pour obtenir un programme Windows il faut ajouter l'indicateur -W sur la ligne de commande :
bcc32 -W hello3.c

console

Le lancement du programme donne la fenêtre minimale suivante :

console

Si tout se passe comme indiqué, le compilateur est bien installé.
Pour plus d'informations et de doc, voir le fichier readme.txt dans le répertoire C:\Borland\Bcc55.

Retour en haut de la page

3 - Installation de dmake

Il faut un programme « make » pour construire Perl et ses modules à partir des sources. Le make de Borland ne convient pas; la doc recommande une version de dmake modifiée par Gurusamy Sarathy que l'on trouve dans son répertoire du CPAN :

http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip

Une fois le fichier zip téléchargé, il faut le décompresser dans un répertoire temporaire et recopier dans le répertoire c:\Borland\bcc55\bin le programme dmake.exe et le répertoire startup.

Retour en haut de la page

4 - Préparation du source de Perl

Pour se procurer le source de Perl, le mieux est d'aller sur le CPAN :

http://www.cpan.org/src/README.html

Il existe plusieurs versions : stable pour la dernière version de production, devel pour la version en cours de développement.

La dernière version stable (actuellement Perl 5.8) : http://www.cpan.org/src/stable.zip

Quand le fichier est sur votre disque dur, vous le décompactez dans le répertoire où vous mettez les sources (c:\Csources pour nous, ici).
Il faut prendre soin de le décompacter en conservant la hiérarchie des répertoires qui sont dans l'archive.

Le fichier contenant les instructions pour la compilation est :
c:\Csources\perl-5.8.0\README.win32.
C'est un fichier pod, traduit en html ici : README.win32

Il manque le fichier fcrypt.c dans la distribution (restriction à l'exportation de tout ce qui est cryptographique). Il faut le télécharger à l'une des URL :

http://downloads.ActiveState.com/pub/staff/gsar/fcrypt.c
ftp://ftp.ActiveState.com/pub/staff/gsar/fcrypt.c

et placer ce fichier dans le répertoire : c:\Csources\perl-5.8.0\win32.

Retour en haut de la page

5 - Édition du Makefile

Chargez dans votre éditeur favori le fichier c:\Csources\perl-5.8.0\win32\makefile.mk.
C'est ce fichier qui détermine les processus de compilation, test et installation.
Il est abondamment commenté...en anglais.
On active une option en retirant le # en début de ligne, et on la désactive en ajoutant un # en début de ligne.
Les options par défaut étant bien choisies, il y a peu de modifications à faire.
Les trois premières options concernent l'endroit où Perl sera installé.
Je conseille de garder l'option
INST_VER	*= \5.8.0
et de neutraliser l'option
INST_ARCH	*= \$(ARCHNAME)
en la transformant en
# INST_ARCH	*= \$(ARCHNAME)
ainsi Perl sera installé dans le répertoire c:\perl\5.8.0\ et n'entrera pas en conflit avec une autre version de Perl qui pourrait être déjà installée dans c:\perl.

Ensuite il faut préciser le compilateur utilisé en transformant
# uncomment exactly one of the following
#
# Visual C++ 2.x
#CCTYPE		*= MSVC20
# Visual C++ > 2.x and < 6.x
#CCTYPE		*= MSVC
# Visual C++ >= 6.x
CCTYPE		*= MSVC60
# Borland 5.02 or later
#CCTYPE		*= BORLAND
# mingw32+gcc-2.95.2 or better
#CCTYPE		*= GCC
en
# uncomment exactly one of the following
#
# Visual C++ 2.x
#CCTYPE		*= MSVC20
# Visual C++ > 2.x and < 6.x
#CCTYPE		*= MSVC
# Visual C++ >= 6.x
#CCTYPE		*= MSVC60
# Borland 5.02 or later
CCTYPE		*= BORLAND
# mingw32+gcc-2.95.2 or better
#CCTYPE		*= GCC
Si vous compilez sous Win95/98 activez l'option
# uncomment this if you are compiling under Windows 95/98 and command.com
# (not needed if you're running under 4DOS/NT 6.01 or later)
#IS_WIN95	*= define
en la changeant en
# uncomment this if you are compiling under Windows 95/98 and command.com
# (not needed if you're running under 4DOS/NT 6.01 or later)
IS_WIN95	*= define
Activez l'option
# if you have the source for des_fcrypt(), uncomment this and make sure the
# file exists (see README.win32).  File should be located in the same
# directory as this file.
#
#CRYPT_SRC	*= fcrypt.c
en la changeant en
# if you have the source for des_fcrypt(), uncomment this and make sure the
# file exists (see README.win32).  File should be located in the same
# directory as this file.
#
CRYPT_SRC	*= fcrypt.c
si vous avez bien placé le fichier fcrypt.c dans c:\Csources\perl-5.8.0\win32 comme indiqué précédemment.

Enfin, il faut donner une adresse email valide

#
# set this to your email address (perl will guess a value from
# from your loginname and your hostname, which may not be right)
#
EMAIL		*= tartampion@ouanadur.com
Cette adresse, placée dans le module Config.pm, est indispensable pour utiliser le module CPAN (entre autre) : Perl utilise cette adresse email comme mot de passe d'une connexion ftp 'anonymous'.

Ne changez aucune autre option sans savoir ce que vous faites !

Retour en haut de la page

6 - Compilation de perl

Pour compiler Perl, il ne reste plus qu'à ouvrir une console, se placer dans le répertoire
c:\Csources\perl-5.8.0\win32
et taper dmake.

La compilation peut durer de 5 minutes à une heure...suivant la vitesse de votre processeur.
Les actions sont affichées dans la console ; quelquefois, le processus semble s'arrêter (certaines actions sont assez longues) : laissez faire dmake. En cas de problème, il affiche toujours un message d'erreur.
Sous Win98 la compilation va jusqu'au bout sans problème :

console Win98

Retour en haut de la page

7 - Tests de perl

Quand la compilation est terminée, l'invite du DOS réapparaît. Il faut alors taper dmake test dans cette même console pour lancer la batterie de tests de Perl. Comme il y a près de 70000 tests à effectuer, l'opération dure...un certain temps !

À la fin, on obtient quelque chose comme ça :

console

On voit qu'ici, un test du module Test::Simple a échoué (pourquoi ??). Tous les autres sont ok.

D'après la doc, sous Win95/98, le nombre de tests ratés (à cause de la faiblesse du shell) doit être plus grand. Personnellement, je n'ai jamais pu terminer les tests : le programme se fige avant la fin.

Retour en haut de la page

8 - Installation de perl

Pour installer Perl il reste à faire dmake install toujours dans la même console. Les fichiers sont recopiés dans leurs répertoires définitifs et la documentation au format html est engendrée.

Pour que l'interpréteur perl soit accessible depuis n'importe où, il faut mettre son répertoire dans le path. Si vous avez plusieurs versions de Perl, il faut faire attention à l'ordre des chemins dans le path : si on tape "perl" dans une console, c'est le premier trouvé dans le path qui est lancé. Pour lever l'ambiguïté, il y a dans C:\perl\5.8.0\bin deux exécutables perl et perl5.8.0 qui font la même chose (on peut aussi changer les noms de ces fichiers).

console

Retour en haut de la page

9 - Installation de modules


(à faire -- installation de libwin32 et lwp en exemples)

Retour en haut de la page
:-)


BðP © 2002 J-L Morel - Contact : jl_morel@bribes.org [Validation HTML 4.0!]