如何在Makefile中自动添加'.s'到目标?

时间:2016-09-19 11:49:24

标签: makefile gnu-make

我有一个假的$("#form-name" ).submit(function(ev) { ev.preventDefault(); var postData = $(this).serializeArray(); var formURL = $(this).attr("action"); $.ajax({ url: formURL, type: 'POST', data: postData, success: function(data, textStatus, jqXHR) { location.reload(); }, error: function(jqXHR, textStatus, errorThrown) { consonle.log("error"); } }); }); debug目标。 asm通过更新变量debug然后编译正常目标来工作,该目标使用这些新CFLAGS来生成调试符号。这可以按预期工作。

类似地,我想定义CFLAGS目标设置asm开关,并将输出名称从-S更改为file。但是,最后一部分不起作用,我得到:

file.s

注意到最后一部分$ make asm -B gcc -fmessage-length=0 -ansi -pedantic -Werror -Wall -Wextra -Wwrite-strings -Winit-self -Wcast-align -Wcast-qual -Wpointer-arith -Wstrict-aliasing -Wformat=2 -Wmissing-declarations -Wmissing-include-dirs -Wno-unused-parameter -Wuninitialized -Wold-style-definition -Wstrict-prototypes -Wmissing-prototypes -Wdouble-promotion -S -masm=intel file.c -o file 带有额外参数但没有[..] -S -masm=intel file.c -o file扩展名。

我错过了什么?

生成文件:

.s

1 个答案:

答案 0 :(得分:1)

您只需在规则中添加$(TARGET).s目标,然后在asm中使用该目标:

$(TARGET) $(TARGET).s: $(SOURCE) $(HEADERS) $(TESTS)
    $(CC) $(CFLAGS) $< -o $@

asm: CFLAGS += -S -masm=intel
asm: $(TARGET).s