在Makefile中读取输入变量并根据其名称设置变量

49
我有一个Makefile文件,想要从输入中读取模块名称,然后根据它的名称创建目录。这是我的代码:

I have a makefile where I want to read module name from input and then make directory based on it`s name. here is my code:


build:  
    @read -p "Enter Module Name:" module;  
    module_dir=./modules/$$module  
    mkdir -p $$module_dir/build;  

但是在设置了module_dir之后,它仅包含./modules/(没有模块名称连接)。


我的代码有什么问题?

感谢您的回答。

1个回答

103

每个命令在自己的子shell中运行,因此变量无法从一个命令传递到下一个命令。将它们放在同一行上它们就会工作:

build:  
    @read -p "Enter Module Name:" module; \  
    module_dir=./modules/$$module; \
    mkdir -p $$module_dir/build

16
你也可以使用.ONESHELL来将所有命令有效地放在同一行上。 - Brian M. Hunt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接