2011-01-27 10 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) 

どうもありがとう、あなたは.oファイルを作成するための標準的なルールを上書きする必要が クリス

答えて

0

%.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