#set bridge_base
bridge_base = $(FULL_XDX_PATH)/$(GFX_FOLDER_NAME)/generated/volcanic/
# PVR GFX
ccflags-y += \
	-I$(FULL_XDX_GFX_PATH)/hwdefs/$(PVR_ARCH) \
	-I$(FULL_XDX_GFX_PATH)/hwdefs/$(PVR_ARCH)/km

# Linux-specific headers
ccflags-y += \
	-I$(FULL_XDX_GFX_PATH) \
	-I$(FULL_XDX_GFX_PATH)/include \
	-I$(FULL_XDX_GFX_PATH)/include/public \
	-I$(FULL_XDX_GFX_PATH)/include/$(PVR_ARCH) \
	-I$(FULL_XDX_GFX_PATH)/services/shared/include \
	-I$(FULL_XDX_GFX_PATH)/services/shared/common \
	-I$(FULL_XDX_GFX_PATH)/services/server/include \
	-I$(FULL_XDX_GFX_PATH)/services/include \
	-I$(FULL_XDX_GFX_PATH)/services/include/$(PVR_ARCH) \
	-I$(FULL_XDX_GFX_PATH)/services/system/include \
	-I$(FULL_XDX_GFX_PATH)/services/system/$(PVR_ARCH)/include \
	-I$(FULL_XDX_GFX_PATH)/services/server/devices \
	-I$(FULL_XDX_GFX_PATH)/services/server/devices/$(PVR_ARCH)

# add bridge headers
ccflags-y += \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/cache_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/cmm_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/devicememhistory_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/di_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/dmabuf_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/htbuffer_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/mm_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/pdump_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/pdumpctrl_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/pdumpmm_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/pvrtl_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxcmp_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxfwdbg_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxhwperf_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxkicksync_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxpdump_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxray_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxregconfig_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxta3d_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxtimerquery_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/rgxtq2_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/ri_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/srvcore_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/sync_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/syncfallback_bridge \
	-I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/synctracking_bridge \
        -I$(FULL_XDX_GFX_PATH)/generated/$(PVR_ARCH)/dma_bridge

XDX_GFX_DRV += \
	services/server/common/devicemem_heapcfg.o \
	services/shared/common/devicemem.o \
	services/shared/common/devicemem_utils.o \
	services/shared/common/hash.o \
	services/shared/common/ra.o \
	services/shared/common/sync.o \
	services/shared/common/mem_utils.o \
	services/server/common/devicemem_server.o \
	services/server/common/handle.o \
	services/server/common/lists.o \
	services/server/common/mmu_common.o \
	services/server/common/connection_server.o \
	services/server/common/physheap.o \
	services/server/common/physmem.o \
	services/server/common/physmem_lma.o \
	services/server/common/physmem_hostmem.o \
	services/server/common/pmr.o \
	services/server/common/power.o \
	services/server/common/process_stats.o \
	services/server/common/pvr_notifier.o \
	services/server/common/pvrsrv.o \
	services/server/common/srvcore.o \
	services/server/common/sync_checkpoint.o \
	services/server/common/sync_server.o \
	services/shared/common/htbuffer.o \
	services/server/common/htbserver.o \
	services/server/common/htb_debug.o \
	services/server/common/tlintern.o \
	services/shared/common/tlclient.o \
	services/server/common/tlserver.o \
	services/server/common/tlstream.o \
	services/server/common/cache_km.o \
	services/shared/common/uniq_key_splay_tree.o \
	services/server/common/pvrsrv_pool.o \
	services/server/common/pvrsrv_bridge_init.o \
	services/server/common/info_page_km.o \
	services/shared/common/pvrsrv_error.o \
	services/server/common/debug_common.o \
	services/server/common/di_server.o \
	services/server/common/physmem_cpumap_history.o

ifeq ($(SUPPORT_DMA_TRANSFER), 1)
ccflags-y += -DSUPPORT_DMA_TRANSFER

XDX_GFX_DRV += \
	services/server/common/dma_km.o
endif # ($(SUPPORT_DMA_TRANSFER), 1)

ifeq ($(SUPPORT_RGX),1)
ccflags-y += -DSUPPORT_RGX

