gpt4 book ai didi

makefile - 如果源文件存在,如何从一个目录构建,否则从另一个目录构建?

转载 作者:行者123 更新时间:2023-12-04 21:44:43 26 4
gpt4 key购买 nike

我正在修改一个包含 6000 多个源文件的大型递归 makefile 项目。所有这些都是透明控制的。由于我不想复制整个源代码树,因此我正在尝试创建一个仅包含修改后的源文件的新项目,因此如果它们在我修改的树中不存在,则从原始树中提取源代码。

Dir Structure

我已经修改了ModDir中的makefile检查每个文件夹是否在本地存在,如果存在,则在该文件夹中执行 make。否则在 sourceDir 中执行 make .我的问题在于子目录生成文件。

每个子目录 makefile 包含该模块所需的所有源文件的列表。如果文件存在,我需要找到一种在本地构建文件的方法,否则从 SourceDir/subdir 构建文件.

IE。在我的图像中,Dir1 makefile 需要构建 F1来自 ModDir/Dir1/F1 , 并从 SourceDir/Dir1/F2-F3 构建其他文件.

我尝试使用 VPATH 来告诉 make 在两个位置(当然是 ModDir 首先)找到源文件,效果很好。但是,由于 make 假定目标文件位于 ModDir 中。 ,它找不到任何内置的目标文件SourceDir .

我还尝试制定一个预构建规则来使用 bash 修改生成文件列表,但我不知道这是否可能。

如果源文件存在( ModDir ),我如何使用 make 从一个目录构建,否则从另一个目录构建( SourceDir )?

最佳答案

最简单的方法是将您的“if ... then ... else”逻辑放在外部 bash 或批处理(无论您使用哪个操作系统)脚本中并交换 makefile在调用 make 之前

关于makefile - 如果源文件存在,如何从一个目录构建,否则从另一个目录构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16362437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com