android: anv: fix libexpat shared dependency
[mesa.git] / src / intel / Android.vulkan.mk
index d2e1348644f806a38c3303167e5560c892b87ba2..5b6acbe8412515e60bca54b549ab884e9fcf288f 100644 (file)
@@ -23,16 +23,23 @@ LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 include $(LOCAL_PATH)/Makefile.sources
 
-VK_ENTRYPOINTS_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/vulkan/anv_entrypoints_gen.py
+ANV_ENTRYPOINTS_GEN_SCRIPT := $(LOCAL_PATH)/vulkan/anv_entrypoints_gen.py
+ANV_EXTENSIONS_GEN_SCRIPT := $(LOCAL_PATH)/vulkan/anv_extensions_gen.py
+ANV_EXTENSIONS_SCRIPT := $(LOCAL_PATH)/vulkan/anv_extensions.py
+VULKAN_API_XML := $(MESA_TOP)/src/vulkan/registry/vk.xml
 
 VULKAN_COMMON_INCLUDES := \
+       $(MESA_TOP)/include \
        $(MESA_TOP)/src/mapi \
        $(MESA_TOP)/src/gallium/auxiliary \
        $(MESA_TOP)/src/gallium/include \
        $(MESA_TOP)/src/mesa \
        $(MESA_TOP)/src/vulkan/wsi \
+       $(MESA_TOP)/src/vulkan/util \
        $(MESA_TOP)/src/intel \
-       $(MESA_TOP)/src/intel/vulkan
+       $(MESA_TOP)/src/intel/vulkan \
+       $(MESA_TOP)/src/compiler \
+       frameworks/native/vulkan/include
 
 # libmesa_anv_entrypoints with header and dummy.c
 #
@@ -58,14 +65,18 @@ $(intermediates)/vulkan/dummy.c:
        @echo "Gen Dummy: $(PRIVATE_MODULE) <= $(notdir $(@))"
        $(hide) touch $@
 
-$(intermediates)/vulkan/anv_entrypoints.h:
-       @mkdir -p $(dir $@)
-       $(hide) cat $(MESA_TOP)/src/vulkan/registry/vk.xml | $(VK_ENTRYPOINTS_SCRIPT) header > $@
+$(intermediates)/vulkan/anv_entrypoints.h: $(intermediates)/vulkan/dummy.c \
+                                          $(ANV_ENTRYPOINTS_GEN_SCRIPT) \
+                                          $(ANV_EXTENSIONS_SCRIPT) \
+                                          $(VULKAN_API_XML)
+       $(MESA_PYTHON2) $(ANV_ENTRYPOINTS_GEN_SCRIPT) \
+               --outdir $(dir $@) \
+               --xml $(VULKAN_API_XML)
 
 LOCAL_EXPORT_C_INCLUDE_DIRS := \
         $(intermediates)
 
-LOCAL_SHARED_LIBRARIES := libdrm_intel
+LOCAL_SHARED_LIBRARIES := libdrm
 
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
@@ -74,8 +85,15 @@ ANV_INCLUDES := \
        $(VULKAN_COMMON_INCLUDES) \
        $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,)/vulkan \
        $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir \
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_common,,)/vulkan \
        $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_util,,)/util
 
+ANV_SHARED_LIBRARIES := libdrm
+
+ifeq ($(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5 6 7),)
+ANV_SHARED_LIBRARIES += libnativewindow
+endif
+
 #
 # libanv for gen7
 #
@@ -91,7 +109,7 @@ LOCAL_C_INCLUDES := $(ANV_INCLUDES)
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
 
-LOCAL_SHARED_LIBRARIES := libdrm_intel
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
 
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
@@ -111,7 +129,7 @@ LOCAL_C_INCLUDES := $(ANV_INCLUDES)
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
 
-LOCAL_SHARED_LIBRARIES := libdrm_intel
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
 
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
@@ -131,7 +149,7 @@ LOCAL_C_INCLUDES := $(ANV_INCLUDES)
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
 
-LOCAL_SHARED_LIBRARIES := libdrm_intel
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
 
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
@@ -151,7 +169,47 @@ LOCAL_C_INCLUDES := $(ANV_INCLUDES)
 
 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
 
