我正在学习makefiles,并且不能将我的头围绕在我遇到的这个问题上,并想了解如何/为什么会失败。Makefile模式规则不起作用
我在src
目录中有半打erlang文件。我想将它们编译成一个ebin
目录,而不必为它们中的每一个定义规则。根据Gnu make文档,pattern rules should be right up my alley。
但是,使用下面的makefile,我从make中得到的全部是make: *** No targets. Stop
。这是为什么?
ebin/%.beam: src/%.erl
mkdir -p ebin
erlc -o ebin $<
编辑:基于this answer,我现在明白了,我将不得不使用make ebin/cmplx.beam
显式声明的目标,例如。然而,我仍然不明白我应该如何编写我的makefile来获得我想要的行为 - 因为我有六个目标(甚至更多其他项目),这似乎是不必要的麻烦。有没有办法根据源文件名来定义目标?
可能的[Makefile模式规则失败?]的重复(http://stackoverflow.com/questions/5155510/makefile-pattern-rule-fails) –