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 !
# Re: Makefile et substitutions.
Posté par Romuald Delavergne . Évalué à 2.
OBJS:=$(join $(addsuffix /, $(OBJS)), $(addsuffix .o, $(OBJS)))
[^] # Re: Makefile et substitutions.
Posté par Obsidian . Évalué à 1.
Merci beaucoup !
# Re: Makefile et substitutions.
Posté par TazForEver . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.