使用$(basename $(notdir $ @))理解Makefile

时间:2013-05-24 02:55:37

标签: linux compilation makefile

我正在尝试理解Makefile,但我不理解评论的配方行。

...
...
sample.a:
    cd ../$(basename $(notdir $@)) && make    ##i don't understand this
...
...

我还是新手。你能给我一个非常简单的解释:

  

$(basename $(notdir $ @))

1 个答案:

答案 0 :(得分:28)

如果你将其分解:

$(notdir $@)从文件名中删除路径,只留下文件名(因此/x/y/foo.a变为foo.a$(basename ...)取消了扩展程序(因此foo.a变为foo

这里有一个不错的参考:http://www.gnu.org/software/make/manual/html_node/File-Name-Functions.html