2 Android.mk 个文件之间的依赖关系
Dependencies between 2 Android.mk files
我有 2 个 Android.mk 文件,第一个构建了一堆库,第二个构建了另一个库,但需要第一个完成才能开始自己的构建。有什么办法可以确保发生这种情况吗?
这是我目前尝试过的方法:
LOCAL_ADDITIONAL_DEPENDENCIES := path/to/folder/for/android1.mk
- 这些 Android.m 文件(1 和 2)的列出顺序
- 添加
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)
我有 2 个 Android.mk 文件,第一个构建了一堆库,第二个构建了另一个库,但需要第一个完成才能开始自己的构建。有什么办法可以确保发生这种情况吗?
这是我目前尝试过的方法:
LOCAL_ADDITIONAL_DEPENDENCIES := path/to/folder/for/android1.mk
- 这些 Android.m 文件(1 和 2)的列出顺序
- 添加
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)