XDX_GFX_DRV += \
	services/server/devices/rgx_bridge_init.o \
	services/server/devices/rgxfwdbg.o \
	services/server/devices/rgxtimerquery.o \
	services/server/devices/rgxccb.o \
	services/server/devices/$(PVR_ARCH)/rgxdebug.o \
	services/server/devices/rgxfwtrace_strings.o \
	services/server/devices/$(PVR_ARCH)/rgxfwutils.o \
	services/server/devices/$(PVR_ARCH)/rgxinit.o \
	services/server/devices/rgxbvnc.o \
	services/server/devices/rgxkicksync.o \
	services/server/devices/$(PVR_ARCH)/rgxlayer_impl.o \
	services/server/devices/rgxmem.o \
	services/server/devices/$(PVR_ARCH)/rgxmmuinit.o \
	services/server/devices/rgxregconfig.o \
	services/server/devices/$(PVR_ARCH)/rgxta3d.o \
	services/server/devices/rgxsyncutils.o \
	services/server/devices/rgxutils.o \
	services/server/devices/rgxhwperf_common.o \
	services/server/devices/$(PVR_ARCH)/rgxhwperf.o \
	services/server/devices/$(PVR_ARCH)/rgxpower.o \
	services/server/devices/$(PVR_ARCH)/rgxstartstop.o \
	services/server/devices/rgxtimecorr.o \
	services/server/devices/$(PVR_ARCH)/rgxmulticore.o \
	services/server/devices/rgxshader.o \
	services/server/devices/rgxcompute.o \
	services/server/devices/rgxtdmtransfer.o 
	
	

ifeq ($(SUPPORT_USC_BREAKPOINT),1)
XDX_GFX_DRV += \
	services/server/devices/rgxbreakpoint.o
endif # SUPPORT_USC_BREAKPOINT

ifeq ($(PVR_ARCH),volcanic)
XDX_GFX_DRV += \
	services/server/devices/$(PVR_ARCH)/rgxray.o \
	
endif # ($(PVR_ARCH),volcanic)

ifeq ($(SUPPORT_PDVFS),1)
XDX_GFX_DRV += \
 	services/server/devices/rgxpdvfs.o

ccflags-y += -DSUPPORT_PDVFS
endif # SUPPORT_PDVFS

ifeq ($(SUPPORT_WORKLOAD_ESTIMATION),1)
XDX_GFX_DRV += \
	services/server/devices/rgxworkest.o \
	services/server/devices/$(PVR_ARCH)/rgxworkest_ray.o

ccflags-y += -DSUPPORT_WORKLOAD_ESTIMATION
endif # SUPPORT_WORKLOAD_ESTIMATION

ifeq ($(SUPPORT_VALIDATION),1)
ccflags-y += -DSUPPORT_VALIDATION

ifeq ($(PVR_TESTING_UTILS),1)
XDX_GFX_DRV += \
	services/server/devices/rgxgpumap.o \

ccflags-y += -DPVR_TESTING_UTILS
endif # PVR_TESTING_UTILS
endif # SUPPORT_VALIDATION

ifeq ($(SUPPORT_VALIDATION),1)
ccflags-y += -DSUPPORT_VALIDATION

XDX_GFX_DRV += \
	services/server/devices/rgxsoctimer.o
endif # SUPPORT_VALIDATION

endif # SUPPORT_RGX

ifeq ($(SUPPORT_DISPLAY_CLASS),1)
XDX_GFX_DRV += \
	services/server/common/dc_server.o \
	services/server/common/scp.o

ccflags-y += -DSUPPORT_DISPLAY_CLASS
endif # SUPPORT_DISPLAY_CLASS

ifeq ($(PDUMP),1)
ccflags-y += -DPDUMP

XDX_GFX_DRV += \
	services/server/common/pdump_server.o \
	services/server/common/pdump_mmu.o \
	services/server/common/pdump_physmem.o \
	services/shared/common/devicemem_pdump.o \
	services/shared/common/devicememx_pdump.o

ifeq ($(SUPPORT_RGX),1)
ccflags-y += -DSUPPORT_RGX

XDX_GFX_DRV += \
	services/server/devices/$(PVR_ARCH)/rgxpdump.o
endif # SUPPORT_RGX

endif # PDUMP

ifeq ($(PVRSRV_ENABLE_GPU_MEMORY_INFO),1)
ccflags-y += -DPVRSRV_ENABLE_GPU_MEMORY_INFO

XDX_GFX_DRV += \
	services/server/common/ri_server.o
endif # PVRSRV_ENABLE_GPU_MEMORY_INFO

ifeq ($(PVR_TESTING_UTILS),1)
ccflags-y += -DPVR_TESTING_UTILS

XDX_GFX_DRV += \
	services/server/common/tutils.o
