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
+ libz \
+ liblog
+
+# 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
+
+LOCAL_STATIC_LIBRARIES += \
+ libetnaviv_drm \
+ libfreedreno_drm \
+ libfreedreno_ir3 \
+ libmesa_gallium \
+ libpanfrost_bifrost \
+ libpanfrost_decode \
+ libpanfrost_encoder \
+ libpanfrost_midgard \
+ libpanfrost_shared
+
+ifeq ($(USE_LIBBACKTRACE),true)
+ LOCAL_SHARED_LIBRARIES += libbacktrace
+endif
$(foreach d, $(MESA_BUILD_GALLIUM), $(eval LOCAL_CFLAGS += $(patsubst HAVE_%,-D%,$(d))))
libmesa_nir \
libmesa_dri_common \
libmesa_megadriver_stub \
- libmesa_gallium \
libmesa_pipe_loader \
libmesa_util \
libmesa_loader
ifneq ($(filter 5 6 7, $(MESA_ANDROID_MAJOR_VERSION)),)
LOCAL_POST_INSTALL_CMD := \
$(foreach l, lib $(if $(filter true,$(TARGET_IS_64_BIT)),lib64), \
- mkdir -p $(TARGET_OUT)/$(l)/$(MESA_DRI_MODULE_REL_PATH); \
- $(foreach d, $(GALLIUM_TARGET_DRIVERS), ln -sf gallium_dri.so $(TARGET_OUT)/$(l)/$(MESA_DRI_MODULE_REL_PATH)/$(d)_dri.so;) \
+ $(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)