Makefile 使用与“匹配”的字符串%&引用;在生成模式规则中

Makefile 使用与“匹配”的字符串%&引用;在生成模式规则中,makefile,Makefile,我对一系列目录使用了一个模式规则(它们恰好是Django语言环境文件,尽管这不会有任何区别)。translations目录包含四到五个子文件夹,每个子文件夹的结构完全相同。我想说: 如果文件夹中的文件名locale/en/LC_MESSAGES/django.po translations/x比文件更新 locale/fr/LC_MESSAGES/django.po位于同一文件夹中, 以x作为参数运行一些命令 这是我试图表达的一个规则。(明显的)问题是,规则配方部分中的“%”并不表示“与目标中的

我对一系列目录使用了一个模式规则(它们恰好是Django语言环境文件,尽管这不会有任何区别)。translations目录包含四到五个子文件夹,每个子文件夹的结构完全相同。我想说:

如果文件夹中的文件名
locale/en/LC_MESSAGES/django.po
translations/x
比文件更新
locale/fr/LC_MESSAGES/django.po
位于同一文件夹中, 以x作为参数运行一些命令

这是我试图表达的一个规则。(明显的)问题是,规则配方部分中的“%”并不表示“与目标中的“%”匹配的内容”

有什么想法吗

编辑:根据接受的答案进行更正。

您的意思是说规则的配方部分中的
%
,而不是语句的规则部分

请参阅页面,该页面将引导您:

$*
隐式规则与之匹配的词干(请参见模式如何匹配)

因此:

您的意思是说规则的配方部分中的
%
,而不是语句的规则部分

请参阅页面,该页面将引导您:

$*
隐式规则与之匹配的词干(请参见模式如何匹配)

因此:

translations/%/locale/fr/LC_MESSAGES/django.po: translations/%/locale/en/LC_MESSAGES/django.po: 
    tx push -s -r project.% && \
    tx pull -r project.% && \
    bin/dev/manage.py compilemessages
translations/%/locale/fr/LC_MESSAGES/django.po: translations/%/locale/en/LC_MESSAGES/django.po: 
        tx push -s -r project.$* && \
        tx pull -r project.$* && \
        bin/dev/manage.py compilemessages