mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 09:26:10 +00:00
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>
81 lines
2.8 KiB
Makefile
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")))
|
|
|