没想到Android.mk也如此强大,也支持使用foreach循环编译多目标
方法如下:
假设有两个模块需要编译,原来是这样写:
# =====================================================
include $(CLEAR_VARS)
LOCAL_MODULE := echo_usbhost_test
LOCAL_SRC_FILES := echo_usbhost_test.c
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/data
LOCAL_CFLAGS += $(PCBA_FLAG)
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)
# =====================================================
include $(CLEAR_VARS)
LOCAL_MODULE := echo_auto_test
LOCAL_SRC_FILES := echo_auto_test.c
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/data
LOCAL_CFLAGS += $(PCBA_FLAG)
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)
使用循环后是:
############################################################
MY_SRCS := echo_usbhost_test.c \
echo_auto_test.c
$(foreach module,$(MY_SRCS), \
$(eval include $(CLEAR_VARS)) \
$(eval LOCAL_MODULE := $(basen