La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Partagez cette publication

Outils de conguration GNU
Fre´d´ericGoualard
Frederic.Goualard@univ-nantes.fr
Laboratoire d'Informatique de Nantes-Atlantique
Bureau 208
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 1
Référecnesetliesntuiles
URL du cours : http://supports.goualard.free.fr/ GNU coding standards. R. Stallman et al.
GNU Make : a program for directing recompilation. R.M. Stallman et R. McGrath
Autoconf : creating automatic conguration scripts. D. MacKenzie et Ben Elliston
Automake. D. MacKenzie et Tom Tromey
GNU libtool. G. Matzigkeit et al.
GNU m4 : a powerful macro processor. René Seindal.
Texinfo : the GNU documentation format. R.J. Chassel et R.M. Stallman
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 2
vAnat-rpposo
Développement et distribution d'un logiciel :
Portabilité
Différentes architectures Big endian vs. little endian, 32/64 bits, . . .
Différents systèmes d'exploitation/compilateurs
Idiosyncrasies
Présence d'une librairie particulière
Gestion des bogues de certaines versions
Gestion des dépendances
Optimisations pour certaines architectures
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 3
Historiuqe(1)
Différentes formes d'Unix (70) :
Unix, Bell Labs.
SunOS, SUN MicroSystems
Ultrix, Digital Equipment Corps.
HP-UX, Hewlett-Packard
Linux
. . .
Développement d'un logiciel « sous Unix »
Détermination de l'architecture ?
Disponibilité d'une fonction/d'un en-tête ?
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 4
Historiuqe(2)
Compilation conditionnelle basée sur l'OS:
#if (defined( SYSV ) || defined(SUN)) extern int *toto() ; #else extern char *toto() ; #endif
Augmentation des variantesimpraticable
Code parsemé defedfi#illisible SUN : passage BSD à SVR4choix sur l'OS ?
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 5
Histroiuqe()2
Compilation conditionnelle basée sur les services:
#if HAVE TOTO printf("%d",toto(a)) ; #endif
scriptonficgurepar L. Wall (pour Perl) metaconfigWall, H. Stenn et R. Manfredi, L. Interaction avec l'utilisateur pour l'identication des services disponibles
Cygnusgureonficpar K. R. Pixley et GCC configurepar R. Stallman GNUcotuafnopar D. MacKenzie
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 6
Hi
ý
stroiuqe()3
Convergence dansfnautoco: 1994 Autoconf :
Ensemble de macros pour créer un script adaptant un patron dekafeMlie(ealMiefkni.) à la machine cible
PatronsnMaekifeli.: Larges portions communes
Rigueur pour coller austandard GNU
automakepour créer.infileMakeà partir d'un patron Makefile.am
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 7
oCcnruertns
Imake(X Windows) Informations sur les différents systèmes hard-codée qmake(do//trc.hp:tth.ecltol0/3.m/coug-ekamqlmth.edi) Gère Borland et msdev
Propriétaire Jam(am.htmlhp:ttww//pew.rofrc.ecj/moj/ma CMake(htpt/:w/wwc.ameko./LMTH/gr) Propriétaire
Peu documenté SCons(//wwtt:phorg/ons.w.sc), AAP(www/a-a.th/:pt.o-p/rg), . . .
)
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 8
Plan
GNU Make
Autoconf
Automake
Notions « complémentaires
Libtool
Texinfo
»
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 9
GNU
Make
Outils
de
conguration
GNU
—
Master
2
ALMA
—
2007/2008
–
p.
10
Compilation et dépendances
Logiciel composé de nombreux chiers :
Fichiers sources (.c, .cpp, .h, . . .)
Fichiers de documentation
Modication d'un chier
ýrecompiler tous les chiers qui en dépendent Calcul des dépendances ?
Comment recompiler ?
Outils de conguration GNU — Master 2 ALMA — 2007/2008 – p. 11