Journal Makefile et substitutions.

Posté par  .
Étiquettes : aucune
2
22
mar.
2004
Bonjour à tous les pros de la recompilation.

J'essaie d'écrire les règles de mon Makefile, qui marchait bien avec le « make » de Solaris, de façon à résoudre le petit problème suivant:

1) Dans le répertoire de mon projet, j'ai plusieurs sous-répertoires correspondant chacun à une section particulière. Appelons-les foo,bar et toto.
2) J'ai une variable OBJS=foo bar toto en tête de mon makefile.
3) Chacune de ces sections contient plusieurs programmes qui sont finalement résolus respectivement en foo.o, bar.o et toto.o au sein du sous-répertoire correspondant.

Le problème: résoudre OBJS en "foo/foo.o bar/bar.o toto/toto.o", soit le nom du répertoire suivi du nom du fichier objet, de façon à effectuer le link final en une fois.

Je sais que l'on peut ajouter un suffixe ou faire ce genre de substitution avec $(OBJS:%=%.o) par exemple, mais gmake n'accepte de remplacer le % de destination qu'une seule fois, laissant tels quels les suivants. Donc impossible de faire un $(OBJS:%=%/%.o) par exemple, alors que le make de Sun lui veut bien.

Comment faites-vous ?
Merci à tous pour votre aide !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.