Saturday, May 31, 2008

passage de Cygwin vers MinGW sous windows

après quelques tests, j'ai remarqué qu'il était préférable d'utiliser MinGW.

Pourquoi ?

  1. Trolltech ne supporte pas Cygwin mais MinGW et Visual Studio sous Windows (dixit 'platform supported') et l'installation/Compilation de Qt 4.4 est beaucoup plus simple.
  2. d'après le Wiki (http://en.wikipedia.org/wiki/MinGW) , MinGW est mieux intégré que Cygwin puisque les appel vers le système d'exploitation sont des 'vrais' appels et non des appel POSIX Unix vers des appels Windows. ça fait une couche en moins et peut-être de la rapidité en plus.
  3. Le compilateur Open Cobol + toutes les dependances compilent sans problèmes.

Avec cette solution, on reste dans une solution uniformisé.

MinGW permet aussi de compiler les application sous GNU Linux et les exécuter sous MS Windows (cross-compiling).



2 solutions pour l'install de MinGW:

  • Installation standard from sourceforge
  • Installation manuel pour l'installation sur USB ou disque externe.

Pour ma part, j'expliquerais comment l'installer et le configurer sur disque usb.

Tuesday, May 20, 2008

Compîlation d'open cobol 1.0 sous windows

Enfin, dbBerkeley et gmplib sont compilés (voir épisodes précédents) et il reste plus qu'a compiler Open Cobol 1.0.

Open Cobol est un compilateur Cobol un peu particulier puisqu'il 'transforme' le code cobol en code C.

