2012-02-27 30 views
1

我的項目文件夾看起來像這樣我可以在子文件夾中生成文件執行命令

Makefile 
/src 
    /flash 
    build.xml 
    /blabla 
    ... 

我寫了一個Makefile這樣

flash: src/flash/bin-debug/App.swf 

src/flash/bin-debug/App.swf: 
    cd src/flash 
    ant 

當我執行make flash,我得到以下信息:如何在src/flash中執行ant

回答

0

正如aix所解釋的,您必須在一行中寫入cd src/flash; ant

由於您沒有爲App.swf目標指定任何依賴關係,因此make在更改時無法重建。你可以添加它們。問題是你不想複製你已經用螞蟻做的工作。

使用GNU Make解決方法是使用phony target。這是一種目標類型,它不會被解釋爲文件名,並且每次構建目標時都會執行其命令。

這看起來是這樣的:

.PHONY: flash 

flash: 
    cd src/flash; ant 

鍵入make flash反覆每次都會調用Ant。

4

makecreates a new subshell for each line。嘗試:

src/flash/bin-debug/App.swf: 
    cd src/flash; ant 

否則,這兩個命令在兩個單獨的子殼中執行。當第一個子shell終止時,cd的效果就會丟失。

+0

謝謝。有用。但如果App.swf一旦創建它就不會再執行此任務。無論如何強制它每次執行或檢查'/ src/flash/src/**/*','/ src/flash/res/**/*'中的任何文件是否發生了變化 – 2012-02-27 11:41:09

相關問題