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 :
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
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)
Je ne comprend pas pourquoi...
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
Merci d'avance pour vos réponses.
Partager