Sto costruendo alcuni test hardware per Android. Ho un file Android.mk che costruisce questi eseguibili uno ad uno, con un blocco di codice makefile per ciascuno, come illustrato di seguito:Semplificazione di un file Android.mk che crea più eseguibili
##### 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)
Come si può vedere, la maggior parte del codice viene ripetuto per ogni test (tra include $(CLEAR_VARS)
e include $(CLEAR_VARS)
). Mi piacerebbe semplificarlo in modo tale da avere una lista di nomi di test e una sezione di codice makefile che è 'chiamata' per ognuno di essi. Non mi interessa se quel codice deve essere diviso in un altro file. Ecco alcuni pseudocodice python-esque per dimostrare quello che sto per:
##### 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)
Questo è possibile in file Android.mk? Come può essere fatto?
Se i flag non cambiano, non è necessario reinserirli no? – Geoffroy