1. Prsentation:

Le rpertoire "sources" contient quelques fichiers de ressources (images, icnes) et tous les fichiers sources C++ de WinCaml.
Son sous-rpertoire "All" contient les fichiers sources C++ qui dcrivent le fonctionnement de WinCaml indpendamment du systme d'exploitation. Le sous-rpertoire "Lex" de "All" contient les analyseurs lexicaux crs par le logiciel "lex". Ces anciens fichiers peuvent remplacer les trois fichiers de mmes noms situs au premier niveau de "All" (ce sont ces derniers qui sont utiliss pour la compilation de WinCaml dcrite plus loin).
Son sous-rpertoire "Qt" contient la passerelle Qt vers Linux, Mac OS X et Windows.
Son sous-rpertoire "Win" contient la passerelle native vers Windows.
Son sous-rpertoire "wx" contient la passerelle wxWidgets vers Linux, Mac OS X et Windows (utiliser wxWidgets-2.9.5 ou wxWidgets-3.0.x)

Les rpertoires "MinGW" et "MSVC" contiennent dans leurs sous-rpertoires divers scripts "build*.sh" ou "build*.bat" permettant de compiler WinCaml pour Windows.
Choisir le rpertoire "MinGW" en cas d'utilisation d'un compilateur MinGW, le rpertoire "MSVC" en cas d'utilisation d'un compilateur Microsoft (cl.exe).

Le rpertoire "Qt" contient le fichier "WinCaml.pro" (projet Qt) et, dans ses sous-rpertoires "lin", "mac", des scripts "build.sh" permettant de compiler WinCaml respectivement pour Linux et Mac OS X munis de Qt SDK 4.7.0 ou ultrieur. 
Il contient dans son sous rpertoire "win" des scripts "build*.sh" et "build*.bat" permettant de compiler WinCaml via Qt pour Windows.

Le rpertoire "WX" contient dans ses sous-rpertoires "lin" et "mac" des scripts "build.sh" permettant de compiler WinCaml respectivement pour Linux et Mac OS X munis des bibliothques wxWidgets.
Il contient dans son sous-rpertoire "win" des scripts "build.sh" et "build*.bat" permettant de compiler WinCaml pour Windows muni des bibliothques wxWidgets.

Le rpertoire "caml" contient l'environnement caml-light/ocaml de WinCaml. Noter que caml-light, ocaml et leurs documentations sont sous copyright de L'INRIA.
Ce rpertoire est utilis dans la construction du rpertoire "WinCaml5" (cf.  3. Rsultat). Il n'intervient pas dans la compilation de WinCaml.

Noter aussi que OCaml (4.00.1) devrait, pour tre utilis sous Linux et OS X avec WinCaml, tre install directement  partir de l'archive en code source "ocaml-4.00.1.tar.gz" du site http://caml.inria.fr
(./configure, make world, et (en administrateur) make install) dans le rpertoire /usr/local. 



2. Marche  suivre pour construire WinCaml:


