389 lines
9.3 KiB
Plaintext
Executable File
389 lines
9.3 KiB
Plaintext
Executable File
##############################################################################
|
|
#
|
|
# 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
|