背景:我有一个定制的工具链,它将由Makefile使用。工具链被签出(通过svn:externals(到项目的工作副本中。Makefile必须适应PATH
变量。否则,无法找到工具链二进制文件。由于有几个项目使用不同版本的工具链,因此无法在´.bashrc´或´.profile´中调整"PATH"。
请参阅这个演示对交叉编译器"cc"调用的最小Makefile,它位于"/home/edviser/bin"中的其他几个工具旁边:
export PATH:=/home/edeviser/bin:$(PATH)$
$(info Compiler used: $(shell which cc))
all:
@echo "Compiler used: $(shell which cc)"
@echo -n "Compiler used: "
@which cc
调用make
:后的输出
Compiler used: /usr/bin/cc
Compiler used: /usr/bin/cc
Compiler used: /home/edeviser/bin/cc
我的期望是:
Compiler used: /home/edeviser/bin/cc
Compiler used: /home/edeviser/bin/cc
Compiler used: /home/edeviser/bin/cc
如何在GNUMake中修改PATH并成功地使用$(shell…(执行命令
您必须编写这样的shell
调用:
$(info Compiler used: $(shell PATH='$(PATH)' which cc))
在shell函数中设置PATH。