Journal : Makefile et substitutions.

Posté par Obsidian () le 22 mars 2004
0
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 !

> Lire le journal (3 commentaires, moyenne: 1,7).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

Re: Makefile et substitutions.

Posté par Romuald Delavergne () le 22/03/2004 à 12:38. (lien). Évalué à 2.

OBJS=foo bar toto
OBJS:=$(join $(addsuffix /, $(OBJS)), $(addsuffix .o, $(OBJS)))

  • [^]Re: Makefile et substitutions.

    Posté par Obsidian () le 22/03/2004 à 12:59. (lien). Évalué à 1.

    Impeccable !
    Merci beaucoup !

Re: Makefile et substitutions.

Posté par TazForEver () le 22/03/2004 à 13:14. (lien). Évalué à 2.

avec patsubst sinon

Revenir en haut de page