如何在GNUMake中修改PATH并使用$(shell..)成功执行命令



背景:我有一个定制的工具链,它将由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。

相关内容

最新更新