【问题标题】:Building just one tool from Android source (AOSP)从 Android 源代码 (AOSP) 仅构建一个工具
【发布时间】:2015-08-19 17:05:39
【问题描述】:

目前我在 Amazon AWS 上使用 AOSP ROM Builder 映像来构建 Android。
关键是,我只对为路径中的主机(linux)构建的外部工具grxmlcompile 感兴趣:aosp/out/host/linux-x86/bin
来源在aosp/external/srec/tools/grxmlcompile

我对 Linux 和制作文件不是很熟悉,因此很难做到这一点。

我想复制源代码(如果需要整个树)并在另一台 linux 机器上构建这个工具。

我找不到我需要运行的 make 文件来构建这部分。

更新: 看起来make out/host/linux-x86/bin/grxmlcompile 可以完成这项工作。我仍然希望能够仅将源树的所需部分移植到构建机器

【问题讨论】:

  • 下面我的回答是不是回答了你的问题,所以你只能构建那个模块?

标签: android linux makefile android-source


【解决方案1】:

cd 到您的 Android 构建源代码的顶部。

source build/envsetup.sh
cd external/srec/tools/grxmlcompile
mma

...或任何目录,或子目录一个makefile。来自 AOSP build/envsetup.sh

  • m:从树顶开始。
  • mm:构建当前目录中的所有模块,但不构建它们的依赖关系。
  • mmm:在提供的目录中构建所有模块,但不构建它们的依赖项。 要限制正在构建的模块,请使用以下语法:mmm dir/:target1,target2。
  • mma:构建当前目录中的所有模块及其依赖项。
  • mmma:构建提供的目录中的所有模块及其依赖项。

external/srec 在 android-5.1.1_r4 标记之后从平台/清单中删除。因此,稍后,如果您使用的是版本 5、6 或更高版本等清单,您可能需要执行 git clone https://android.googlesource/platform/external/srec external/srec 以包含该目录。

【讨论】:

  • 即使在运行 'build/envsetup.sh' 之后,mm、mma 等命令也无法识别
  • 虽然我是一名 Android ROM 开发人员,但我并没有经常使用这些命令,因为我通常只运行完整的 ROM 版本。但是,我只是使用仅构建 grxmlcompile 模块的正确方法以及它的依赖项来修复了我的答案。我对延误表示歉意。我留下了 AOSP 的build/envsetup.sh 列出的其他命令,以防您或任何人只想构建某个模块而没有依赖项(通常用于测试代码构建)或其他模块。有些需要输入,有些则不需要。我希望这有帮助。我首先在我的构建源中对其进行了测试。
  • 我花了七分钟!!! :) 安装:/home/sudosurootdev/source/android/VanirAOSP/out/host/linux-x86/bin/grxmlcompile make: 离开目录`/home/sudosurootdev/source/android/VanirAOSP' #### make 成功完成( 07:02 (mm:ss)) ####
  • 如果你仍然有这个问题,那么你一定是缺少本地依赖项或包。如果你想要一个全新的版本,我在这里上传了它:dropbox.com/s/xyrpwl4um8uve4r/grxmlcompile?dl=0 顺便问一下,你用它做什么,翻译之类的?另外,为什么不分叉它,添加依赖项并通过编写常规 Makefile 来创建一个独立的项目来构建它,这样你就不会浪费太多的存储空间???
  • 感谢您的详细说明。关于你用我自己的makefile提取(fork)我需要的树的一部分的建议。我想这样做。但是我对如何做,或者如何在当前树中找到所有依赖项我没有足够的了解。或者至少我不能在合理的时间内完成它,而不花时间学习 make 的工作原理
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多