gpt4 book ai didi

makefile - 如何在不同目标之间显式运行 'make clean'?

转载 作者:行者123 更新时间:2023-12-02 02:19:34 24 4
gpt4 key购买 nike

我正在寻找以下行为:

# make debug (project is rebuilt. this works fine.)
# make debug (project is not rebuilt because no changes have been made.)
# make release (this is a different target than the currently-built one. I want 'make clean' to run before the release target is built)
# make release (project is not rebuilt because no changes have been made.)

谢谢。

最佳答案

有趣的问题。我能想到的唯一方法是在外部记录最近的目标(例如将其回显到文件),然后检查它是否与当前目标相同或不同。如果它们相同,只需运行常规构建过程;如果它们不同,首先运行 make clean

我对此进行了第一次尝试,以说明该过程(未经测试)。

debug release:ifneq ($(MAKECMDGOALS),$(shell cat last_target.txt))    $(MAKE) cleanendif    @echo $@ > last_target.txt    [regular build commands]

这假设两个目标具有相同的配方(某些变量具有不同的设置)。如果它们有不同的配方,则显然必须在两个配方中插入条件部分和回显命令。

关于makefile - 如何在不同目标之间显式运行 'make clean'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944933/

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