2011-01-27 66 views
1

我对汇编程序(包括底层硬件也支持的新指令)进行了一些更改,我想在code_asm文件中使用它们。问题是,我现在使用的Makefile也使用C编译器来编译code_asm文件。 我想要做的是确保文件code_asm1和code_asm2通过 修改后的汇编程序在生成的目标文件与应用程序的其余部分链接之前运行。我尝试了一些东西,但是我没有成功,因此如果某个具有Makefile经验的人可以快速帮我解决问题,那就太好了。简单的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 [email protected] $(COBJ) $(ASMOBJ_V3) 

非常感谢, 克里斯

回答

0

你需要覆盖标准的规则来创建.o文件:

%.o : %.c 
    $(CC) $(CFLAGS) -o [email protected] $< 

只要定义自己的规则来构建asm.o基于文件asm.c文件替换上述标准规则。

1

您需要指定汇编源的依赖关系,例如,

code_asm1.o: code_asm1.asm 
    $(AS) -o [email protected] $< 

(假设你的汇编源具有.asm后缀当然 - 适当地改变它,如果它是例如.S

+0

感谢,这是非常有益的;) – Chris 2011-01-27 15:14:47