Outils de développements

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Premier programme en C :
Patrick Reuter maître de conférences
Formation universitaire à .NET: Introduction à C#
DTD Sylvain Salvati
Synchronisation des processus père - fils
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Paquetages: Définitions Les classes Java sont regroupées en paquetages (packages en anglais) Ils correspondent aux « bibliothèques » des autres langages.
C.
Introduction : Compilation et Traduction
Systèmes d’exploitation
Langage C Licence Informatique 3ème année
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D., ing. Chapitre 5 Interpréteur de commande, Bourne shell,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
CYCLE 1 : Saisir – Afficher – Données Afficher du texte sur lécran 1- Rôle du printf() 2- Syntaxe du printf() 3- Exécution du printf() par le CPU.
Principes de programmation (suite)
CPI/BTS 2 Programmation Web Introduction au PHP
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Traitement de texte ++.
La technologie au collège et le B2i
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
17 octobre 2012 Grégory Petit
Outils de Programmation
Des outils pour le développement logiciel
Introduction à la programmation (Java)
FICHIERS : Définition : Algorithme général:
Formation Python Modules (d'après "Learning Python", de Mark Lutz)
Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique et de génie logiciel Développer.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Conteneurs STL.
Projet de C – Matrices creuses
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie I 2014.
Systèmes dexploitation et programmation de systèmes -GPA435- Cours #5: Éléments de programmation (Partie 2) Enseignant: Jean-Philippe Roberge Jean-Philippe.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Références à une cellule dans EXCEL
Make 1 Les besoins 2 Définition 3 Makefile 4 Optimisation 5 Exemple de Makefile 6 Prototype 7 Autres outils © BTS II 2002 [tv]
La librairie assert.h.
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Utilisation avancée de linux
Shell Equipe ID Bioinformatics Training Course June 2014.
Inclusions & dépendances. C compile texte > objet int main () …
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
Page 1 IR98 AutoconfAutomake Michel TRAN Ingénieurs 2000 Informatique - Réseaux Novembre 2000.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
Les paquetages.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
IUT SRC Année 2004/2005Antonio Capobianco 1 HTML>Formater du texte>Les titres Définir les titres HTML distingue 6 niveaux de titre : Titre N°1 Titre N°2.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Elaboré par Ahmed BESSAIDI
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
QCM VBA.
GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 7 Neutralisation, redirection, décodage des paramètres,
Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix.
Visual Information Solutions IDL 7.0 Pour une utilisation optimale d’IDL.
Abes agence bibliographique de l’enseignement supérieur Les scripts.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Présentation Excel Microsoft Excel est le tableur de la suite bureautique propriétaire « Office System ». Développé pour les plateformes Windows et Macintosh.
Transcription de la présentation:

Outils de développements MAKE 17-21 Octobre 2005 Formation Continue- CNRS Laurence Viry

Quelques Définitions make: commande permettant d’automatiser la reconstruction d’un exécutable composé d’un ou plusieurs: Modules objets Librairies Fichiers entêtes … Cible: exécutable à (re)construire Dépendances: élément(s) dont dépend l’exécutable Règles: commande(s) permettant de reconstruire la cible Fichier make: fichier contenant la définition des dépendances et des règles de reconstruction des cibles 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Un exemple Le programme « calcul » se décompose en 4 fichiers: input.c : fonctions de lecture des fichiers de données matrix.c : fonctions de calcul matriciel graph.c : fonction d’affichage graphique main.c programme principal input.h,matrix.h,graph.h: fichiers d’entêtes 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Le premier Makefile Le fichier Makefile sert à définir les cibles , les dépendances et les commandes pour reconstruire les cibles calcul: main.o input.o matrix.o graph.o cc –o calcul calcul.o input.o matrix.o graph.o –lm main.o: main.c input.h matrix.h graph.h cc –c main.c input.o: input.c input.h cc –c input .c matrix.o: matrix.c matrix.h cc –c matrix.c graph.o: graph.c graph.h matrix.h cc –c graph.c 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Eléments d’un Makefile Commentaires introduits par # Règles explicites: comment refaire plusieurs fichiers Cibles + dépendances : fichier à construire Commandes pour produire la cible Règles implicites: règles génériques Variables pour définir des listes de fichiers ou des options dans les commandes Directives Les règles explicites décrivent qunad et comment refaire un ou plusieurs fichiers appelés les cibles de la règle. Chaque règle explicite est composée de deux parties, la parties qui décrit les fichiers dont dépendent les cibles (dépendances) et les commandes à exécuter pour reconsrruire les cibles. Les règles implicites décrivent de manière générique quand et comment refaire des fichiers sur la base de leur nom. Elles permettent d’éviter de reécrire plusieurs fois la mêle règle explicite. Les variables associées à une chaîne de caractères. La référence à ces variables est remplacée par leur valeur pendant l’évaluation du makefile. Les directives permet d’indiauer à la commande make les fichiers à inclure ou les parties du makefile dont make doit tenir compte. 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Les règles de reconstruction d’une cible CIBLE(s):DEPENDANCES <tab>COMMANDE(s) Cibles et dépendances se trouvent sur la même ligne Le caractère « \ » peut forcer make à ignorer le retour à la ligne Les commandes commencent toujours par une tabulation et doit tenir sur une seule ligne avec éventuellement un \ La liste de commandes se terminent par une ligne sans tab Un mot commençant par le caractère $ est utilisé pour désigner le contenu d’une variable Attention, comme les espaces et les commentaires sont ignorés avant un commentaire, une ligne de commentaire termine une liste de commandes Dans une règle explicite, les cibles, les dépendances et les commandes n’utilisent que les noms explicites de fichier alors que dans les règles implicites, le caractère % est utilisé pour désigner de manière générique un ensemble de fichiers Avant d’exécuter les commandes d’une cible, le make vérifie si les fichiers dans les dépendances apparaissent comme cible dans une autre règle. Si c’est le cas, make applique cette nouvelle règle et ainsi de suite de façon récursive jusqu’à trouver des dépendances qui n’apparaissent dans aucune cible. Si tous les fichiers dépendants ont plus anciens que la cible, la cible est à jour Les mêmes règles s’appliquent pour les règles implicites Les règles explicites sont toujours prioritaires par rapport aux règles implicites. S’il existe une règle explicite pour décrire les dépendances et pour construire une cible, les règles implicites qui pourraient correspondre à la même cible sont ignorées. 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Commandes make n’affiche pas une commande qui commence par @ Chaque ligne de commande est exécutée par un interpréteur différent du shell (sous Unix /bin/sh) Mettre plusieurs commandes sur une même ligne ou séparées par \ pour utiliser le même interpréteur make abandonne l’exécution d’une règle et de tout le processus en cas d’erreur Indiquer « - » en début de commande pour indiquer à make qu’il ignore l’échec de cette commande Interruption d’un make en cours d’exécution d’une règle, la cible est détruite par défaut. 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Commandes: exemples dir/prog: a.o b.o cd dir cc –o prog ../a.o ../b.o C’est incorrect dir/prog: a.o b.o cd dir ;\ cc –o prog ../a.o ../b.o clean : -rm *.o @echo ‘done’ .PRECIOUS indique les cibles qui ne seront pas détruites en cas d’interruption du make 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Utilisation des variables Utiliser pour décrire des listes de fichiers, de programmes, d’options de commandes Nom : séquence de caractères sauf :,#=», <tab>,espace Référence $(nom de la variable) OBJECTS= a.o b.o c.o prog:$(OBJECTS) cc –o prog $(OBJECTS) $(OBJECTS) : common.h Il existe des variables automatiques définies par make make $OBJECTS= : change la valeur de la variable OBJECTS 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Variables automatiques $@ : nom de la cible de la règle $< : nom de la première dépendance $? : nom de toutes les dépendances qui sont plus récentes que la cible $^ : nom de toutes les dépendances d’une cible $* : radical associé à une règle implicite. Si la cible est toto.o désignée par %.o, alors $* est toto 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Règles implicites Deux types de règles implicites Définition Les règles incorporées à make mais qui dépendent de la version de make Règles implicites définies par l’utilisateur Définition Utilisation du caractère % %.o:%.c $(CC) –c $(CCFLAGS) $< Utilisation des suffixes .SUFFIXES: .o .f # début de makefile … .f.o: $(F77) –c $(F77FLAFS) $(DEBUG) $(OPTLEVEL) $*.f 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Règles implicites: exemples Construction d’un module objet (.o) à partir d’un fichier source (.c) %.o: %. c $(CC) –c $@ $(CCFLAGS) $(CPPFLAGS) $< Édition de liens %: %.o $(LIB) $(CC) –o $@ $(LDFLAGS) $< $(LIBS) 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Construire une bibliothèque Désigner un élément de la bibliothèque dans les cibles et les dépendances libbib.a(add.o) Règles implicites pour bibliothèques $% : nom du fichier objet dans une bibliothèque Si la cible est libbib.a(add.o), $% est add.o $@ : si la cible est un élément de bibliothèque, $@ est la bibliothèque Si la cible est libbib.a(add.o), $@ est libbib.a Exemple: $(BIB) : $(ELTS) $(RANLIB) $@ 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Cibles standard all:première règle explicite pour définir ce qui est fait par défaut install : installation du programme construit uninstall: défait ce que install a fait Clean: supprime du répertoire courant tous les fichiers construits par make all Distclean: remet les répertoires sources dans leur état initial Une seule cible par répertoire facilite l’écriture et la maintenance de logiciels 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Substitutions de variables $(VARIABLE:OLD=NEW) Exemple1: SRC=toto.c OBJ=$(SRC:.c=.o) =>OBJ= toto.o Exemple2 SRCS=toto.c titi.c OBJS=$(SRCS:%.c=%.o) =>OBJS= toto.o titi.o Exemple3 BIB=bib.a SRCS=a.f b.f c.f ELTS=$(SRCS:%.c=$(BIB)(%.o)) == > ELTS = bib.a(a.o) bib.a(b.o) bib.a(c.o) 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Appel récursif de make SUBDIRS= a b c d all : @for i in $(SUBDIRS) ;\ do;\ (cd $$i;\ echo “Faire tout dans $$i“;\ $(MAKE) all \ ) || exit 2;\ done @: pour supprimer l’affichage \ : maintenir la commande SHELL sur la même ligne $$ : insérer le $ dans la ligne du SHELL ; : séparer les instructions dans un même SHELL exit : force une erreur dans le shell 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Production automatique de dépendances make devient inutile si les dépendances ne sont pas à jour En C /C++: Gestion des dépendances entre les classes, les fichiers entêtes,les objets… makedepend En Fortran90: Gestion des dépendances entre modules , objets et fichiers entêtes n’est pas simple Des outils disponibles: sfmakedepend : recherche récursive … Voir www.fortran.com/metcalf.htm 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry

Appel du make make utilise par défaut le fichier Makefile ou makefile make –f <fich> permet de spécifier un fichier make hérite des variables d’environnement L’option –k impose à make de continuer lorsqu’il rencontre une erreur L’option –s supprime les affichages L’option –n supprime l’exécution et affiche les commandes 17-21 Octobre 2005 Formation Continue – CNRS Laurence Viry