Précédent | Table des matières | Suivant


4. Préparation de l'environnement

Il n'y a pas de pré-requis particuliers concernant la version de windows. Personnellement, j'ai utilisé XP Pro SP1 mais je suppose que toutes les versions conviendront.

4.1 Les sources des programmes

Enfin, il vous faudra les sources de pas mal de logiciels et bibliothèques. En effet, tant Apache que PHP nécessitent, pour une compilation correcte, qu'un certain nombre de bibliothèques et programmes annexes soient compilés et/ou installés. Voyons de plus près quelles sont les dépendances dans la liste ci-dessous (les version indiquées sont les versions utilisées au moment de la compilation. Mettez-les à jour):

Chacun de ces programmes est décompressé dans un répertoire quelconque, auquel nous ferons référence sous le nom du programme, encadré par les signes < et >. Par exemple, les sources d'Apache seront décompressées dans un répertoire nommé <APACHE>.

Dans toute la mesure du possible, évitez:

Ces 2 précautions vous permettront, d'une part, d'éviter des erreurs de compilation à cause d'un espace indésirable dans le chemin, et d'autre part, de simplifier les mises à jour futures en ne tenant pas compte de la version des programmes.

4.2 Compilation des bibliothèques

Une fois que toutes les sources sont en place, nous allons pouvoir commencer les premières compilations.

Bindlib_win32

Depuis une fenêtre de ligne de commandes, rendez-vous dans <BINDLIB> et tapez:

msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
  

Nous n'allons compiler que les versions "Release" et pas les "Debug".

Normalement, pas de problèmes particuliers.

Comme le dit la doc, copiez le fichier <BINDLIB>\Release\resolv.lib vers le répertoire <BUILD>\lib. Il nous servira dans la suite.

BZip2

Nous allons commencer par compiler BZip2 afin d'obtenir les fichiers demandés par le module PHP.

Décompressez les sources Bzip2 dans un répertoire que nous appellerons <BZip2>
Ouvrez le fichier libbzip2.dsp dans VisualStudio.
  

Un avertissement vous indique qu'un fichier .dsw a été trouvé et sera ouvert à la place.

Laissez faire.

Menu "Build \ Set Active Configuration", sélectionnez "libbz2 - Win32 Release".
F7 pour démarrer la compilation...
Une fois la compilation finie, copiez le fichier <BZip2>\libbz2.dll dans un répertoire du PATH.
  

Et voilà, passons au module lui-même

ClibPDF

Décompressez-les dans le répertoire <ClibPDF>
Suivez les instructions du ficher Readme.win32 situé dans <ClibPDF>\source.
  

Je n'approfondi pas, c'est suffisemment clair....

Sauf que cela ne marchera pas avec PHP.

Explications : Dans ce fichier Readme.win32, on nous demande de créer une bibliothèque STATIQUE, or le module PHP nécessite une bibliothèque DYNAMIQUE. Donc, suivez les instructions jusqu'au point "d)".

Là, au lieu de compiler la bibliothèque, menu "Project \ Export Makefile".
Vérifiez que cpdf est coché et cliquez OK
Ouvrez le fichier <ClibPDF>\source\cpdf.mak avec le bloc-notes.
Remplacez toutes les occurences de "ML" par "MD".
Sauvegardez et fermez le fichier.
Depuis une fenêtre de commande, rendez-vous dans <ClibPDF>\source et tapez la commande suivante :
nmake /F cpdf.mak CFG="cpdf - Win32 Release"
La compilation réalisée, vous obtenez le fichier cpdf.lib dans <ClibPDF>\release
  

Curl

Telle quelle, Curl n'aura pas de support SSL. Il faut donc d'abord compiler OpenSSL pour pouvoir compiler Curl avec le support SSL. Rendez-vous au chapitre Compilation d'OpenSSL pour plus d'informations.

Décompressez les sources de CURL dans un répertoire <Curl>
Copiez libcurl.dll dans un répertoire du PATH
Dans une fenêtre de commande, dans le répertoire <Curl>\lib, tapez les commandes
"nmake -f makefile.vc6 cfg=release-ssl-dll OPENSSL_PATH=<OpenSSL>"
"cd ..\src"
"nmake -f Makefile.vc6 cfg=release-ssl OPENSSL_PATH=<OpenSSL>"
  

Iconv

Décompressez les sources dans <Iconv-1.8>

Depuis une fenêtre de commande, rendez-vous dans le répertoire et tapez

"nmake -f makefile.msvc DLL=1 MFLAGS=-MD"
  

