如何将项目添加到Android Build?

时间:2013-01-16 14:57:37

标签: android recursion build makefile gnu

我在构建Android ROM(galaxys2att,gingerbread)方面遇到了问题。我觉得是时候变得更聪明了makefile处理。所以我创建了一个简单的测试项目。但它的正在编译。这就是我的所作所为:

1我在可构建模块下创建了一个目录(" myproject / ")(我使用" Mms / &#34 ;但其他人有同样的问题) 2我在包含

的目录中创建Android.mk
  

您好:

   echo "Hello from myproject"

(我在hello:和echo之间没有空行:页面编辑器添加了这些空白行)

3我在" Mms / "中运行mm 。目录

Mms和其他子项目编译但没有myproject的证据。

Mms中的Android.mk包含行 include $(call all-makefiles-under, $(LOCAL_PATH))

当然我原来是envsetup.sh 我在这里错过了什么?

1 个答案:

答案 0 :(得分:1)

在Android NDK中,.../docs/ANDROID-MK.html中有一些文档。不幸的是,除了查看现有的makefile之外,没有太多其他文档可供查找。用于构建共享库的最小Android.mk可能看起来像这样

# "initialize" Makefile
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# setup some variables
LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c

# do the build
include $(BUILD_SHARED_LIBRARY)

Android.mk与常规Makefile不同。你有一个样板,定义子makefile中需要的一些变量,然后通过包含预定义的Android makefile来完成工作。

例如,

BUILD_SHARED_LIBRARYbuild/core/build-all.mk中定义为

BUILD_SHARED_LIBRARY := $(BUILD_SYSTEM)/build-shared-library.mk

它自己定义并检查一些make变量,然后包括$(BUILD_SYSTEM)/build-module.mk,依此类推。

在build-all.mk中,还定义了其他变量,如BUILD_HOST_EXECUTABLEBUILD_STATIC_LIBRARYBUILD_EXECUTABLE,它们用于构建静态库或可执行文件。 / p>