如何删除从GNU make中的单词列表中删除多个不同的扩展名?

时间:2013-05-27 06:36:18

标签: makefile

我有一个文件名列表:

FILES := a.b c.d e.f

我希望删除所有单词的扩展名(后缀)以获取:

a c e

最好的方法是什么?

我能想到的最好的就是用作弊“作弊”:

$(shell for f in $(INS_NODIR); do echo -n "$${f%.*} "; done )

但令我感到惊讶的是,只有make内置函数才有更多的“内置”方法。

我试过的事情:

  • patsubst。看起来它只能有一个单一的通配符,其他通用语言,我想做%.%, %

  • 之类的事情。
  • 寻找notsufix功能。

    我很惊讶这不存在,因为dir函数具有notdir对应物,但完全提取扩展名的suffix函数没有notsuffix对应物

1 个答案:

答案 0 :(得分:27)

简单,只是:

NAMES = $(basename $(FILES))

请参阅Functions for File Names

上的GNU制作手册部分