【发布时间】:2011-11-30 21:13:29
【问题描述】:
我正在为 Android 构建一些硬件测试。我有一个 Android.mk 文件,它一个一个地构建这些可执行文件,每个文件都使用一个 makefile 代码块,如下所示:
##### shared #####
LOCAL_PATH := $(my-dir)
##### test_number_one #####
test_name := test_number_one
include $(CLEAR_VARS)
LOCAL_CFLAGS := $(commonCflags)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../
LOCAL_MODULE_TAGS := optional eng
LOCAL_SHARED_LIBRARIES := some_library some_other_library
LOCAL_MODULE := $(test_name)
LOCAL_SRC_FILES := tests/$(test_name)/$(test_name).c
include $(BUILD_EXECUTABLE)
##### test_number_two #####
test_name := test_number_two
include $(CLEAR_VARS)
LOCAL_CFLAGS := $(commonCflags)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../
LOCAL_MODULE_TAGS := optional eng
LOCAL_SHARED_LIBRARIES := some_library some_other_library
LOCAL_MODULE := $(test_name)
LOCAL_SRC_FILES := tests/$(test_name)/$(test_name).c
include $(BUILD_EXECUTABLE)
如您所见,每个测试的大部分代码都是重复的(在include $(CLEAR_VARS) 和include $(CLEAR_VARS) 之间)。我想简化这一点,以便我有一个测试名称列表和一段为每个测试名称“调用”的 makefile 代码。我不在乎该代码是否必须拆分到另一个文件中。这是一些 python 式的伪代码来演示我的目标:
##### shared #####
LOCAL_PATH := $(my-dir)
##### test_number_one #####
test_names := test_number_one test_numer_two
for each item in test_names:
include $(CLEAR_VARS)
LOCAL_CFLAGS := $(commonCflags)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../
LOCAL_MODULE_TAGS := optional eng
LOCAL_SHARED_LIBRARIES := some_library some_other_library
LOCAL_MODULE := $(item)
LOCAL_SRC_FILES := tests/$(item)/$(item).c
include $(BUILD_EXECUTABLE)
这可能在 Android.mk 文件中吗?怎么办?
【问题讨论】:
-
如果标志没有改变,你不需要重新初始化它们不是吗?
标签: android makefile android-ndk