Quels sont les avantages:

  • mufti plateformes (windows , Linux, Unix,Mac OS,...
  • Open source GNU/GPL (Free != gratuit) avec Code Disponible.
  • Compatible avec les standards COBOL 85 et Cobol 2002.
  • Supporte beaucoup de compatibilités avec certains compilateurs comme MF (Micro Focus) , VMS, ...
  • Rapidité d'exécution
  • Réponse rapide et efficace sur le forum.
  • Toujours en cours d'évolution.
  • ...

Vous pouvez télécharger les sources sur le site d'Open cobol
deposez ensuite les sources 'open-cobol-1.0.tar.gz' dans le repertoire c:\Tools\src\

Lancer cygwin et exécuter les commandes:

cd /cygdrive/c/Tools/src/
tar -xzvf open-cobol-1.0.tar.gz
cd open-cobol-1.0

Ensuite pour mettre à our les variables d'environnements:
export PATH=/cygdrive/c/Tools/bin/gmp/bin/:/cygdrive/c/Tools/bin/db/bin/:/cygdrive/c/Tools/bin/open-cobol/bin/:$PATH

export CPPFLAGS="-I/cygdrive/c/Tools/bin/gmp/include/ -I/cygdrive/c/Tools/bin/db/include/"

export LDFLAGS="-L/cygdrive/c/Tools/bin/gmp/lib/ -lgmp -L/cygdrive/c/Tools/bin/db/lib/ -ldb"
Puis la configuration avant la compilation :

./configure --prefix=/cygdrive/c/Tools/bin/open-cobol-1.0

vous devriez avoir à la fin:


OpenCOBOL Configuration:

CC gcc
COB_CC gcc
CFLAGS -O2 -march=i686 -mtune=athlon -finline-functions -fomit-frame-pointer -fsigned-char -Wall -Wwrite-strings -Wmissing-prototypes -Wno-format-y2k
COB_CFLAGS -I/cygdrive/c/Tools/bin/open-cobol-1.0/include -I/cygdrive/c/Tools/bin/gmp/include/ -I/cygdrive/c/Tools/bin/db/include/ -O2
COB_EXTRA_FLAGS -march=i686 -mtune=athlon
LDFLAGS -L/cygdrive/c/Tools/bin/gmp/lib/ -lgmp -L/cygdrive/c/Tools/bin/db/lib/ -ldb
COB_LDFLAGS -L/cygdrive/c/Tools/bin/gmp/lib/ -lgmp -L/cygdrive/c/Tools/bin/db/lib/ -ldb
COB_LIBS -L/cygdrive/c/Tools/bin/gmp/lib/ -lgmp -L/cygdrive/c/Tools/bin/db/lib/ -ldb -L${exec_prefix}/lib -lcob -lm -lgmp -lncurses -ldb
COB_CONFIG_DIR ${prefix}/share/open-cobol/config
COB_LIBRARY_PATH .:${exec_prefix}/lib/open-cobol
COB_MODULE_EXT dll
COB_SHARED_OPT -shared
COB_PIC_FLAGS -DDLL_EXPORT -DPIC
COB_EXPORT_DYN -Wl,--export-all-symbols -Wl,--enable-auto-import
COB_STRIP_CMD strip --strip-unneeded
Dynamic loading System

Use gettext for international messages: no
Use Berkeley DB for file I/O: yes
Use enhanced Berkeley DB (>= 4.1) yes
Use fcntl for file locking: yes
Use ncurses/pdcurses/curses for screen I/O: yes

Si vous voulez d'autres fonctionnalités, vous pouvez ajouter des paramètres au 'configure'.

Quand tout est fini, passer à la compilation avec la commande:

make



Pour verifier que c'est OK (test de regression), lancer la commande:

make check


Si les tests sont pas bon et qu'il n'y a pas 'ok' pour tous les tests, il est recommandé d'envoyer le résultat au développeur sur le site officiel (forum).

Ensuite,vous pouvez l'installer :

make install

Maintenant, open cobol est installer.

Pour ne pas spécifier au utilisateur quelle version d'open cobol est utilisé et ne pas devoir changer tous les variables d'environnements de tous les profils qui l'utilise, lancer la commande :

ln -s /cygdrive/c/Tools/bin/open-cobol-1.0 /cygdrive/c/Tools/bin/open-cobol




Voila, c'est compiler.

pour tester simplement, lancer la commande :

$ cobc --version
cobc (OpenCOBOL) 1.0.0
Copyright (C) 2001-2007 Keisuke Nishida
Copyright (C) 2007 Roger While

Compilation de gmp pour Open Cobol

Maintenant que DBBerkeley est compilé, il faut passer à la compile de gmp.

Cette librairie (ou bibliothèque pour les puristes), est utilisé depuis peu pour gcc (compilateur GNU/GPL).
vous pouvez la télécharger sur le site officiel : http://gmplib.org/

La dernière version est la '4.2.2'.

Il faut copier le fichier 'gmp-4.2.2.tar.gz' dans c:\Tools\src\

Ensuite, dans Cygwin, lancer les commandes:

cd /cygdrive/c/Tools/src/
tar -xzvf gmp-4.2.2.tar.gz
cd gmp-4.2.2
./configure --prefix=/cygdrive/c/Tools/bin/gmp-4.2.2/ --enable-shared --disable-static

il est trés important d'ajouter l'option '--enable-shared --disable-static' pour la compilation d'open cobol.
Ensuite, ce qui prends généralement pas mal de temps est:

make

Pour verifier que ca marchera correctement, les tests de regression (ou plutôt 'anti-regression'):

make check

Si lors du check, il y a des erreurs, n'allez pas plus loin et chercher d'où ça vient.
et enfin, l'install

make install
ln -s /cygdrive/c/Tools/bin/gmp-4.2.2 /cygdrive/c/Tools/bin/gmp





Bientot, la compil de Open Cobol

Monday, May 19, 2008

Merci au personnel de la SNCB

Je voulais fournir un grand merci au personnel de la SNCB qui, pour leur grève du 20 Mai 2008, m'a permis de :

  • m'empêcher d'aller travailler.
  • de devoir prendre un jour de congé obligatoire.
  • me fournir un sorry pass pour cette journée avec des super bonnes conditions, si on ne le perd pas évidemment .
  • Peut-être un jour de congé sans soldes en fin d'année quand tous les jours seront épuisés par les grèves de la SNCB, STIB et autres.
Bien sûr, la liste pourrait être longue et ne profitera pas au personnes qui ont un abonnement:

  • remboursé intégralement par son entreprise.
  • qui à une duré d'un an puisque la date de validité du sorry pass sera dépassé.
  • lié avec STIB (Métro, bus et tram).
Cependant, on est de tous cœur avec le personnel de la SNCB qui pourra profiter, je l'espère d'une dernière journée ensoleiller avant de reprendre le travail sereinement et avec beaucoup de motivation.

Et comme d'habitude, ne recherchait pas connaitre les revendications.
De plus, j'ai toujours pas très bien compris puisque la SNCB ne perds pas d'argent puisqu'un train qui ne roule pas coûte beaucoup moins.


Dédommagement grèves SNCB

Pour info, il y a une petition depuis peu qui permet de manifester virtuellement contre cet abus de nous prendre en otage qui se trouve sur le site http://www.marredesgreves.be

En signant cette pétition, vous demander à la SNCB de donner 1 € par signature à une oeuvre charitable (FNRS/Televie).





Bon, j'vais bien trouver le moyen de faire autre chose puisqu'on a pas vraiment le choix.


Update:


Après avoir regarder sur le journal, sites et la télé, je ne comprends toujours pas.
On empêche les gens d'aller travailler, ce qui ennui le gouvernement qui va pousser le patron de la SNCB a accepter un accord.

Dans les revendications, il y a :


Métier pénible --> faut trouver un autre travail ou aller au porte ouverte d'une usine !!
Augmentation pas assez élevé (650 € brut en 2 ans)-->faut trouver un autre travail ou être content d'avoir une augmentation, certaines personnes n'en ont pas.

Par contre, j'ai bien aimé le bonhomme qui parle des handicapés dans un train qui revient de Lourdes. J'aurais pas osez. Je l'imagine déjà dans la suite d'un film à succès 'le diner de ....'
Il a quand même beaucoup de contradictoires dans ces discours.
Ensuite, il y avait le navetteur qui ne savait pas travailler mais qui est quand même venu jusqu'au studio de télé et qui m'avait l'air plutôt content de ne pas travailler. Il avait certainement pas d'urgence.


On va encore ressortir les statistiques pour expliquer que les 3/4 des employés de la SNCB sont bien payés et ont plus de congés que les navetteurs.

Tuesday, May 6, 2008

Compiling DB Berkeley for Open Cobol

Now, Cygwin is installed on your computer, you must think to compile all dependencies of Open Cobol.

For this, we deposit all files in a sub folder 'tools' in c:\, and inside, the folder containing sources et binaries.

Here is how it give :


c:\
  • tools
    • src
    • bin


we take all sources on a sub folder c:\tools\src and the compilation make installation on c:\tools\bin\


All sources of DB Berkeley are on the Oracle's site here
Warning: Open Cobol need the version 4.5 maximum for compiling.
The file who have downloaded with Firefox is 'db-4.5.20.NC.tar.gz'

I have copied this file into c:\tools\src\


in Cygwin:

cd c:
cd tools
mkdir bin
mkdir src
cd src
tar -xzvf db-4.5.20.NC.tar.gz
cd db-4.5.20.NC
cd build_unix
../dist/configure --prefix=/cygdrive/c/tools/bin/db-4.5.20.NC


After this,when all is done, launch the compilation with :

make

That's can take some time.

You can find several documentation on the folder c:\tools\src\db-4.5.20.NC\docs\ (seeing with a browser)

When the compilation is finished , launch the command :

make install

For easy made, it's most easy than using symbolic link who see the last version installed on the computer.(UNIX/Linux functionality :-}) )

ln -s /cygdrive/c/tools/bin/db-4.5.20.NC /cygdrive/c/tools/bin/db


Normally, You must have 4 sub folders:

  • bin
  • lib
  • include
  • docs

the Most important is 'lib'

See you on the next lesson for the 'gmp' compile.

Monday, May 5, 2008

Compilation de db Berkeley 4.5 pour Open Cobol

Maintenant que Cygwin est installé, il faut penser à compiler les dépendances d'Open Cobol.

Pour cela, on va mettre tous les fichiers dans un sous-répertoire 'tools' dans c:\, ensuite les sources et binaires.

Voici ce que ça donne :


c:\
  • tools
    • src
    • bin


on va donc mettre toutes les sources dans les sous-répertoires de c:\tools\src et la compilation va installer dans c:\tools\bin\


Les sources de DB Berkeley sont sur le site d'oracle ici
Attention: Open Cobol a besoin de la version 4.5 maximum pour compiler.

Le fichier que j'ai téléchargé avec Firefox est 'db-4.5.20.NC.tar.gz'

j'ai copié le fichier dans c:\tools\src\


dans Cygwin:

cd c:
cd tools
mkdir bin
mkdir src
cd src
tar -xzvf db-4.5.20.NC.tar.gz
cd db-4.5.20.NC
cd build_unix
../dist/configure --prefix=/cygdrive/c/tools/bin/db-4.5.20.NC

Ensuite, quand tous c'est bien passé, lancer la compilation avec :

make
Ça peux prendre pas mal de temps.
Il y a plein de doc dans c:\tools\src\db-4.5.20.NC\docs\ (lisible avec un browser internet)
et quand la compilation est fini, lancer la commande :

make install

Pour faire simple, il est plus facile d'utiliser des liens symboliques qui pointent sur les dernières versions installées sur la machine ( fonctionnalité UNIX/Linux :-}) )

ln -s /cygdrive/c/tools/bin/db-4.5.20.NC /cygdrive/c/tools/bin/db


Normalement, vous devriez avoir 4 sous-répertoires:

  • bin
  • lib
  • include
  • docs

le plus important pour la suite est 'lib'

Bientôt, la compile de 'gmp'.