對於iPad應用程序,我需要在將某些CoffeeScript文件與應用程序捆綁在一起之前轉換爲JavaScript文件。從XCode調用make時PATH變量
我想一個Makefile文件添加到我的XCode項目,下面的代碼:
MANUAL_ROOT=IOS12BSH/manual
SCRIPTS_ROOT=$(MANUAL_ROOT)/scripts
COFFEE_SOURCES=$(SCRIPTS_ROOT)/*.coffee $(SCRIPTS_ROOT)/guides/*.coffee
JAVASCRIPT_TARGETS=$(COFFEE_SOURCES:.coffee=.js)
all: build
build: coffeescript
clean: clean_coffeescript
coffeescript: $(JAVASCRIPT_TARGETS)
clean_coffeescript:
rm -f $(JAVASCRIPT_TARGETS)
$(JAVASCRIPT_TARGETS): $(COFFEE_SOURCES)
coffee -c $(COFFEE_SOURCES)
從運行shell工作這個Makefile沒有問題。但是,在將Makefile添加爲XCode中的目標後,我遇到了問題。製作由生成文件
以下錯誤:
coffee -c IOS12BSH/manual/scripts/*.coffee IOS12BSH/manual/scripts/guides/*.coffee
/bin/sh: coffee: command not found
make: *** [IOS12BSH/manual/scripts/*.js] Error 127
Command /Applications/Xcode.app/Contents/Developer/usr/bin/make failed with exit code 2
即奇怪,因爲被安裝在我的機器的coffee
命令(它/opt/local/bin/coffee
下安裝和/opt/local/bin
被添加到我的$PATH
在~/.profile
)。
所以我加了一個echo $(PATH)
到我的Makefile,看起來$PATH
是不同的,當Makefile被XCode執行時。 XCode似乎沒有讀取~/.profile
的設置,因此/opt/local/bin
不在$PATH
中。
這是什麼原因以及如何解決這個問題,以便找到coffee
命令?
爲什麼不在你的makefile中修改你的「'$ PATH'」來添加「'/ opt/local/bin'」?你如何在Xcode中運行makefile?它是否處於「運行腳本」構建階段? –
我無法在Makefile中更改它,因爲Makefile位於共享存儲庫中。其他開發者可能已經在其他地方安裝了他們的'咖啡'命令。 – Simon
我沒有'Makefile'的經驗,但你不能'源〜/ .profile'? –