2 Android.mk 个文件之间的依赖关系

Dependencies between 2 Android.mk files

我有 2 个 Android.mk 文件,第一个构建了一堆库,第二个构建了另一个库,但需要第一个完成才能开始自己的构建。有什么办法可以确保发生这种情况吗?

这是我目前尝试过的方法:

  1. LOCAL_ADDITIONAL_DEPENDENCIES := path/to/folder/for/android1.mk
  2. 这些 Android.m 文件(1 和 2)的列出顺序
  3. 添加LOCAL_SHARED_LIBRARIES := a.so b.so ...

但是,none 到目前为止,这些已经有所帮助

######################################################################
# Android1.mk
######################################################################

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := a1.c a2.c
LOCAL_MODULE := lib_a
LOCAL_MODULE_TAGS := optional
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := SHARED_LIBRARIES

include $(BUILD_SHARED_LIBRARY)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := b1.c b2.c
LOCAL_MODULE := lib_b
LOCAL_MODULE_TAGS := optional
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := SHARED_LIBRARIES

include $(BUILD_SHARED_LIBRARY)

######################################################################
# Android2.mk
######################################################################

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := abc.c xyz.c
LOCAL_MODULE := lib_2
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_TAGS := optional
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_ADDITIONAL_DEPENDENCIES := /path/to/folder/where/Android1.mk/resides

LOCAL_SHARED_LIBRARIES += \
    lib_a \
    lib_b

include $(BUILD_SHARED_LIBRARY)

需要注意的是 abc.c/xyz.c 不会在 lib_a.so/lib_b.so/lib_z.so 中进行任何调用。但是,我正在生成一个脚本(在 Android2.mk 中),为此,需要先构建所有库(在 Android1.mk 中)

找到实现此目的的方法:

# List out all the dependencies here
INTERMEDIATE_TARGET := \
lib_1
lib_2

generate.abc: $(INTERMEDIATE_TARGET)