############################################################################## # # Copyright (c) 2005 - 2022 by Vivante Corp. All rights reserved. # # The material in this file is confidential and contains trade secrets # of Vivante Corporation. This is proprietary information owned by # Vivante Corporation. No part of this work may be disclosed, # reproduced, copied, transmitted, or used in any way for any purpose, # without the express written permission of Vivante Corporation. # ############################################################################## # # Main linux build file. # ################################################################################ # Macros. AQROOT ?= $(PWD) AQARCH ?= $(AQROOT)/arch/XAQ2 AQVGARCH ?= $(AQROOT)/arch/GC350 export AQROOT AQARCH AQVGARCH ################################################################################ # Include common definitions. include $(AQROOT)/makefile.linux.def .PHONY: default_target all clean install drivers default_target: all ################################################################################ # Components of the project. # Register header REG_HEAD := $(AQARCH)/reg # galcore ifneq ($(LINUX_EMULATOR),1) ifneq ($(LINUX_VSIMULATOR),1) GAL_CORE := ./ $(GAL_CORE): $(REG_HEAD) .PHONY: gal_core gal_core: $(GAL_CORE) endif endif # libGAL LIB_GAL := $(AQROOT)/hal LIB_LIST := $(LIB_GAL) $(LIB_GAL): $(REG_HEAD) .PHONY: gal hal_user hal_drv gal hal_user: $(LIB_GAL) hal_drv: $(LIB_GAL) ifeq ($(LINUX_EMULATOR),1) # libEmulator LIB_CMODEL := $(AQARCH)/cmodel LIB_EMULATOR := $(AQROOT)/hal/os/linuxemulator/emulator LIB_LIST += $(LIB_CMODEL) $(LIB_EMULATOR) $(LIB_CMODEL): $(REG_HEAD) $(LIB_EMULATOR): $(LIB_CMODEL) $(REG_HEAD) .PHONY: emulator emulator: $(LIB_EMULATOR) $(LIB_GAL): $(LIB_EMULATOR) endif ifeq ($(VDB_SERVER),1) LIB_VDBSERVER := $(AQROOT)/vdbserver/common LIB_LIST += $(LIB_VDBSERVER) .PHONY: vdbserver vdbserver: $(LIB_VDBSERVER) endif ifeq ($(LINUX_VSIMULATOR),1) # libEmulator LIB_VSIMULATOR := $(AQROOT)/vsimulator/common LIB_EMULATOR := $(AQROOT)/vsimulator/os/linux/emulator LIB_LIST += $(LIB_VSIMULATOR) $(LIB_EMULATOR) $(LIB_VSIMULATOR): $(REG_HEAD) $(LIB_EMULATOR): $(LIB_VSIMULATOR) $(REG_HEAD) .PHONY: emulator simulator: $(LIB_EMULATOR) $(LIB_GAL): $(LIB_EMULATOR) endif ifneq ($(VIVANTE_ENABLE_3D),0) # libEGL LIB_EGL := $(AQROOT)/driver/khronos/libEGL ifeq ($(LINUX_VSIMULATOR),0) ifeq ($(USE_VIP_ONLY),0) LIB_LIST += $(LIB_EGL) endif endif $(LIB_EGL): $(LIB_GAL) .PHONY: egl egl: $(LIB_EGL) drivers: $(LIB_EGL) ifeq ($(USE_VDK),1) # libVDK LIB_VDK := $(AQROOT)/sdk/vdk ifeq ($(LINUX_VSIMULATOR),0) ifeq ($(USE_VIP_ONLY),0) LIB_LIST += $(LIB_VDK) endif endif $(LIB_VDK): $(LIB_EGL) .PHONY: vdk vdk: $(LIB_VDK) drivers: $(LIB_VDK) endif # USE_VDK endif # VIVANTE_ENABLE_3D or VIVANTE_ENABLE_VG ifeq ($(VIVANTE_ENABLE_3D),1) # libGLESv1, libGLESv2, libGLSLC, libVSC, libVSC_Lite LIB_GLES11 := $(AQROOT)/driver/khronos/libGLESv11 LIB_GLES2X := $(AQROOT)/driver/khronos/libGLESv3 LIB_GLSLC := $(AQROOT)/compiler/libGLSLC LIB_VSC := $(AQROOT)/compiler/libVSC LIB_VSC_Lite := $(AQROOT)/compiler/libVSC_Lite LIB_LIST += $(LIB_VSC) ifeq ($(USE_VSC_LITE),1) LIB_LIST += $(LIB_VSC_Lite) endif ifeq ($(LINUX_VSIMULATOR),0) ifeq ($(USE_VIP_ONLY),0) LIB_LIST += $(LIB_GLES11) $(LIB_GLES2X) $(LIB_GLSLC) endif endif $(LIB_GLES11): $(LIB_GAL) $(LIB_VSC) $(LIB_GLES2X): $(LIB_GAL) $(LIB_VSC) $(LIB_GLSLC) $(LIB_GLSLC): $(LIB_GAL) $(LIB_VSC) $(LIB_VSC): $(LIB_GAL) $(LIB_VSC_Lite): $(LIB_GAL) .PHONY: oes11_drv gles11 oes2x_drv gles2x glslc vsc vsc_lite oes11_drv gles11: $(LIB_GLES11) oes2x_drv gles2x: $(LIB_GLES2X) glslc: $(LIB_GLSLC) vsc: $(LIB_VSC) vsc_lite: $(LIB_VSC_Lite) drivers: $(LIB_EGL) $(LIB_GLES11) $(LIB_GLES2X) endif # VIVANTE_ENABLE_3D ifeq ($(VIVANTE_ENABLE_3D),1) ifneq ($(USE_OPENCL)$(USE_OPENVX),00) # libCLC LIB_CLC := $(AQROOT)/compiler/libCLC LIB_LIST += $(LIB_CLC) $(LIB_CLC): $(LIB_GAL) $(LIB_VSC) .PHONY: clc clc: $(LIB_CLC) endif # USE_OPENCL or USE_OPENVX endif # VIVANTE_ENABLE_3D ifeq ($(VIVANTE_ENABLE_3D),1) ifneq ($(USE_VULKAN)$(USE_OPENCL),00) LIB_SPIRV := $(AQROOT)/compiler/libSPIRV $(LIB_SPIRV): $(LIB_GAL) $(LIB_VSC) LIB_LIST += $(LIB_SPIRV) endif endif ifeq ($(VIVANTE_ENABLE_3D),1) ifeq ($(USE_OPENCL),1) # libOpenCL ifeq ($(gcdSTATIC_LINK),0) LIB_CL11 := $(AQROOT)/driver/khronos/libCL endif # gcdSTATIC_LINK LIB_CL30 += $(AQROOT)/driver/khronos/libCL30 LIB_LIST += $(LIB_CL30) $(LIB_CL11): $(LIB_GAL) $(LIB_GLES2X) $(LIB_CLC) $(LIB_CL30) $(LIB_CL30): $(LIB_GAL) $(LIB_GLES2X) $(LIB_CLC) $(LIB_SPIRV) .PHONY: cl11 ocl11_drv cl11: $(LIB_CL11) $(LIB_CL30) ocl11_drv: $(LIB_CLC) $(LIB_CL11) $(LIB_CL30) ifeq ($(BUILD_OPENCL_ICD),1) LIB_CL_ICD := $(AQROOT)/driver/khronos/libCL30/loader LIB_LIST += $(LIB_CL_ICD) cl11: $(LIB_CL_ICD) ocl11_drv: $(LIB_CL_ICD) endif # BUILD_OPENCL_ICD endif # USE_OPENCL endif # VIVANTE_ENABLE_3D ifeq ($(VIVANTE_ENABLE_3D),1) ifeq ($(USE_OPENVX),1) # libOpenVX LIB_VX := $(AQROOT)/driver/khronos/libOpenVX LIB_LIST += $(LIB_VX) $(LIB_VX): $(LIB_GAL) $(LIB_CLC) .PHONY: ovx_drv ovx_drv: $(LIB_VX) endif # USE_OPENVX endif # VIVANTE_ENABLE_3D ifeq ($(VIVANTE_ENABLE_3D),1) ifeq ($(USE_OPENVX),1) ifeq ($(USE_OVXLIB),1) # ovxlib LIB_OVXLIB := $(OVXLIB_DIR) LIB_LIST += $(LIB_OVXLIB) $(LIB_OVXLIB): $(LIB_VX) .PHONY: ovx_lib ovx_lib: $(LIB_OVXLIB) endif # USE_OVXLIB endif # USE_OPENVX endif # VIVANTE_ENABLE_3D ifeq ($(VIVANTE_ENABLE_3D),1) ifeq ($(USE_VULKAN),1) # libvulkan LIB_VULKAN := $(AQROOT)/driver/khronos/libVulkan12 ifeq ($(LINUX_VSIMULATOR),0) ifeq ($(USE_VIP_ONLY),0) LIB_LIST += $(LIB_VULKAN) endif endif $(LIB_VULKAN): $(LIB_GAL) $(LIB_SPIRV) $(LIB_VSC) $(LIB_GLSLC) .PHONY: vulkan_drv vulkan_drv: $(LIB_VULKAN) drivers: $(LIB_VULKAN) endif # USE_VULKAN endif # VIVANTE_ENABLE_3D ifneq ($(VIVANTE_NO_GL4),1) ifeq ($(VIVANTE_ENABLE_3D),1) LIB_GL4X := $(AQROOT)/driver/khronos/libGL4 ifeq ($(LINUX_VSIMULATOR),0) ifeq ($(USE_VIP_ONLY),0) LIB_LIST += $(LIB_GL4X) endif endif $(LIB_GL4X): $(LIB_GAL) $(LIB_VSC) .PHONY: GL4X GL4X: $(LIB_GL4X) endif # VIVANTE_ENABLE_3D endif # !VIVANTE_NO_GL4 ifneq ($(VIVANTE_NO_VG),1) ifeq ($(VIVANTE_ENABLE_3D),1) LIB_VG11 := $(AQROOT)/driver/khronos/libOpenVG_3D/vg11/driver ifeq ($(LINUX_VSIMULATOR),0) ifeq ($(USE_VIP_ONLY),0) LIB_LIST += $(LIB_VG11) endif endif $(LIB_VG11): $(LIB_GAL) $(LIB_VSC) .PHONY: ovg11_drv vg11 vg113d ovg11_drv vg11: $(LIB_VG11) vg113d: $(LIB_VG11) drivers: $(LIB_VG11) endif # VIVANTE_ENABLE_3D endif # !VIVANTE_NO_VG ifeq ($(USE_EXA_G2D),1) LIB_EXA := $(AQROOT)/driver/X/EXA_G2D/src ifneq ($(filter 1,$(EGL_API_DRI) $(X11_DRI3)),) LIB_DRM := $(LIBDRM_DIR) LIB_LIST += $(LIB_EXA) $(LIB_DRM) $(LIB_EXA): $(LIB_GAL) $(LIB_DRM) $(LIB_EGL): $(LIB_DRM) $(LIB_GL4X): $(LIB_DRM) endif else endif ifeq ($(EGL_API_GBM),1) ifeq ($(GBM_LIBS),) LIB_GBM_VIV := $(AQROOT)/driver/gbm/backends/viv LIB_GBM := $(AQROOT)/driver/gbm/main LIB_LIST += $(LIB_GBM_VIV) $(LIB_GBM) $(LIB_GBM_VIV): $(LIB_GAL) $(LIB_GBM): $(LIB_GBM_VIV) .PHONY: gbm gbm: $(LIB_GBM_VIV) $(LIB_GBM) $(LIB_EGL): $(LIB_GBM) endif endif ################################################################################ # Define the macros used in the common makefile. SUBDIRS := $(REG_HEAD) $(LIB_LIST) MAIN_MODULE := $(LIB_LIST) $(GAL_CORE) ################################################################################ # Targets all: $(MAIN_MODULE) clean: V_TARGET := clean install: V_TARGET := install clean: all @rm -rf $(SDK_DIR) install: all @mkdir -p $(SDK_DIR) @-cp -f $(AQROOT)/release/SW/ReadMe_Linux_SDK.txt $(SDK_DIR)/ReadMe.txt .PHONY: $(SUBDIRS) $(SUBDIRS): @test ! -d $@ || $(MAKE) -f makefile.linux -C $@ $(V_TARGET) gcdSTATIC_LINK=$(gcdSTATIC_LINK) ifneq ($(LINUX_EMULATOR),1) ifneq ($(LINUX_VSIMULATOR),1) .PHONY: $(GAL_CORE) module_install module_clean ifeq ($(KERNEL_DIR),) $(warning "-------------------------------------------------") $(warning "Warning: KERNEL_DIR not set") $(warning "Warning: kernel driver will not be built") $(warning "-------------------------------------------------") else $(GAL_CORE): @test ! -d $@ || $(MAKE) -f Kbuild M=$(AQROOT) -C $@ $(V_TARGET) drivers: $(GAL_CORE) module_install: $(GAL_CORE) $(MAKE) -f Kbuild M=$(AQROOT) -C $(GAL_CORE) install module_clean: $(MAKE) -f Kbuild M=$(AQROOT) -C $(GAL_CORE) clean endif endif endif