我有一个Makefile,它有很多目标,每个目标的配方都很相似。如何避免使用类似食谱的Makefile目标中的重复?
foo:
gcc foo.c -o foo
mv foo ~/bin
bar:
gcc bar.c -o bar
mv bar ~/bin
baz:
gcc baz.c -o baz
mv baz ~/bin
我想避免所有这些重复。我想要下面的东西(这不是有效的语法;这只表达我的意图)。
TARGET_NAME:
gcc $(TARGET_NAME).c -o $(TARGET_NAME)
mv $(TARGET_NAME) ~/bin
是否可以这样做?如果不是,我可以写的最好的Makefile是什么,可以最大限度地减少食谱中的重复?
像@beta已经在其他地方指出的那样,你的'Makefile'坏了,因为你移动了你创建的文件,所以每次都会重新映射它们,无论它是否必要。此外,'go'的'-o'选项可以显着地占据一个子目录。 'bin /%:%.c; gcc $ <-o $ @' – tripleee