etnaviv: update Android build files
[mesa.git] / src / gallium / targets / dri / Android.mk
index ac33a6ed32f09cb9358d4fb32a27f3d2db5f79cd..31d33b255d64fe0836c15bccd77a2e2c6c1ecb4c 100644 (file)
@@ -27,86 +27,77 @@ 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 := -DDRI_TARGET -DHAVE_LIBDRM
+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
 
-# swrast only?
-ifeq ($(MESA_GPU_DRIVERS),swrast)
-LOCAL_CFLAGS += -D__NOT_HAVE_DRM_H
+# 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 += libdrm
+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
-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 libmesa_winsys_sw_kms_dri
-LOCAL_CFLAGS += -DGALLIUM_SOFTPIPE
-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 += libstlport
+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
 
-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
+
+# 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)
 include $(BUILD_SHARED_LIBRARY)