2010-10-25 4 views
1

Quel est le nom de la variable spéciale Makefile qui contient la correspondance de %, à utiliser dans le corps de la règle?Quel est le nom de la variable spéciale Makefile 'match'?

À titre d'exemple, je voudrais l'utiliser comme ceci:

%.o: %.c 
      @echo Matched $MATCH 
      $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o [email protected] 

où je mets $MATCH là-bas parce que je ne me souviens pas le nom réel de cette variable motif match spécial. En d'autres termes, si l'utilisateur dit make foo.c, je souhaite afficher Matched foo.

Je ne trouve here, mais je l'ai EXISTE parce que je l'ai utilisé avant ...

Répondre

0

Je ne t voir une variable spécifique, mais voici une solution pour vous:

%.o: %.c 
    @echo Matched `basename [email protected] .o` 
    $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o [email protected] 
+0

oups, je le vois maintenant: $ * –

2

de l'GNU Make software manual, la spécificité la variable al vous faites référence est $*, le match de la tige implicite:

La tige qui correspond à une règle implicite (voir Comment Patterns Match). Si la cible est dir/a.foo.b et que le motif cible est a.%.b, la racine est dir/foo. La racine est utile pour la construction des noms de fichiers connexes.

Questions connexes