Makefile命令修改

时间:2014-06-18 20:15:11

标签: makefile gnu-make

我想修改Makefile命令:

-rm -f $(OBJS)
-rm -f $(OBJS:.o=.mod)

第一个删除所有filenames.o,第二个删除所有filenames.mod。但是,我想 修改第二个这样我得到:mod_filenames.mod,即添加字符串“mod _”。

我试过:-rm -f mod _ $(OBJS:.o = .mod),但这只影响了列表中的第一个文件。但是我在这里猜测。如果有人可以建议一个解释这种编程的广泛网站,我将不胜感激。

2 个答案:

答案 0 :(得分:2)

GNU Make Manual

还有GNU Make Unleased bookGNU Make Standard Library

请参阅手册的8.3 Functions for File Names,您可以使用$(addprefix ...)(还有其他方法):

-rm -f $(OBJS)
-rm -f $(addprefix mod_,$(OBJS:.o=.mod))

使用$(RM)(通常是rm -f)会更好:

-$(RM) $(OBJS)
-$(RM) $(addprefix mod_,$(OBJS:.o=.mod))

答案 1 :(得分:1)

GNU make manual描述了所有这些事情。

您可以使用模式来获得所需内容:

-rm -f $(OBJS:%.o=mod_%.mod)

撰写$(OBJS:.o=.mod)只是$(OBJS:%.o=%.mod)的缩写。