summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2021-07-09 07:16:36 -0500
committerMarge Bot <eric+marge@anholt.net>2021-07-09 13:54:45 +0000
commit439322ad4c03b135bb2570b3bbdfd7fa5fc8a06d (patch)
tree18b7edf0384731d4cecb544fe97cb3886ab35034 /android
parent29f264f25804eeea962f21c29c39050c3fc1663d (diff)
downloadmesa-439322ad4c03b135bb2570b3bbdfd7fa5fc8a06d.tar.gz
android: Restore android/Android.mk
It was accidentally dropped as part of d4b482d378e3 but it's the one Android makefile we want to keep. Fixes: d4b482d378e3 "android: Drop the Android.mk build system" Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11798>
Diffstat (limited to 'android')
-rw-r--r--android/Android.mk154
1 files changed, 154 insertions, 0 deletions
diff --git a/android/Android.mk b/android/Android.mk
new file mode 100644
index 00000000000..243da8493af
--- /dev/null
+++ b/android/Android.mk
@@ -0,0 +1,154 @@
+# Mesa 3-D graphics library
+#
+# Copyright (C) 2021 GlobalLogic Ukraine
+# Copyright (C) 2021 Roman Stratiienko (r.stratiienko@gmail.com)
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+ifneq ($(filter true, $(BOARD_MESA3D_USES_MESON_BUILD)),)
+
+LOCAL_PATH := $(call my-dir)
+MESA3D_TOP := $(dir $(LOCAL_PATH))
+
+MESA_VK_LIB_SUFFIX_amd := radeon
+MESA_VK_LIB_SUFFIX_intel := intel
+MESA_VK_LIB_SUFFIX_freedreno := freedreno
+MESA_VK_LIB_SUFFIX_broadcom := broadcom
+MESA_VK_LIB_SUFFIX_virtio-experimental := virtio
+MESA_VK_LIB_SUFFIX_swrast := lvp
+
+include $(CLEAR_VARS)
+
+LOCAL_SHARED_LIBRARIES := libc libdl libdrm libm liblog libcutils libz libc++ libnativewindow libsync libhardware
+LOCAL_STATIC_LIBRARIES := libexpat libarect libelf
+LOCAL_HEADER_LIBRARIES := libnativebase_headers hwvulkan_headers libbacktrace_headers
+MESON_GEN_PKGCONFIGS := backtrace cutils expat hardware libdrm:2.4.105 nativewindow sync zlib:1.2.11 libelf
+
+ifneq ($(filter swr swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
+MESON_GEN_LLVM_STUB := true
+endif
+
+ifneq ($(filter zink,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
+LOCAL_SHARED_LIBRARIES += libvulkan
+MESON_GEN_PKGCONFIGS += vulkan
+endif
+
+ifneq ($(filter iris,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
+LOCAL_SHARED_LIBRARIES += libdrm_intel
+MESON_GEN_PKGCONFIGS += libdrm_intel:2.4.105
+endif
+
+ifneq ($(filter radeonsi amd,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
+MESON_GEN_LLVM_STUB := true
+LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions
+LOCAL_SHARED_LIBRARIES += libdrm_amdgpu
+MESON_GEN_PKGCONFIGS += libdrm_amdgpu:2.4.105
+endif
+
+ifneq ($(filter radeonsi r300 r600,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
+LOCAL_SHARED_LIBRARIES += libdrm_radeon
+MESON_GEN_PKGCONFIGS += libdrm_radeon:2.4.105
+endif
+
+ifneq ($(filter nouveau,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
+LOCAL_SHARED_LIBRARIES += libdrm_nouveau
+MESON_GEN_PKGCONFIGS += libdrm_nouveau:2.4.105
+endif
+
+ifneq ($(MESON_GEN_LLVM_STUB),)
+MESON_LLVM_VERSION := 11.0.0
+# Required for swr gallium target
+MESON_LLVM_IRBUILDER_PATH := external/llvm-project/llvm/include/llvm/IR/IRBuilder.h
+LOCAL_SHARED_LIBRARIES += libLLVM11
+endif
+
+ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.graphics.mapper@4.0 \
+ libgralloctypes \
+ libhidlbase \
+ libutils
+
+MESON_GEN_PKGCONFIGS += android.hardware.graphics.mapper:4.0
+endif
+
+ifeq ($(TARGET_IS_64_BIT),true)
+LOCAL_MULTILIB := 64
+else
+LOCAL_MULTILIB := 32
+endif
+include $(LOCAL_PATH)/mesa3d_cross.mk
+
+ifdef TARGET_2ND_ARCH
+LOCAL_MULTILIB := 32
+include $(LOCAL_PATH)/mesa3d_cross.mk
+endif
+
+#-------------------------------------------------------------------------------
+
+define mesa3d-lib
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE := $1
+LOCAL_VENDOR_MODULE := true
+LOCAL_MODULE_RELATIVE_PATH := $3
+ifdef TARGET_2ND_ARCH
+LOCAL_SRC_FILES_$(TARGET_ARCH) := $(call relative_top_path,$(LOCAL_PATH))$($4)
+LOCAL_SRC_FILES_$(TARGET_2ND_ARCH) := $(call relative_top_path,$(LOCAL_PATH))$(2ND_$4)
+LOCAL_MULTILIB := both
+else
+LOCAL_SRC_FILES := $(call relative_top_path,$(LOCAL_PATH))$($4)
+endif
+LOCAL_CHECK_ELF_FILES := false
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_SYMLINKS := $1$2
+include $(BUILD_PREBUILT)
+include $(CLEAR_VARS)
+endef
+
+__MY_SHARED_LIBRARIES := $(LOCAL_SHARED_LIBRARIES)
+include $(CLEAR_VARS)
+LOCAL_SHARED_LIBRARIES := $(__MY_SHARED_LIBRARIES)
+
+# Module 'libgallium_dri', produces '/vendor/lib{64}/dri/libgallium_dri.so'
+# This module also trigger DRI symlinks creation process
+$(eval $(call mesa3d-lib,libgallium_dri,.so.0,dri,MESA3D_GALLIUM_DRI_BIN))
+# Module 'libglapi', produces '/vendor/lib{64}/libglapi.so'
+$(eval $(call mesa3d-lib,libglapi,.so.0,,MESA3D_LIBGLAPI_BIN))
+
+# Module 'libEGL_mesa', produces '/vendor/lib{64}/egl/libEGL_mesa.so'
+$(eval $(call mesa3d-lib,libEGL_mesa,.so.1,egl,MESA3D_LIBEGL_BIN))
+# Module 'libGLESv1_CM_mesa', produces '/vendor/lib{64}/egl/libGLESv1_CM_mesa.so'
+$(eval $(call mesa3d-lib,libGLESv1_CM_mesa,.so.1,egl,MESA3D_LIBGLESV1_BIN))
+# Module 'libGLESv2_mesa', produces '/vendor/lib{64}/egl/libGLESv2_mesa.so'
+$(eval $(call mesa3d-lib,libGLESv2_mesa,.so.2,egl,MESA3D_LIBGLESV2_BIN))
+
+# Modules 'vulkan.{driver_name}', produces '/vendor/lib{64}/hw/vulkan.{driver_name}.so' HAL
+$(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), \
+ $(eval $(call mesa3d-lib,vulkan.$(MESA_VK_LIB_SUFFIX_$(driver)),.so.0,hw,MESA3D_VULKAN_$(driver)_BIN)))
+
+ifneq ($(filter true, $(BOARD_MESA3D_BUILD_LIBGBM)),)
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(MESA3D_TOP)/src/gbm/main
+
+# Modules 'libgbm', produces '/vendor/lib{64}/libgbm.so'
+$(eval $(call mesa3d-lib,libgbm,.so.1,,MESA3D_LIBGBM_BIN))
+endif
+
+#-------------------------------------------------------------------------------
+
+endif