2011-01-27 166 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