下面的情况被大大简化了,但它确实反映了我遇到的问题。
我有一个看起来像这样的 Makefile:
prefix-%.zip: prefix-%
zip -r $@ $<
prefix-%: base
cp -r base $@
这与包含一些文件的另一个目录库一起放置在一个目录中。如果我执行命令
make prefix-1.zip
我希望prefix-1
使用第二条规则创建目录,然后prefix-1.zip
使用第一条规则基于该目录创建 zip 文件。
但是,它似乎找到了第一个带有“1”字干的规则,但它没有选择该规则,因为该目录不存在。然后,它似乎倾向于使用词干“1.zip”的第二条规则。虽然这是一个较长的词干,但该规则被选中。我认为这是由于缺少第一条规则的先决条件。有什么方法可以引导 Make 到正确的规则,而无需先手动创建目录?
顺便说一句,首先制作目录,然后 zip 文件工作
make prefix-1
make prefix-1.zip