Vous êtes sur la page 1sur 12

Raliser par :

Nouasria Hamid
Boualame Hamza

Plan
Introduction

Cration dun makefile


Automatisation de taches

Exemple dapplication

Introduction
Dfinitions:

Un makefile est un fichier utilis par le programme make pour arriver


un but, ce but tant lui-mme dpendant dautres buts, et ce de manire
rcursive. On parle alors plutt de cible plus que de but.
Make est principalement utilis pour crer de gros programmes, o la
cible principale est un excutable.
La diffrence entre make et un script classique est que make sait si une
cible donne est jour ou non.

Introduction

Voici des raisons pour lesquelles nous avons besoin


de make :

Un projet de logiciel qui se compose de nombreux


fichiers de code source, peut comporter des
commandes de compilateurs complexes et longues.
Grce make, on peut les rduire.
L'automatisation du processus de construction car il est
possible d'appeler make facilement via un script shell .

Cration dun makefile


Simple Makefile

Un simple makefile est compos de rgles ayant laspect suivant :


CIBLE: DEPENDANCES
<TAB> COMMANDE
<TAB> COMMANDE
<TAB> COMMANDE
La cible est gnralement le nom du fichier que lon veut gnrer.
Les dpendances sont les fichiers utilises pour gnrer cette cible.
Les commandes sont les actions mener pour gnrer la cible
partir des dpendances.

Cration dun makefile

Nous allons dfinir un fichier makefile pour le cas


Exemple

suivant :
on dispose dun fichier erreur.c qui dfinir la
fonction erreur
on a crit le fichier header erreur.h correspondant
on a crit un fichier exo1.c qui contient la fonction
main et qui utilise la fonction erreur (et donc qui
inclut le fichier erreur.h).

Cration dun makefile

exo1 : exo1.o erreur.o


gcc exo1.o erreur.o -o exo1
exo1.o : exo1.c erreur.h
gcc -c -Wall exo1.c
erreur.o : erreur.c
gcc -c -Wall erreur.c
clean :
rm *.o

Automatisation de taches
Utilisation de variables

Il est possible de dfinir des variables dans un makefile. Le


but est de simplifier la modification du makefile.

Pour dfinir une variable il faut mettre sur une nouvelle


ligne le nom de la variable suivi dun = suivi de la valeur
de la variable. En rgle gnrale, on met le nom de la
variable en majuscule, ca permet de la diffrentier des
commandes ou des noms de fichiers qui sont souvent en
minuscules.

Automatisation de taches
Exemple 1

foo = c
prog.o : prog.$(foo)
$(foo)$(foo) -$(foo) prog.$(foo)
Exemple 2

objects = program.o foo.o utils.o


program : $(objects)
cc -o program $(objects)
$(objects) : defs.h

Automatisation de taches
Variables gnriques

Automatisation de taches
Fonctions

$(wildcard *.o).
$(filter %.o,$(noms))
$(subst FROM,TO,TEXT)

$(patsubst PATTERN,REPLACEMENT,TEXT)

Exemple dapplication

Exemple dapplication dun makefile gnrant


un fichier html qui organise les composants de

rpertoire courant dans interface WEB

Vous aimerez peut-être aussi