X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Ftargets%2Fdri%2FAndroid.mk;h=a5a779176fdcab144e0a2f7eb6d98df769079602;hb=HEAD;hp=2d9610ee9abbcb2b7263d6aaa9793eac7694a75e;hpb=23fb11455b415238fb9e378fa0ab51f4b6cefd7a;p=mesa.git diff --git a/src/gallium/targets/dri/Android.mk b/src/gallium/targets/dri/Android.mk index 2d9610ee9ab..a5a779176fd 100644 --- a/src/gallium/targets/dri/Android.mk +++ b/src/gallium/targets/dri/Android.mk @@ -27,99 +27,80 @@ include $(CLEAR_VARS) LOCAL_MODULE := gallium_dri -ifeq ($(MESA_LOLLIPOP_BUILD),true) -LOCAL_MODULE_RELATIVE_PATH := $(notdir $(MESA_DRI_MODULE_PATH)) -else -LOCAL_MODULE_PATH := $(MESA_DRI_MODULE_PATH) -endif - +LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH) LOCAL_SRC_FILES := target.c LOCAL_CFLAGS := +# We need --undefined-version as some functions in dri.sym may be missing +# depending on which drivers are enabled or not. Otherwise, we get the error: +# "version script assignment of to symbol FOO failed: symbol not defined" +LOCAL_LDFLAGS := \ + -Wl,--version-script=$(LOCAL_PATH)/dri.sym \ + -Wl,--undefined-version + LOCAL_SHARED_LIBRARIES := \ libdl \ libglapi \ - libexpat \ + libz \ + liblog -ifneq ($(filter-out swrast,$(MESA_GPU_DRIVERS)),) -LOCAL_CFLAGS += -DHAVE_LIBDRM -LOCAL_SHARED_LIBRARIES += libdrm +# If Android version >=8 MESA should static link libexpat else should dynamic link +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27; echo $$?), 0) +LOCAL_STATIC_LIBRARIES := \ + libexpat +else +LOCAL_SHARED_LIBRARIES += \ + libexpat endif -ifneq ($(filter freedreno,$(MESA_GPU_DRIVERS)),) -LOCAL_CFLAGS += -DGALLIUM_FREEDRENO -gallium_DRIVERS += libmesa_winsys_freedreno libmesa_pipe_freedreno -LOCAL_SHARED_LIBRARIES += libdrm_freedreno -endif -ifneq ($(filter i915g,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_winsys_i915 libmesa_pipe_i915 -LOCAL_SHARED_LIBRARIES += libdrm_intel -LOCAL_CFLAGS += -DGALLIUM_I915 -endif -ifneq ($(filter ilo,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_winsys_intel libmesa_pipe_ilo -LOCAL_SHARED_LIBRARIES += libdrm_intel -LOCAL_CFLAGS += -DGALLIUM_ILO -endif -ifneq ($(filter nouveau,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_winsys_nouveau libmesa_pipe_nouveau -LOCAL_CFLAGS += -DGALLIUM_NOUVEAU -LOCAL_SHARED_LIBRARIES += libdrm_nouveau -endif -ifneq ($(filter r%,$(MESA_GPU_DRIVERS)),) -ifneq ($(filter r300g,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_pipe_r300 -LOCAL_CFLAGS += -DGALLIUM_R300 -endif -ifneq ($(filter r600g,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_pipe_r600 -LOCAL_CFLAGS += -DGALLIUM_R600 -endif -ifneq ($(filter radeonsi,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_pipe_radeonsi libmesa_winsys_amdgpu -LOCAL_SHARED_LIBRARIES += libLLVM libdrm_amdgpu -LOCAL_CFLAGS += -DGALLIUM_RADEONSI -endif -gallium_DRIVERS += libmesa_winsys_radeon libmesa_pipe_radeon -LOCAL_SHARED_LIBRARIES += libdrm_radeon -endif -ifneq ($(filter swrast,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_pipe_softpipe libmesa_winsys_sw_dri -LOCAL_CFLAGS += -DGALLIUM_SOFTPIPE -endif -ifneq ($(filter vc4,$(MESA_GPU_DRIVERS)),) -LOCAL_CFLAGS += -DGALLIUM_VC4 -gallium_DRIVERS += libmesa_winsys_vc4 libmesa_pipe_vc4 -endif -ifneq ($(filter vmwgfx,$(MESA_GPU_DRIVERS)),) -gallium_DRIVERS += libmesa_winsys_svga libmesa_pipe_svga -LOCAL_CFLAGS += -DGALLIUM_VMWGFX -endif -ifneq ($(filter nouveau r600g,$(MESA_GPU_DRIVERS)),) -LOCAL_SHARED_LIBRARIES += $(if $(filter true,$(MESA_LOLLIPOP_BUILD)),libc++,libstlport) +LOCAL_STATIC_LIBRARIES += \ + libetnaviv_drm \ + libfreedreno_drm \ + libfreedreno_ir2 \ + libfreedreno_ir3 \ + libfreedreno_perfcntrs \ + libmesa_gallium \ + libpanfrost_bifrost \ + libpanfrost_bifrost_disasm \ + libpanfrost_lib \ + libpanfrost_midgard \ + libpanfrost_midgard_disasm \ + libpanfrost_shared \ + libpanfrost_util \ + +ifeq ($(USE_LIBBACKTRACE),true) + LOCAL_SHARED_LIBRARIES += libbacktrace endif -LOCAL_STATIC_LIBRARIES := \ - $(gallium_DRIVERS) \ +$(foreach d, $(MESA_BUILD_GALLIUM), $(eval LOCAL_CFLAGS += $(patsubst HAVE_%,-D%,$(d)))) + +# sort GALLIUM_LIBS to remove any duplicates +LOCAL_WHOLE_STATIC_LIBRARIES := \ + $(sort $(GALLIUM_LIBS)) \ libmesa_st_dri \ libmesa_st_mesa \ libmesa_glsl \ + libmesa_compiler \ + libmesa_nir \ libmesa_dri_common \ libmesa_megadriver_stub \ - libmesa_gallium \ libmesa_pipe_loader \ libmesa_util \ - libmesa_loader \ + libmesa_loader -ifeq ($(MESA_ENABLE_LLVM),true) -LOCAL_STATIC_LIBRARIES += \ - libLLVMR600CodeGen \ - libLLVMR600Desc \ - libLLVMR600Info \ - libLLVMR600AsmPrinter \ - libelf -LOCAL_LDLIBS += $(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-lgcc) +# sort GALLIUM_SHARED_LIBS to remove any duplicates +LOCAL_SHARED_LIBRARIES += $(sort $(GALLIUM_SHARED_LIBS)) + +ifneq ($(filter 5 6 7, $(MESA_ANDROID_MAJOR_VERSION)),) +LOCAL_POST_INSTALL_CMD := \ + $(foreach l, lib $(if $(filter true,$(TARGET_IS_64_BIT)),lib64), \ + $(eval MESA_DRI_MODULE_PATH := $(TARGET_OUT_VENDOR)/$(l)/$(MESA_DRI_MODULE_REL_PATH)) \ + mkdir -p $(MESA_DRI_MODULE_PATH); \ + $(foreach d, $(GALLIUM_TARGET_DRIVERS), ln -sf gallium_dri.so $(MESA_DRI_MODULE_PATH)/$(d)_dri.so;) \ + ) +else +LOCAL_MODULE_SYMLINKS := $(foreach d, $(GALLIUM_TARGET_DRIVERS), $(d)_dri.so) endif include $(GALLIUM_COMMON_MK)