# SPDX-License-Identifier: GPL-2.0-only
# Copyright (c) 2026 MetaX Integrated Circuits (Shanghai) Co., Ltd. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it under the terms of the
# GNU General Public License, version 2, as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License, version 2, for more details.
#
# You should have received a copy of the GNU General Public License, version 2, along with this
# program; if not, see <https://www.gnu.org/licenses/>

FULL_MX_PATH=$(src)/..

LINUXINCLUDE += -I$(FULL_MX_PATH)/mxgvm
LINUXINCLUDE += -I$(FULL_MX_PATH)/interface/mxgvm

mxgvm-y := mxgvm_firmware.o mxgvm_driver.o mxgvm_device.o \
			  mxgvm_ioctl.o mxgvm_xvm.o \
			  mxgvm_task.o mxgvm_ras.o mxgvm_umh.o \
			  mxgvm_pm.o mxgvm_pcie.o mxgvm_smp.o

mxgvm-y += ../kernel/kernel_inf.o

ifneq ($(MX_BUILD_MODE),gcc)
include $(FULL_MX_PATH)/mxgvmobj/mxgvmobj.mk
else
mxgvm-y += ../mxgvmobj/out/mxgvm_obj.o
MXGVM_OBJ_BINARY := $(FULL_MX_PATH)/mxgvmobj/out/mxgvm_obj.o_binary
MXGVM_OBJ_BINARY_O := $(FULL_MX_PATH)/mxgvmobj/out/mxgvm_obj.o
quiet_cmd_symlink = SYMLINK $@
cmd_symlink = ln -sf $(notdir $<) $@

$(MXGVM_OBJ_BINARY_O): $(MXGVM_OBJ_BINARY)
	$(call if_changed,symlink)
endif

# common
COMMON_PATH := ../common
include $(FULL_MX_PATH)/common/Makefile
mxgvm-y += $(COMMON_FILES)
mxgvm-y += mxgvm_log.o
$(info $(KBUILD_CFLAGS))

obj-m += mxgvm.o