2.1 Sous-rpertoires du rpertoire "MinGW":
Aprs avoir install MSYS et MinGW (compilateur ciblant l'architecture x86 ou x64):
- Choisir le script "build_xxxx_yy.sh" appropri: xxxx = 2000 pour Windows 2000, xxxx = XP-8 pour Windows XP et ultrieurs, yy = 32 pour l'architecture x86 et yy = 64 pour l'architecture x64
- Vrifier dans le script "build_xxxx_yy.sh", que les valeurs des variables TOOLCHAIN, GXX, WINDRES et STRIP correspondent bien  l'emplacement de MinGW (notamment dans le cas "win64").
- Ouvrir une fentre MSYS et positionner la ligne de commande sur le rpertoire "MinGW" et excuter ce script (i.e. entrer la commande: ./build_xxxx_yy.sh).
  ou bien
  demander  Windows d'excuter les fichiers "*.sh"  l'aide du programme "sh.exe" de MSYS, puis lancer le script "build_xxxx_yy.sh" par double clic.


2.2 Sous-rpertoires du rpertoire "MSVC":
- En cas d'utilisation de l'ancien Microsoft Visual C++ 6, choisir le script "build_2000_32.bat".
  sinon, aprs avoir install Microsoft Visual C++ (Microsoft Visual C++ express suffit: les ditions 2008, 2010 et 2012 - resp. vc9, vc10 et vc11 - fournissent chacune des compilateurs "cl.exe" pour les architectures x86 et x64),
- Choisir le script "build_xxxx_yy.bat" o xxxx est l'anne (2008, 2010 ou 2012) du compilateur utilis et yy = 32 pour l'architecture x86, 64 pour l'architecture x64
- Vrifier au dbut du script "build_xxxx_yy.bat" la validit du chemin du script "vcvarsall.bat" ou "vcvars32.bat"
- Excuter le script "build_xxxx_yy.bat" par double clic
  (ou bien ouvrir une "Invite de commandes" Windows, positionner la ligne de commande sur le sous-rpertoire choisi et excuter le script en entrant la commande: build_xxxx_yy.bat).


2.3 Sous-rpertoires du rpertoire "Qt" (Linux, Mac OS X ou Windows): 

2.3.1 Linux, OS X:
Aprs avoir install les outils de dveloppement (notamment g++ et make sous Linux, xcode sous OS X) et Qt SDK 4.7.x ou 4.8.x ou 5.x.y,
- Ouvrir une fentre de terminal bash.
- Placer la ligne de commande sur le sous-rpertoire correspondant au systme d'exploitation ("lin", "mac").
- Rendre si ncessaire le script "build.sh" excutable (chmod +x build.sh).
- Vrifier la prsence de "qmake" dans la variable d'environnement PATH (echo $PATH) ou attribuer son chemin complet  QMAKE dans le script "build.sh".
- Excuter le script "build.sh" (i.e. entrer la commande: ./build.sh).

2.3.2 Windows avec Qt 4.7.0 pour Windows 32-bit (Qt mingw 2010.05) (paquet binaire):
- Aprs avoir install MSYS,  demander  Windows d'excuter les fichiers "*.sh"  l'aide du programme "sh.exe" de MSYS puis excuter le script "build_Qt_4_7.sh" par double clic. 
   (ou bien ouvrir une fentre MSYS, positionner la ligne de commande sur le sous-rpertoire "win" et excuter le script en entrant la commande .build_Qt_4_7.sh)

2.3.3 Windows avec Qt 4.8.4 pour Windows 32-bit (msvc 2010, vc10) (paquet binaire):
- Aprs avoir install Microsoft Visual C++ 2010 (l'dition express suffit), excuter le script "build_Qt_4_8_4.bat" par double clic
   (ou bien ouvrir une "Invite de commandes" Windows, positionner la ligne de commande sur le sous-rpertoire "win" et excuter le script en entrant la commande: build_Qt_4_8_4.bat).

2.3.4 Windows avec Qt 5.0.0 pour Windows 32-bit (msvc 2010, vc10) (paquet binaire):
- Aprs avoir install Microsoft Visual C++ 2010 (l'dition express suffit), excuter le script "build_Qt_5_0_0.bat" par double clic
   (ou bien ouvrir une "Invite de commandes" Windows, positionner la ligne de commande sur le sous-rpertoire "win" et excuter le script en entrant la commande: build_Qt_5_0_0.bat).

2.3.5 Windows avec Qt 5.0.2 for Windows 64-bit (mscv 2012, vc11) (paquet binaire):
- Aprs avoir install Microsoft Visual C++ 2012 (l'dition express suffit), excuter le script "build_Qt_5_0_2.bat" par double clic
   (ou bien ouvrir une "Invite de commandes" Windows, positionner la ligne de commande sur le sous-rpertoire "win" et excuter le script en entrant la commande: build_Qt_5_0_2.bat).

2.3.6 Windows avec Qt 5.1.1 for Windows 64-bit (mscv 2012, vc11) (paquet binaire):
- Aprs avoir install Microsoft Visual C++ 2012 (l'dition express suffit), excuter le script "build_Qt_5_1_1.bat" par double clic
   (ou bien ouvrir une "Invite de commandes" Windows, positionner la ligne de commande sur le sous-rpertoire "win" et excuter le script en entrant la commande: build_Qt_5_1_1.bat).


2.4 Sous-rpertoires de "WX" (Linux, Mac OS X ou Windows):

Dcompresser l'archive wxWidgets-3.0.x.zip (Windows) ou wxWidgets-3.0.x.tar.bz2 (Linux, OS X) obtenue  http://www.wxWidgets.org: par exemple sous Windows son contenu pourra aller dans C:\wxWidgets-3.0.x et sous Linux ou OS X dans $HOME/wxWidgets-3.0.x .
Aprs avoir compil wxWidgets-3.0.x dans un certain environnement, reprer dans les sous rpertoires de "WX" le script "build.sh" (Linux, Mac OS X, windows-MinGW-msys) ou "build*.bat" (Windows) correspondant  cet environnement. Y modifier si ncessaire la variable WXPATH (elle doit contenir la chemin du rpertoire wxWidget-3.0.x prcdemment compil). Excuter ce script en ligne de commande (comme pour Qt ci-dessus) ou par double clic (Linux, Windows).
Sous Linux wxWidgets-3.0.x doit tre configur pour l'utilisation de Gtk2 ou Gtk3 et le script "build.sh" peut ncessiter quelques modifications (variables INCLUDES et LIBS): il suppose l'utilisation de Gtk2; s'inspirer des variables INCLUDES et LIBS des "Makefile" des rpertoires wxWidgets-3.0.x/samples/*. 

Pour Windows avec MinGW-msys, compiler wxWidgets-3.0.x en utilisant la ligne de commande de msys comme suit ( en supposant la distribution dans C:\wxWidgets-3.0.x):
  cd /c/wxWidgets-3.0.x
  ./configure
  make
  
Pour Windows muni d'un compilateur Microsoft "cl.exe", compiler de prfrence wxWidgets-3.0.x en utilisant la ligne de commande de ce compilateur  partir du rpertoire wxWidgets-3.0.x\build\msw:
  nmake -f makefile.vc BUILD=release
(on peut aussi utiliser l'un des projets Visual C++ proposs)

3. Rsultat:

Dans tous les cas on doit finalement obtenir un rpertoire "WinCaml5" contenant l'excutable WinCaml (WinCaml.exe pour Windows, WinCaml.app pour Mac OS X)
prt  fonctionner.

Sous Windows et Mac OS X Le rpertoire WinCaml5 sera trouv  ct du script utilis; on pourra le dplacer vers tout endroit accessible en criture.
Sous Windows, on pourra crer sur le bureau un raccourci vers l'application WinCaml.exe situe dans le rpertoire WinCaml5 ou pingler WinCaml.exe dans la barre des tches.
Sous Mac OS X on pourra reprsenter l'application WinCaml.app par un raccourci sur le bureau ou faire glisser son icne dans le Dock.

Sous Linux, suppos fonctionner avec comme gestionnaire de fentre Gnome ou Kde, le script "build.sh" transfre le rpertoire "WinCaml5" dans le rpertoire personnel et cre dans ce dernier un fichier "WinCaml.desktop".
(Voir le contenu de "build.sh" pour empcher ce transfert ou corriger d'ventuels dysfonctionnements).
Faire glisser l'icne du fichier "WinCaml.desktop" du rpertoire personnel vers le bureau (sous Gnome 2 le fichier "WinCaml.desktop" est dplac vers le dossier "Bureau", sous Gnome 3 ou Kde 4 une icne est cre sur le bureau).
WinCaml peut alors tre lanc par double clic (simple clic pour Gnome 3 ou Kde 4) ou fonctionner par "glisser-dposer"  l'aide de cette icne qui devrait (ventuellement aprs une question de confiance  la premire utilisation) reprsenter le "chameau  lunettes".



4. Rpertoire WinCaml du dossier personnel (Qt: Linux et OS X):

L'application WinCaml utilisant la passerelle Qt dpose dans le rpertoire WinCaml du dossier personnel (aprs avoir ventuellement cr ce rpertoire) son fichier de configuration (fichier texte).
Ce rpertoire WinCaml, o sjournent aussi quelques fichiers temporaires, devrait lui tre rserv. Les fichiers temporaires ne devraient plus exister quand WinCaml a quitt normalement.
En cas de problmes, effacer les fichiers temporaires ventuels. Pour rinitialiser compltement WinCaml effacer aussi le fichier de configuration.



5. Rpertoire WinCaml du dossier personnel (wxWidgets: Linux, OS X, Windows):

Le chemin de ce rpertoire est le suivant:
Linux (fichier cach): $HOME/.WinCaml 
OS X: $HOME/Library/Application Support/WinCaml
Windows XP: %HOMEPATH%\Local Settings\Application Data\WinCaml

Ce rpertoire contient le fichier de configuration de WinCaml, le fichier temporaire "lockfile" verrouillant le dmarrage de WinCaml (destin  empcher le dmarrage d'un second exemplaire de l'application) et des fichiers temporaires nomms "0" ou "1" contenant les chemins des fichiers  ouvrir au dmarrage.
Si WinCaml ne dmarre pas, cela peut tre d  la prsence - par exemple suite  un crash de WinCaml - du fichier "lockfile"; effacer "lockfile" devrait rsoudre le problme.
En cas de corruption du fichier de configuration, effacer ce dernier (rinitialisation complte de WinCaml).
On peut aussi, en cas de problmes, dmarrer WinCaml par la ligne de commande "WinCaml init".



6. Utilitaires unlock.exe (Qt Windows) et WinCamlInit.bat (Windows):

unlock.exe permet d'liminer (par exemple aprs un plantage de WinCaml) le fichier verrouillant le dmarrage de WinCaml (destin  empcher le dmarrage d'un second exemplaire de l'application).
WinCamlInit.bat permet de rinitialiser les rglages de WinCaml en supprimant son fichier de configuration (dont l'emplacement, li  l'utilisateur, dpend de la version de Windows). 
