第一行:
SDKROOT= make -C $TEMP_DIR -f $PROJECT_DIR/greg/Makefile VPATH=$PROJECT_DIR/greg || exit $?
SDKROOT=
将环境变量设置SDKROOT
为 none 以执行make
命令。
make
是构建工具,它使用以下选项运行:
-C $TEMP_DIR
: 表示make
在目录中运行$TEMP_DIR
-f $PROJECT_DIR/greg/Makefile
指定make
使用 Makefile 在$PROJECT_DIR/greg
VPATH=$PROJECT_DIR/greg
将另一个变量设置VPATH
为$PROJECT_DIR/greg
。VPATH
指定make
prerequisits 的搜索路径。
|| exit $?
意味着如果make
命令失败,脚本应该以与 相同的错误代码退出make
,这$?
意味着最后运行程序/命令的返回代码。
第二行:
$TEMP_DIR/greg -o $DERIVED_FILES_DIR/${INPUT_FILE_BASE}.m $INPUT_FILE_PATH
似乎正在运行$TEMP_DIR/greg
带有选项的命令,-o $DERIVED_FILES_DIR/${INPUT_FILE_BASE}.m
并带有来自$INPUT_FILE_PATH
. 这看起来像是从前一行的make
命令构建的程序,所以很难确切知道它做了什么。
编辑
SDKROOT 是 XCode 使用的环境变量,用于说明它使用的 SDK 的安装位置。例如,这将是一条路径/Developer/SDKs/MacOSX"${HOST_VERSION}".sdk/
。我想应该在 XCode 中的某个地方设置该值(我没有使用 xcode,所以没有比这更有帮助的了。)。通过SDKROOT=
在命令的开头执行,值SDKROOT
将是空/空白。这样做的原因是正在编译的代码将使用存在于 中的资源SDKROOT
,而不是本地资源;例如,此类资源可能是类、配置或库。