ntel-gpu-tools/tests/Android.mk
Tim Gore 0be29daac1 intel-gpu-tools: Move igt tests to intel validation area
Currently when IGT is built for Android the resulting test
executables go to /system/bin, which is not ideal. After
discussion with the core validation team i have moved them
to /system/vendor/intel/validation/core/igt by setting
LOCAL_MODULE_PATH.

I have also added a --defsym linker option to export a
symbol that allows a script to easily distinguish between
tests that have subtests and those that dont. There are
better ways to do this (viz, in the source code) but
because the igt tests are not written consistently this
would require many more changes.

Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-13 11:15:53 +02:00

81 lines
2.8 KiB
Makefile

LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/Makefile.sources
#================#
# each igt test is a separate executable. define a function to build one of these tests
define add_test
include $(CLEAR_VARS)
# specific to this test
LOCAL_SRC_FILES := $1.c
LOCAL_MODULE := $1
# common to all tests
LOCAL_CFLAGS += ${IGT_LOCAL_CFLAGS}
LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES}
LOCAL_STATIC_LIBRARIES := ${IGT_LOCAL_STATIC_LIBRARIES}
LOCAL_SHARED_LIBRARIES := ${IGT_LOCAL_SHARED_LIBRARIES}
LOCAL_MODULE_TAGS := optional
# ask linker to define a specific symbol; we use this to identify IGT tests
LOCAL_LDFLAGS := -Wl,--defsym=$2=0
LOCAL_MODULE_PATH := $(ANDROID_PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/intel/validation/core/igt
include $(BUILD_EXECUTABLE)
endef
# some tests still do not build under android
skip_tests_list :=
skip_tests_list += gem_seqno_wrap
skip_tests_list += testdisplay # needs glib.h
skip_tests_list += pm_pc8
skip_tests_list += kms_render # needs glib.h
skip_tests_list += gem_exec_params # needs macro that's missing from external/PRIVATE/drm/include/drmi915_drm.h
# set local compilation flags for IGT tests
IGT_LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM -DANDROID -UNDEBUG
IGT_LOCAL_CFLAGS += -include "check-ndebug.h" -std=c99
# FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit
IGT_LOCAL_CFLAGS += -Wno-error=return-type
# Excessive complaining for established cases. Rely on the Linux version warnings.
IGT_LOCAL_CFLAGS += -Wno-sign-compare
# set local includes
IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib
IGT_LOCAL_C_INCLUDES += ${ANDROID_BUILD_TOP}/external/PRIVATE/drm/include/drm
# set local libraries
IGT_LOCAL_STATIC_LIBRARIES := libintel_gpu_tools
IGT_LOCAL_SHARED_LIBRARIES := libpciaccess libdrm libdrm_intel
# handle cairo requirements if it is enabled
ifeq ("${ANDROID_HAS_CAIRO}", "1")
IGT_LOCAL_C_INCLUDES += ${ANDROID_BUILD_TOP}/external/cairo-1.12.16/src
IGT_LOCAL_SHARED_LIBRARIES += libcairo
IGT_LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=1
else
# the following tests depend on cairo, so skip them
skip_tests_list += \
kms_plane \
kms_addfb \
kms_cursor_crc \
kms_flip \
kms_flip_tiling \
kms_pipe_crc_basic \
kms_fbc_crc \
kms_setmode \
gem_render_copy \
pm_lpsp
IGT_LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=0
endif
# create two test lists, one for simple single tests, one for tests that have subtests
tests_list := $(filter-out $(skip_tests_list),$(TESTS_progs) $(HANG) $(TESTS_testsuite))
tests_list_M := $(filter-out $(skip_tests_list),$(TESTS_progs_M))
$(foreach item,$(tests_list),$(eval $(call add_test,$(item),"IGT_SINGLE_TEST")))
$(foreach item,$(tests_list_M),$(eval $(call add_test,$(item),"IGT_MULTI_TEST")))