URL: https://linuxfr.org/forums/programmationautre/posts/makefile-r%C3%A9cursifs-et-variable Title: Makefile récursifs et variable Authors: enclair Date: 2010年09月12日T21:19:11+02:00 Tags: Score: 0 Bonjour, J'ai un code source avec plusieurs répertoires imbriqués. Je voudrais lancer le Makefile à la racine, qui appelle les sous Makefiles etc... A chaque étape, un sous Makefile compile les .c de son répertoire, il garde ensuite en mémoire les .o dans une variable et le Makefile à la racine fait l'édition de lien à partir de ces fichiers objets. Le problème, c'est que je n'arrive pas à garder en mémoire les fichiers objets. Par exemple, j'ai la structure récursive suivante : makefile1/ +--------- Makefile +--------- makefile2/ £spaces£ £/spaces£+--------- Makefile £spaces£ £/spaces£+--------- makefile3/ £spaces£ £/spaces£+--------- Makefile (3 répertoires imbriqués, chacun à un makefile). Le premier contient : export MYVAR = makefile1 all: £spaces£ £/spaces£@echo "makefile1 (1) MYVAR = $(MYVAR)" £spaces£ £/spaces£cd makefile2; make £spaces£ £/spaces£@echo "makefile1 (2) MYVAR = $(MYVAR)" Le deuxième : MYVAR += makefile2 all: £spaces£ £/spaces£@echo "makefile2 (1) MYVAR = $(MYVAR)" £spaces£ £/spaces£cd makefile3; make £spaces£ £/spaces£@echo "makefile2 (2) MYVAR = $(MYVAR)" Le troisième : MYVAR += makefile3 all: £spaces£ £/spaces£@echo "makefile3 MYVAR = $(MYVAR)" Si je lance le premier, je vais obtenir : makefile1 (1) MYVAR = makefile1 makefile2 (1) MYVAR = makefile1 makefile2 makefile3 MYVAR = makefile1 makefile2 makefile3 makefile2 (2) MYVAR = makefile1 makefile2 makefile1 (2) MYVAR = makefile1 Et moi, je voudrais obtenir : makefile1 (1) MYVAR = makefile1 makefile2 (1) MYVAR = makefile1 makefile2 makefile3 MYVAR = makefile1 makefile2 makefile3 makefile2 (2) MYVAR = makefile1 makefile2 makefile3 makefile1 (2) MYVAR = makefile1 makefile2 makefile3 Comment je peux faire ?

AltStyle によって変換されたページ (->オリジナル) /