endif # PVR_TESTING_UTILS

XDX_GFX_DRV += services/server/common/devicemem_history_server.o

ifeq ($(PVR_HANDLE_BACKEND),generic)
XDX_GFX_DRV += services/server/common/handle_generic.o
endif # PVR_HANDLE_BACKEND

ifeq ($(SUPPORT_NATIVE_FENCE_SYNC),)
ifeq ($(SUPPORT_FALLBACK_FENCE_SYNC),1)
XDX_GFX_DRV += \
	services/server/common/sync_fallback_server.o
endif
endif

ifeq ($(SUPPORT_DI_BRG_IMPL),1)
ccflags-y += \
	-I$(FULL_XDX_GFX_PATH)/services/server/common

XDX_GFX_DRV += \
	services/server/common/di_impl_brg.o
endif # SUPPORT_DI_BRG_IMPL

ifeq ($(SUPPORT_RGX),1)
XDX_GFX_DRV += \
	services/server/devices/$(PVR_ARCH)/rgxsrvinit.o \
	services/server/devices/rgxfwimageutils.o
endif # SUPPORT_RGX

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/mm_bridge/server_mm_bridge.o \
	generated/$(PVR_ARCH)/cmm_bridge/server_cmm_bridge.o \
	generated/$(PVR_ARCH)/srvcore_bridge/server_srvcore_bridge.o \
	generated/$(PVR_ARCH)/sync_bridge/server_sync_bridge.o \
	generated/$(PVR_ARCH)/htbuffer_bridge/server_htbuffer_bridge.o \
	generated/$(PVR_ARCH)/pvrtl_bridge/server_pvrtl_bridge.o \
	generated/$(PVR_ARCH)/cache_bridge/server_cache_bridge.o \
	generated/$(PVR_ARCH)/dmabuf_bridge/server_dmabuf_bridge.o

ifeq ($(SUPPORT_DMA_TRANSFER),1)
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/dma_bridge/server_dma_bridge.o
endif

ifeq ($(SUPPORT_RGX),1)
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/rgxta3d_bridge/server_rgxta3d_bridge.o \
	generated/$(PVR_ARCH)/rgxhwperf_bridge/server_rgxhwperf_bridge.o \
	generated/$(PVR_ARCH)/rgxkicksync_bridge/server_rgxkicksync_bridge.o \
	generated/$(PVR_ARCH)/rgxcmp_bridge/server_rgxcmp_bridge.o \
	generated/$(PVR_ARCH)/rgxregconfig_bridge/server_rgxregconfig_bridge.o \
	generated/$(PVR_ARCH)/rgxtimerquery_bridge/server_rgxtimerquery_bridge.o \
	generated/$(PVR_ARCH)/rgxfwdbg_bridge/server_rgxfwdbg_bridge.o

ifeq ($(PVR_ARCH),volcanic)
XDX_GFX_DRV += \
 	generated/$(PVR_ARCH)/rgxray_bridge/server_rgxray_bridge.o
endif # volcanic

# add TDM support
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/rgxtq2_bridge/server_rgxtq2_bridge.o

ifeq ($(SUPPORT_USC_BREAKPOINT),1)
XDX_GFX_DRV += \
 	generated/$(PVR_ARCH)/rgxbreakpoint_bridge/server_rgxbreakpoint_bridge.o
endif # SUPPORT_USC_BREAKPOINT
endif # SUPPORT_RGX

ifeq ($(SUPPORT_WRAP_EXTMEM),1)
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/mmextmem_bridge/server_mmextmem_bridge.o
endif # SUPPORT_WRAP_EXTMEM

ifeq ($(SUPPORT_DISPLAY_CLASS),1)
ccflags-y += -I$(bridge_base)/dc_bridge
ccflags-y += -DSUPPORT_DISPLAY_CLASS

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/dc_bridge/server_dc_bridge.o
endif # SUPPORT_DISPLAY_CLASS

ifeq ($(SUPPORT_SECURE_EXPORT),1)
ccflags-y += -I$(bridge_base)/smm_bridge
ccflags-y += -DSUPPORT_SECURE_EXPORT

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/smm_bridge/server_smm_bridge.o
endif # SUPPORT_SECURE_EXPORT

ifeq ($(PDUMP),1)
ccflags-y += \
	-I$(bridge_base)/pdump_bridge \
	-I$(bridge_base)/pdumpctrl_bridge \
	-I$(bridge_base)/pdumpmm_bridge

