make - inclusions et récursivement
Bonjour.
J'ai un petit programme avec différents modules qui se construit ainsi.
[ ] représente la relation d'inclusion, par exemple, A [B] signifie que B est inclu dans A.
J'ai donc.
main.c[A[B[C[D]]]]
Voici la tête de mon makefile
Code:
1 2 3 4 5 6 7 8 9
|
A.o : A.c A.h B.h B.o
$(CC) $(CFLAGS) -c $< B.o $(LIBDIR) $(LIBRARIES)
B.o : B.c B.h C.h C.o
$(CC) $(CFLAGS) -c $< C.o $(LIBDIR) $(LIBRARIES)
C.o : C.c C.h D.h D.o
$(CC) $(CFLAGS) -c $< D.o $(LIBDIR) $(LIBRARIES)
D.o : D.c D.h
$(CC) $(CFLAGS) -c $< $(LIBDIR) $(LIBRARIES) |
une fois que j'ai A.o, il faut que je génère le binaire main
j'ai fait ceci :
Code:
1 2 3
|
main : main.c A.o
$(CC) $(CFLAGS) main.c -o main A.o $(LIBDIR) $(LIBRARIES) |
Et j'ai des undef pour tout.
Pourtant, chaque .o ne contient il pas toutes les définitions précédentes ?
si je change cette ligne en :
Code:
1 2 3
|
main : main.c A.o
$(CC) $(CFLAGS) main.c -o main *.o $(LIBDIR) $(LIBRARIES) |
Il y a des définitions multiples.
Auriez vous une solution?
Merci d'avance.