简单的MakeFile问题

时间:2011-01-27 11:06:18

标签: assembly makefile

我对Assembler进行了一些更改(包括底层硬件也支持的新指令),我想在code_asm文件中使用它。问题是,我目前使用的Makefile使用C编译器来编译code_asm文件。 我想做的是确保文件code_asm1和code_asm2运行 在生成的目标文件与应用程序的其余部分链接之前,修改后的汇编程序。我尝试过一些东西,但是我没有成功,因此如果有一些具有Makefile经验的人可以很快帮助我,那就太棒了。

CC  = /mycom/bin/sparc-elf-gcc
AS  = /myass/bin/sparc-elf-as

CFLAGS  = -O2 -Wall -g

APP = test_V3

COBJ    = file1.o \
          file2.o \
          file3.o

ASMOBJ_V3 = code_asm1.o \
              code_asm2.o   

all: $(APP)

# produce application

test_V3: $(ASMOBJ_V3) $(COBJ) Makefile
    $(CC) $(EXTRAFLAGS) -o $@ $(COBJ) $(ASMOBJ_V3)  

非常感谢, 克里斯

2 个答案:

答案 0 :(得分:1)

您需要为汇编程序源指定依赖项,例如

code_asm1.o: code_asm1.asm
    $(AS) -o $@ $<

(假设你的汇编源有一个.asm后缀 - 如果它是.S则适当改变

答案 1 :(得分:0)

您需要覆盖标准规则以创建.o文件:

%.o : %.c
    $(CC)   $(CFLAGS)  -o $@ $<

只需定义自己的规则即可构建基于asm.c文件的asm.o文件,以替换上述标准规则。