Makefile :如何创建可用于子 makefile 的全局变量



给定一个调用子makefile的master.makefile,例如:

downloads:
    make -f downloads.makefile

子文件downloads.makefile如下:

download: clean
    curl -o ./data/<itemname>.png 'http://www.mysite.com/<itemname>.png'
    echo "downloaded <itemname>: Done!"

如何在我的主文件中设置全局变量itemname,可用于我的子生成文件?

注意:我的项目实际上更复杂,有 12 个不同的子 makefile,它们应该重用主文件中的相同参数/变量。主文件应该分配值,而子 makefile 应该检索我放置<itemname>的变量值。

有多种方法可以做到这一点。

首先,始终

,始终使用$(MAKE),在运行子品牌时永远不要make。然后。。。

1. 您可以在递归命令行上传递值:

itemname = whatever
downloads:
        $(MAKE) -f downloads.makefile itemname=$(itemname)

2. 您可以在父生成文件中导出变量:

export itemname = myvalue
downloads:
        $(MAKE) -f downloads.makefile

使用子生成文件,例如:

download: 
    echo "downloaded $(itemname): Done!"

相关内容

  • 没有找到相关文章

最新更新