Previous Next Contents

7. Patterns et variables automatiques

7.1 Pattern

Un pattern s'utilise un peu comme un caractère joker, mais uniquement dans le cas des cibles. Le caractère faisant office de joker est le caractère pourcent ('%').

L'intérêt est d'avoir plusieurs cibles. Les patterns permettent de filtrer les cibles pour savoir pour lesquelles d'entre elles les commandes qui suivent seront exécutées.

7.2 Exemple idiot

Pourquoi cet exemple est-il idiot ? Tout simplement parcequ'on met pèle-mêle tous les fichiers à compiler dans la même variable OBJECTS. Le plus simple aurait été d'utiliser plusieurs variables et de faire des règles différentes pour chaque type de compilation (normale, x11, athena).


# Notons que les objets sont à la fois des fichiers objets à lier et
# des exécutables à compiler
OBJECTS = text/main.o text/foo.o x11/main x11/bar athena/main
# Le compilateur est bien sûr gcc
CC = gcc

# Les dépendances sont tous les objets
all: $(OBJECTS)
        # On va quand même faire quelque chose dans cette règle
        echo DONE

# Ici les règles pour tous les fichiers .o se trouvant dans le
# répertoire 'text'
text/%.o: text/%.c
        $(CC) -c text/$*.c

# Ici les règles pour tous les fichiers se trouvant dans le répertoire
# 'x11'
x11/%: x11/%.c
        $(CC) -lX11 x11/$*.c

# Ici les règles pour les fichiers se trouvant dans le répertoire
# 'athena' 
athena/%: athena/%.c
        $(CC) -lXaw -lXext -lXmu -lXt -lX11 athena/$*.c

7.3 Liste des variables automatiques

Les variables automatiques sont des variables qui sont actualisées au moment de l'exécution de chaque règle, en fonction de la cible et des dépendances.


Previous Next Contents