J'essaye de cr�er un makefile qui g�n�r�re automatiquement les d�pendance des .c aux .h, mais il n'a pas le comportement voulu.

Il compile bien et g�n�re correctement les d�pendances, mais si on appelle make clean alors que les fichiers sont d�j� d�truits, les d�pendances sont recr��es avant d'�tre d�truites � nouveau...(cf. apr�s si vous ne comprenez pas)

Voil� le makefile :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
CFLAGS= -Wall
LDFLAGS=
LIB=
CC= gcc $(CFLAGS)
LD= gcc $(LDFLAGS)
 
# sources
SRC=mes_sources.c
 
# nommage automatique des fichiers objets d'apres les 
# noms des sources C
OBJ= $(SRC:.c=.o)
 
# nommage automatique des fichiers de dependance
# d'apres les noms des sources C
DEP= $(SRC:.c=.d)
 
all: mon_programme
 
mon_programme: $(OBJ)
	$(LD) -o $@ $+ $(LIB)
 
%.o: %.c
	$(CC) -o $@ -c $<
 
%.d: %.c
	$(CC) -MM -MD -o $@ $<
 
.PHONY: clean
clean:
	rm -f $(OBJ) $(DEP)
 
# inclusion des dependances
include $(DEP)
Si j'appelle clean sur le r�pertoire nettoy�, toutes les d�pendances sont reg�n�r�s. Voici la sortie d'un second appel cons�cutif � make clean :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
gcc -MM -MD -o mes_sources.d mes_sources.c
gcc -MM -MD -o une_autre.d une_autre.c
...
rm -f mes_sources.o mes_sources.d
Je ne comprend pas pourquoi...
Merci d'avance pour vos r�ponses.