如何让 `mmm` 省略耗时的文档构建步骤?

How do I make `mmm` omit the time-consuming doc build steps?

使用 AOSP 的源代码,在我对 frameworks/base/core/java/android/ 下的源文件, mmm frameworks/base -j9 大约需要 4 分钟。 大部分时间似乎都在等待名称包含 "Droiddoc" 或 "Docs droiddoc" 的步骤完成:

...
[ 14% 4/28] Docs droiddoc: out/target/common/docs/api-stubs
[ 21% 6/28] //frameworks/base:test-api-stubs-docs Droiddoc [common]
DroidDoc took 102 sec. to write docs to out/soong/.intermediates/frameworks/base/test-api-stubs-docs/android_common/docs/out
[ 28% 7/25] Docs droiddoc: out/target/common/docs/api-stubs
DroidDoc took 113 sec. to write docs to out/target/common/docs/api-stubs
[ 32% 8/25] //frameworks/base:api-stubs-docs Droiddoc [common]
DroidDoc took 115 sec. to write docs to out/soong/.intermediates/frameworks/base/api-stubs-docs/android_common/docs/out
[ 40% 9/22] //frameworks/base:system-api-stubs-docs Droiddoc [common]
DroidDoc took 117 sec. to write docs to out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/docs/out
...

我真的不需要也不希望在每个小的增量重新编译的基础上构建任何文档。 有没有办法省略所有这些与文档相关的步骤?

如果有一个命令行标志,我会感兴趣, 或者希望对一个或多个 Makefile and/or .mk 文件进行简单的破解。

我查看了 .mk 文件;特别是 build/make/core/droiddoc.mk 似乎相关。我试着在里面剪断一些电线,但没有真正理解我在做什么,但没有成功。

我希望有人了解这些 .mk 文件是如何组合在一起的 就会知道如何轻松做到这一点。

我希望经常跑步 mmm 的人会对这感兴趣。

makemmm 调用期间,显然有两种不同类型的构建文档的构建步骤。 每个都必须以自己的方式处理。

  1. 进度消息中包含 "Docs droiddoc" 的构建步骤。该字符串来自 build/make/core/droiddoc.mk.

    我能够按如下方式抑制这些构建步骤:删除 build/make/core/droiddoc.mk 中的所有行,因此它变成一个空文件。

  2. 进度消息中包含 "Droiddoc" 的构建步骤。该字符串来自 build/soong/java/droiddoc.go.

    我能够按如下方式抑制这些构建步骤:删除或注释掉调用文件中的最后两个块 build/soong/java/androidmk.go:

    func (jd *Javadoc) AndroidMk() android.AndroidMkData {
            ...
    }
    func (ddoc *Droiddoc) AndroidMk() android.AndroidMkData {
            ...
    }
    

我确认不再花时间在 Darwin 上构建文档,方法是在构建期间密切关注 Activity 监视器, 并验证 javadoc 进程不再出现。

省略文档后,mmm frameworks/base -j9现在只需 45 到 55 秒,而不是 4 分钟。