2012-05-10 62 views
1

全部,如何在makefile中指定編譯器?

我試圖修改一個Makefile以使用嵌入式交叉編譯器而不是PC的編譯器。 Makfile沒有正常的CC或CXX變量。實際上,它似乎是用變量'@ $ {MAKE}'調用另一個makefile。我如何覆蓋'@ $ {MAKE}'變量來強制makefile使用不同的compliler?

由於事先

# GNU Make solution makefile autogenerated by Premake 
# Type "make help" for usage help 

ifndef config 
config=debug 
endif 
export config 

    PROJECTS := json openjaus 

.PHONY: all clean help $(PROJECTS) 

all: $(PROJECTS) 

json: 
@echo "==== Building json ($(config)) ====" 
@${MAKE} --no-print-directory -C .build -f json.make 

openjaus: json 
    @echo "==== Building openjaus ($(config)) ====" 
    @${MAKE} --no-print-directory -C .build -f openjaus.make 

我編輯基於羅布的言論的Makefile,現在我收到的消息之下,不知道該怎麼辦?

make[1]: Nothing to be done for `/home/botbear/openwrt/trunk/staging_dir/toolchain-arm_v6k_gcc-linaro_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-uclibcgnueabi-g++'. 
+0

與使用* unmodified * makefile再次運行時得到的消息不同嗎? – Beta

+0

未修改的makefile運行時沒有錯誤。 –

+1

我們需要更多信息。如果你使用json,會發生什麼?如果你讓「openjaus」做什麼?生成文件'json.make'和'openjaus.make'小到可以發佈嗎? – Beta

回答

1

你必須往裏json.makeopenjaus.make,看看他們如何建立程序。如果他們使用常規變量,則可能會執行類似操作:

${MAKE} CC=/usr/bin/gcc-arm CXX=/usr/bin/g++-arm --no-parent-directory ... 
+0

或者,您是否已經嘗試過'make help'? –

+0

是的,我試過幫忙。感謝您的迴應,它有所幫助。我用我收到的新消息更新了我的帖子。 –