makefile sur linux

12
Réaliser par : Nouasria Hamid Boualame Hamza

Upload: boualame

Post on 17-Nov-2015

239 views

Category:

Documents


1 download

DESCRIPTION

Make est principalement utilisé pour créer de gros programmes, où la cible principale est un exécutable.

TRANSCRIPT

  • Raliser par :

    Nouasria Hamid

    Boualame Hamza

  • Plan

    Introduction

    Cration dun makefile

    Automatisation de taches

    Exemple dapplication

  • 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

    Dfinitions:

  • 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 .

  • Simple Makefile

    Cration dun makefile

    Un simple makefile est compos de rgles ayant laspect suivant :

    CIBLE: DEPENDANCES COMMANDE COMMANDE 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.

  • Exemple

    Cration dun makefile

    Nous allons dfinir un fichier makefile pour le cassuivant : on dispose dun fichier erreur.c qui dfinir lafonction erreur on a crit le fichier header erreur.h correspondant on a crit un fichier exo1.c qui contient la fonctionmain et qui utilise la fonction erreur (et donc quiinclut le fichier erreur.h).

  • Cration dun makefile

    exo1 : exo1.o erreur.ogcc exo1.o erreur.o -o exo1

    exo1.o : exo1.c erreur.hgcc -c -Wall exo1.c

    erreur.o : erreur.cgcc -c -Wall erreur.c

    clean :rm *.o

  • Utilisation de variables

    Il est possible de dfinir des variables dans un makefile. Lebut est de simplifier la modification du makefile.

    Pour dfinir une variable il faut mettre sur une nouvelleligne le nom de la variable suivi dun = suivi de la valeurde la variable. En rgle gnrale, on met le nom de lavariable en majuscule, ca permet de la diffrentier descommandes ou des noms de fichiers qui sont souvent enminuscules.

    Automatisation de taches

  • objects = program.o foo.o utils.oprogram : $(objects)

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

    Exemple 1

    Exemple 2

    foo = cprog.o : prog.$(foo)

    $(foo)$(foo) -$(foo) prog.$(foo)

    Automatisation de taches

  • Variables gnriques

    Automatisation de taches

  • Fonctions

    $(wildcard *.o).

    $(filter %.o,$(noms))

    $(subst FROM,TO,TEXT)

    $(patsubst PATTERN,REPLACEMENT,TEXT)

    Automatisation de taches

  • Exemple dapplication

    Exemple dapplication dun makefile gnrant

    un fichier html qui organise les composants de

    rpertoire courant dans interface WEB