Ficher README.1ST de DJGPP Version 2.01

[Avertissement: DJ Delorie, l'auteur de la version originale de ce document
(et de DJGPP), n'est nullement responsable des erreurs de traduction, ou du
retard dans la mise a jour de ce document. Si cette version francaise vous
pose probleme, envoyez vos remarques/critiques a Francois Charton
<[email protected]>]


DJGPP v2.01 est un ensemble d'applicatifs gratuits permettant de developper
des programmes C/C++ en mode protege 32 bits sous MS-DOS.

L'etat d'avancement du projet et diverses informations (documentation en
ligne, FAQ, archives de la messagerie) sont disponibles sur le site web
de djgpp, a l'adresse http://www.delorie.com/. Tous commentaires sur DJGPP
et questions sur son utilisation et ses fonctionnalites peuvent etre
envoyes au newsgroup comp.os.msdos.djgpp ou a la liste de diffusion
<[email protected]>, (pour vous y abonner, envoyez un message a
<[email protected]>). Des informations sur les dernieres
versions des applicatifs de DJGPP sont disponibles sur le site web.

Dans chaque archive .zip, le numero de version est dans le fichier
manifest/*.ver, et le contenu dans manifest/*.mft.

Un autre manuel, plus complet (et plus long), d'introduction a DJGPP
a ete ecrit par An <[email protected]> et peut etre telecharge par ftp
anonyme a x2ftp.oulu.fi. Il se trouve dans le repertoire
/pub/msdos/programming/djgpp2, et son nom est djtut-bm.zip. Vous pouvez
egalement le consulter en ligne a l'adresse Web suivante:

       http://remus.rutgers.edu/~avly/djgpp.html



LES PROGRAMMES
**************

Les fichiers dont le nom finit par 'b' contiennent les programmes et leur
documentation. Au moment ou ce document a ete ecrit, les applicatifs
disponibles etaient:

FAQ     Un petit fichier indiquant les documents que vous devriez lire
       (en particulier la "vraie" FAQ).

v2/
unzip386 Decompacteur (comme PKUNZIP) librement accessible
djdev201 Executables et kit de developpement de DJGPP V2
djlsr201 Sources des librairies de DJGPP V2
djtst201 Programmes de test
djcrx201 Compilateur croise, pour produire des programmes DOS depuis un
        autre systeme
faq210b  La FAQ complete sous divers formats (Info, ASCII, HTML...)
faq210s  Sources en Texinfo de la FAQ, et outils pour la traduire
        dans differents formats.
frfaq21b Traduction francaise de la FAQ v2.10, version texte (Info, ASCII)
frfaq21s Traduction francaise de la FAQ v2.10, source Texinfo

v2apps/
rhide14b Environnement de developpement integre pour DJGPP v2
rhide14s Sources de RHIDE

v2gnu/
bnu281b  GNU binutils 2.8.1 pour DJGPP V2
bnu281s  Sources de GNU binutils 2.8.1
bsh1147b GNU bash 1.14.7 pour DJGPP V2
bsh1147s Sources de GNU bash 1.14.7
bsn125b  GNU bison 1.25 pour DJGPP V2
bsn125s  Sources de GNU bison 1.25
dif271b  GNU diffutils 2.7.1 pour DJGPP V2
dif271s  Sources de GNU diffutils 2.7.1
em1934b  GNU emacs 19.34: Executables pour DJGPP v2
em1934l? GNU emacs 19.34: Sources Elisp (3 fichiers)
em1934r? GNU emacs 19.34: Environnement d'execution (3 fichiers)
em1934s? GNU emacs 19.34: Sources (3 fichiers)
fil316b  GNU fileutils 3.16 pour DJGPP v2
fil316s  Sources de GNU fileutils 3.16
find41b  GNU findutils 4.1 pour DJGPP V2
find41s  Sources de GNU findutils 4.1
flx254b  GNU Flex 2.5.4 pour DJGPP V2
flx254s  Sources de GNU Flex 2.5.4
g770519b GNU Fortran77 0.5.19 pour DJGPP V2
g770519s Sources de GNU Fortran77 0.5.19
gcc280b  GNU GCC 2.8.0 pour DJGPP V2
gcc280s  Sources de GNU GCC 2.8.0
gdb416b  GNU Debugger 4.16 pour DJGPP V2
gdb416s  Sources de GNU Debugger 4.16
gdbm173b GDBM 1.7.3, executables pour DJGPP V2
gdbm173s Sources de GDBM 1.7.3
gpc20b   GNU Pascal 2.0, executables pour DJGPP V2
gpc20s   Sources de GNU Pascal 2.0
gpp280b  GNU G++ 2.8.0 pour DJGPP V2 (sans les librairies)
gpt112b  GNU Pascal avec extensions Turbo Pascal
grep21b  GNU grep 2.1 pour DJGPP V2
grep21s  Sources de GNU grep 2.1
gwk303b  GNU awk 3.03 pour DJGPP V2
gwk303s  Sources de GNU awk 3.03
gzp124b  GNU gzip 1.2.4 pour DJGPP V2
gzp124s  Sources de GNU gzip 1.2.4
isp3120b GNU ispell 3.1.20 pour DJGPP V2
isp3120s Sources de GNU ispell 3.1.20
lgpp280b GNU libg++ 2.8.0 pour DJGPP V2
lgpp280s Sources de GNU libg++ 2.8.0
lss332b  GNU less 3.22, executables pour DJGPP v2
lss332s  Sources de GNU less 3.22
mak3761b GNU Make 3.76.1 pour DJGPP V2
mak3761s Sources de GNU Make 3.76.1
objc280b GNU ObjC 2.8.0 pour DJGPP V2
pat25b   GNU patch 2.5 pour DJGPP V2
pat25s   Sources de GNU patch 2.5
rcs5713b GNU rcs 5.7p113 pour DJGPP v2
rcs5713s Sources de GNU rcs 5.7p113
sed118b  GNU sed 1.18 pour DJGPP V2
sed118s  Sources de GNU sed 1.18
shl112b  GNU sh-utils 1.12 pour DJGPP V2
shl112s  Sources de GNU sh-utils 1.12
txi390b  GNU texinfo 3.9 pour DJGPP V2
txi390s  Sources de GNU texinfo 3.9
txt119b  GNU textutils 1.19 pour DJGPP V2
txt119s  Sources de GNU textutils 1.19

v2tk/
allegro  Sources d'Allegro 3.0 - librairies de programmation de jeux
bccgrx20 Convertisseur graphique Borland/GRX pour DJGPP V2
bcsio20  Communications sur le port serie, par Bill Currie
djgpptsr Exemples d'ecriture de programmes residents sous DJGPP
gccsjis  Patch pour GCC, pour compiler les sources de JIS (beta)
grx20    GRX 2.0 Librairie Graphique pour DJGPP V2
jkthpack Threads pour DOS, par JK
jptui37d JPTUI, Interface utilisateur texte
libkb100 Interface clavier bas niveau portable
lmb051b  JIS librairie multi-octets (beta)
lmb051s  Source de JIS, librairie multi-octets (beta)
lw03b    JIS caracteres grand formats (beta)
lw03s    Source de JIS caracteres grands formats (beta)
mkkbd3   Exemples de gestionnaire clavier
mttws121 Systeme de fenetrage, par Malcolm Taylor
pdc22    Librairie "curses" domaine public
rsxdj131 RSX pour DJGPP
sw21_dj1 Systeme de fenetrage SWORD, executables pour DJGPP V1
sw21_dj2 Systeme de fenetrage SWORD, executables pour DJGPP V2
sw21_doc Systeme de fenetrage SWORD, documentation
sw21_p1  Systeme de fenetrage SWORD, Partie 1
sw21_p2  Systeme de fenetrage SWORD, Partie 2
sw21_tc  Systeme de fenetrage SWORD, Executables pour Turbo C

v2misc/
csdpmi4b CWSDPMI, executables et documentation du serveur DPMI gratuit
                 de Charles Sandmann
csdpmi4s Sources de CWSDPMI
infng100 Conversion d'INFO vers Norton Guides
mlp107b  Compresseur de fichiers executables ML
mlp107s  Sources de ML
pmode12b PMODE, amorce pour djgpp V2
pmode12s Source de PMODE
wmemu2b  Emulateur 387 de WM, executables pour DJGPP V2
wmemu2s  Emulateur 387 de WM, sources pour DJGPP V2


PREMIERS PAS
************

Les informations donnees ici sont le minimum qu'un utilisateur novice doit
connaitre pour demarrer DJGPP. Pour avoir davantage de details, veuillez
lire la documentation et la FAQ de DJGPP. Il est souhaitable que tout nouvel
utilisateur lise la FAQ en entier.


Que telecharger
---------------

En general, ne telechargez que les executables; peu de gens ont besoin
des sources.

Pour compiler des programmes C, vous devez avoir djdev201.zip, gcc280b.zip,
et bnu281b.zip. Pour le C++, il vous faudra egalement gpp280b.zip et
lgpp280b.zip. Pour lire les manuels, telechargez txi390b.zip et executez
"info". Si aucun serveur DPMI n'est installe sur votre machine, vous devez
avoir csdpmi4b.zip. (Windows, QDPMI, 386Max, NWDOS, OpenDOS, OS/2, Win/NT
et DOSEmu sous Linux contiennent un serveur DPMI. Vous n'avez donc pas
besoin de CWSDPMI dans ces environnements). Pour plus d'informations,
telechargez faq210b.zip (ou en francais frfaq21b.zip), et lisez le chapitre 4
de la FAQ.

Installation
------------

1. Creez un repertoire pour DJGPP, par exemple C:\DJGPP. Si vous avez
  deja installe la version 1.x , il vaut mieux effacer le contenu du
  sous repertoire 'bin/', ou le recopier dans un autre repertoire (qui
  ne soit pas sur votre PATH), et detruire tout le reste de cette version.
  (Certains des problemes rencontres par les utilisateurs de DJGPP v2 viennent
  du melange des deux versions v1.x et v2). Le seul programme de la version
  1.x que vous devriez conserver est 'go32.exe'.

2. Decompactez les fichiers zip a partir de ce repertoire, en veillant a
  preserver l'arborescence des sous repertoires. Par exemple :

       pkunzip -d gcc280b
  ou
       unzip386 gcc280b


3. Apres avoir decompacte tous les fichiers zippes, faites pointer la
  variable d'environnement DJGPP sur le fichier DJGPP.ENV, dans le
  repertoire de base de DJGPP, et ajoutez le sous repertoire BIN a votre PATH.
  Par exemple, si votre installation de DJGPP s'est faite a partir
  de C:\DJGPP, vous ajouterez au fichier AUTOEXEC.BAT les deux lignes :

       set DJGPP=C:\DJGPP\DJGPP.ENV
       set PATH=C:\DJGPP\BIN;%PATH%


4. Executez le programme go32-v2.exe sans arguments

       go32-v2

  Il doit alors vous annoncer combien de memoire et d'espace
  d'echange DPMI DJGPP disposera sur votre systeme, par exemple :

       DPMI memory available: 8020 Kb
       DPMI swap space available: 39413 Kb

  (Ces nombres dependent de la taille de la RAM de votre systeme, de
  l'espace disque disponible, et du serveur DPMI.) Si go32-v2 annonce
  moins de 4 MOctets de memoire DPMI, lisez le paragraphe 3.8 de la FAQ.
  (Meme si vous disposez de davantage de memoire, lisez le si vous voulez
  optimiser les performances de DJGPP sur votre systeme).

Compilation
-----------

GCC est un compilateur en ligne de commande, que vous appelez depuis le DOS.
Pour compiler et relier un programme C constitue d'un seul fichier, vous
taperez une commande comme :

       gcc monfich.c -o monfich.exe -lm

L'option -lm relie la librairie lib/libm.a (fonctions trigonometriques) si
vous en avez besoin. (Lors de la reliure, l'ordre des operations est
important, aussi, tapez toujours '-lm' a la fin de la ligne de commande.)

Pour compiler un fichier C ou C++ en fichier objet, tapez :

       gcc -c -Wall monfich.c   (programme C)
 ou
       gcc -c -Wall monfich.cc (programme C++)

Ceci cree le fichier objet monfich.o. L'option '-Wall' active toutes sortes
de messages d'avertissement, qui peuvent etre d'une grande utilite aux
utilisateurs novices de GCC. (D'autre extensions de fichiers C++, comme .cpp,
sont egalement acceptees, pour plus d'information, lire la section 8.4 de la
FAQ).

Pour relier plusieurs fichiers objets C en un programme executable, tapez:

       gcc -o monprog.exe monmain.o monsub1.o monsub2.o -lm

Ceci cree 'monprog.exe' qui peut etre execute a l'invite du DOS.

Pour relier un programme C++, utilisez gxx au lieu de gcc:

       gxx -o monprog.exe monmain.o monsub1.o monsub2.o -lm

Il utilisera automatiquement les librairies C++, ce vous epargne de les faire
figurer sur la ligne de commande.

Vous pouvez egalement combiner compilation et reliure :

       gcc -Wall -o monprog.exe monmain.c monsub1.c monsub2.c -lm

Les innombrables options de GCC sont decrites dans sa documentation en ligne.
Pour y avoir acces, installez l'applicatif Texinfo (texi390b.zip,
voir le paragraphe "documentation en ligne" ci dessous) et tapez :

       info gcc invoking


Environnement de developpement (EDI)
------------------------------------

DJGPP n'a pas actuellement d'environnement de developpement integre.
Vous pouvez utiliser comme EDI n'importe quel editeur capable de lancer des
programmes DOS et d'en recevoir le resultat. De nombreux utilisateurs de
DJGPP utilisent un portage pour DOS de GNU Emacs (disponible au meme endroit
que DJGPP) qui peut etre compile par DJGPP. Emacs est un editeur tres puissant
(il dispose par exemple d'un lecteur Info integre, ce qui vous permet de lire
la documentation DJGPP sans quitter l'editeur), mais de nombreux autres
editeurs gratuits peuvent servir d'EDI. La seule chose que ces editeurs
(y compris Emacs) ne puissent faire est d'utiliser un debogueur lors d'une
session plein-ecran.

Un EDI specifique a DJGPP, appele RHIDE, peut etre utilise. Il presente une
interface similaire a celle de Turbo C, et permet l'indentation automatique,
la mise en evidence de la syntaxe, l'appel automatique du compilateur DJGPP,
la creation automatique de fichiers Makefile, et un acces simple a la
documentation en ligne de DJGPP. RHIDE permet aussi le debogage, en utilisant
les fonctionnalites du debogueur GNU (gdb). RHIDE etant tres recent, des
corrections et revisions lui sont regulierement apportees. Consultez
http:/www.tu-chemnitz.de/~sho/rho/rhide.html pour les dernieres versions.



Debogage
--------

Pour deboguer un programme, vous devez d'abord le compiler en utilisant
l'option -g :

       gcc -c -Wall -g monmain.c
       gcc -c -Wall -g monsub1.c
       gcc -c -Wall -g monsub2.c

puis le relier avec l'option '-g':

       gcc -g -o monprog.exe monmain.o monsub1.o monsub2.o

(Depuis la version 2.01 de DJGPP, il n'est plus necessaire de produire un
fichier COFF brut en ne mettant pas le suffixe '.exe' au nom de fichier pour
pouvoir deboguer un programme. Les nouvelles versions du debogueur savent
lire l'executable comme le fichier COFF. Si vous ne comprenez pas ce
paragraphe, ce n'est pas grave).

Puis executez votre programme avec le debogueur :

       fsdb monprog.exe
ou
       gdb monprog.exe
ou
       edebug32 monprog.exe

(Vous devez telecharger gdb416b.zip si vous voulez deboguer avec GBD.)
FSDB a une aide en ligne; appuyez sur F1 pour la lire. GDB a une
documentation au format Info (voir ci dessous) qui peut etre lue au moyen
d'Info.exe. Edebug32 est un debogueur rarement utilise; tapez '-h' pour
lire l'aide.


Documentation en ligne
----------------------

Le plupart des documentations sont ecrites dans un format hypertexte
special utilise par le projet GNU. Chaque applicatif contient sa propre
documentation sous la forme de fichiers ayant l'extension .iNN, et qui se
decompactent dans le sous repertoire info/ de votre repertoire principal
DJGPP. Pour consulter ces documentations, telechargez et decompactez le
fichier txi390b.zip, et executez info.exe. Si vous ne savez pas comment
utiliser Info, tapez '?'.


Compatibilite avec la version 2.0
---------------------------------

Si vous passez de la version 2.00 de DJGPP a la version 2.01, vous devriez
reinstaller en totalite les applicatifs que vous utilisez. Comme la version
2.01 utilise une methode entirement nouvelle de gestion des longues lignes
de commande (et des noms de fichiers longs sous Win95), melanger des
programmes v2.00 et v2.01 peut faire apparaitre des erreurs subtiles ,
difficiles a deboguer. Lisez le paragraphe 16.6 de la FAQ pour plus
d'informations.


Compatibilite avec la version 1.x
---------------------------------

Les programmes compiles avec DJGPP V1.x peuvent etre utilises pour des
applicatifs qui n'ont pas ete portes sous DJGPP v2.0. Les
programmes version 1 ne peuvent executer des programmes de la version 2.0
(mais les programmes v2 *peuvent* executer des programmes v1), n'essayez pas,
par exemple, d'utiliser Make v1.x avec le compilateur v2.0.


--- COPYRIGHT ---

DJGPP V2 Copyright (C) 1995, DJ Delorie. Certaines parties de libc.a
sont Copyright (C) Regents of the University of California at Berkeley.


Les programmes GNU (gcc,make,libg++,etc...) sont Copyright Free Software
Foundation.

Le copyright de la version 2 de DJGPP vous autorise a l'utiliser pour
produire des applications commerciales. Cependant, si vous utilisez du
code ou des librairies qui n'appartiennent pas a djgpp (par exemple la
librairies libg++ de gnu), alors vous devez vous conformer aux dispositions
de leur copyright. Lisez le chapitre 19 de la FAQ pour davantage de
details.

Amusez vous bien!


DJ Delorie
[email protected]
http://www.delorie.com/


[traduction : Francois Charton [email protected]]