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

时间:2019-05-23 18:57:34

标签: android dependencies android.mk

我有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 ...

但是,到目前为止,这些方法都没有帮助

######################################################################
# 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中)

1 个答案:

答案 0 :(得分:0)

找到一种实现此目的的方法:

L_R, L_A, L_M, reference, position