-LOCAL_SHARED_LIBRARIES := libdrm_intel
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
+
+include $(MESA_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
+
+#
+# libanv for gen10
+#
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmesa_anv_gen10
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+LOCAL_SRC_FILES := $(VULKAN_GEN10_FILES)
+LOCAL_CFLAGS := -DGEN_VERSIONx10=100
+
+LOCAL_C_INCLUDES := $(ANV_INCLUDES)
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
+
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
+
+include $(MESA_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
+
+#
+# libanv for gen11
+#
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmesa_anv_gen11
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+LOCAL_SRC_FILES := $(VULKAN_GEN11_FILES)
+LOCAL_CFLAGS := -DGEN_VERSIONx10=110
+
+LOCAL_C_INCLUDES := $(ANV_INCLUDES)
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
+
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
 
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
@@ -175,35 +233,69 @@ LOCAL_C_INCLUDES := \
 LOCAL_WHOLE_STATIC_LIBRARIES := \
        libmesa_anv_entrypoints \
        libmesa_genxml \
+       libmesa_git_sha1 \
        libmesa_vulkan_util
 
+# The rule generates both C and H files, but due to some strange
+# reason generating the files once leads to link-time issues.
+# Work around create them here as well - we're safe from race
+# conditions since they are stored in another location.
+
 LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_entrypoints.c
+LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_extensions.c
+LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_extensions.h
+
+$(intermediates)/vulkan/anv_entrypoints.c: $(ANV_ENTRYPOINTS_GEN_SCRIPT) \
+                                          $(ANV_EXTENSIONS_SCRIPT) \
+                                          $(VULKAN_API_XML)
+       @mkdir -p $(dir $@)
+       $(MESA_PYTHON2) $(ANV_ENTRYPOINTS_GEN_SCRIPT) \
+               --xml $(VULKAN_API_XML) \
+               --outdir $(dir $@)
+
+$(intermediates)/vulkan/anv_extensions.c: $(ANV_EXTENSIONS_GEN_SCRIPT) \
+                                         $(ANV_EXTENSIONS_SCRIPT) \
+                                         $(VULKAN_API_XML)
+       @mkdir -p $(dir $@)
+       $(MESA_PYTHON2) $(ANV_EXTENSIONS_GEN_SCRIPT) \
+               --xml $(VULKAN_API_XML) \
+               --out-c $@
 
-$(intermediates)/vulkan/anv_entrypoints.c:
+$(intermediates)/vulkan/anv_extensions.h: $(ANV_EXTENSIONS_GEN_SCRIPT) \
+                                          $(ANV_EXTENSIONS_SCRIPT) \
+                                          $(VULKAN_API_XML)
        @mkdir -p $(dir $@)
-       $(hide) cat $(MESA_TOP)/src/vulkan/registry/vk.xml | $(VK_ENTRYPOINTS_SCRIPT) code > $@
+       $(MESA_PYTHON2) $(ANV_EXTENSIONS_GEN_SCRIPT) \
+               --xml $(VULKAN_API_XML) \
+               --out-h $@
 
-LOCAL_SHARED_LIBRARIES := libdrm_intel
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES)
 
 include $(MESA_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
 
 
 #
-# vulkan.mesa_intel
+# libvulkan_intel
 #
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := vulkan.mesa_intel
+LOCAL_MODULE := vulkan.$(TARGET_BOARD_PLATFORM)
 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_PROPRIETARY_MODULE := true
+LOCAL_MODULE_RELATIVE_PATH := hw
+
+LOCAL_LDFLAGS += -Wl,--build-id=sha1
 
 LOCAL_SRC_FILES := \
-       $(VULKAN_GEM_FILES)
+       $(VULKAN_GEM_FILES) \
+       $(VULKAN_ANDROID_FILES)
 
 LOCAL_C_INCLUDES := \
        $(VULKAN_COMMON_INCLUDES) \
-       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,)/vulkan
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,)/vulkan \
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_common,,)/vulkan
 
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(MESA_TOP)/src/intel/vulkan
 
@@ -215,16 +307,18 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
        libmesa_blorp \
        libmesa_compiler \
        libmesa_intel_common \
+       libmesa_intel_dev \
        libmesa_vulkan_common \
        libmesa_anv_gen7 \
        libmesa_anv_gen75 \
        libmesa_anv_gen8 \
        libmesa_anv_gen9 \
+       libmesa_anv_gen10 \
+       libmesa_anv_gen11 \
        libmesa_intel_compiler \
        libmesa_anv_entrypoints
 
-LOCAL_SHARED_LIBRARIES := \
-       libdrm_intel
+LOCAL_SHARED_LIBRARIES := $(ANV_SHARED_LIBRARIES) libexpat libz libsync liblog
 
 include $(MESA_COMMON_MK)
 include $(BUILD_SHARED_LIBRARY)