OVH Cloud OVH Cloud

[make] Regles a motif (pattern rules)

5 réponses
Avatar
romain.dujol
Tout d'abord, comme je ne sais si il s'agit du bon forum, je vous prie
de m'excuser si ce n'est pas le cas et m'indiquer le forum adequat.
Merci.

Voici l'extrait du makefile qui me pose probleme :

all : myfile.out

%.out : %.in
# Appel du compilo pour generer le .out a partir du .out

Et l'erreur qui va avec :

make[x]: *** No rule to make target `myfile.out', needed by `all'.
Stop.

Pourquoi, la regle a motif (%.out ...) n'est-elle pas prise en compte
?

D'avance, merci.

5 réponses

Avatar
Stephane Chazelas
2005-01-18, 06:52(-08), Romain DUJOL:
[...]
Voici l'extrait du makefile qui me pose probleme :

all : myfile.out

%.out : %.in
# Appel du compilo pour generer le .out a partir du .out

Et l'erreur qui va avec :

make[x]: *** No rule to make target `myfile.out', needed by `all'.
Stop.

Pourquoi, la regle a motif (%.out ...) n'est-elle pas prise en compte
?
[...]


Y a-t-il un myfile.in dans le repertoire courant?

--
Stéphane

Avatar
Laurent Wacrenier
Romain DUJOL écrit:
%.out : %.in
# Appel du compilo pour generer le .out a partir du .out


hmm... du GNU make.

Pourquoi, la regle a motif (%.out ...) n'est-elle pas prise en compte
?


En "make" ordinaire, on fait :

.SUFFIXES: .out .in

.in.out:
...

Je suppose qu'avec GNU make, il y a un .SUFFIXES aussi.
Vérifier dans le manuel (ou utiliser la syntaxe traditionelle)

Avatar
romain.dujol
Stephane Chazelas wrote:
Y a-t-il un myfile.in dans le repertoire courant?


Oui

Avatar
Stephane Chazelas
2005-01-19, 09:06(-08), :
Stephane Chazelas wrote:
Y a-t-il un myfile.in dans le repertoire courant?
[...]



Ca peut aussi etre que ton make ne supporte pas ce genre de rule
implicite (pas tous les makes ne le supportent) ou qu'il y a un
^M invisible apres le ".in" (fait un cat -vte makefile pour
voir).

--
Stéphane


Avatar
Romain DUJOL
Romain DUJOL wrote:
Tout d'abord, comme je ne sais si il s'agit du bon forum, je vous
prie

de m'excuser si ce n'est pas le cas et m'indiquer le forum adequat.
Merci.

Voici l'extrait du makefile qui me pose probleme :

all : myfile.out

%.out : %.in
# Appel du compilo pour generer le .out a partir du .out

Et l'erreur qui va avec :

make[x]: *** No rule to make target `myfile.out', needed by `all'.
Stop.

Pourquoi, la regle a motif (%.out ...) n'est-elle pas prise en compte
?

D'avance, merci.


OK, j'ai trouve mon erreur... Probleme de casse (et de logique : honte
a moi).
En fait, j'ai 'all : MYFILE.out' ...

Si quelqu'un peut verouiller ce topic, voire meme le supprimer.

Merci a vous deux d'avoir pris le temps de repondre, alors qu'il aurait
suffi que je reflechisse deux secondes de plus. Encore desole.