【发布时间】:2012-06-19 18:42:48
【问题描述】:
对于 iPad 应用程序,我需要将一些 CoffeeScript 文件转换为 JavaScript 文件,然后再将它们与应用程序捆绑在一起。
我尝试使用以下代码将 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 没有问题。但是,在 XCode 中添加 Makefile 作为目标后,我遇到了问题。
Makefile 产生了以下错误:
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)。
所以我在 Makefile 中添加了一个echo $(PATH),当 Makefile 由 XCode 执行时,$PATH 似乎不同。 XCode 似乎没有从~/.profile 读取设置,因此/opt/local/bin 不在$PATH 中。
这是什么原因,我该如何解决这个问题,以便找到coffee 命令?
【问题讨论】:
-
为什么不在你的makefile中修改你的“
$PATH”来添加“/opt/local/bin”呢?你是如何在 Xcode 中运行你的 makefile 的?是否处于“运行脚本”构建阶段? -
我无法在 Makefile 中更改它,因为 Makefile 在共享存储库中。其他开发人员可能已经在其他地方安装了他们的
coffee命令。 -
我没有使用
Makefile的经验,但你不能source ~/.profile吗?
标签: xcode makefile environment-variables