构建脚本:如何实现“跳过先前完成的步骤”

构建脚本:如何实现“跳过先前完成的步骤”

我正在尝试为 GCC 创建一个构建脚本(目前可以使用),但是当我只更新 GCC/binutils 时,我希望能够跳过重建所有先决条件库。我想让脚本在主构建目录中创建一个文件,其中包含要跳过的所有步骤。我将如何做到这一点(使用命令cat并查找以查看文件中是否有步骤?)。这将允许我在需要时重建某些部件,尽管是手动的。

更新:发布的答案似乎假设我需要一个生成文件,而我发现这非常麻烦并且不想要它;构建过程由许多 cd、configure、make、make install 步骤组成,我根本不希望这些步骤出现在 makefile 中。脚本即将完成,这是我需要的最后一步......

UPDATE2:正如我在下面的评论中所说,我在 Windows 上,使用 MSYS bash 作为 shell。

谢谢!

PS:每次运行脚本时都需要执行此“跳过已完成的步骤”。

答案1

我相信,听起来您需要一份make由我们在 GNU 的朋友制作的介绍。

Make 可以查看一堆中间文件并确定哪些文件需要重新编译。并根据其中的哪些,还找出哪些需要重建其支持文件,从而递归。

您需要通过创建 Makefile 来提前设置它,但这听起来像是您愿意做的事情。

欲了解更多信息,请查看此 URL:http://www.gnu.org/software/make/。事实上,第二点听起来比我能做的任何事情都更好地描述了它。

答案2

所以,看起来您并不是真的在问有关构建框架的问题,而是在问一个关于如何确定文本文件中是否存在某一行的具体问题?

如果你想知道该字符串是否foo存在于文件中,那么:

if grep -q foo thefile; then
   # it's there
else
   # otherwise
fi

应该可以解决问题。

答案3

您可能想了解一下CMake。对于你所描述的,它可能有点矫枉过正,并且make会更合适,但如果你开始进入autotools东西,它可以让你的生活变得更轻松。

相关内容