Android: Fix LLVM duplicated symbols linking for N and M
[mesa.git] / src / gallium / drivers / radeonsi / Android.mk
index f7e01a3f658ba8ce5bc530f053f3097bd948f6fe..e72b80c4e807643406244c052ce289643a8bcb5e 100644 (file)
 
 LOCAL_PATH := $(call my-dir)
 
-# get C_SOURCES
+# get C_SOURCES and GENERATED_SOURCES
 include $(LOCAL_PATH)/Makefile.sources
 
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES :=
+LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU   # instructs LLVM to declare LLVMInitializeAMDGPU* functions
 
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+LOCAL_C_INCLUDES := \
+       $(MESA_TOP)/src/amd/common \
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_amd_common,,)/common \
+       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir
+
+LOCAL_STATIC_LIBRARIES := libmesa_amd_common
+
+LOCAL_SHARED_LIBRARIES := libdrm_radeon
 LOCAL_MODULE := libmesa_pipe_radeonsi
 
+intermediates := $(call local-generated-sources-dir)
+
+LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/radeonsi/,$(GENERATED_SOURCES))
+
+GEN_DRIINFO_INPUTS := \
+       $(MESA_TOP)/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h \
+       $(LOCAL_PATH)/driinfo_radeonsi.h
+
+MERGE_DRIINFO := $(MESA_TOP)/src/util/merge_driinfo.py
+
+$(intermediates)/radeonsi/si_driinfo.h: $(MERGE_DRIINFO) $(GEN_DRIINFO_INPUTS)
+       @mkdir -p $(dir $@)
+       @echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))"
+       $(hide) $(MESA_PYTHON2) $(MERGE_DRIINFO) $(GEN_DRIINFO_INPUTS) > $@ || ($(RM) $@; false)
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
+
+$(call mesa-build-with-llvm)
+
 include $(GALLIUM_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
+
+ifneq ($(HAVE_GALLIUM_RADEONSI),)
+GALLIUM_TARGET_DRIVERS += radeonsi
+$(eval GALLIUM_LIBS += \
+       $(LOCAL_MODULE) \
+       $(LOCAL_STATIC_LIBRARIES) \
+       libmesa_winsys_radeon \
+       libmesa_winsys_amdgpu)
+$(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES))
+endif