ifeq ($(SUPPORT_RGX),1)
ccflags-y += \
 	-I$(bridge_base)/rgxpdump_bridge

XDX_GFX_DRV += \
 	generated/$(PVR_ARCH)/rgxpdump_bridge/server_rgxpdump_bridge.o
endif # SUPPORT_RGX

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/pdump_bridge/server_pdump_bridge.o \
	generated/$(PVR_ARCH)/pdumpctrl_bridge/server_pdumpctrl_bridge.o \
	generated/$(PVR_ARCH)/pdumpmm_bridge/server_pdumpmm_bridge.o
endif # PDUMP

ifeq ($(PVRSRV_ENABLE_GPU_MEMORY_INFO),1)
ccflags-y += -I$(bridge_base)/ri_bridge

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/ri_bridge/server_ri_bridge.o
endif # PVRSRV_ENABLE_GPU_MEMORY_INFO

ifeq ($(SUPPORT_VALIDATION),1)
ccflags-y += -I$(bridge_base)/validation_bridge
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/validation_bridge/server_validation_bridge.o
	services/server/common/validation.o

ifeq ($(PVR_ARCH),volcanic)
XDX_GFX_DRV += \
	services/server/common/validation_soc.o
endif # volcanic
endif # SUPPORT_VALIDATION

ifeq ($(PVR_TESTING_UTILS),1)
ccflags-y += -I$(bridge_base)/tutils_bridge
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/tutils_bridge/server_tutils_bridge.o
endif # PVR_TESTING_UTILS

ccflags-y += -I$(bridge_base)/devicememhistory_bridge
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/devicememhistory_bridge/server_devicememhistory_bridge.o

ccflags-y += -I$(bridge_base)/synctracking_bridge
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/synctracking_bridge/server_synctracking_bridge.o

ifeq ($(SUPPORT_FALLBACK_FENCE_SYNC),1)
ccflags-y += -I$(bridge_base)/syncfallback_bridge
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/syncfallback_bridge/server_syncfallback_bridge.o
endif # SUPPORT_FALLBACK_FENCE_SYNC

ifeq ($(SUPPORT_DI_BRG_IMPL),1)
ccflags-y += -I$(bridge_base)/di_bridge
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/di_bridge/server_di_bridge.o
endif # SUPPORT_DI_BRG_IMPL

# Direct bridges
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/mm_bridge/client_mm_direct_bridge.o \
	generated/$(PVR_ARCH)/sync_bridge/client_sync_direct_bridge.o \
	generated/$(PVR_ARCH)/htbuffer_bridge/client_htbuffer_direct_bridge.o \
	generated/$(PVR_ARCH)/cache_bridge/client_cache_direct_bridge.o \
	generated/$(PVR_ARCH)/pvrtl_bridge/client_pvrtl_direct_bridge.o

ifeq ($(PDUMP),1)
XDX_GFX_DRV += generated/$(PVR_ARCH)/pdumpmm_bridge/client_pdumpmm_direct_bridge.o
endif # PDUMP

ifeq ($(PVRSRV_ENABLE_GPU_MEMORY_INFO),1)
XDX_GFX_DRV += generated/$(PVR_ARCH)/ri_bridge/client_ri_direct_bridge.o
endif # PVRSRV_ENABLE_GPU_MEMORY_INFO

ifeq ($(PDUMP),1)
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/pdump_bridge/client_pdump_direct_bridge.o \
	generated/$(PVR_ARCH)/pdumpctrl_bridge/client_pdumpctrl_direct_bridge.o

ifeq ($(SUPPORT_RGX),1)
XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/rgxpdump_bridge/client_rgxpdump_direct_bridge.o
endif # SUPPORT_RGX

endif # PDUMP

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/devicememhistory_bridge/client_devicememhistory_direct_bridge.o

XDX_GFX_DRV += \
	generated/$(PVR_ARCH)/synctracking_bridge/client_synctracking_direct_bridge.o

XDX_GFX_DRV += \
	services/server/common/vmm_pvz_client.o \
	services/server/common/vmm_pvz_server.o \
	services/server/common/vz_vmm_pvz.o \
	services/server/common/vz_vmm_vm.o \
	services/system/volcanic/common/vmm_type_stub.o

# Chrome OS kernel adds some issues
ccflags-y += -Wno-ignored-qualifiers

# Treat #warning as a warning
ccflags-y += -Wno-error=cpp

XDX_GFX_FILES = $(addprefix gfx/,$(XDX_GFX_DRV))
