无法在makefile目标中使用变量值

无法在makefile目标中使用变量值,makefile,Makefile,我的Makefile如下所示: install_xyz: cd xyz && ... make install 在此之后,将在xyz/target/abcd下创建一个目录。我想将此目录名abcd存储在变量中。所有这些都需要在目标install_xyz下完成。我想在install_xyz目标下的后续命令中使用变量值。makefile配方中的每一行都在自己的shell中运行。不能在它们之间直接共享shell变量 你有几个选择 使用make变量作为name/e

我的Makefile如下所示:

install_xyz:
            cd xyz && ... make install

在此之后,将在
xyz/target/abcd
下创建一个目录。我想将此目录名
abcd
存储在变量中。所有这些都需要在目标
install_xyz
下完成。我想在
install_xyz
目标下的后续命令中使用变量值。

makefile配方中的每一行都在自己的shell中运行。不能在它们之间直接共享shell变量

你有几个选择

  • 使用make变量作为name/etc,而不是shell变量。(只有在可以提前确定名称的情况下才有效。)
  • 通过配方行的延续使用“单行”配方
  • 将变量存储到一个临时文件中,并在随后需要它的每一行上重新读取它

  • 谢谢你,伊坦。如果我和3一起去。我必须做一些类似的事情:path=$(shell cat/tmp/tmp.txt)&&cp-rxyz/$path/include/*pqr/include/。但是路径值为空。请帮忙。不,不要在食谱上下文中使用
    $(shell)
    。只需使用shell命令/etc读取值,尽管我最不推荐使用三个。