给定一个 master.makefile
调用子makefile,例如:
downloads:
make -f downloads.makefile
还有一个子makefile
downloads.makefile
这样的 :download: clean
curl -o ./data/<itemname>.png 'http://www.mysite.com/<itemname>.png'
echo "downloaded <itemname>: Done!"
如何设置全局变量
itemname
在我的主文件中,可用于我的子制作文件? 注意:我的项目实际上更复杂,有 12 个不同的子 makefile,它们应该重用来自主文件的相同参数/变量。 masterfile 应该分配值,而 sub-makefile 应该检索我放置
<itemname>
的变量的值。 .
最佳答案
有多种方法可以做到。
首先,始终,始终使用 $(MAKE)
从不make
运行子制作时。然后...
1. 您可以在递归命令行上传递值:
itemname = whatever
downloads:
$(MAKE) -f downloads.makefile itemname=$(itemname)
2. 您可以在父 makefile 中导出变量:
export itemname = myvalue
downloads:
$(MAKE) -f downloads.makefile
带有子makefile,例如:
download:
echo "downloaded $(itemname): Done!"
关于variables - 生成文件 : how to create global variable available to sub-makefile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882202/