Enseignements
Outils

 

make

Qu'est ce que make ?

Make est un utilitaire destiné à automatiser la compilation de programmes modulaires. Make permet de définir un ensemble de règles de dépendances entre différents fichiers de manière à ne recompiler que les fichiers qui le nécessitent lors de la génération d'un exécutable. En fait Make est bien plus que cela mais pour en prendre toute la mesure il est nécessaire de savoir maitriser Make.


make par la pratique

Supposons que nous ayons créé un programme en langage C composé de différents modules :

  • bignat (bignat.h et bignat.c)
  • stack (stack.h et stack.c)
  • list (list.h et list.c)
  • main (main.h et main.c)
Nous voulons écrire un fichier Make qui permette de générer l'exécutable monexe à partir de ces fichiers. Pour cela nous créons le fichier makefile suivant :

makefile
# definitions de variables
GCC=gcc
CFLAGS=-O2
OFLAGS=-O2
RM=rm -rf

# fichiers objets a generer
OBJS=bignat.o \
        stack.o \
        list.o \
        main.o

all: monexe

# generation de l'executable (edition de liens)
monexe: $(OBJS)
        $(GCC)  $(OFLAGS) $< -o $@

# compilation des fichier .c en .o
%.o: %.c
        $(GCC) -c $< $(CFLAGS) -o $@

# supprimer les fichiers .o
clean:
        @${RM}  *.o monexe


Liens

marqueur eStat\'Perso