5
我正在为Android构建一些硬件测试。我有一个接一个建立这些可执行文件的文件Android.mk使用的每个生成文件代码块,如下图所示:简化构建多个可执行文件的Android.mk文件
##### 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代码。我不在乎这些代码是否必须拆分成另一个文件。下面是一些蟒蛇式的伪代码来证明什么,我去为:在Android.mk文件
##### 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)
这可能吗?如何做呢?
如果标志没有改变,你不需要重新初始化它们吗? – Geoffroy