Tôi đang xây dựng một số kiểm tra phần cứng cho Android. Tôi có một file Android.mk mà xây dựng những thực thi một-by-one, sử dụng một khối mã makefile cho mỗi, như hình dưới đây:Đơn giản hóa tệp Android.mk để tạo nhiều tệp thi hành
##### 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)
Như bạn có thể thấy, đa số các mã được lặp lại cho mỗi thử nghiệm (giữa include $(CLEAR_VARS)
và include $(CLEAR_VARS)
). Tôi muốn đơn giản hóa điều này như vậy mà tôi có một danh sách các tên thử nghiệm và một phần của mã makefile được gọi là 'cho mỗi một. Tôi không quan tâm nếu mã đó phải được chia thành một tập tin khác. Dưới đây là một số giả mã python-esque để chứng minh những gì tôi đang làm:
##### 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)
Điều này có thể trong các tệp Android.mk không? Nó được hoàn thiện bằng cách nào?
Nếu cờ không thay đổi, bạn không cần phải bắt đầu lại không? – Geoffroy