next up previous contents index
Next: La règle des suffixes Up: Les makefiles Previous: Compilation simple d'un fichier

   
La règle des modèles

Voici un exemple simple utilisant la règle des modèles :

# Exemple d'utilisation de regles implicites : les regles de modele

# Ces regles sont plus souples que les regles de suffixe

# '%' signifie "n'importe quelle chaine"

# '%.o : %.c' signifie : prendre un fichier se terminant par .c pour
construire un fichier se terminant par .o

# $@ represente le fichier de sortie

# $< represente le fichier d'entree

# Syntaxe pour lancer ce makefile : make aire.o

# On peut passer des arguments : make CFLAGS="-O -g" aire.o

OBJS = cercle.o aire.o

aire : $(OBJS)
	$(CC) -o $@ $(OBJS)

%.o : %.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

Et voici un exemple un peu plus compliqué (ce makefile permet de compiler deux versions du programme aire au choix : aire, le programme normal, et aire_dbg avec l'option -g pour déboguage) :

# Exemple d'utilisation de regles implicites : les regles de modele

# Ces regles sont plus souples que les regles de suffixe

# '%' signifie "n'importe quelle chaine"

# '%.o : %.c' signifie : prendre un fichier se terminant par .c pour
construire un fichier se terminant par .o

# $@ represente le fichier de sortie

# $< represente le fichier d'entree

# Syntaxe pour lancer ce makefile : make aire.o

# On peut passer des arguments : make CFLAGS="-O -g" aire.o

OBJS = cercle.o aire.o

DEBUG_OBJS = cercle_dbg.o aire_dbg.o

aire : $(OBJS)
	$(CC) -o $@ $(OBJS)

aire_dbg : $(DEBUG_OBJS)
	$(CC) -o $@ $(DEBUG_OBJS)

%.o : %.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

%_dbg.o : %.c
	$(CC) -c -g -O -o $@ $<

clean :
	rm -f `find . -name '*.o' -print`



MATHIEU DECORE
1999-11-03
Merci de me dire ce que pensez de ce document.