Estoy construyendo algunas pruebas de hardware para Android. Tengo un archivo Android.mk que construye estos ejecutables, uno por uno, usando un bloque de código makefile para cada uno, como se muestra a continuación:Simplificando un archivo Android.mk que construye múltiples ejecutables
##### 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)
Como se puede ver, la mayoría del código se repite para cada prueba (entre include $(CLEAR_VARS)
y include $(CLEAR_VARS)
). Me gustaría simplificar esto de modo que tenga una lista de nombres de prueba y una sección de código de archivo MAKE que se 'llame' para cada uno. No me importa si ese código debe dividirse en otro archivo. Aquí hay algo de pseudocódigo pitón-esque para demostrar lo que voy para:
##### 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)
Es esto posible en archivos Android.mk? ¿Cómo puede hacerse esto?
Si las banderas no cambian, no necesita volver a iniciarlas ¿no? – Geoffroy