Une erreur peut apparaître (dans le fichier iconv.c à la ligne 53, LOCALEDIR n'est pas défini).

Ouvrez le fichier <Iconv>\src\iconv.c avec le bloc-notes

Remplacer LOCALEDIR par "." sans oublier les guillemets.

Relancez la compilation et tout devrait bien se passer.

Copiez <Iconv>\lib\iconv.dll dans un répertoire système.
  

LibMCrypt

Bon, là , pas de compilation.

En effet, la version de libmcrypt disponible sur le Site Officiel de libmcrypt n'est pas compatible avec PHP. La solution se trouve, au format binaire, là: LibMCrypt.

Téléchargez le fichier, décompressez-le et vous obtenez deux fichiers principaux :

php_mcrypt.dll
libmcrypt.dll
  

Copiez le premier dans votre répertoire d'extensions PHP (gardez le sous le coude gauche pour le moment) et le second dans un répertoire du PATH.

PostGreSql

Le serveur ne se compile pas sous Windows sans le renfort de CygWin, mais cela ne nous empêchera pas de compiler les librairies client, seules nécessaires au module PHP.

Décompressez les sources dans <Postgresql>
Depuis une fenêtre de commande, rendez-vous dans <Postgresql>\src et tapez
"nmake -f win32.mak"
  

Ucd-SNMP

Décompressez les sources dans <Ucd-SNMP>
Depuis VisualStudio, ouvrez le fichier <Ucd-SNMP>\win32\win32.dsw
Menu "Build \ Batch Build", ne sélectionnez que libsnmp et libsnmp_dll en release.
Lancez la compilation (bouton "Build")
  

Une fois la compilation terminée, copiez le fichier <Ucd-SNMP>\win\bin\libsnmp.dll dans un répertoire du PATH.

Spider Monkey

Décompressez les sources dans <Js>
Depuis une fenêtre de commande, dans ce répertoire, tapez la commande:
"nmake -f js.mak CFG="js - Win32 Release"
Une fois la compilation finie, les fichiers attendus se trouvent dans <Js>\release
  

Copiez le fichier js32.dll dans un répertoire système

Expat

Décompressez les sources dans <Expat>
Rendez-vous dans <Expat>\source et ouvrez le fichier expat.dsw dans VisualStudio
Menu "Build \ Batch Build" et ne sélectionnez que les versions "Win32 Release"
Cliquez sur Build et tout est bon
  

Vous obtenez les fichiers voulus dans <Expat>\source\lib\release

Sablot

Décompressez les sources de Sablot dans <Sablot>
Depuis une fenêtre de commande, rendez-vous dans ce répertoire et tapez la commande suivante :
nmake -f makefile.nt EXPAT=<Expat>\source EXPAT_LIB=lib\release\libexpat.lib \
ICONV=<Iconv>\src JS=<Js>\release
  

où EXPAT est égal au chemin absolu vers les sources EXPAT (en fait vers le fichier expat.h) et EXPAT_LIB le chemin RELATIF vers le fichier libexpat.lib fraîchement compilé (Relatif par rapport à EXPAT)

Quelques instants plus tard, vous obtenez les fichiers recherchés:

"sablot.lib" dans <Sablot>\lib
"sablot.dll" dans <Sablot>\bin
  

Copiez celui-ci dans un répertoire du PATH

Yaz-Toolkit

Décompressez les sources dans <Yaz>

Depuis une fenêtre de commande, rendez-vous dans <Yaz>\win et tapez

nmake
  

Voilà, c'est fait (pfff, c'était dur !!).

Copiez le fichier <Yaz>\bin\yaz.dll dans un répertoire du PATH

Zlib

Décompressez les sources dans <Zlib>

Copiez le fichier <Zlib>\nt\makefile.nt dans <Zlib>
Copiez le fichier <Zlib>\nt\zlib.dnt dans <Zlib>
  

Ouvrez une fenêtre de commandes dans <Zlib> et tapez la commande suivante

nmake /f makefile.nt
  

Une poignée de secondes plus tard, vous obtenez les fichiers convoités dans <Zlib>\Release

Copiez le fichier zlib.dll dans un répertoire du PATH

4.3 Paramétrage de VisualStudio

J'ai employé MS Visual Studio 6.0 (SP5).

Il faut y ajouter le pack "pre-processor" que vous trouverez sur le site de Microsoft: Visual C++ 6.0 Processor Pack

Un certain nombre de paramétrages supplémentaires sont à faire. Ils permettront aux différents programmes de trouver leurs dépendances respectives:

Menu "Tools \ Options \ Directories \ Executables files" et ajouter le chemin vers awk.exe
Menu "Tools \ Options \ Directories \ Executables Files" et ajouter <BUILD>\bin
Menu "Tools \ Options \ Directories \ Includes Files" et ajouter <BUILD>\include
Menu "Tools \ Options \ Directories \ Includes Files" et ajouter <APACHE>\src\include
Menu "Tools \ Options \ Directories \ Includes Files" et ajouter <APACHE>\src\os\win32
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <BZIP2>
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <CLIBPDF>\source
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <CURL>\include
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <ICONV>\include
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <OPENSSL>\inc32
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <PGSQL>\src\interfaces\libpq
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <PGSQL>\src\include
Menu "Tools \ Options \ Directories \ Includes files" et ajouter <SNMP>\snmplib
Menu "Tools \ Options \ Directories \ Library Files" et ajouter <BUILD>\lib
Menu "Tools \ Options \ Directories \ Library Files" et ajouter <APACHE>\src\lib
Menu "Tools \ Options \ Directories \ Library Files" et ajouter <APACHE>\src\Release
Menu "Tools \ Options \ Directories \ Library files" et ajouter <BZIP2>\release
Menu "Tools \ Options \ Directories \ Library files" et ajouter <CLIBPDF>\Release
Menu "Tools \ Options \ Directories \ Library files" et ajouter <CURL>\lib
Menu "Tools \ Options \ Directories \ Library files" et ajouter <ICONV>\lib
Menu "Tools \ Options \ Directories \ Library files" et ajouter <OPENSSL>\out32dll
Menu "Tools \ Options \ Directories \ Library files" et ajouter <PGSQL>\src\interface\libpq\release
Menu "Tools \ Options \ Directories \ Library files" et ajouter <SABLOT>\lib
Menu "Tools \ Options \ Directories \ Library files" et ajouter <SNMP>\win\lib
Menu "Tools \ Options \ Directories \ Library files" et ajouter <YAZ>\lib
Menu "Tools \ Options \ Directories \ Library files" et ajouter <ZLIB>\release
  

Quitter Visual Studio

Ajouter une variable d'environnement système : bison_simple de valeur <BUILD>\bin\bison.simple
  

Précédent | Table des matières | Suivant

Retour à l'accueil

Valid XHTML 1.0 Strict | Valid CSS

Sauf mention contraire, le contenu de ce site est publié sous contrat Creative Common by-nc-sa