【发布时间】:2021-12-31 16:23:06
【问题描述】:
有没有办法从 makefile 中强制进行完全重建(例如 -B)?
我添加了一个预构建步骤,它增加了一个构建号,存储在一个文本文件中,供我的项目使用。仅当 newbuild=1 作为参数传递给“make”时,内部版本号才会递增。
pre-build:
# This option increments build number
ifdef newbuild
increment_build_number
endif
如果调用此代码,我想强制进行完全重建,这样就不会出现任何不同步的情况,并且在使用newbuild=1 时我不必键入-B。有没有办法做到这一点?
谢谢!
【问题讨论】:
-
-B标志不会强制重建所有目标,它只是要求重建所有考虑的目标。也就是说,Make 不会因为它是最新的而跳过任何目标。因此,如果您make -B foo,那么 Make 将重建foo及其所有先决条件,但将不会重建不相关的目标bar。这就是你想要的吗? -
并非如此。如果我输入
make newbuild=1,我希望将其解释为make -B newbuild=1。当然,可以触及每个源文件,但有没有更优雅的方法来做到这一点?
标签: makefile build gnu rebuild