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

2 comments:

Anonymous said...

bonjour
c'est quoi le préfixe ?

Gilles Crebassa said...

un prefix est une zone qu'on mets avant la zone importante. un dictionaire devrait t'aider un peu.